Get Smarty

Donate

Donate Bitcoin Bitcoin
Paypal

Smarty Icon

You may use the Smarty logo according to the trademark notice.

Smarty Template Engine Smarty Template Engine

For sponsorship, advertising, news or other inquiries, contact us at:

Sites Using Smarty

Buy cheap eyeglasses from Cheapglasses123.com and save up to 80%.

Buy prescription glasses from www.australiaglasses.com and save.

Cheap Glasses Now On Sale at GlassesPeople.com. Starts At $7.95.

Where to buy discount wedding dresses and cheap smart dresses free shipping - Weddingdresstrend.com

Brautkleider auf Topwedding.de

Find free files to download on allwhatyouwant.net

Looking For Affordable Wedding Dresses 2015 at Best Prices On TDBridal.com

Shop high quality cheap prom dresses on Dresswe.co.uk

Buy New Arrival Cheap Prom Dresses 2015 at JDBRIDAL Prom Dress Store

Advertisement

模�继承

继承是从��对象编程而�的概念,模�继承�以让你定义一个或多个父模�,�供给�模��进行扩展。 扩展继承�味��模��以覆盖部分或全部父模�的�区域。

  • 继承结构å�¯ä»¥æ˜¯å¤šå±‚次的,所以你å�¯ä»¥ç»§æ‰¿äºŽä¸€ä¸ªæ–‡ä»¶ï¼Œè€Œè¿™ä¸ªæ–‡ä»¶å�ˆæ˜¯ç»§æ‰¿äºŽå…¶ä»–文件,等等。

  • 在覆盖父模æ�¿çš„{block}å�—以外的地方, å­�模æ�¿ä¸�能定义任何内容。任何在{block}以外的 内容都会被自动忽略。

  • 在å­�模æ�¿å’Œçˆ¶æ¨¡æ�¿ä¸­çš„{block}内容,å�¯ä»¥é€šè¿‡ append å’Œ prependæ�¥è¿›è¡Œå�ˆå¹¶ã€‚ {block}的选项,和 {$smarty.block.parent} 或 {$smarty.block.child}会æŒ�有这些内容。

  • 模æ�¿ç»§æ‰¿åœ¨ç¼–译时将编译æˆ�å�•独的一个编译文件。对比效果相似的{include}包å�«æ¨¡æ�¿åŠŸèƒ½ï¼Œæ¨¡æ�¿ç»§æ‰¿çš„æ€§èƒ½æ›´é«˜ã€‚

  • å­�模æ�¿ç»§æ‰¿ä½¿ç”¨{extends}标签, 该标签一定放è¦�在å­�模æ�¿çš„第一行。 å�¦ä¸€ç§�å�šæ³•æ˜¯å°†æ•´ä¸ªæ¨¡æ�¿ç»§æ‰¿æ ‘,在PHP程åº�调用fetch() 或 display()的时候, 用extends:的模æ�¿èµ„æº�类型,该å�šæ³•æœ‰æ›´å¤§çš„ç�µæ´»æ€§ã€‚

Note

当开�了$compile_check,继承树里�的全部文件都会在�次调用的时候检查是�有修改。 因此,在生产环境中你最好关闭$compile_check。

Note

如果你的�模�里�有用到{include} �包�模�,而被包�的模�里�存在供{include}模� 调用的{block}区域, 那么在最顶层的父模�里�,你需�放置一个空的 {block} �作为继承。

Example 17.6. 模�继承例�

layout.tpl (父模�)


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

  

myproject.tpl (�模�)


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


  

mypage.tpl (孙�模�)


{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>

Example 17.7. 用extends:�进行模�继承

代替模�内使用{extends}的继承方�, 你�以通过在PHP内定义继承树�进行继承,使用 extends:的资�类型。

下�的代�将返回和上�例�一样的结果:


<?php
$smarty->display('extends:layout.tpl|myproject.tpl|mypage.tpl'); 
?>

   

�� {block}, {extends} 和 extends: 资�

Comments
No comments for this page.
Post a Comment
All comments are moderated. Support questions are ignored, use the forums instead.
Author:
Email: (not shown)
What is 20 plus 6? (Are you human?)

Advertisement