Discuz 模板語句分析及知識技巧
一、模板 調(diào)用
比如在某個模板中,想調(diào)用另一個模板中的內(nèi)容,可以用下面的語句:
{template xxx}
假設(shè),建立了一個新模板名字叫 "abc.htm" ,在后臺 模板編輯時只會顯示為 "acb",需要在 index 中調(diào)用它,那么就在index 中適當位置加入 {template abc}
那么就會自動代用它。
相關(guān)實例: index 模板中,最頂有 {template header},最底有 {template footer}
相關(guān)疑問:
那么在這個 abc 模板中需要有 <html><body></body></html> 嗎?
不需要的!想要顯示什么,就寫什么,因為它只是整個網(wǎng)頁的一部分! <html><body></body></html> 都已經(jīng)在header和footer模板中了。
二、固定參數(shù)
$seohead --- 后臺設(shè)置 的頭部信息
$charset --- config.inc.php中設(shè)置語言字符集,必不可少,不能刪除!
$extrahead --- 控制論壇 自動跳轉(zhuǎn)參數(shù),必不可少,不能刪除!
{eval updatesession();} --- 更新論壇 session 表的參數(shù),必不可少,不能刪除!
{eval output();} --- 結(jié)束論壇輸出,必不可少,不能刪除!
以上的參數(shù)以Discuz ! 4.0為準,這些參數(shù)會因應(yīng)不同版本而有所不同!
還有一些 $xxx 的也是一些參數(shù)如非插件 作者或程序 開發(fā)請勿亂修改!
三、數(shù)據(jù) 判斷
1、在模板中會經(jīng)常見到<!--{if xx}-->xxx<!--{else}-->xx<!--{/if}-->的語句。
這些并非普通HTML 中的注釋,而是Discuz!特有的模板判斷語法,就好比php 或者其他 語法中的 if,else,then等等。
通過這些語法,能夠達到不同的模板效果 。
相關(guān)實例:
header 模板中
代碼 :
<!--{if $discuz_uid}--> --- 如果獲取了 $discuz_uid ,即顯示下面資料(判斷1)
<span class="bold">$discuz_userss: </span> <a href="$link_logout">{langlogo ut}</a>
<!--{if $maxpmnum}--> --- 如果有 $maxpmnum,即顯示下面資料,否則不顯示(判斷2)
| <a href="pm.php" target="_blank">{lang pm}</a>
<!--{/if}--> --- 結(jié)束了這個判斷(判斷2)
| <a href="memcp.php">{lang memcp}</a>
<!--{if in_array($adminid, array(1,2,3))}--> --- 如果$adminid在1,2,3這三個范圍內(nèi),即顯示下面資料,否則不顯示(判斷3)
| <a href="admincp.php" target="_blank">{lang admincp}</a>
<!--{/if}--> --- 結(jié)束了這個判斷(判斷3)
<!--{else}--> --- 如果獲取不了 $discuz_uid ,則顯示下面資料
<span class="bold">{lang guest}: </span><a href="$link_register">{lang register}</a>
| <a href="$link_login">{lang login}</a>
<!--{/if}--> --- 結(jié)束這個判斷(判斷1) 2、在模板中會經(jīng)常見到<!--{loop xx}-->xxx<!--{/loop}-->的語句。
這個為循環(huán)語句,直到數(shù)據(jù)輸出完畢,就會自動結(jié)束。
通過這些語法,能夠達到把同一系列的資料進行循環(huán)顯示效果。
相關(guān)實例:
header 模板中
代碼:
<!--{loop $plugins['links'] $plugin}--> --- 循環(huán)1開始,判斷插件
<!--{loop $plugin $module}--> --- 循環(huán)2開始,判斷插件模組
<!--{if !$module['adminid'] || ($module['adminid'] && $adminid > 0 && $module['adminid'] >= $adminid)}-->| $module[url] <!--{/if}-->
<!--{/loop}--> --- 結(jié)束循環(huán)2
<!--{/loop}--> --- 結(jié)束循環(huán)1 四、語言調(diào)用
在模板中,經(jīng)常會看到{lang xxx}這樣的語句。它就是調(diào)用語言包中的詞語用的。
而在模板中會調(diào)用的大部分都是 templates.lang.php 的。
下面看看語言包的結(jié)構(gòu):
代碼:
<? -- 宣布php語言開始
$language = array
( --- 以上宣布語言包定義開始
'title' => '標題',
調(diào)用字符 顯示文字
'never' => '從未',
調(diào)用字符 顯示文字
....
); --- 宣告語言包定義結(jié)束
?> -- 宣布php語言結(jié)束 相關(guān)實例:
假設(shè),我們增加一個語言調(diào)用,在
'title' => '標題',
上一行添加
'abc' => '這是測試語言調(diào)用',
最后的 , 是比不可少的,還有調(diào)用字符和顯示文字,都必須使用 '' 引起。
增加以后,到模板中,就能調(diào)用它,模板中寫{lang abc}
那么顯示出來就直接顯示: 這是測試語言調(diào)用
特別注意: 增加語言或修改語言包后,必須更新緩存哦!
五、風格 參數(shù)調(diào)用
在模板中常見到{XXXXX}的語句。{}中的必須是大寫。
這些都是調(diào)用風格配色方案中的參數(shù)。您可以可以自己添加,方法 如下:
1, 進入 界面風格 -> 界面風格 -> 您要添加參數(shù)的風格 點 [詳情]
2, 進入后最下面,有兩欄可以填寫,一個是變量,一個是替換內(nèi)容
相關(guān)實例:
變量寫 FOOTERCOLOR (注意必須使用大寫)
替換內(nèi)容寫 #003399
提交后,修改模板,模板中寫<font color="{FOOTERCOLOR}">測試風格自定義變量</font>
那么出來的效果,這個 測試風格自定義變量 就會按照填寫的替換內(nèi)容的顏色來顯示了。
經(jīng)過上面說了那么多,對于修改模板的時候需要注意或者可以應(yīng)用到的應(yīng)該讓您了解不少了!
希望對您有幫助,Enjoy It!
相關(guān)文章
PHP基于遞歸實現(xiàn)的約瑟夫環(huán)算法示例
這篇文章主要介紹了PHP基于遞歸實現(xiàn)的約瑟夫環(huán)算法,結(jié)合實例形式較為詳細的分析了約瑟夫環(huán)問題與php使用遞歸算法的解決方法,需要的朋友可以參考下2017-08-08
php使用mysqli和pdo擴展,測試對比連接mysql數(shù)據(jù)庫的效率完整示例
這篇文章主要介紹了php使用mysqli和pdo擴展,測試對比連接mysql數(shù)據(jù)庫的效率,結(jié)合完整實例形式對比分析了php分別使用mysqli和pdo擴展連接mysql數(shù)據(jù)庫的執(zhí)行時間,需要的朋友可以參考下2019-05-05
深思 PHP 數(shù)組遍歷的差異(array_diff 的實現(xiàn))
還是部門無聊的考題,不過這次考的是 PHP 的能力。題目如下: 給你兩個分別有 5000 個元素的數(shù)組,計算他們的差集 -- 說白了也就是用 PHP 和你認為最好的算法實現(xiàn) array_diff 的算法。初次接到這個題目,我發(fā)現(xiàn)這非常的簡單,于是按照以往的經(jīng)驗“隨便”寫了一個:2008-03-03
將PHP從5.3.28升級到5.3.29時Nginx出現(xiàn)502錯誤
這篇文章主要介紹了將PHP從5.3.28升級到5.3.29時Nginx出現(xiàn)502錯誤,需要的朋友可以參考下2015-05-05
PHP下通過file_get_contents的代理使用方法
2011-02-02
php數(shù)組函數(shù)序列之prev() - 移動數(shù)組內(nèi)部指針到上一個元素的位置,并返回該元素值
prev() 函數(shù)把指向當前元素的指針移動到上一個元素的位置,并返回該元素值。如果內(nèi)部指針已經(jīng)超過數(shù)組的第一個元素之前,函數(shù)返回 false2011-10-10

