码迷,mamicode.com
首页 > 其他好文 > 详细

ECMall模板开发文档

时间:2014-06-05 13:45:48      阅读:476      评论:0      收藏:0      [点我收藏+]

标签:c   style   class   java   a   http   

 

 

 

ECMall

模板开发文档

 

 

     

 

 

欢迎阅读

ECMall

模板制作教程,通过阅读本教程可快速上手

ECMall

模板的使用和制作。

ECMall

模板制

作要求用户具备

XML

XHTML

CSS

基础知识;至少掌握一种文本编辑器或网页制作工具

(

如:

EditPlus,Dreamweaver,Textmate

)

本教程还将及一些模板代码,

如从没有了解过

Smarty

建议阅读

Smarty

帮助手册。

 

第一节

-ECMall

模板机制介绍

 

通过阅读本节你将了解:

 

1.

 

ECMall

模板的组成和机构

 

 

2.

 

ECMall

模板机制工作原理

 

 

ECMall

页面模板由布局

(layout)

、模块

(module)

、皮肤

(skin)

组成,所有模板文件都保存在

ECMall

根目

录的

themes

目录下,其中两个目录

mall

store

mall

目录包含了商城的所有布局、模块、皮肤,

store

录包含了店铺所有布局、模块、皮肤,两个目录的结构是完全一样。下面首先介绍

mall

目录下的结构。

 

mall

目录包括

layout

resource

skin

三个目录,其用途分别为:

 

?

 

Layout

目录

-

用于存放

layout

文件。

layout

目录下的每个子目录里存放的是某一个页面的

layout

文件

layout

目录介绍请见附表

1

),如

homepage

目录就是商城首页的布局目录

,

里面有一个

default.layout

件这就是商城首页的布局文件,

在这个目录里可以存在多个布局文件,

布局文件是一个标准的

XML

文档,

你只

需要写简单的几个标签

(以下称为布局描述语言)

描述整个页面的布局架构,

在以后的章节会详细介绍布局文

件的制作方法。

 

?

 

resource

目录

-

用于存放内容模块文件。模块是由布局文件调用的,内容是

HTML

或模板代码组成,在以

后的章节会详细介绍模块制作方法。

 

?

 

skin

目录

-

存放皮肤,目录中每个目录对应一个

skin

,如

default

ECMall

默认皮肤,其中包括了

CSS

文件,和图片以及

JS

文件,在以后的章节会详细介绍皮肤制作方法。

  

ECMall

的每一个页面的模板都包含以上介绍的元素,原理是模板引擎将布局文件中的布局描述语言解析,

将文件中描述的页面布局和模块部署位置输出一个标准的

XHTML

文档。

 

第二节

-

布局文件制作方法

 

通过阅读本届你将了解:

 

1.

 

ECMall

模板布局描述语言的标签

 

 

2.

 

ECMall

模板布局描述制作方法

上节简单的介绍了布局文件,本节将详细介绍布局文件的制作方法。布局文件的内容是布局描述语言,布

局描述语言是基于

XML

的,

XML

是一种标记语言,

ECMall

定义了

4

个简单的标签

row

col

library

item

你只需要使用这四个简单的标签就能描述一个自己想要页面

?

 

row

标签

 

标记一行,支持的属性包括

id

class

allowEdit 

?

 

col

标签

 

标记一列,支持的属性包括

id

class

allowEdit 

?

 

libray

标签

 

标记的是一个模块容器

 

?

 

item

标签

 

标记的是一个模块,支持的属性包括

id

src

 

 

 

下面介绍如何制作

ECMALL

的布局文件

 

<?xml version="1.0"?> 

<template> 

  

<row id="region1" allowEdit="false"> 

    

<library> 

      

<item id="header" src="themes/mall/resource/page_header.html" /> 

      

<item id="search_form" src="themes/mall/resource/search_form.html" /> 

    

</library> 

  

</row> 

  

<row id="mc_home"> 

    

<col id="region2" class="column1"> 

      

<library> 

        

<item id="mc_menu" src="themes/mall/resource/mc_menu.html" /> 

      

</library> 

    

</col> 

    

<col id="region3" class="column2"> 

      

<library> 

        

<item id="mc_home" src="themes/mall/resource/mc_home.html" /> 

      

</library> 

    

</col> 

  

</row> 

  

<row id="footer" allowEdit="false"> 

    

<library> 

      

<item id="page_footer" src="themes/mall/resource/page_footer.html" /> 

    

</library> 

  

</row> 

</template> 

 

以上是会员中心首页的布局文件的内容,该文件在根目录的

themes/mall/layout/mc_home/default.layout

,所描述的布局如下图:

 

 

 

 

代码的第一行“

<?xml 

version="1.0"?>

”声明文档是一个

XML

文档。后面

<template>...</template>

是根

节点,

XML

文档标准是必须存在一个根节点的,

template

节点的子节点就是上面介绍的

4

个标签,用于描述页

面布局,这个页面分为上中下三行,中部分为两列。

 

 

第一行代码

<row id="region1" allowEdit="false"> 

    

<library> 

      

<item id="header" src="themes/mall/resource/page_header.html" /> 

      

<item id="search_form" src="themes/mall/resource/search_form.html" /> 

    

</library> 

  

</row> 

这段代码用

row

标签标记一行,定义了一个

ID

region1

,这里需要注意下每个标签都应该有一个唯一

ID

,不能和其他标签的

ID

冲突,一旦冲突页面可能会无法正常显示,这里还定义了

allowEdit

属性为

false

这表示这个标签下的模块,在模板编辑模式下是无法拖拽的,其他模块也无法拖放到这里。这个标签下调用了

两个模块,所以必须有一个模块的容器标签“

<library></library>

”,“

<item id="header" 

src="themes/mall/resource/page_header.html" />

”标记了调用一个模块,这里

ID

属性必须和

src

性对应的模块文件中顶级元素

ID

相同

,src

是模块的相对路径。

 

 

第二行代码:

 

  

<row id="mc_home"> 

    

<col id="region2" class="column1"> 

      

<library> 

        

<item id="mc_menu" src="themes/mall/resource/mc_menu.html" /> 

      

</library> 

    

</col> 

    

<col id="region3" class="column2"> 

      

<library> 

        

<item id="mc_home" src="themes/mall/resource/mc_home.html" /> 

      

</library> 

    

</col> 

  

</row> 

 

这一行分为两列,

row

标签里我们定义了两列,

第一列的

ID

region2

第二列的

ID

region3

两列分别调用了一个模块,这和第一行讲解的是一样,这里需要注意的是

row

标签可以包含多个

col

row

签,也可以包含一个

library

标签,但不能同时包含不同的标签,比如:

 

1. 

<row id="mc_home"> 

    

<col id="region1"> 

    

</col> 

    

<row id="region2"> 

    

</row> 

</row> 

2. 

<row id="mc_home"> 

    

<col id="region1"> 

    

</col> 

    

<library> 

    ................ 

    

</library> 

</row> 

上面的两段代码都是错误的,

col

标签可以包含

row

标签但不能再包含

col

标签,

col

标签也不能同时包含

row

library

,比如

 

 

<col id="col1"> 

    <row id="region1" /> 

     <library> 

    ................ 

    </library> 

</col> 

这样也是错误的。

 

 

 

最后讲解布局第三行的代码:

 

  

<row id="footer" allowEdit="false"> 

    

<library> 

      

<item id="page_footer" src="themes/mall/resource/page_footer.html" /> 

    

</library> 

  

</row> 

 

这一行和第一行的代码几乎相同,只是调用的模块不同而已,

allowEdit

false

禁止编辑这一行。

 

 

第三节

-

模块文件制作方法

 

ECMall

的模板机制中所有的内容都是在模块中来实现的,

上一节中讲的布局文件仅仅是用于页面布局的描

述,其中没有任何页面内容,

ECMall

的模块主要由

HTML

代码和模板语句,模板语句是兼容

smarty

的语法

的。在后台模板管理用户可以可视化编辑页面的内容,任意拖拽模块,所以模块必须要按照

ECMall

模块规范

制作,商城的模块文件存放在根目录的

themes/mall/resource

,店铺的模块文件存放在根目录的

themes/store/resource,

下面举例讲解下

themes/mall/resource/site_news.html

文件的内容,

这个模块

是站内快讯的模块。

 

<div id="site_news_content" class="colbox"> 

  

<!-- {if $article_list} --> 

  

<div class="colboxcontent" > 

    

<ul class="articles_list"> 

      

<!-- {foreach from=$article_list.data item=article} 

н

д

у

б

 

--> 

      

<li><span class="time">({$article.formated_add_time})</span><a href="{url 

src=index.php?app=article&amp;act=site_news&amp;id=$article.article_id}">{$article.title|e

scape}</a></li> 

      

<!-- {/foreach} --> 

  

</ul> 

    

<div class="pagechanger">{page_links from=$article_list.info url=$url_format}</div> 

  

</div> 

  

<div class="colbtm"></div> 

  

<!-- {else} --> 

  

<div class="colboxcontent format_article"> {$article.content} </div> 

  

<!-- {/if} --> 

</div> 

 

  

这里面有一个

div

id

site_news_content

,这里需要注意的是每个模块的

ID

必须是唯一的,不能和其

他模块重命名,每个模块文件里面只能有一个根元素,如果存在一个以上根元素就无法正常操作了,如一下代

码:

 

<div id="site_news_content" class="colbox"> 

  

<!-- 

省略的代码

 

--> 

</div> 

<div id="site_news_content2" class="colbox"> 

  

<!-- 

省略的代码

 

--> 

</div> 

如果一个模块文件的内容是这样,存在两个根元素就是错误的。

 

 

第四节

 

:皮肤文件制作方法

 

皮肤是由

CSS

和图片组成,商城的皮肤文件位于根目录的

themes/mall/skin

目录

,

商城的皮肤文件位于

根目录的

themes/mall/skin

目录,一个皮肤是一个目录,如默认皮肤

default

,目录里包含多个

css

文件,

下面介绍下每个文件的作用。

 

 

商城的

CSS

文件说明

 

文件名

 

作用

 

article.css 

站内快讯,帮助中心页面的

CSS

样式文件

 

category.css 

商城搜索,

团购列表,

商品分类页面的

CSS

样式文件

 

global.css 

整个商城包括店铺的全局

CSS

文件

 

mall.css 

商城首页的

CSS

文件

 

mallbase.css 

商城全局

CSS

文件

 

member.css 

用户中心页面

CSS

文件

 

shopping.css 

购物流程页面的

CSS

文件

 

storelist.css 

店铺列表页面的

CSS

文件

 

 

店铺的

CSS

文件说明

 

文件名

 

作用

 

goods.css 

团购商品,商品页面的

CSS

文件

 

storebase.css 

店铺页面的

CSS

文件

 

 

CSS

可以定义对应的页面的样式,

皮肤也可以添加

Javascript

你只需要在皮肤目录里的

JS

目录添加你

js

文件,比如一个

demo.js

,文件名后缀必须是

.js

。为了减少

HTTP

请求和节省流量,

EMall

会将页面需要

css

打包和压缩处理,

需要注意的是在店铺的页面都会调用当前商城皮肤目录下的

global.css

文件里的代码

ECMall模板开发文档,布布扣,bubuko.com

ECMall模板开发文档

标签:c   style   class   java   a   http   

原文地址:http://www.cnblogs.com/farcall/p/3769115.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!