美文网首页
thinkphp 模版继承的使用

thinkphp 模版继承的使用

作者: 木十2036 | 来源:发表于2017-03-23 10:39 被阅读163次

注意事项:

1、在当前子模板中,只能定义区块而不能定义其他的模板内容,否则将会直接忽略

Paste_Image.png

2、thinkphp3.2.3默认不支持<block>标签嵌套


项目中一个使用实例

1、Public目录下
  • base.html
<!DOCTYPE html>
<html lang="en">
<!-- 引入公共头部文件 -->
<block name="include_header">
    <include file="Public:head" />
</block>

<body>
    <!-- 搜索 -->
    <include file="Public:top" />
    <!-- 内容区 -->
    <block name="content">
    </block>
    <!-- 引入公共头部文件 -->
    <block name="include_footer">
        <include file="Public:footer" />
    </block>
</body>

</html>
  • top.html
<div class="search-content">
    <div class="search-con">
        <form method="post" action="#">
            <h3>搜索感兴趣的内容</h3>
            <p>
                <input type="text" placeholder="请输入搜索内容" />
            </p>
            <p>
                <input id="btn" type="submit" value="确定" />
            </p>
        </form>
    </div>
</div>
<header class="head" class="clearfix">
    <div class="logo">![](/Public/Home/images/logo.png)</div>
    <div class="sidenav clearfix">
        <!-- 导航栏 -->
        <block name='include_nav'>
            <include file="Public:nav" />
        </block>
        <div class="search">![](/Public/Home/images/search.png)</div>
        <div class="subnav">![](/Public/Home/images/nav.png)</div>
    </div>
</header>

top.html文件里也有个block区块
<block name='include_nav'><include file="Public:nav" /></block>

  • nav.html
<nav>
    <ul>
        <li class="current"><a class="cur" href="index.html">首页</a><i></i></li>
        <li class="current"><a class="cur" href="index.html">关于我们</a><i></i></li>
        <li class="current"><a class="cur" href="index.html">招贤纳士</a><i></i></li>
        <li class="current"><a class="cur" href="index.html">联系我们</a><i></i></li>
    </ul>
</nav>
  • head.html 和 footer.html文件只是引入公共css、js文件
2、其他视图页面继承基础模版
  • Home/ContactController.class.php
<?php
namespace Home\Controller;
use Think\Controller;
class ContactController extends Controller {
    public function index(){
        $config = C('nav_info');
        $current_nav_id = $config[9]['id'];

        $banner_img = M('nav')->where(array('id'=>$current_nav_id))->getfield('pic');
        $contact_info = M('contact')->find();

        $this->assign(
            array(
                'nav_id'        =>  $current_nav_id,//渲染当前页面的id
                'banner_img'        =>  $banner_img,
                'contact_info'      =>  $contact_info,
                ));
        $this->display();
    }
}
  • Home/View/Contact/index.html
<extend name="Public:base" />
<block name='content'>
    <div class="banner">
        ![](/Public/{$banner_img})
    </div>
    <div class="contact">
        <h2>![](/Public/Home/images/contact-tit.png)</h2>
        <h3>{$contact_info.contact_name}</h3>
        <div class="hr02"></div>
        <div>
            {$contact_info.contact_content}
        </div>
    </div>
    </div>
</block>

相关文章

  • thinkphp 模版继承的使用

    注意事项: 1、在当前子模板中,只能定义区块而不能定义其他的模板内容,否则将会直接忽略 2、thinkphp3.2...

  • thinkphp模版布局、继承的学习

    模版布局 1. 配置文件里设置LAYOUT_ON=>"true"后, 每个控制器的方法里,$this-displa...

  • Django 入门教程笔记(三)

    常用模版标签 标签 过滤器 模版包含和继承 admin 配置 Form 使用 django.forms.Model...

  • thinkPHP和laravel的区别

    第一 主要区别:(thinkPHP更适合国人的编码习惯)1.渲染模版方式的不同:在Laravel框架里,使用ret...

  • Thinkphp定位查询getN的使用心得

    开发手册是这样说的:ThinkPHP支持定位查询,但是要求当前模型必须继承高级模型类才能使用,可以使用getN方法...

  • Django项目(四、前端技巧)

    模版的继承 为了使得Django的前端html代码可以复用, Django允许以模版形式使得html之间可以继承。...

  • Nodejs笔记--Nunjucks模板

    学习文章:廖雪峰-使用Nunjucks Nunjucks引擎最强大的功能在于模板的继承使用模版可以避免输出恶意脚本...

  • 设计模式之模版方法模式

    模版方法模式 模版方法是一种只需使用继承就可以实现的非常简单的模式模版方法模式由两部分结构组成,第一部分是抽象父类...

  • 设计模式之模版方法模式

    模版方法模式 模版方法是一种只需使用继承就可以实现的非常简单的模式模版方法模式由两部分结构组成,第一部分是抽象父类...

  • django02-url和模板

    Day02 url和模板 1. URL 2. 反向解析 3. 模板 模版继承和bootstrap的使用

网友评论

      本文标题:thinkphp 模版继承的使用

      本文链接:https://www.haomeiwen.com/subject/edlznttx.html