Discuz! 的模板采用近似 PHP 表達式的語法,支持的元素如下:
<!--{if expr1}--> |
這 是一個典型的條件模板,當條件 expr1 為真時,顯示模板 statement1 內容,否則當 expr2 為真時,顯示模板 statement2 內容,否則顯示模板 statement3 的內容。如同其他語言中的條件控制一樣,其中 <!–{elseif expr}–> 和 <!–{else} –> 是非必須的。
<!--{loop $array $value}--> |
相當于 PHP 的數組循環(huán)語句:
foreach($array as $value) { |
<!--{loop $array $key $value}--> |
相當于 PHP 的數組循環(huán)語句:
foreach($array as $key => $value) { |
邏 輯元素包圍符在 { } 外面包含了 html 的注釋符號 <!– –>,除了為了和信息元素相區(qū)別外,也方便了使用 Dreamweaver 和 Frontpage 之類工具編輯模板的用戶。因邏輯元素會被識別為 html 的注釋而不被顯示,對于絕大多數用戶,邏輯元素中的內容是完全不需要修改的,甚至修改錯一個字符就可能引起錯誤信息和整個系統無法運行。因此通常您在修改 模板的時候,不要修改模板的邏輯信息,更不要將邏輯信息內部元素(如 <!–{else}–> 等)的前后位置作以修改,否則可能會導致錯誤。如果您的模板被不慎修改損壞,請立即用原標準默認模板覆蓋,即可恢復。
對于高手而言,實際上外部的 <!– –> 是可以省略不寫的,可以用于某些元素在模板中的定位,但強烈建議普通用戶不要輕易嘗試。
我 們所推薦的模板修改方法:通過普通編輯器手工書寫 html 或通過 Dreamweaver 或 Frontpage 修改。但是修改需切記,同一邏輯元素內或嵌套中元素的位置和內容切勿修改,即通常情況下,您不能把 <!–{}–> 包圍的內容單獨的移動,更不能刪除。但是整個最外部邏輯結構是可以移動或刪除的。
如果修改后模板所在頁面在輸出類似如下的錯誤信息 Parse error: parse error, unexpected ‘}’ in /home/username/forums/forumdata/templates/1_login.tpl.php on line 6,說明模板中出現了無法匹配,或格式錯誤的邏輯元素,請仔細檢查是否有元素不對應,沒有結束或嵌套損壞,格式錯誤的現象,必要時可以恢復原始模板來解決 問題。
Discuz! 提供了方便的界面打包程序,前面已對其格式做了介紹,將導出信息的內容粘貼到 系統設置 中 風格方案 中的 導入界面方案 中,執(zhí)行即可。程序會自動解析數據內容,恢復相關的界面設置,自定義替換變量和所需的模板設置。如果被導出界面使用了非默認模板,必須將 ./templates 目錄屬性設置為 777,以便導入程序自動建立模板記錄和文件夾。
定義變量說明
<?exit?>
<!–{eval $i=2}–>
<!–{if $i==1}–>
123
<!–{/if}–>
<!–{block name=”spaceblog” parameter=”notype/1/order/i.dateline,i.lastpost/limit/0,14/cachetime/900 /cachename/newti/tpl/data”}–><!–最新日志–>
<!–{eval $i=0;}–>
<!–{loop $_SBLOCK['newti'] $value}–>
<!–{if $i % 2 == 0}–>//如果i除以2的余數等于0
<div class=”listbg”><!–{else}–>
<div class=”listbg2″><!–{/if}–>
· [<span class="listA">$value[typename]</span>]<a
class=”listA” href=”$value[url]” title=”$value[subjectall]” target=”_blank”>$value[subject]</a></div>
<!–{eval $i++;}–>
<!–{/loop}–>
<!–{eval for ($i=1; $i<=5; $i++){ }–>
<!–{eval echo “Hello World!<br />”;}–>
<!–{eval}}–>
聯系客服