thinkphp模板继承小结

thinkphp模板继承小结

hp的模板继承,通俗一点,就是设定一个模板布局,继承的子类,都要按照这个模板展示。

模板继承的好处

1,可以把公共部分直接加载在父极模板,在后续的网页加载过成中,直接加载子模块,子模块按照模板规则,在给定的地方展示出来。

2,公共部分的输出,直接输出到分开的公共部分,后续跳页的过程中,直接改变需要改变的模块。

模板继承步骤

1,在view层下,建立一个模板文件夹(常用名Base),用于存放模板

2,在view层下,建立一个公共文件夹(常用名Public),用于存放网站的公共部分

3,在view层下,建立其他文件夹,存放各个网页,输出直接访问这些页面。

实例:

View/Base:

//-----------------------模板设计-----------------------------

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
    <title>TITLE</title>
    <block name="link>
    <!--需要连接的css文件-->
    </block>
    <block name="js">
    <!--需要连接的js文件-->
    </block>
</head>
<body>
    <block name="header">
        <!--将公共部分包含进来,需要绝对路径-->
        <include file="./application/Home/View/Public/header.html"/>
    </block>
    <block name="page_title">
        <include file="./application/Home/View/Public/page_title.html"/>
    </block>
    <block name="left">
        <!--需要加载的主要部分-->
    </block>
    <block name="right">
        <include file="./application/Home/View/Public/right.html"/>
    </block>
    <block name="footer">
        <include file="./application/Home/View/Public/footer.html"/>
    </block>
</body>
</html>
//---------------------------end---------------------------



//--------------------------公共部分------------------------
thinkphp控制器公共部分构造函数直接加载在这里,然后用<include file=""/>导入即可(如上)
    <header id="top">
        <div class="wrapper">
            <div id="title"><img SRC="__PUBLIC__/HomeStyle/img/logo.png" alt="Administry" /></div>
            <nav id="menu">
                <ul class="sf-menu">
                    <li class="current"><a HREF="__MODULE__/Index/index">首页</a></li>
                    <li>
                        <a HREF="styles.html">寻宝</a>
                        <ul>
                            <li>
                                <a HREF="styles.html">日本成人动作片</a>
                            </li>
                            <li>
                                <a href="#">欧美成人动作片</a>
                                <ul>
                                    <li><a HREF="samples-files.html">异性诱惑</a></li>
                                    <li><a HREF="samples-products.html">同性诱惑</a></li>
                                </ul>
                            </li>
                        </ul>
                    </li>
                    <foreach name="classList" item="val">
                    <li class="current" ><a HREF="__MODULE__/Class/index?id={$val.id}">{$val.name}</a></li>
                    </foreach>
                </ul>
            </nav>
        </div>
    </header>
//-----------------------------------end------------------------------


//---------------------------------加载页面----------------------------

//首先继承模板
<extend name="Base/base">
<block name="link">
    //放入本页面需要连接的css文件
     <link rel="shortcut icon" type="image/png" HREF="__PUBLIC__/HomeStyle/img/favicons/favicon.png"/>
</block>
<block name="js">
    //js文件
    <block name="js"/>
    <script type="text/javascript" SRC="__PUBLIC__/HomeStyle/js/swfobject.js"></script>
</block>
<block name="left">
    //需要加载的页面
    html写入即可
    
</block>
//---------------------------------end----------------------------------

注意的问题:

1.加载也如果某些模块需要加载,一定要注明name的值

2. 如果是公共部分,需要用导入公共部分文件

3.如果加载页面继承了公共部分,只需要用,标签中的name属性指明那个模块,不需要改动的模块,则不需要写入,因为继承的过程中,已经继承到本页面

4,注意name,file,的写法。

5,一般情况下,公共部分控制器利用构造方法直接将数据制定输出到公共部分,然后需要其他控制器继承,继承之后,直接操作其他页面即可。

6,接触php几个月了,对于一些小问题,都做一些小小的总结,方便自己不熟的情况下查询以及初学者们查询。如有错误不当之处,请批评指正。大家共同学习。


你可能感兴趣的:(thinkphp,布局)