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>
相關文章
相關標籤/搜索