php模板机制,ECMall模板解析语法与机制

php模板机制,ECMall模板解析语法与机制马上注册 学习更多技术 享用更多经验 获取更多辅助工具 您需要登录才可以下载或查看 没有帐号 立即注册 x 在 ECMall 模板中 用 开头 以 结尾就构成一个标签单元 紧接着的单词就是标签名 在标签单元中单词前含 美元符 的为变量名 资源引用 res 标签功能 返回当前模板当前风格目录的 url 路径实例 resfile css ecmall css 这个标签在模板编译后将变成 ht

马上注册,学习更多技术,享用更多经验,获取更多辅助工具。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

在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    {includefile=”header.html”}

2    {* body of template goes here *}

3    {includefile=”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相关手册了解。

SMARTY模板中如何使用get,post,request,cookies,session,server变量

2011-07-27 14:22:35|  分类: ecshop  |字号大中小 订阅

{$smarty}保留变量不需要从PHP脚本中分配,是可以在模板中直接访问的数组类型变量,通常被用于访问一些特殊的模板变量。例如,直接在模板中访问页面请求变量、获取访问模板时的时间戳、直接访问PHP中的常量、从配置文件中读取变量等。

1.在模板中访问页面请求变量

我 们可以在PHP脚本中,通过超级全局数组$_GET、$_POST、$_REQUEST获取在客户端以不同方法提交给服务器的数据,也可以通 过$_COOKIE或$_SESSION在多个脚本之间跟踪变量,或是通过$_ENV和$_SERVER获取系统环境变量。如果在模板中需要这些数组,可 以调用Smarty对象中的assign()方法分配给模板。但在Smarty模板中,直接就可以通过{$smarty}保留变量访问这些页面请求变量。

在模板中使用的示例如下所示:

1

21. {$smarty.get.page} {* PHP方式:$_GET[“page”] *}

32. {$smarty.post.page} {* PHP方式:$_POST[“page”] *}

43. {$smarty.cookies.username} {* PHP方式:$_COOKIE[“username”] *}

54. {$smarty.session.id} {* PHP方式:$_SESSION[“id”] *}

65. {$smarty.server.SERVER_NAME} {* PHP方式:$_SERVER[“SERVER_NAME”] *}

76. {$smarty.env.PATH} {* PHP方式:$_ENV[“PATH”]*}

87. {$smarty.request.username} {* PHP方式:$_REQUEST[“username”] *}

2.在模板中访问PHP中的变量

在PHP脚本中有系统常量和自定义常量两种,同样这两种常量在Smarty模板中也可以被访问,而且不需要从PHP中分配,

只要通过{$smarty}保留变量就可以直接输出常量的值。在模板中输出常量的示例如下所示:

101. {$smarty.const._MY_CONST_VAL} {* 输出PHP脚本中自定义的常量 *}

112. {$smarty.const.__FILE__} {* 通过保留变量数组直接输出系统常量 *}

3.其它

13 1.{$smarty.now}变量用于访问当前时间戳.

14 可以用 date_format调节器格式化输出. 例如{$smarty.now|date_format:”%Y-%m-%d %H:%M:%S”}

15 2.{$smarty.const}

16 你可以直接访问PHP常量. 例如{$smarty.const._MY_CONST_VAL}

17 3.{$smarty.capture}

18 可以通过 {capture}..{/capture}结构 截取的输出可以使用{$smarty} 变量访问.

19 4.{$smarty.config}

20 {$smarty}变量 可以访问已经加载的config变量.

21 例如 {$smarty.config.foo}就可以表示 {#foo#}.

22 5.{$smarty.section}, {$smarty.foreach}

23 {$smarty} 变量可以访问’section’和’foreach’循环的属性.

24 6.{$smarty.template} 显示当前被处理的模板的名字.

25 7.{$smarty.version}

26 显示smarty模板的版本

27 8.{$smarty.ldelim} 显示左分隔符

28 9.{$smarty.rdelim} 显示右分隔符

2. 自定义变量

从php赋值变量。例如在调用该模板的app程序文件中进行赋值

1    //在app/default.app.php文件的index方法中$this->display前添加赋值语句

2    $this->assign(‘name’,’Tom’);//普通变量

3    $this->assign(‘user’,array(

4        ‘name’=>’Tom’,

5        ‘age’    =>’28’

6    ));//数组变量

7    $this->display(‘index.html’);

在themes/mall/default/index.html中显示变量

1    Hello,{$name},your age are {$user.age}!

在模板中赋值变量。assign标签,例在themes/mall/default/index.html中赋值变量

1    {assignvar=”name”value=”Tom”}

2    Hello,{$firstname}!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/200216.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月20日 上午11:18
下一篇 2026年3月20日 上午11:18


相关推荐

  • Linux FTP使用命令

    Linux FTP使用命令文章目录 1 安装 ftp 客户端 2 ftp 的用户 3 登录服务器 4 切换工作目录 5 查看服务器上的目录和文件 6 下载 上传文件 6 1 文件传输的模式 6 2 下载文件 6 3 上传文件 7 其他 ftp 命令 1 安装 ftp 客户端 yum yinstallftp2 ftp 的用户缺省情况下 ftp 服务器和操作系统用户名 密码一样 root 用户的权限过大 不允许登录 ftp 服务器 3 登录服务器方法一 输入 ftp 服务器 ip 地址 回车后根据提示输入用户名和密码方法二 输入 ftp 用 open 服务器 ip 地址

    2026年3月19日
    3
  • java数组降序排列_java数组排序sort升序,java数组排序sort降序

    java数组降序排列_java数组排序sort升序,java数组排序sort降序importjava lang importjava util publicclassM publicstatic Stringargs inta newint 1 4 612 333 8 2 12 4534 0 for inti 0 i

    2026年3月18日
    1
  • 在线部署kubeedge 1.6详细教程(Ubuntu)

    在线部署kubeedge 1.6详细教程(Ubuntu)在线部署kubeedge1.6详细教程(Ubuntu与树莓派)基本环境:操作系统:centos7;Ubuntu;docker:20.10.7角色系统IPmastercentos7(amd64)172.16.0.114edgeubuntu(arm64)172.16.0.113kubeedge部署须知master以成功部署kubernetes,并且master结点处于ready状态.edge未执行kubeadmjoin命令kubeedge部署配置

    2022年7月21日
    27
  • 【编解码】从零开始写H264解码器(1) 总纲

    【编解码】从零开始写H264解码器(1) 总纲关于编解码的原理的书和文章自己一直在看,从入门到略懂,但是感觉有些零零碎碎,或不完整,似乎串不成体系。有些小功能,知道是知道,并不知道它的意义和作用,时间一长也会慢慢忘记。反思了一下,或许很多东西,还是需要自己动手做一遍,会理解的更深更透彻一些,就像费曼学习法,你能讲出来,才说明懂了,这个也一样,你能把功能实现出来,才说明你真的明白了里面的流程和逻辑。

    2022年6月22日
    63
  • java基础总结(七十)–Java8中的parallelStream的坑

    java基础总结(七十)–Java8中的parallelStream的坑aboutStream 什么是流 Stream 是 java8 中新增加的一个特性 被 java 猿统称为流 Stream 不是集合元素 它不是数据结构并不保存数据 它是有关算法和计算的 它更像一个高级版本的 Iterator 原始版本的 Iterator 用户只能显式地一个一个遍历元素并对其执行某些操作 高级版本的 Stream 用户只要给出需要对其包含的元素执行什么操作 比如 过滤掉长度大

    2026年3月17日
    2
  • 证明:SST=SSE+SSR

    证明:SST=SSE+SSR简介在线性回归计算 LinearRegres 中 有三个非常重要的概念 SST i 1n yi y 2SST sum i 1 n y i bary 2SST i 1n yi y 2 总离差平方和 SumofSquares SSE i 1n yi y i 2SSE sum i 1 n y i haty i 2SSE i

    2026年3月18日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号