<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                模板繼承是 ThinkCMF推薦一種布局方式,它比上一篇講的模板布局更靈活;模板繼承就是你先定義一個基礎的模板,在這個基礎模板你可以設置很多個區塊( block),然后在其它實際要渲染的子模板文件中用 extend標簽繼承這個基礎模板,在子模板中定義name相同的 block,這樣就可以對基礎模板中定義的區塊進行重載; 每個區塊都是`<block></block>`這樣的標簽,如: ``` <block name="leftsider">左邊</block> ``` 每個 block 標簽必須有個 name 屬性,并且保證它在此個模板文件中是惟一的,在block中可以包含任何模板內容,標簽,變量,甚至是 include標簽,如: ``` <block name="leftsider"> 左邊 <include file="/public/leftsider" /> {$name}<br> <div>{$hello}</div> </block> ``` 在每個模板中可以定義任意多個 block,只要 block的 name 值不相同;如我們在主題根目錄定義一個 base.html 基礎模板 ``` <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <block name="seo"> <title>標題</title> <meta name="keywords" content=""/> <meta name="description" content=""> </block> </head> <body> <block name="nav">導航菜單</block> <block name="main">內容</block> <block name="sider">右邊分欄</block> <block name="footer"> {__block__} <div>由 ThinkCMF強力驅動</div> </block> </body> </html> ``` 下面我們在子模板(也就是我們實際要渲染的模板)中使用繼承標簽: ``` <extend name="/base"/> <block name="seo"> <title>首頁</title> <meta name="keywords" content="ThinkCMF,ThinkPHP"/> <meta name="description" content="ThinkCMF是ThinkPHP最簡約的內容管理框架"> </block> <block name="nav"> <ul> <li>首頁</li> <li><a href="/aboutus.html">關于我們</a></li> </ul> </block> <block name="main">這是首頁內容</block> <block name="sider"></block><!--首頁就不要右邊了--> <block name="footer">這里是底部,我不想寫了</block> ``` 以上演示的是一個首頁模板代碼,我們可以看到在這個模板中使用了extend標簽來繼承了主題根目錄的base.html模板,在這個模板代碼中,我們同樣定義很多 block對base中的block進行重載,如果想沿用基礎模板中的block,你就可以不用新定義這個 block,如果你想刪除基礎模板中的某個區塊內容,就可以為它定義一個空的 block,首頁模板代碼中我們就把右邊欄刪除了,其他的區塊都進行了重載. 如果你看得仔細點,會發現: ``` <block name="footer"> {__block__} <div>由 ThinkCMF強力驅動</div> </block> ``` 這個代碼中我們有個`{__block__}`這樣的標記,它表示把子模板這個block解析后的內容替換到這里,它其實就是一個占位標記. extend 標簽的用法和 include 標簽的用法一樣: ``` <extend name="public@base" /> <!--表示繼承主題public目錄下的 base.html--> ``` > 注意在渲染子模板時,只會渲染 block 標簽中的內容,block標簽之外的內容是直接被忽略的,如: ``` <extend name="public@base"/> <block name="seo"> <title>首頁</title> <meta name="keywords" content="ThinkCMF,ThinkPHP"/> <meta name="description" content="ThinkCMF是ThinkPHP最簡約的內容管理框架"> </block> <!--無效代碼開始--> <div>這里你就是寫1W行代碼也沒有用!</div> <div>這里你就是寫1W行代碼也沒有用!</div> <div>這里你就是寫1W行代碼也沒有用!</div> <div>這里你就是寫1W行代碼也沒有用!</div> <!--無效代碼結束--> <block name="nav"> <ul> <li>首頁</li> <li><a href="/aboutus.html">關于我們</a></li> </ul> </block> <block name="main">這是首頁內容</block> <block name="sider"></block><!--首頁就不要右邊了--> <block name="footer">這里是底部,我不想寫了</block> ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看