Smarty:block函数

2018-10-14 11:15 更新

{block}

{block}可在模板上定义一块区域,以进行模板继承。详细参见模板继承.

子模板中的{block}区域代码,将会替换父模板对应的区域代码。

另外,{block}可以设置成合并父子模板的相应区域。在子模板的{block}中定义 append 或prepend,可以使子模板附加在父模板 {block}区域的后面或前面。 在{block}内容中使用{$smarty.block.parent},可以让父模板的区域代码放到 子模板{block}内的任何位置。

{blocks}可以嵌套使用。

属性:

参数名称类型必选参数默认值说明
namestringYesn/a模板区域的名称

可选属性 (仅在子模板中使用):

名称说明
append{block}区域代码将附加到父模板的{block}内容之后
prepend{block}区域代码将附加到父模板的{block}内容之前
hide在没有该名称区域的时候,忽略区域内容。
nocache关闭{block} 缓存

Example 7.15. 简单的 {block} 例子

parent.tpl

<html>
  <head>
    <title>{block name="title"}Default Title{/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}

结果输出:

<html>
  <head>
    <title>Page Title</title>
  </head>
</html>

Example 7.16. 前面附加 {block} 例子

parent.tpl

<html>
  <head>
    <title>{block name="title"}Title - {/block}</title>
  </head>
</html>

child.tpl

{extends file="parent.tpl"} 
{block name="title" prepend}
Page Title
{/block}

结果输出

<html>
  <head>
    <title>Title - Page Title</title>
  </head>
</html>

Example 7.17. 后面附加 {block} 例子

parent.tpl

<html>
  <head>
    <title>{block name="title"} is my title{/block}</title>
  </head>
</html>

child.tpl

{extends file="parent.tpl"} 
{block name="title" append}
Page Title
{/block}

结果输出:

<html>
  <head>
    <title>Page title is my titel</title>
  </head>
</html>

Example 7.18. {$smarty.block.child} 例子

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}

结果输出:

<html>
  <head>
    <title>The Child Title was inserted here</title>
  </head>
</html>

Example 7.19. {$smarty.block.parent} 例子

parent.tpl

<html>
  <head>
    <title>{block name="title"}Parent Title{/block}</title>
  </head>
</html>

child.tpl

{extends file="parent.tpl"} 
{block name="title"}
You will see now - {$smarty.block.parent} - here
{/block}

结果输出:

<html>
  <head>
    <title>You will see now - Parent Title - here</title>
  </head>
</html>
以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号