博客列表 >5.29模板动态布局与模板继承技术

5.29模板动态布局与模板继承技术

李洋
李洋原创
2018年05月30日 17:49:381000浏览
  • 模板动态布局,在控制器中动态布局  不需要再模板配置文件中进行配置  也不需要在模板中写任何的标签

  • 实例

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

    运行实例 »

    点击 "运行实例" 按钮查看在线实例

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议