本次教程相對於以前版本的單頁製作教程的區別:
修復 Discuz!X2 單頁 DIY 後無法儲存的問題;

首先,單頁包括該單頁的 php 檔案和該單頁的模板 (.htm) 檔案,比如:host.php 、 host.htm

普通單頁的 php 檔案內容如下:

  1. <?php
  2. define('CURSCRIPT', 'test');
  3. require './source/class/class_core.php';//引入系統核心檔案
  4. $discuz = & discuz_core::instance();//以下程式碼為建立及初始化物件
  5. $discuz->init();
  6. $navtitle = '官方 QQ 群列表';
  7. $metakeywords = 'QQ 群, 官方,discuz,DRC,7drc,QQ';
  8. $metadescription = '該頁面展示 Discuz! Rescue Centre 官方 QQ 群系,加入本站官方 QQ 群可及時瞭解掌握最新動態、外掛、模版第一手資訊。請勿加入多個 QQ 群,珍惜有限的群資源。';
  9. include template('forum/host');//呼叫單頁模版檔案
  10. ?>

這裡需要注意的是,host 為模板檔名,不需要加.htm 副檔名,模板檔案存放於預設風格目錄下的 forum 目錄;
單頁的 php 檔案存放於論壇根目錄;

$navtitle = '官方 QQ 群列表'; 這一句是定義單頁的標題,顯示於瀏覽器頂部的網頁標題
$metakeywords = 'QQ 群, 官方,discuz,DRC,7drc,QQ'; 是單頁的關鍵詞資訊
$metadescription 是單頁的描述資訊。

可 DIY 的單頁 PHP 檔案程式碼內容如下:

  1. <?php
  2. define('CURSCRIPT', 'test');
  3. require './source/class/class_core.php';//引入系統核心檔案
  4. $discuz = & discuz_core::instance();//以下程式碼為建立及初始化物件
  5. $discuz->init();
  6. loadcache('diytemplatename');
  7. $navtitle = '官方 QQ 群列表';
  8. $metakeywords = 'QQ 群, 官方,discuz,DRC,7drc,QQ';
  9. $metadescription = '該頁面展示 Discuz! Rescue Centre 官方 QQ 群系,加入本站官方 QQ 群可及時瞭解掌握最新動態、外掛、模版第一手資訊。請勿加入多個 QQ 群,珍惜有限的群資源。';
  10. include template('diy:forum/host');//呼叫單頁模版檔案
  11. ?>

注:
其中 loadcache('diytemplatename');
為 Discuz!X2 對 DIY 這一塊做的更新,DIY 要載入快取,所以以前 X1.5 的單頁製作教程做出來的單頁 DIY 會無法儲存。 DIY 的單頁模版檔案,
修改單頁模版內容後需要更新快取才能重新整理出來。

php 檔案建立完畢,現在開始建立模版檔案,基本程式碼如下:
普通單頁的模版檔案程式碼:

  1. <!--{template common/header}-->
  2. <div id="pt" >
  3.     <div >
  4.         <a href="./" title="{lang homepage}">$_G[setting][bbname]</a><em>&raquo;</em>
  5.         <a href="forum.php">$_G[setting][bbname]</a><em>&raquo;</em>
  6.         <a href="">$navtitle</a>
  7.     </div>
  8. </div>
  9. <div id="ct" >
  10.     <div >
  11.         <div >
  12.             <p style="width:300px; margin:200px auto; text-align:center;"> 這裡是單頁正文內容區域</p>
  13.         </div>
  14.     </div>
  15. </div>
  16. <!--{template common/footer}-->

效果如下:

0.jpg

-------------------------------------------------------------------------------------

可 DIY 的單頁模版檔案程式碼如下:

  1. <!--{template common/header}-->
  2. <div id="pt" >
  3.     <div >
  4.         <a href="./" title="{lang homepage}">$_G[setting][bbname]</a><em>&raquo;</em>
  5.         <a href="forum.php">$_G[setting][bbname]</a><em>&raquo;</em>
  6.         <a href="">$navtitle</a>
  7.     </div>
  8. </div>
  9. <div >
  10. <!--[diy=diy2]--><div id="diy2" ></div><!--[/diy]-->
  11. </div>
  12. <div id="ct" >
  13.     <div >
  14.         <div >
  15.             <p style="width:300px; margin:200px auto; text-align:center;"> 這裡是單頁正文內容區域</p>
  16.         </div>
  17.     </div>
  18. </div>
  19. <!--{template common/footer}-->

其中:

  1. <div >
  2. <!--[diy=diy2]--><div id="diy2" ></div><!--[/diy]-->
  3. </div>

這段程式碼就是 DIY 區域的程式碼,之前 X1.5 的單頁教程裡面我們也講到過,可以在單頁的任意位置插入 DIY 區域,即:

  1. <!--[diy=diy2]--><div id="diy2" ></div><!--[/diy]-->

注意:如果一個頁面要插入多個 DIY 區域,注意修改上面 DIY 區域的編號 ID,幾個 DIY 區域的 ID 編號不能相同。
-------------------------------------------------------------------------------------

帶有右側邊欄的單頁模版檔案程式碼:

  1. <!--{subtemplate common/header}-->
  2. <div id="pt" >
  3.     <div >
  4.         <a href="./" title="{lang homepage}">$_G[setting][bbname]</a><em>&raquo;</em>
  5.         <a href="forum.php">$_G[setting][bbname]</a><em>&raquo;</em>
  6.         <a href="">$navtitle</a>
  7.     </div>
  8. </div>
  9. <div id="ct" >
  10.     <div >
  11.         <div > 標題欄</div>
  12.         <div >
  13.            <p style="width:300px; margin:220px auto; text-align:center;"> 這裡是單頁正文內容區域</p>
  14.         </div>
  15.     </div>
  16.         <div >
  17.         <div >
  18.             <div >
  19.                 <h2> 公告欄</h2>
  20.             </div>
  21.             <div >
  22.                 <p style="line-height:25px;">
  23.                     這裡可以放一些公告通知類的文字內容這裡可以放一些公告通知類的文字內容這裡可以放一些公告通知類的文字內容這裡可以放一些公告通知類的文字內容這裡可以放一些公告通知類的文字內容這裡可以放一些公告通知類的文字內容
  24.                 </p>
  25.             </div>
  26.         </div>
  27.         <div >
  28.             <div >
  29.                 <h2> 操作選單</h2>
  30.             </div>
  31.             <div >
  32.                 <ul >
  33.                     <li><a href="#"> 測試選單一</a></li>
  34.                     <li><a href="#"> 測試選單二</a></li>
  35.                     <li><a href="#"> 測試選單三</a></li>
  36.                     <li><a href="#"> 測試選單四</a></li>
  37.                     <li><a href="#"> 測試選單五</a></li>
  38.                     <li><a href="#"> 測試選單六</a></li>
  39.                 </ul>
  40.             </div>
  41.         </div>
  42.         <div >
  43.             <div >
  44.                 <h2> 版權資訊</h2>
  45.             </div>
  46.             <div style="line-height:25px;">
  47.                 <ul>
  48.                     <li> 作者:<a href="http://www.mutoulee.cn" target="_blank"> 體無完膚</a></li>
  49.                     <li> 網站:<a href="http://bbs.7drc.com" target="_blank">bbs.7drc.com</a></li>
  50.                     <li> 版權:Discuz! Rescue Centre</li>
  51.                 </ul>
  52.             </div>
  53.         </div>
  54.     </div>
  55. </div>
  56. <!--{subtemplate common/footer}-->

效果如下:

1.jpg

-------------------------------------------------------------------------------------

帶有左側邊欄的單頁模版檔案程式碼:

  1. <!--{subtemplate common/header}-->
  2. <div id="pt" >
  3.     <div >
  4.         <a href="./" title="{lang homepage}">$_G[setting][bbname]</a><em>&raquo;</em>
  5.         <a href="forum.php">$_G[setting][bbname]</a><em>&raquo;</em>
  6.         <a href="">$navtitle</a>
  7.     </div>
  8. </div>
  9. <div id="ct" >
  10.     <div style="float:right;">
  11.         <div > 標題欄</div>
  12.         <div >
  13.            <p style="width:300px; margin:220px auto; text-align:center;"> 這裡是單頁正文內容區域</p>
  14.         </div>
  15.     </div>
  16.         <div style="float:left;">
  17.         <div >
  18.             <div >
  19.                 <h2> 公告欄</h2>
  20.             </div>
  21.             <div >
  22.                 <p style="line-height:25px;">
  23.                     這裡可以放一些公告通知類的文字內容這裡可以放一些公告通知類的文字內容這裡可以放一些公告通知類的文字內容這裡可以放一些公告通知類的文字內容這裡可以放一些公告通知類的文字內容這裡可以放一些公告通知類的文字內容
  24.                 </p>
  25.             </div>
  26.         </div>
  27.         <div >
  28.             <div >
  29.                 <h2> 操作選單</h2>
  30.             </div>
  31.             <div >
  32.                 <ul >
  33.                     <li><a href="#"> 測試選單一</a></li>
  34.                     <li><a href="#"> 測試選單二</a></li>
  35.                     <li><a href="#"> 測試選單三</a></li>
  36.                     <li><a href="#"> 測試選單四</a></li>
  37.                     <li><a href="#"> 測試選單五</a></li>
  38.                     <li><a href="#"> 測試選單六</a></li>
  39.                 </ul>
  40.             </div>
  41.         </div>
  42.         <div >
  43.             <div >
  44.                 <h2> 版權資訊</h2>
  45.             </div>
  46.             <div style="line-height:25px;">
  47.                 <ul>
  48.                     <li> 作者:<a href="http://www.mutoulee.cn" target="_blank"> 體無完膚</a></li>
  49.                     <li> 網站:<a href="http://bbs.7drc.com" target="_blank">bbs.7drc.com</a></li>
  50.                     <li> 版權:Discuz! Rescue Centre</li>
  51.                 </ul>
  52.             </div>
  53.         </div>
  54.     </div>
  55. </div>
  56. <!--{subtemplate common/footer}-->

注意觀察這個左側邊欄的模版程式碼和右側邊欄的模版程式碼,可以發現,程式碼其實都一樣,只是更改一下 CSS 樣式。

<div > 給這個 div 加一個向右浮動,即:

  1. <div style="float:right;">

再給 <div > 這個 div 加一個向左浮動的 CSS 樣式,即:

  1. <div style="float:left;">

就是說只是左右對調一下。

演示效果如下:

2.jpg

-------------------------------------------------------------------------------------

帶有標籤選項卡的單頁模版:

  1. <!--{subtemplate common/header}-->
  2. <div id="pt" >
  3.     <div >
  4.         <a href="./" title="{lang homepage}">$_G[setting][bbname]</a><em>&raquo;</em>
  5.         <a href="forum.php">$_G[setting][bbname]</a><em>&raquo;</em>
  6.         <a href="">$navtitle</a>
  7.     </div>
  8. </div>
  9. <div id="ct" >
  10.     <div style="float:right;">
  11.         <div > 標題欄</div>
  12.         <div >
  13.             <ul >
  14.                                 <li <!--{if
    empty($_G[gp_viewtype]) || $_G[gp_viewtype] ==
    'new'}--><!--{/if}-->><a
    href="test.php?viewtype=new"> 最新發布</a></li>
  15.                                 <li <!--{if
    $_G[gp_viewtype] == 'view'}--><!--{/if}-->><a
    href="test.php?viewtype=view"> 瀏覽排行</a></li>
  16.                                 <li <!--{if
    $_G[gp_viewtype] == 'comment'}--><!--{/if}-->><a
    href="test.php?viewtype=comment"> 回覆排行</a></li>
  17.                 <li <!--{if $_G[gp_viewtype] ==
    'rate'}--><!--{/if}-->><a
    href="test.php?viewtype=rate"> 評分排行</a></li>
  18.                         </ul>
  19.            <p style="width:300px; margin:200px auto; text-align:center;"> 這裡是單頁正文內容區域</p>
  20.         </div>
  21.     </div>
  22.         <div style="float:left;">
  23.         <div >
  24.             <div >
  25.                 <h2> 公告欄</h2>
  26.             </div>
  27.             <div >
  28.                 <p style="line-height:25px;">
  29.                     這裡可以放一些公告通知類的文字內容這裡可以放一些公告通知類的文字內容這裡可以放一些公告通知類的文字內容這裡可以放一些公告通知類的文字內容這裡可以放一些公告通知類的文字內容這裡可以放一些公告通知類的文字內容
  30.                 </p>
  31.             </div>
  32.         </div>
  33.         <div >
  34.             <div >
  35.                 <h2> 操作選單</h2>
  36.             </div>
  37.             <div >
  38.                 <ul >
  39.                     <li><a href="#"> 測試選單一</a></li>
  40.                     <li><a href="#"> 測試選單二</a></li>
  41.                     <li><a href="#"> 測試選單三</a></li>
  42.                     <li><a href="#"> 測試選單四</a></li>
  43.                     <li><a href="#"> 測試選單五</a></li>
  44.                     <li><a href="#"> 測試選單六</a></li>
  45.                 </ul>
  46.             </div>
  47.         </div>
  48.         <div >
  49.             <div >
  50.                 <h2> 版權資訊</h2>
  51.             </div>
  52.             <div style="line-height:25px;">
  53.                 <ul>
  54.                     <li> 作者:<a href="http://www.mutoulee.cn" target="_blank"> 體無完膚</a></li>
  55.                     <li> 網站:<a href="http://bbs.7drc.com" target="_blank">bbs.7drc.com</a></li>
  56.                     <li> 版權:Discuz! Rescue Centre</li>
  57.                 </ul>
  58.             </div>
  59.         </div>
  60.     </div>
  61. </div>
  62. <!--{subtemplate common/footer}-->

 

注意觀察你會發現,選項卡這一部分跟 X1.5 一樣的,就是在模版的正文區域的 div 內增加一段程式碼:

  1. <ul >
  2.                                 <li <!--{if
    empty($_G[gp_viewtype]) || $_G[gp_viewtype] ==
    'new'}--><!--{/if}-->><a
    href="test.php?viewtype=new"> 最新發布</a></li>
  3.                                 <li <!--{if
    $_G[gp_viewtype] == 'view'}--><!--{/if}-->><a
    href="test.php?viewtype=view"> 瀏覽排行</a></li>
  4.                                 <li <!--{if
    $_G[gp_viewtype] == 'comment'}--><!--{/if}-->><a
    href="test.php?viewtype=comment"> 回覆排行</a></li>
  5.                 <li <!--{if $_G[gp_viewtype] ==
    'rate'}--><!--{/if}-->><a
    href="test.php?viewtype=rate"> 評分排行</a></li>
  6.                         </ul>

效果如下:

3.jpg

此次教程整理結束。