以前 7.2 版本時候寫一個一個單頁製作教程,分為帶邊欄和不帶邊欄的,很多站長也根據教程學會了自己製作頁面。
其實 X 版本的單頁製作,跟 7.2 沒啥兩樣,原理都是一樣的,只要大家仔細研究的話會發現共同點,只是 php 裡面幾行程式碼稍有不同。
首先,單頁包括該單頁的 php 檔案和該單頁的模板 (.htm) 檔案,比如:host.php 、 host.htm
單頁的 php 檔案內容如下:
- <?php
- require './source/class/class_core.php';//引入系統核心檔案
- $discuz = & discuz_core::instance();//以下程式碼為建立及初始化物件
- $discuz->cachelist = $cachelist;
- $discuz->init();
- include template('forum/host');//呼叫單頁模版檔案
- ?>
這裡需要注意的是,host 為模板檔名,不需要加.htm 副檔名,模板檔案存放於自己當前風格目錄下的 forum 目錄;
單頁的 php 檔案存放於論壇根目錄;
php 檔案建立完畢,現在開始建立模版檔案,基本程式碼如下:
- {subtemplate common/header}
- <div id="pt" >
- <a href="index.php" >$_G[setting][bbname]</a> › DRC 帖子動態
- </div>
- <style id="diy_style" type="text/css"></style>
- <div id="ct" >
- <div >
- <div >
- 這裡是自己正文區域的程式碼
- </div>
- </div>
- </div>
- {subtemplate common/footer}
其中:
- <a href="index.php" >$_G[setting][bbname]</a> › DRC 帖子動態
這一行是單頁的路徑顯示,比如:Discuz! Rescue Centre › DRC 帖子動態,{subtemplate
common/header} 、 {subtemplate common/footer} 分別為呼叫頁頭、頁尾模板,使得單頁風格與論壇保持一致;
至此,基本型單頁建立完畢。演示效果見:http://bbs.7drc.com/host.php
-------------------------------------以下為帶右邊側欄單頁模板-----------------------------------------
上面模板檔案程式碼是不帶邊欄的,現在講下帶邊欄的單頁模板檔案程式碼,如下:
- {subtemplate common/header}
- <div id="pt" ><a href="index.php"
>$_G[setting][bbname]</a> ›
會員風采</div> - <div id="ct" >
- <div >
- <div >
- <h1 ><img
src="static/image/feed/profile.gif" alt="profile"> 分類瀏覽</h1> - <div style="margin:10px 0;">
- 這裡是正文區域程式碼
- </div>
- </div>
- </div>
- <!--邊欄區域程式碼開始-->
- <div id="psd" >
- <div >
- <p><strong> 欄目名稱</p>
- <p><a href="#"> 邊欄選單名稱</a></p>
- <p><a href="#"> 邊欄選單名稱</a></p>
- <p><a href="#"> 邊欄選單名稱</a></p>
- </div>
- <div >
- <p><strong> 管理面板</strong></p>
- <p><a href="#"> 新增分類</a></p>
- <p><a href="#"> 管理分類</a></p>
- <p><a href="#"> 返回會員風采</a></p>
- </div>
- <div style="border-bottom:none;">
- <p><strong> 版權資訊</strong></p>
- <p> 作者:XXX</p>
- <p> 版權:XXX</p>
- <p> 網站:bbs.weixiaoduo.com</p>
- </div>
- </div>
- <!--邊欄區域程式碼結束-->
- </div>
- {subtemplate common/footer}
其中:邊欄區域程式碼中,每個<div > 區塊為一個邊欄選單區域;
-------------------------以下為帶右邊側欄且多頁選項卡切換--------------------------------
剛看看到論壇有站長問單頁中如何做那個多頁面選項卡切換,下面介紹下;
其實就是多了幾行程式碼,都是 DX 系統自帶的,直接使用即可,在上面帶右側邊欄模板程式碼的:
- <h1 ><img src="static/image/feed/profile.gif" alt="profile"> 分類瀏覽</h1>
這一行下面加入:
- <ul >
- <li <!--{if
empty($_G[gp_viewtype]) || $_G[gp_viewtype] ==
'new'}--><!--{/if}-->><a
href="host.php?viewtype=new"> 最新發布</a></li> - <li <!--{if
$_G[gp_viewtype] == 'view'}--><!--{/if}-->><a
href="host.php?viewtype=view"> 瀏覽排行</a></li> - <li <!--{if
$_G[gp_viewtype] == 'comment'}--><!--{/if}-->><a
href="host.php?viewtype=comment"> 回覆排行</a></li> - <li <!--{if $_G[gp_viewtype] ==
'rate'}--><!--{/if}-->><a
href="host.php?viewtype=rate"> 評分排行</a></li> - </ul>
解釋上面程式碼,其中每個<li> 標籤,就是一個選項卡,裡面的超連結 host.php?viewtype=new,這裡的 viewtype 就是
指定一個變數,並且指定值為 new,點選這個選項卡時候 $_G[gp_viewtype] 就會獲取到這個值,然後透過判
斷 $_G[gp_viewtype] 的值,來選擇當前選項卡是否為焦點選項。
既然說到多頁,那麼多個頁面如何做,思路可以有兩種,一種是建立多個單頁,包括多個 php 檔案和多個模板檔案,當然這種方法比較直接,但是比較麻煩,可以在同一個模板檔案中判斷 $_G[gp_viewtype] 的值來選擇顯示不同的內容,比如在正文區域中如下程式碼:
- <!--{if $_G[gp_viewtype] == 'new'}-->
- 這裡顯示的是 new 選項卡下的內容
- <!--{elseif $_G[gp_viewtype] == 'view'}-->
- 這裡顯示 view 選項卡下的內容
- <!--{elseif $_G[gp_viewtype] == 'comment'}-->
- 這裡顯示 comment 選項卡下的內容
- <!--{/if}-->
這樣就實現了一個模版檔案中多個頁面的效果。點選不同選項卡,顯示不同內容。
------------------------------以下為可以 DIY 的單頁教程--------------------------------
自己製作的單頁中,如何又能使用 DX 的 DIY 功能呢?
只需要稍加改造,即可完成,如下:
將單頁 php 檔案呼叫模板的那行程式碼改成:
- include template('diy:forum/host');
這樣就可以載入 DIY 模組,然後在單頁模版中,新增 DIY 區域,如下:
- <!--[diy=diy1]--><div id="diy1" ></div><!--[/diy]-->
這就是一個 DIY 區域,如果要多個區域,則:
- <!--[diy=diy1]--><div id="diy1" ></div><!--[/diy]-->
- <!--[diy=diy2]--><div id="diy2" ></div><!--[/diy]-->
- <!--[diy=diy3]--><div id="diy3" ></div><!--[/diy]-->
將裡面 diy1,diy2,diy3 區分開來即可。
比如,在單頁模板程式碼的<div id="pt" > 這一個 div 層塊的上面或下面加:
- <div >
- <!--[diy=diy1]--><div id="diy1" ></div><!--[/diy]-->
- </div>
這樣就可以實現單頁 DIY 功能了,需要說明的是,模版中要在什麼地方加 DIY 區域,根據自己需要,並不是固定死的,自己設計在哪,就在哪裡加入。
至此,本教程結束,希望站長們仔細閱讀並認真動腦思考、研究,並且製作出自己的單頁。