smarty 常用使用方法总结

    技术2022-05-20  40

    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的嵌套使用

    eg1:

    $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}

    ::::

    eg2:

    $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}   显示右分隔符

    最新回复(0)