以前 7.2 版本時候寫一個一個單頁製作教程,分為帶邊欄和不帶邊欄的,很多站長也根據教程學會了自己製作頁面。
其實 X 版本的單頁製作,跟 7.2 沒啥兩樣,原理都是一樣的,只要大家仔細研究的話會發現共同點,只是 php 裡面幾行程式碼稍有不同。

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

  1. <?php
  2. require './source/class/class_core.php';//引入系統核心檔案
  3. $discuz = & discuz_core::instance();//以下程式碼為建立及初始化物件
  4. $discuz->cachelist = $cachelist;
  5. $discuz->init();
  6. include template('forum/host');//呼叫單頁模版檔案
  7. ?>

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

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

  1. {subtemplate common/header}
  2. <div id="pt" >
  3.         <a href="index.php" >$_G[setting][bbname]</a> &rsaquo; DRC 帖子動態
  4. </div>
  5. <style id="diy_style" type="text/css"></style>
  6. <div id="ct" >
  7.         <div >
  8.                 <div >
  9.                      這裡是自己正文區域的程式碼
  10.                 </div>
  11.         </div>
  12. </div>
  13. {subtemplate common/footer}

 

其中:

  1. <a href="index.php" >$_G[setting][bbname]</a> &rsaquo; DRC 帖子動態

這一行是單頁的路徑顯示,比如:Discuz! Rescue Centre › DRC 帖子動態,{subtemplate
common/header} 、 {subtemplate common/footer} 分別為呼叫頁頭、頁尾模板,使得單頁風格與論壇保持一致;

至此,基本型單頁建立完畢。演示效果見:http://bbs.7drc.com/host.php

-------------------------------------以下為帶右邊側欄單頁模板-----------------------------------------

上面模板檔案程式碼是不帶邊欄的,現在講下帶邊欄的單頁模板檔案程式碼,如下:

  1. {subtemplate common/header}
  2. <div id="pt" ><a href="index.php"
    >$_G[setting][bbname]</a> &rsaquo;
    會員風采</div>
  3. <div id="ct" >
  4.         <div >
  5.             <div >
  6.                         <h1 ><img
    src="static/image/feed/profile.gif" alt="profile"> 分類瀏覽</h1>
  7.                         <div style="margin:10px 0;">
  8.                                這裡是正文區域程式碼
  9.                         </div>
  10.                 </div>
  11.         </div>
  12.         <!--邊欄區域程式碼開始-->
  13.         <div id="psd" >
  14.         <div >
  15.                 <p><strong> 欄目名稱</p>
  16.                 <p><a href="#"> 邊欄選單名稱</a></p>
  17.                 <p><a href="#"> 邊欄選單名稱</a></p>
  18.                 <p><a href="#"> 邊欄選單名稱</a></p>
  19.         </div>
  20.         <div >
  21.                 <p><strong> 管理面板</strong></p>
  22.                 <p><a href="#"> 新增分類</a></p>
  23.                 <p><a href="#"> 管理分類</a></p>
  24.                 <p><a href="#"> 返回會員風采</a></p>
  25.         </div>
  26.         <div style="border-bottom:none;">
  27.                 <p><strong> 版權資訊</strong></p>
  28.                 <p> 作者:XXX</p>
  29.                 <p> 版權:XXX</p>
  30.                 <p> 網站:bbs.weixiaoduo.com</p>
  31.         </div>
  32.         </div>
  33.         <!--邊欄區域程式碼結束-->
  34. </div>
  35. {subtemplate common/footer}

 

其中:邊欄區域程式碼中,每個<div > 區塊為一個邊欄選單區域;
-------------------------以下為帶右邊側欄且多頁選項卡切換--------------------------------

剛看看到論壇有站長問單頁中如何做那個多頁面選項卡切換,下面介紹下;
其實就是多了幾行程式碼,都是 DX 系統自帶的,直接使用即可,在上面帶右側邊欄模板程式碼的:

  1. <h1 ><img src="static/image/feed/profile.gif" alt="profile"> 分類瀏覽</h1>

這一行下面加入:

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

解釋上面程式碼,其中每個<li> 標籤,就是一個選項卡,裡面的超連結 host.php?viewtype=new,這裡的 viewtype 就是
指定一個變數,並且指定值為 new,點選這個選項卡時候 $_G[gp_viewtype] 就會獲取到這個值,然後透過判
斷 $_G[gp_viewtype] 的值,來選擇當前選項卡是否為焦點選項。

既然說到多頁,那麼多個頁面如何做,思路可以有兩種,一種是建立多個單頁,包括多個 php 檔案和多個模板檔案,當然這種方法比較直接,但是比較麻煩,可以在同一個模板檔案中判斷 $_G[gp_viewtype] 的值來選擇顯示不同的內容,比如在正文區域中如下程式碼:

  1. <!--{if $_G[gp_viewtype] == 'new'}-->
  2. 這裡顯示的是 new 選項卡下的內容
  3. <!--{elseif $_G[gp_viewtype] == 'view'}-->
  4. 這裡顯示 view 選項卡下的內容
  5. <!--{elseif $_G[gp_viewtype] == 'comment'}-->
  6. 這裡顯示 comment 選項卡下的內容
  7. <!--{/if}-->

這樣就實現了一個模版檔案中多個頁面的效果。點選不同選項卡,顯示不同內容。

------------------------------以下為可以 DIY 的單頁教程--------------------------------

自己製作的單頁中,如何又能使用 DX 的 DIY 功能呢?

只需要稍加改造,即可完成,如下:
將單頁 php 檔案呼叫模板的那行程式碼改成:

  1. include template('diy:forum/host');

這樣就可以載入 DIY 模組,然後在單頁模版中,新增 DIY 區域,如下:

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

這就是一個 DIY 區域,如果要多個區域,則:

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

將裡面 diy1,diy2,diy3 區分開來即可。

比如,在單頁模板程式碼的<div id="pt" > 這一個 div 層塊的上面或下面加:

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

這樣就可以實現單頁 DIY 功能了,需要說明的是,模版中要在什麼地方加 DIY 區域,根據自己需要,並不是固定死的,自己設計在哪,就在哪裡加入。

至此,本教程結束,希望站長們仔細閱讀並認真動腦思考、研究,並且製作出自己的單頁。