当前位置:  编程技术>php

解密ThinkPHP3.1.2版本之模板继承

    来源: 互联网  发布时间:2014-08-26

    本文导语:  模板继承是ThinkPHP3.1.2版本添加的一项更加灵活的模板布局方式,模板继承不同于模板布局,甚至来说,应该在模板布局的上层。模板继承其实并不难理解,就好比类的继承一样,模板也可以定义一个基础模板(或者是布局),...

模板继承是ThinkPHP3.1.2版本添加的一项更加灵活的模板布局方式,模板继承不同于模板布局,甚至来说,应该在模板布局的上层。模板继承其实并不难理解,就好比类的继承一样,模板也可以定义一个基础模板(或者是布局),并且其中定义相关的区块(block),然后继承(extend)该基础模板的子模板中就可以对基础模板中定义的区块进行重载。

因此,模板继承的优势其实是设计基础模板中的区块(block)和子模板中替换这些区块。
每个区块由标签组成,并且不支持block标签的嵌套。
下面就是基础模板中的一个典型的区块设计(用于设计网站标题):

网站标题

block标签必须指定name属性来标识当前区块的名称,这个标识在当前模板中应该是唯一的,block标签中可以包含任何模板内容,包括其他标签和变量,例如:

{$web_title}

你甚至还可以在区块中加载外部文件:



一个模板中可以定义任意多个名称标识不重复的区块,例如下面定义了一个base.html基础模板:


 
 
 标题
 
 
 菜单
 左边分栏
 主内容
 右边分栏
 底部
 
 

然后我们在子模板(其实是当前操作的入口模板)中使用继承:


 {$title}
 
 首页
 资讯
 论坛
 
 
 
 
 {$vo.title}
{$vo.content}

最新资讯:

 
 {$new.title}
@ThinkPHP2012 版权所有

可以看到,子模板中使用了extend标签定义需要继承的模板,extend标签的用法和include标签一样,你也可以加载其他模板:



或者使用绝对文件路径加载



在当前子模板中,只能定义区块而不能定义其他的模板内容,否则将会直接忽略,并且只能定义基础模板中已经定义的区块。
例如,如果采用下面的定义:

{$title}
 首页
 资讯
 论坛

导航部分将是无效的,不会显示在模板中。

在子模板中,可以对基础模板中的区块进行重载定义,如果没有重新定义的话,则表示沿用基础模板中的区块定义,如果定义了一个空的区块,则表示删除基础模板中的该区块内容。
上面的例子,我们就把left区块的内容删除了,其他的区块都进行了重载。
子模板中的区块定义顺序是随意的,模板继承的用法关键在于基础模板如何布局和设计规划了,如果结合原来的布局功能,则会更加灵活。


    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • C#/.NET字符串加密和解密实现(AES和RSA代码举例)
  • 高手帮一下,Server用java DES加密,Client用c DES解密,c如何解密,能否给出程序!
  • 神盾加密解密教程(三)PHP 神盾解密工具
  • 请问各位谁知道JBuilder7的注册解密方法,我没有序列号,也没有解密文件
  • 请问谁对用blowfish来做JAVA的加密解密比较熟悉,请帮忙写个文本的加密解密类,(我这有一个但是写得不很成熟不能解密)
  • 教你如何解密 “ PHP 神盾解密工具 ”
  • 如何实现在unix下delphi与java的相互加密解密??求救???
  • linux openssl aes解密的问题
  • linux 可以采用crypt来加密口令,不知道有什么解密方法没有?
  • jbuilderX在linux下如何解密???急!!!
  • jbuilderX在linux下如何解密???急!!! iis7站长之家
  • 文本加密解密工具 ImmediateCrypt
  • 加密解密
  • 关于解析ssh协议加解密数据的问题?
  • 加密解密库 NaCl
  • iPhone 应用程序解密工具 dumpdecrypted
  • 加密解密工具包 ccrypt
  • weblogic 的 jdbc for sqlserver 如何解密??他根本都不让我用,气死我了
  • 如何对文件内的部分内容进行加密和解密?
  • VC对自定义资源加密解密(AES)的详解
  • TLS协议解密守护进程 (主要用于SSL/HTTPS加速) stud


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3