Thinkphp 5.1 模板继续差异于模板结构,乃至来说,应该在模板结构的上层。模板继续实在并不难明白,就好比类的继续一样,模板也可以界说一个根本模板(大概是结构),而且此中界说干系的区块(block),然后继续(extend)该根本模板的子模板中就可以对根本模板中界说的区块举行重载。
因此,模板继续的上风实在是操持根本模板中的区块(block)和子模板中更换这些区块。
每个区块由{block} {/block} 标签构成。 下面就是根本模板中的一个范例的区块操持(用于操持网站标题):
{block name="title"}网站标题{/block}
block标签必须指定name属性来标识当前区块的名称,这个标识在当前模板中应该是唯一的,block标签中可以包罗任何模板内容,包罗其他标签和变量,比方:
{block name="title"}{$web_title}{/block}
你乃至还可以在区块中加载外部文件:
{block name="include"}{include file="Public:header" /}{/block}
一个模板中可以界说恣意多个名称标识不重复的区块,比方下面界说了一个base.html 根本模板:
{block name="title"}标题{/block}
{block name="menu"}菜单{/block}
{block name="left"}左边分栏{/block}
{block name="main"}主内容{/block}
{block name="right"}右边分栏{/block}
{block name="footer"}底部{/block}
然后我们在子模板(实在是当前利用的入口模板)中利用继续:
{extend name="base" /}
{block name="title"}{$title}{/block}
{block name="menu"}
首页
资讯
论坛
{/block}
{block name="left"}{/block}
{block name="main"}
{volist name="list" id="vo"}
{$vo.title}
{$vo.content}
{/volist}
{/block}
{block name="right"}
最新资讯:
{volist name="news" id="new"}
{$new.title}
{/volist}
{/block}
{block name="footer"}
{__block__}
@ThinkPHP 版权全部
{/block}
上例中,我们可以看到在子模板中利用了extend标签来继续了base模板。
在子模板中,可以对根本模板中的区块举行重载界说,假如没有重新界说的话,则体现相沿根本模板中的区块界说,假如界说了一个空的区块,则体现删除根本模板中的该区块内容。 上面的例子,我们就把left区块的内容删除了,其他的区块都举行了重载。而
{block name="footer"}
{__block__}@ThinkPHP 版权全部
{/block}
这一区块中有{__block__} 这个标签,当区块中有这个标记时,就不光是直接重载这个区块,它体现引用所继续模板对应区块的内容到这个位置,终极这个区块是归并后的内容。以是这里footer区块末了的内容是: 底部@ThinkPHP 版权全部
extend标签的用法和include标签一样,你也可以加载其他模板:
{extend name="Public:base" /}
大概利用绝对文件路径加载
{extend name="./Template/Public/base.html" /}
在当前子模板中,只能界说区块而不能界说其他的模板内容,否则将会直接忽略,而且只能界说根本模板中已经界说的区块。
比方,假如接纳下面的界说:
{block name="title"}{$title}{/block}
首页
资讯
论坛
导航部分将是无效的,不会体现在模板中。
模板可以多级继续,好比B继续了A,而C又继续了B,终极C中的区块会覆盖B和A中的同名区块,但C和B中的区块必须是A中已界说过的。
子模板中的区块界说次序是随意的,模板继续的用法关键在于根本模板怎样结构和操持规划了,假如联合原来的结构功能,则会更加机动。 ShopWT(www.shopwt.com)是国内知名商城系统及商城网站建设提供商,其中销客多小程序系统为商家提供小程序商城开发、小程序分销系统、微分销系统、商城系统、电商网站建设、微信分销系统、小程序商城等多端商城及电子商务行业解决方案> 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |