找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1652|回复: 0

[教程] PHP开发必备PHP模版引擎Dwoo深入学习

[复制链接]
发表于 2013-4-12 09:29:51 | 显示全部楼层 |阅读模式 来自 中国–广东–湛江
一、Dwoo中模版的继承
  Dwoo的其中一个强大功能是它可以支持模版的继承。这实现起来是十分简单的,只需要定义好一个父模版,然后子模版则可以继承父模版了,并且可以在子模版中定义多种新的特性。聪明的开发者会善于利用这个特性,去减少重复的劳动。
  Dwoo中继承模版的关键在于"扩展"的插件机制,它允许模版去继承另外一个模版。为了更好地理解这一特性,我们举个例子说明如下。假设目前你已经有一个基类的模版,名字叫base.tpl,其中包含了两个区域,一个是导航区,一个是内容区,如下:
  1. <html>
  2.               <head></head>
  3.               <body>   
  4.                 {block 'nav'}
  5.                 {/block}
  6.                 {block 'content'}
  7.                 <div id='content'>
  8.                 This is content for the main page.
  9.                 </div>      
  10.                 {/block}
  11.               </body>
  12.             </html>
复制代码
现在,假设你的一些页面需要使用水平导航条,你只需要继承基类模版页即可,并且可以重新定义导航条的样式,如下代码,我们把这个代码定义为child.tpl:
  1. {extends 'base.tpl'}
  2.               {block 'nav'}
  3.                 <div id='nav'>
  4.                   <a href='#'>Home</a> |
  5.                   <a href='#'>News</a> |
  6.                   <a href='#'>Weather</a> |
  7.                   <a href='#'>Hotels</a> |
  8.                   <a href='#'>Dining</a>
  9.                   </tr>
  10.                   </table>
  11.                 </div>
  12.               {/block}
复制代码
这里使用了{extends "base.tpl"}指出是继承了父类的模版,并且在这里的{block  "nav"}区域中,重写了导航条的内容,最后输出为如下图:
  
  
现在我们考察另外一种情况,假设一些页面中需要额外的子导航菜单,比如需要以垂直形式显示导航条,这时,我们可以采用如下代码:
  1. extends 'child.tpl'}
  2.             
  3.               {block 'nav'}
  4.                 {$dwoo.parent}
  5.                
  6.                 <div id='sub-nav'>
  7.                   <h2>{$subtitle}</h2>
  8.                   <ul>
  9.                   {loop $items}
  10.                       <li><a href='#'>{$item}</a></li>      
  11.                   {/loop}
  12.                   </ul>
  13.                 </div>   
  14.               {/block}
  15.               
  16.               {block 'content'}
  17.                 <div id='content'>
  18.                 This is content for the Dining page.
  19.                 </div>
  20.               {/block}
复制代码
在这里,使用了{$dwoo.parent}去调用了父类模版,注意这里是继承了child.tpl这个模版,也就是说,调用了父类模版中的导航条中的内容,并且这里又重新定义了一个垂直的导航条,注意这里还重写了content区域的内容,覆盖了父模版中对应的content区域的内容了,结果如下图:
  
  
可以看到,只要适当使用模版继承,则可以大大方便开发。

评分

参与人数 1金币 +1 收起 理由
猫性男孩 + 1 描述详细,值得鼓励

查看全部评分

发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;

如何回报帮助你解决问题的坛友,好办法就是点击帖子下方的评分按钮给对方加【金币】不会扣除自己的积分,做一个热心并受欢迎的人!

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则 需要先绑定手机号

关闭

站长推荐上一条 /1 下一条

QQ|侵权投诉|广告报价|手机版|小黑屋|西部数码代理|飘仙建站论坛 ( 豫ICP备2022021143号-1 )

GMT+8, 2024-11-22 10:07 , Processed in 0.047080 second(s), 13 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表