程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> Discuz 模板語句分析及知識技巧

Discuz 模板語句分析及知識技巧

日期:2017/1/10 19:38:53      編輯:PHP綜合

  一、模板 調用
比如在某個模板中,想調用另一個模板中的內容,可以用下面的語句:
{template xxx}
假設,建立了一個新模板名字叫 "abc.htm" ,在後台 模板編輯時只會顯示為 "acb",需要在 index 中調用它,那麼就在index 中適當位置加入 {template abc}
那麼就會自動代用它。

相關實例: index 模板中,最頂有 {template header},最底有 {template footer}
相關疑問:
那麼在這個 abc 模板中需要有 <html><body></body></html> 嗎?
不需要的!想要顯示什麼,就寫什麼,因為它只是整個網頁的一部分! <html><body></body></html> 都已經在header和footer模板中了。


二、固定參數
$seohead                        --- 後台設置 的頭部信息
$charset                        --- config.inc.php中設置語言字符集,必不可少,不能刪除!
$extrahead                        --- 控制論壇 自動跳轉參數,必不可少,不能刪除!
{eval updatesession();}                --- 更新論壇 session 表的參數,必不可少,不能刪除!
{eval output();}                --- 結束論壇輸出,必不可少,不能刪除!

以上的參數以Discuz ! 4.0為准,這些參數會因應不同版本而有所不同!
還有一些 $xxx 的也是一些參數如非插件 作者或程序 開發請勿亂修改!


三、數據 判斷
   1、在模板中會經常見到<!--{if xx}-->xxx<!--{else}-->xx<!--{/if}-->的語句。
      這些並非普通HTML 中的注釋,而是Discuz!特有的模板判斷語法,就好比php 或者其他 語法中的 if,else,then等等。
      通過這些語法,能夠達到不同的模板效果 。

相關實例:
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}--> --- 結束了這個判斷(判斷2)

        |  <a href="memcp.php">{lang memcp}</a>

        <!--{if in_array($adminid, array(1,2,3))}--> --- 如果$adminid在1,2,3這三個范圍內,即顯示下面資料,否則不顯示(判斷3)
                | <a href="admincp.php" target="_blank">{lang admincp}</a>
        <!--{/if}--> --- 結束了這個判斷(判斷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}--> --- 結束這個判斷(判斷1)

2、在模板中會經常見到<!--{loop xx}-->xxx<!--{/loop}-->的語句。
      這個為循環語句,直到數據輸出完畢,就會自動結束。
      通過這些語法,能夠達到把同一系列的資料進行循環顯示效果。

相關實例:
header 模板中

復制內容到剪貼板
代碼:
<!--{loop $plugins['links'] $plugin}--> --- 循環1開始,判斷插件
        <!--{loop $plugin $module}--> --- 循環2開始,判斷插件模組
             <!--{if !$module['adminid'] || ($module['adminid'] && $adminid > 0 && $module['adminid'] >= $adminid)}-->| $module[url] <!--{/if}-->
        <!--{/loop}--> --- 結束循環2
<!--{/loop}--> --- 結束循環1

四、語言調用
在模板中,經常會看到{lang xxx}這樣的語句。它就是調用語言包中的詞語用的。
而在模板中會調用的大部分都是  templates.lang.php 的。
下面看看語言包的結構:

復制內容到剪貼板
代碼:
<?  -- 宣布php語言開始
$language = array
(                        --- 以上宣布語言包定義開始

        'title' => '標題',
        調用字符    顯示文字
        'never' => '從未',
        調用字符    顯示文字
        ....
); --- 宣告語言包定義結束
?>  -- 宣布php語言結束

相關實例:
假設,我們增加一個語言調用,在
'title' => '標題',
上一行添加
'abc' => '這是測試語言調用',
最後的 , 是比不可少的,還有調用字符和顯示文字,都必須使用 '' 引起。
增加以後,到模板中,就能調用它,模板中寫{lang abc}
那麼顯示出來就直接顯示: 這是測試語言調用


特別注意: 增加語言或修改語言包後,必須更新緩存哦!


五、風格 參數調用
在模板中常見到{XXXXX}的語句。{}中的必須是大寫。

這些都是調用風格配色方案中的參數。您可以可以自己添加,方法 如下:
  1, 進入 界面風格 -> 界面風格 -> 您要添加參數的風格 點 [詳情]
  2, 進入後最下面,有兩欄可以填寫,一個是變量,一個是替換內容

相關實例:
   變量寫 FOOTERCOLOR (注意必須使用大寫)
   替換內容寫 #003399
提交後,修改模板,模板中寫<font color="{FOOTERCOLOR}">測試風格自定義變量</font>
那麼出來的效果,這個 測試風格自定義變量 就會按照填寫的替換內容的顏色來顯示了。
經過上面說了那麼多,對於修改模板的時候需要注意或者可以應用到的應該讓您了解不少了!

希望對您有幫助,Enjoy It!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved