Correction status:Uncorrected
Teacher's comments:
模板动态布局,在控制器中动态布局 不需要再模板配置文件中进行配置 也不需要在模板中写任何的标签
<?php class Index{ //模板布局 public function demo4() { /** * 1 全局配置 config/template.php * 2 模板标签布局 * 3 在控制器中动态布局 不需要再模板配置文件中进行配置 也不需要在模板中写任何的标签 */ //return $this -> view -> fetch(); // 动态开启布局 并且是局部的 只针对当前模板起作用 // 调用engine这个属性 engine这个属性存放的也是一个对象 所有要调用layout方法 $this -> view -> engine -> layout(true); //动态关闭布局 $this -> view -> engine -> layout(false); //替换模板内容 $this -> view -> engine -> layout("layout","{__TEXT__}"); //修改替换内容 可以修改布局文件中的占位符标志 //return $this -> view -> fetch(); //如果合并写 fetch() 方法参数不能省略 并且模板表达式至少要写到控制器 return $this -> view -> engine -> layout(true) -> fetch("index@index/demo4"); } } ?>
点击 "运行实例" 按钮查看在线实例
模板继承
首先要在view目录下创建一个父类模板 并且该父类模板中只能有block标签
凡是写在父类模板区块之外的标签 全部被原样输出
在父模板中使用block标签的方式为:{block name="区块名称且不允许重复"}内容{/block}
//父模板中的标签使用方式 {//基础模板中 只允许出现block标签 不允许出现任何其他的标签} <!--{//公共头部 /}--> {block name="header" /} {include file="public/header"} {/block} {block name="main"} 主题部分 {/block} {block name="course"} 课程名称: {/block} {block name="name"} 姓名 {/block} {//在父模板中凡是写在区块之外的标签全部被原样输出} <a href="">链接</a> <!--{//公共尾部}--> {block name="footer" /} {include file="public/footer"} {/block}
点击 "运行实例" 按钮查看在线实例
在子模板中进行继承使用,使用方式为:{extend name="父模板名称" /}
{extend name="base" /} {//重写父模板中的对应区块内容 会覆盖父模板中的} {block name="main"} <h1 style="color: red;text-align: center">我是模板继承网站中的主题部分</h1> {/block} {block name="course"} <!--{__block__} 输出父模板中的内容--> <h1 style="color: blueviolet;text-align: center"> {__block__}PHP编程</h1> {/block} {//区块当中不写任何内容可以删除当前父模板中的内容} <a href="">这是链接</a> {//在子模板中凡是写在区块之外的标签全部被忽略} {block name="name"}{/block} <!--<h1>模板继承</h1>-->
点击 "运行实例" 按钮查看在线实例