1、1Modoer2.0 模板制作手册Moufer Studio模板结构Modoer 模板分为主站模板,主题模板,空间模板,助手模板和后台模板其中,助手模板和后台模板为分布式存放,每个模块都有自己的模块内,助手模板存放在 core/modules/moduleflag/assistant/templates,后台模板存放在core/modules/moduleflag/admin/templates,助手模板使用了模板引擎,可以使用模板标签。而后台模板则没有使用模板引擎,需要直接进行 php 语法操作。 主站模板:templates/main主题模板:templates/item空间模板:temp
2、lates/space主站模板: 主站模板文件夹下面,每一套模板为 1 个文件夹,不能直接将文件放在 templates/main 下面。 模板文件由【模块_文件名】组成,例如:modoer_index,表示 modoer 框架的首页2主站模板的组成一般为:头部文件+主题文件+尾部文件,头部文件为:modoer_header,尾部文件为:modoer_footer首页的组成为:modoer_header+modoer_index+modoer_footer ,每个主体文件同时可能有多个子模板组成,子模板的名称一般为:模块_文件名_part_*模板的 CSS 组成: 主站的 CSS 分类:公共
3、CSS,首页 CSS 和模块 CSS公共 CSS: 负责显示统一的图标,样式等,例如点评的星星。公共 CSS 是为了在各个不同的。板 CSS 的样式名称为:css_common.css首页 CSS: 负责首页单独的风格,名称为 css_index.css,所有首页单独使用的 css 都存放在这里模块 CSS: 每个模块内独立需要用到的布局 CSS,当用户访问某个模块的页面时,则会自动加载这个模块的 CSS,模板 CSS的样式名称为:css_模块标识.css主题模板:2.0 的主题模板相对 1.x 增加了更多的功能,同时新闻,产品,优惠券都成为主题模板,统一主题关联数据显示,展示一个完整的主题信
4、息,可实现类似品牌空间的网上店铺效果。主站模板的每个页面都包含头部(header.htm),尾部(footer.htm)3主题风格的模板页面分别为:主题首页(index.htm),新闻列表(article_list.htm),新闻内页(article_detail.htm),优惠券列表(coupon_list.htm),优惠券内页(coupon_detail.htm),产品列表(product_list.htm),产品内页(product_detail.htm),分类信息列表(fenlei_list.htm),分类信息内页(list_detail.htm)全局变量全局变量表示可不用通过任何的标
5、签和函数,可在程序任意页面使用的变量。URLROOT:表示 URL 的相对路径,如果是一级域名或者 2 及域名,此变量的值为空,如果是二级目录,例如 path_info 的 URL 改写时尤为重要。SCRIPTNAV:表示当前页的标记,配合菜单的 tab 当前页高亮显示,SCRIPTNAV 对应的值介绍index:首页 article:新闻模块 item_x:表示主题列表页,x 是一个 catid,即主分类的 id,例如 item_1 4coupon:优惠券模块 exchange:积分兑换模块 member:助手模块 $_G:包含了程序需要用到的所有配置信息和逻辑信息,这里简单说一下前台需要用
6、到的信息$_Gcharset:表示当前系统编码,有 gb2312 和 utf-8 $_Gtplurl:系统当前使用的主站模板路径,例如 templates/main/default/,配合URLROOT使用,例如载入首页 css(例如:URLROOT/$_Gtplurlcss_inex.css) $_Gip:表示访问用户的 ip 地址 $_Gtimestamp:表示系统时间的 unix 时间戳,配合模板标签date 使用,例如date $_Gtimestamp $_CFG:这是一个关于 Modoer 核心设置的全部数组,里面存放了网站名称,网址等信息$_CFGsiteurl:网址地址 $_CF
7、Gsitename:网站名称 $_CFGicpno:备案号 $_CFGsubname:网站副标题 $_CFGmeta_keywords:系统网页 keywords $_CFGmeta_description:系统网页 description $_CFGtitlesplit:系统分隔符 $_CFGmain_menuid:头部菜单组 id 5$_CFGfoot_menuid:底部菜单组 id $_HEAD:这个变量是存储关于网页的标题(title),关键字和描述,在头部菜单载入前给这些变量赋值,即可在网页头部中看到效果$_HEADtitle:当前网页的标题 $_HEADkeywords:当前网页的
8、关键字 $_HEADdescription:当前网页的 description $_C:这是 Modoer 相关的 COOKIE 数组,一般模板设计不会使用到$user:这是一个 php 形式的类,存储了当前登录会员的信息$user-isLogin 这是一个布尔型值,表示是否已经登录,可配合 if 标签使用 $user-uid 表示当前登录用户的 uid,没有登录时,为 0 $user-username 当前登录用户的用户名,未登录是为空 $user-email 会员的电子邮件 $user-groupid 当前登录的用户会员组 id $user-point 会员积分 $user-coin 会员
9、金币 $user-rmb 会员现金(安装在线冲值模块后可使用) $user-reviews 会员点评数量 $user-subjects 添加主题数量 $user-pictures 上传图片数量 6$user-flowers 收到的鲜花数 判断标签:ifif 是模板标签中最常用的,也是最重要的标签之一,他的作用是在页面中判断显示数据,例如:i 的值是 a 从上面这段代码可以看到 if 是对等标签,已开始,结束。中间部分就是判断条件成立时,在页面中显示的内容。if 总共有三种方式组成,第一种已经在上面演示,第二种是两者选其一的方式,例如:i 的值是 a i 的值不是 a 两者选其一就是,2 条判断
10、,必须显示一条。例如我们在7modoer 模板中判断用户是否登录:isLogin 欢迎你回来,$user-username 请先登录。 第三种则是,多条中选择一条,例如:i 的值是 a i 的值是 b i 的值是 b i 的值我也不能确定 从上到下,一个个对$i 进行判断,如果一旦有符合的,就结束本次条件判断,如果都没有,则在最后显示“i 的值我也不能确定” 。循环标签:loop在设计模板时,循环显示数组里的内容,以达到在页面显示信8息列表时,我们就会用到 loop 标签。下面说一下 loop 的标准用法:例如一个数组,他的名称是$list,在这个数组变量中,存放了5 条数组,格式如下: 接着
11、我们要在模板里以列表的方式显示这些数据, $val打开页面执行后,查看 HTML 代码会变成: abcd9e可以看到和标签是在循环体外面的,整个循环是对$val的 5 次循环。在循环以开始,结束,其中 $list 就是要进行循环数组,$val 则是每次循环时赋予的单条数据值。 上面是最简单的一维数组的循环并显示,下面做一个 2 维数组的用法:接着,我们还是同样的显示10$val0 的大写字母是 $val1打开页面执行后,查看 HTML 代码会变成: a 的大写字母是 Ab 的大写字母是 Bc 的大写字母是 Cd 的大写字母是 De 的大写字母是 E上面的代码基本和前者是一致的,唯一不同的是 $val 变量的用法,这是因为我们使用了二维数组,即二维数组是有 5 个一维数组组成的,当 loop 标签开始循环时,每次 $val 赋值的是一个一维数组,我们在使用一维数组时,没有用循环的方式来读取,这时我们可以根据数组的下标需要来读取数组中的单条内容,php 的数组下标需要都 是从 0 开始的,所以我们要获得数组的第一条数据时,就是 $val0,同样第 2 条就是$val1。 上面说到我们的默认数组下标,都是数字 0 开始的,但是实际