1、在模板中访问页面请求变量
我们可以在PHP脚本中,通过超级全局数组$_GET、$_POST、$_REQUEST获取在客户端以不同方法提交给服务器的数据,也可以通 过$_COOKIE或$_SESSION在多个脚本之间跟踪变量。如果在模板中需要这些变量,需要调用assign()方法。
- {$smarty.get.page} {* PHP方式:$_GET["page"] *}
- {$smarty.post.page} {* PHP方式:$_POST["page"] *}
- $smarty.cookies.username} {* PHP方式:$_COOKIE["username"] *}
- $smarty.session.id} {* PHP方式:$_SESSION["id"] *}
- $smarty.request.username} {* PHP方式:$_REQUEST["username"] *}
2、smarty模板中的内建函数 - capture 捕获模板输出的数据并将其存储到一个变量
- config_load 用于从配置文件中加载变量
- foreach,foreachelse 循环(相当于PHP中的foreach),foreach 和 /foreach 成对使用,须指定from 和 item 属性
- include 用于在当前模板中包含其它模板. 当前模板中的变量在被包含的模板中可用. 必须指定 file 属性
- insert 同include 函数,不同的是insert包含内容不会被缓存,每次调用都会重新执行
- if,elseif,else (相当于PHP中的 if 语句),if 与 /if 成对出现
- section,sectionelse 遍历数组中的数据,section 标签必须成对出现 ({section}......{/section}),必须设置name 和 loop属性
- assign 用于在执行时为模板变量赋值(重要)
- counter 输出一个记数过程,counter 保存了每次记数(相当于个计数器)
- debug 显示调试信息
- eval 按处理模板的方式计算取得变量的值. 该特性可用于在配置文件中的标签/变量中嵌入其它模板标签/变量(不是很明白)
- html_checkboxes (相当于html中的复选框),必须指定values 和 ouput 属性,兼容XHTML
- html_image 相当于html中的image
- html_options 同html 中的option
- html_radios 单选框
- html_select_date 相当于select,不过是用于显示日期菜单,显示任意年月日
- html_select_time 显示任意时分秒
- html_table html中的table