smarty中常用方法实例总结

5年以前  |  阅读数:480 次  |  编程语言:PHP 

本文实例总结了smarty中常用方法。分享给大家供大家参考。具体如下:

1. Smarty中foreach的index、iteration的使用

.index包含当前数组索引,从零开始。

index示例


    {* The header block is output every five rows *}
    {* 每五行输出一次头部区块 *}
    <table>
    {foreach from=$items key=myId item=i name=foo}
      {if $smarty.foreach.foo.index % 5 == 0}
       <tr><th>Title</th></tr>
      {/if}
      <tr><td>{$i.label}</td></tr>
    {/foreach}
    </table>

.iteration包含当前循环次数,与index不同,从1开始,每次循环增长1。

iteration和index示例


    {* this will output 0|1, 1|2, 2|3, ... etc *}
    {* 该例将输出0|1, 1|2, 2|3, ... 等等 *}
    {foreach from=$myArray item=i name=foo}
    {$smarty.foreach.foo.index}|{$smarty.foreach.foo.iteration},
    {/foreach}

2. smarty中section的嵌套使用

示例1:


    $bookmarks = array('0' => array('name'=> 'n1', 'url'=>'url2'), '1' => array('name'=> 'n21', 'url'=>'url22'));
    $categories= array('0' => array('cate_id'=> 'n1', 'cate_name'=>'url2'), '1' => array('cate_id'=> 'n21', 'cate_name'=>'url22'));
    {section name='bm' loop=$bookmarks}
     Name:$bookmarks[bm].name
     URL:$bookmarks[bm].url
      {section name='cate' loop=$categories[bm]}
         $categories[bm][cate].cate_id
         $categories[bm][cate].cate_name
      {/section}
    {/section}
    ::::

示例2:


    $lists = array();
    for(...){
      $oneList['dateTime'] = date("Y-m-d");
      $oneList['detailList'] = array();
      for(....){
        $oneList['detailList'][$j]['count'] = $onecout;
        $oneList['detailList'][$j]['title'] = $onetitle;
      }
      $lists[] = $oneList;
    }
    :::::
    {section name=loop loop=$lists}
      {$lists[loop].dateTime}
      {section name=loop2 loop=$lists[loop]["detailList"]}
        {$lists[loop]['detailList'][loop2].title}
        {$lists[loop]["detailList"][loop2].count}
      {/section}
    {/section}

3. 其他常用关键字

<{section loop= $varName[,start=$start,step=$setp,max=$max,$show=true]}>

name: section的名称,不用加$;  
$loop: 要循环的变量,程度中要使用assign对这个变量进行操作。  
$start: 开始循环的下标。默认为0;  
$step: 每次循环下标的增数;  
$show : boolean型。决定是否对于这块进行显示。默认为true;

<{section}>的属性;

index:循环下标。默认为0;  
index_prev:当前下标的上一个值,默认为-1;  
index_next:当前下标的下一个值,默认为1;  
first:是否为第一下循环;  
last:是否为最后一个循环;  
iteration:循环个数;  
rownum:当前行号,iteration的别名;  
loop:最后一个循环号。Section的循环次数;  
show:是否显示;

    <{section loop=$News}>
       新闻编号:<{$News[loop].newID}><br>
       新闻内容:<{$News[loop].newTitle}><br>
    <{sectionelse}>
       I am sorry
    <{/section}>

if用法:


    {if $list[row].name eq "1"}
      星期1
    {elseif $list[row].name=="2"}
      星期2
    {else}
      默认
    {/if}

4. smarty 系统变量

{ 显示URL中的page值($_GET)http://www.example.com/index.php?page=foo }
{$smarty.get.page}
{ 显示来自一个表单的"page"变量($_POST['page'])}
{$smarty.post.page}
{ 显示COOKIE变量"username"的值($_COOKIE['username'])}
{$smarty.cookies.username}
{ 显示服务器变量"SERVER_NAME"($_SERVER['SERVER_NAME'])}
{$smarty.server.SERVER_NAME}
{$smarty.server.PHP_SELF}
{$smarty.server.SCRIPT_NAME}
{ 显示系统环境变量"PATH" }
{$smarty.env.PATH}
{ 显示PHP会话变量"id"($_SESSION['id'])}
{$smarty.session.id}
{ 显示变量"username",不论来自get/post/cookies/server/env }
{$smarty.request.username}
$smarty}保留变量可以被用于访问一些特殊的模板变量,以下是全部页面请求变量。

以下是访问页面请求变量诸如get,post,cookies,server,enviroment和session变量的例子. 例如{$smarty.server.SERVER_NAME}取得服务器变量,{$smarty.env.PATH}取得系统环境变量path,{$smarty.request.username}取得get/post/cookies/server/env的复合变量。

{$smarty.now}变量用于访问当前时间戳.
可以用 date_format调节器格式化输出. 例如{$smarty.now|date_format:"%Y-%m-%d %H:%M:%S"}

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

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

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

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

{$smarty.section}, {$smarty.foreach}
{$smarty} 变量可以访问'section'和'foreach'循环的属性.
{$smarty.template}
显示当前被处理的模板的名字.
{$smarty.version}
显示smarty模板的版本
{$smarty.ldelim}
显示左分隔符
{$smarty.rdelim}

显示右分隔符$smarty}保留变量可以被用于访问一些特殊的模板变量,以下是全部页面请求变量。

以下是访问页面请求变量诸如get,post,cookies,server,enviroment和session变量的例子. 例如{$smarty.server.SERVER_NAME}取得服务器变量,{$smarty.env.PATH}取得系统环境变量path,{$smarty.request.username}取得get/post/cookies/server/env的复合变量。

{$smarty.now}变量用于访问当前时间戳.
可以用 date_format调节器格式化输出. 例如{$smarty.now|date_format:"%Y-%m-%d %H:%M:%S"}
{$smarty.const}

你可以直接访问PHP常量. 例如{$smarty.const._MY_CONST_VAL}
{$smarty.capture}
可以通过{capture}..{/capture}结构 截取的输出可以使用{$smarty} 变量访问.
{$smarty.config}
{$smarty}变量 可以访问已经加载的config变量.
例如 {$smarty.config.foo}就可以表示 {#foo#}.
{$smarty.section}, {$smarty.foreach}
{$smarty} 变量可以访问'section'和'foreach'循环的属性.
{$smarty.template}
显示当前被处理的模板的名字.
{$smarty.version}
显示smarty模板的版本
{$smarty.ldelim}
显示左分隔符
{$smarty.rdelim}
显示右分隔符

希望本文所述对大家基于smarty模板的php程序设计有所帮助。

 相关文章:
PHP分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
获取IMEI
贪吃蛇
文件下载
双位运算符
发送邮件
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
提取后缀名
年的日历图
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例