Smarty 模板布局继承

Smarty 模板继承

在覆盖父模板的{block}块之外的地方, 子模板不能定义任何内容。任何在{block}之外的 内容都会被自动忽略。

在子模板和父模板中的{block}内容,能够经过 append 和 prepend来进行合并。 {block}的选项,和 {$smarty.block.parent} 或 {$smarty.block.child}会持有这些内容。css

 

布局继承使用特色html

1.布局页面能够有许多{block},子级页面也能够有许多block,他们经过name属性进行关联app

2子级页面除了{extend} 和{block}其它内容不给显示,布局

3布局页面的{block}能够有默认内容,子级页面不实现就直接显示,实现覆盖spa

4布局的{block}能够彼此嵌套,子级实现能够有针对性实现code

5{$smarty.block.child}布局能够调用子级内容htm

  {$smarty.block.child}子级页面能够调用父级页面内容blog

父模板继承

<html>
<head>
  <title>{block name=title}默认页面标题{/block}</title>
  {block name=head}{/block}
</head>
<body>
{block name=body}{/block}
</body>
</html>

子模板ip

{extends file='layout.tpl'}
{block name=head}
  <link href="/css/mypage.css" rel="stylesheet" type="text/css"/>
  <script src="/js/mypage.js"></script>
{/block}

孙模板

{extends file='myproject.tpl'} 
{block name=title}个人页面标题{/block} 
{block name=head} <link href="/css/mypage.css" rel="stylesheet" type="text/css"/> <script src="/js/mypage.js"></script> {/block} 
{block name=body}个人HTML页面内容在这里{/block}

显示上面的模板

$smarty->display('mypage.tpl');

页面将输出

<html> <head> 
<title>个人页面标题</title> 
<link href="/css/mypage.css" rel="stylesheet" type="text/css"/> 
<script src="/js/mypage.js"></script> 
</head>
 <body>
个人HTML页面内容在这里 
</body> 
</html>
相关文章
相关标签/搜索