zoukankan      html  css  js  c++  java
  • Smarty3——内置函数

    Table of Content

    {$var}

    {$append}

    {assign}

    {block}

    {call}

    {config_load}

    {debug}

    {extends}

    {for}

    {foreach},{foreachelse}

    {function}

    {if} {elseif} {else}

    {include}

    {include php}

    {insert}

    {ldelim} {rdelim}

    {literal}

    {nocache}

    {php}

    {section} {sectionelse}

    {setfilter}

    {strip}

    {while}

    Smarty自带了一些内置函数,这些函数是模板引擎的组成,会被编译到PHP代码中,以提高性能。在Smarty模板引擎可以进行简单的复制操作,只是复制而不进行输出。

    {$var='Smary repeat'}
    {*附加到数组中*}
    {$num_count[]="add a element to array"}
    {*对数组复制*}
    {$num_count[0]='this is element is changed'}
    {*在包含的模板进行变量复制,其包含的模板内也也可看到*}
    {include file='var_config.tpl'}
    image

    {block}

    {block}是在模板上定义一块区域,以进行模板继承,子模板中{block}区块代码建辉替换父模板中对应的代码区块

    模板继承在编译时将编译成单独的一个编译文件。对比效果相似的{include}包含模板功能,模板继承的性能更高。

    在子父模板{block}中的内容可以通过 {$smarty.block.parent} 或 {$smarty.block.child} 进行合并

    parent.tpl:
    <html>
    <head>
        <title>{block name="title"}this id parent template and  set titel messages{/block}</title>
        <title>{block "title"}Default Title{/block}</title>  {* short-hand  *}
    </head>
    </html>
    
    child.tpl:
    {*继承父模板*}
    {extends file="parent.tpl"}
    {block name="title"}
        Page Title
    {/block}

    image

    //让子模板内容添加在父模板 前
    child.tpl
    {*继承父模板*}
    {extends file="parent.tpl"}
    {block name="title" prepend}
       child Page Title
    {/block}
    
    
    //让子模板内容添加在父模板 后
    {block name="title" append}
        this is add after parent template
    {/block}

    image

    //在父模块中引入子模块
    parent.tpl:
    <html>
    <head>
        <title>{block name="title"}The {$smarty.block.child} was inserted here{/block}</title>
    </head>
    </html>
    
    child.tpl:
    {extends file="parent.tpl"}
    {block name="title"}
        Child Title
    {/block}
    //在子模块中引入父模块用
     {$smarty.block.parent}

    {extend}

    继承父模板,在继承时必须放在第一行。

    如果想要扩展父模板时只能,通过{block}来扩展,任何其他的模板内容扩展将被忽略

    {include}

    用于载入其他模板到当前模板,包含模板可用的变量,在当前模板也可以用。

    当文件不在 $template_dir 目录下时,就可以使用{include}进行包含

    可以向包含模板传递变量,只复值不输出({assgin})

    可设置缓存时间(cache_lifetime)

    可以设置编译得ID(compile_id)

    可设置缓存的ID(cache_id)

    links.tpl
    <div id="box">
    <h3>{$title}{/h3>
    <ul>
    {foreach from=$links item=l}
    .. do stuff  ...
    </foreach}
    </ul>
    </div>
    
    index.php
    {include 'links.tpl' title='Newest links' links=$link_array}
    {* body of template goes here *}
    {include 'footer.tpl' foo='bar'}
  • 相关阅读:
    Android相关sdk使用
    Uniscribe文字自动换行
    Chrome RenderText分析(2)
    c++智能指针
    codepage IMLangCodePages
    GUI 快捷键的实现思路
    买车险
    九年---祝爱永存!
    算法
    Windows内核安全与驱动开发
  • 原文地址:https://www.cnblogs.com/webph/p/6522004.html
Copyright © 2011-2022 走看看