thinkphp 模版继承的使用

2017-03-23  本文已影响163人  木十2036

注意事项:

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

Paste_Image.png

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


项目中一个使用实例

1、Public目录下
<!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>
<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>
    <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>
2、其他视图页面继承基础模版
<?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();
    }
}
<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>
上一篇 下一篇

猜你喜欢

热点阅读