ECMall2.x模板制作入门系列之B
2014-02-23 09:28
246 查看
ECMall2.x模板制作入门系列之2(模板标签/语法)
今天给大家带来一个模板语法的教程。希望能为ECMall模板制作者提供一份参考资料。如有问题、建议和意见,欢迎提出。在ECMall模板中,用”{“开头,以”}”结尾就构成一个标签单元,”{“紧接着的单词就是标签名。在标签单元中单词前含”$”(美元符)的为变量名。
一、资源引用
res标签
功能:返回当前模板当前风格目录的url路径
实例:{res
file=css/ecmall.css}这个标签在模板编译后将变成http://商城域名/themes/default/styles/default,注意末尾没有”/”,返回结果会随后台设置的主题变化
lib标签
功能:返回javascript库的url路径
实例:{lib
file=ecmall.js}这个标签在模板编译后将变成http://商城域名/includes/libraries/javascript,注意末尾没有”/”,返回结果不会随后台设置的主题变化
url标签
功能:url解析器,可根据后台伪静态状态返回相应url等。
说明:如果一个链接的目标页面需要伪静态功能,请使用该url标签,只有当后台开启伪静态并在.htaccess文件为目标页面设置了伪静态规则时url标签才能解析为静态url地址。
实例:{url
app=goods&id=$goods_id}解析后如果伪静态成功则返回”goods/19″
include标签
功能:
Include 标签用于在当前模板中包含其它模板. 当前模板中的变量在被包含的模板中可用. 必须指定 file
属性,该属性指明模板资源的位置.实例:
模板代码:
二、模板变量
1.模板保留变量
模板预置的一些系统变量,包括
$smarty.now 当前时刻对应的格林尼治时间戳,可以用{$smarty.now|date}显示当前日期时间,关于date变量调节器请看下文讲解。
$smarty.get $smarty.post
$smarty.cookie
$smarty.env
$smarty.server
$smarty.request
$smarty.session同php的$_GET、$_POST、$_COOKIE、$_ENV、$_SEVER、$_REQUEST、$_SESSION变量。非程序人员如果需要了解请参考php相关手册了解
2.自定义变量
从php赋值变量:
例如在调用该模板的app程序文件中进行赋值
复制内容到剪贴板
代码:
在themes/mall/default/index.html中显示变量
模板代码:
在模板中赋值变量:
assign标签
例在themes/mall/default/index.html中赋值变量
模板代码:
3.模板上使用语言项
说明:为了满足多语言需求,ECMall采用了语言包机制,除挂件外,在模板、js文件中均使用语言项代替直接显示语言文字。
语言文件:语言文件位于商城根目录下的languages目录下,为当前语言建了一个目录,如果您用的是sc-gbk版本,则会有sc-gbk目录,进去之后就能看到属于前台控制器的全部语言文件了。除common.lang.php属于所有app外,每一个语言文件都只属于一个app(ECMall中称为控制器)。
引用:
语言文件属于某个控制器而不属于某个模板,同一个模板如果被不同控制器调用将使用不同语言文件进行语言解析
实例1:
在默认控制器对应的语言文件default.lang.php添加语言项”test”
复制内容到剪贴板
代码:
在index.html模板中显示语言项”test”
模板代码:
输出结果为:
测试语言项
实例2:
模板中还支持数组形式语言项:
在默认控制器对应的语言文件default.lang.php添加语言项”test_array”
复制内容到剪贴板
代码:
在index.html模板中显示语言项”test”
模板代码:
输出结果为:
测试数组语言项
4.变量调节器
escape
功能:提供各种编码功能
参数:可选参数html、url、quotes、input、editor,缺省为html
html:分别替换变量中的如下字符& < > ”为其html实体代码,用于按原样输出html源代码
url:如果该变量用于储存url地址,需要进行url编码
quotes:在单双引号字符前添加反斜杠
input:给输入框赋值时使用
editor:当显示通过文本编辑器录入的内容,需要用此参数
实例
php赋值
复制内容到剪贴板
代码:
模板
模板代码:
输出结果为
L’oreal/欧莱雅”清润全日保湿乳霜”50ml<br
/><script>
L’oreal/欧莱雅”清润全日保湿乳霜”50ml<br
/><script>
L’oreal/欧莱雅”清润全日保湿乳霜”50ml<br
/><script>
L'oreal/欧莱雅"清润全日保湿乳霜"50ml
今天给大家带来一个模板语法的教程。希望能为ECMall模板制作者提供一份参考资料。如有问题、建议和意见,欢迎提出。在ECMall模板中,用”{“开头,以”}”结尾就构成一个标签单元,”{“紧接着的单词就是标签名。在标签单元中单词前含”$”(美元符)的为变量名。
一、资源引用
res标签
功能:返回当前模板当前风格目录的url路径
实例:{res
file=css/ecmall.css}这个标签在模板编译后将变成http://商城域名/themes/default/styles/default,注意末尾没有”/”,返回结果会随后台设置的主题变化
lib标签
功能:返回javascript库的url路径
实例:{lib
file=ecmall.js}这个标签在模板编译后将变成http://商城域名/includes/libraries/javascript,注意末尾没有”/”,返回结果不会随后台设置的主题变化
url标签
功能:url解析器,可根据后台伪静态状态返回相应url等。
说明:如果一个链接的目标页面需要伪静态功能,请使用该url标签,只有当后台开启伪静态并在.htaccess文件为目标页面设置了伪静态规则时url标签才能解析为静态url地址。
实例:{url
app=goods&id=$goods_id}解析后如果伪静态成功则返回”goods/19″
include标签
功能:
Include 标签用于在当前模板中包含其它模板. 当前模板中的变量在被包含的模板中可用. 必须指定 file
属性,该属性指明模板资源的位置.实例:
模板代码:
{include file="header.html"} {* body of template goes here *} {include file="footer.html"}
二、模板变量
1.模板保留变量
模板预置的一些系统变量,包括
$smarty.now 当前时刻对应的格林尼治时间戳,可以用{$smarty.now|date}显示当前日期时间,关于date变量调节器请看下文讲解。
$smarty.get $smarty.post
$smarty.cookie
$smarty.env
$smarty.server
$smarty.request
$smarty.session同php的$_GET、$_POST、$_COOKIE、$_ENV、$_SEVER、$_REQUEST、$_SESSION变量。非程序人员如果需要了解请参考php相关手册了解
2.自定义变量
从php赋值变量:
例如在调用该模板的app程序文件中进行赋值
复制内容到剪贴板
代码:
//在app/default.app.php文件的index方法中$this->display前添加赋值语句 $this->assign('name', 'Tom'); //普通变量 $this->assign('user', array( 'name' => 'Tom', 'age' => '28' )); //数组变量 $this->display('index.html');
在themes/mall/default/index.html中显示变量
模板代码:
Hello,{$name},your age are {$user.age}!
在模板中赋值变量:
assign标签
例在themes/mall/default/index.html中赋值变量
模板代码:
{assign var="name" value="Tom"} Hello,{$firstname}!
3.模板上使用语言项
说明:为了满足多语言需求,ECMall采用了语言包机制,除挂件外,在模板、js文件中均使用语言项代替直接显示语言文字。
语言文件:语言文件位于商城根目录下的languages目录下,为当前语言建了一个目录,如果您用的是sc-gbk版本,则会有sc-gbk目录,进去之后就能看到属于前台控制器的全部语言文件了。除common.lang.php属于所有app外,每一个语言文件都只属于一个app(ECMall中称为控制器)。
引用:
语言文件属于某个控制器而不属于某个模板,同一个模板如果被不同控制器调用将使用不同语言文件进行语言解析
实例1:
在默认控制器对应的语言文件default.lang.php添加语言项”test”
复制内容到剪贴板
代码:
<?php return array( 'hot_search' => '热门搜索', ... ... 'best_recommended' => '精品推荐', 'test' => '测试语言项' ); ?>
在index.html模板中显示语言项”test”
模板代码:
{$lang.test}
输出结果为:
测试语言项
实例2:
模板中还支持数组形式语言项:
在默认控制器对应的语言文件default.lang.php添加语言项”test_array”
复制内容到剪贴板
代码:
<?php return array( 'hot_search' => '热门搜索', ... ... 'best_recommended' => '精品推荐', 'test_array' => array( 'key1' => '测试数组语言项', 'key2' => '太好了' ), ); ?>
在index.html模板中显示语言项”test”
模板代码:
{$lang.test_array.key1}
输出结果为:
测试数组语言项
4.变量调节器
escape
功能:提供各种编码功能
参数:可选参数html、url、quotes、input、editor,缺省为html
html:分别替换变量中的如下字符& < > ”为其html实体代码,用于按原样输出html源代码
url:如果该变量用于储存url地址,需要进行url编码
quotes:在单双引号字符前添加反斜杠
input:给输入框赋值时使用
editor:当显示通过文本编辑器录入的内容,需要用此参数
实例
php赋值
复制内容到剪贴板
代码:
$this->assign('goods_name', "L'oreal/欧莱雅" . '"' . "清润全日保湿乳霜" . '"' . "50ml<br /><script>"); $this->display('index.tpl');
模板
模板代码:
{$goods_name} {$goods_name|escape} {$goods_name|escape:"html"} {$goods_name|escape:"url"} {$goods_name|escape:"quotes"} {$goods_name|escape:"input"} {$goods_name|escape:"editor"}
输出结果为
L’oreal/欧莱雅”清润全日保湿乳霜”50ml<br
/><script>
L’oreal/欧莱雅”清润全日保湿乳霜”50ml<br
/><script>
L’oreal/欧莱雅”清润全日保湿乳霜”50ml<br
/><script>
L'oreal/欧莱雅"清润全日保湿乳霜"50ml
相关文章推荐
- ECMall2.x模板制作入门系列之2(模板标签/语法)
- ECMall2.x模板制作入门系列之A
- ECMall2.x模板制作入门系列之(模板标签/语法)
- ECMall2.x模板制作系列之(模板标签/语法)
- 企业级Hadoop 2.x入门系列之三将Hadoop 2.x源码导入Eclipse中
- ECshop新手入门模板制作教程[转载]
- Angular系列---- AngularJS入门教程03:AngularJS 模板(转载)
- VS2010与.NET4.0 系列 2. 项目入门模板
- 企业级Hadoop 2.x入门系列之四HDFS文件系统和YARN资源管理框架简介
- 【 D3.js 入门系列 --- 9.4 】 集群图的制作
- 【 D3.js 入门系列 --- 9.5 】 树状图的制作
- WPF快速入门系列(7)——深入解析WPF模板
- Hadoop 2.X 从入门到精通系列视频课程套餐
- C++编程入门系列之十(重载函数与函数模板)
- 企业级Hadoop 2.x入门系列之一Apache Hadoop 2.x简介与版本_云帆大数据学院
- ECshop新手入门模板制作教程[转载]
- Part 3:视图和模板--Django从入门到精通系列教程
- PHPLIB Template入门系列 - 4 模板嵌套-
- 企业级Hadoop 2.x入门系列之五Hadoop2.2 伪分布式安装
- 《大大李带你玩转XenServer 7 系列》 四、创建虚拟机(VM)及制作虚拟机模板