常言笑的家

          Spring, Hibernate, Struts, Ajax, RoR

          JIEQI CMS模板制作必讀(JIEQI CMS模板 - 2.賦值變量形式)

          11.JIEQI CMS模板 - 2.賦值變量形式
          二、賦值變量形式

              1、任何變量必須是 $ 符號(hào)開頭的一個(gè)只能包含英文數(shù)字和下劃線的字符串,如 {?$my_var?}。
             
              例子:
          ---------------------------------------------------------------------
              程序:
              $jieqiTpl->assign('var', 'test string');

              模板:
              {?$var?}

              輸出:
              test string
          ---------------------------------------------------------------------

              2、變量如果是數(shù)組的話,模板里面可以這樣表示,如 {?$ary['key']?}、{?$ary['0']['1']?}。方括號(hào)里面變量要加上單引號(hào)。另外還支持一種表示方法,上面的兩個(gè)變量可寫成 {?$ary.key?}、{?$ary.0.1?}。一般建議使用前一種,比較符合編程規(guī)范。
             
              例子:
          ---------------------------------------------------------------------
              程序:
              $ary = array('a'=>'str_a', 'b'=>'str_b', 'c'=>array('0'=>'c_0', '1'=>'c_1'));
              $jieqiTpl->assign('ary', $ary);

              模板:
              {?$ary['a']?} | {?$ary.b?} | {?$ary['c']['1']

              輸出:
              str_a | str_b | c_1
          ---------------------------------------------------------------------
                  
              3、如果變量是數(shù)組時(shí)候,里面的鍵值也是變量,則可以寫成 {?$ary[$key]?}

              例子:
          ---------------------------------------------------------------------
              程序:
              $key = 'b';
              $ary = array('a'=>'str_a', 'b'=>'str_b');
              $jieqiTpl->assign('key', $key);
              $jieqiTpl->assign('ary', $ary);

              模板:
              {?$ary[$key]?}

              輸出:
              str_b

          12.JIEQI CMS模板 - 3.變量調(diào)節(jié)器
          三、變量調(diào)節(jié)器

              模板變量支持多種調(diào)節(jié)函數(shù)來改變輸出效果,模板標(biāo)簽格式為 {?$var|function:var1:var2?}
              變量名之后用 |分隔,然后是函數(shù)名字,再后面是函數(shù)的參數(shù),每個(gè)參數(shù)用 : 分隔,參數(shù)是字符串時(shí)候建議用雙引號(hào)來包括。
              常用變量調(diào)節(jié)器如下:
             
              1、truncate - 截取固定長度字符串,參數(shù)一(必要):截取后長度,參數(shù)二:附加字符串。
              例子:
          ---------------------------------------------------------------------
              程序:
              $jieqiTpl->assign('var', '123456789');

              模板:
              {?$var|truncate:5?} | {?$var|truncate:5:".."?}

              輸出:
              12345 | 123..
          ---------------------------------------------------------------------

              2、subdirectory - JIEQI CMS 里面專用于生成子目錄名字的函數(shù),針對(duì)數(shù)字的處理,無參數(shù)。輸出格式類似 "/12",其中"/" 是表示開始一個(gè)子目錄,"12"是子目錄名字。
              例子:
          ---------------------------------------------------------------------
              程序:
              $jieqiTpl->assign('id', 3456);

              模板:
              /files/article/html{?$id|subdirectory?}/{$id?}/index.html

              輸出:
              /files/article/html/3/3456/index.html
             
          ---------------------------------------------------------------------

              3、date - 把數(shù)字類型的時(shí)間格式化成字符串,參數(shù)一:格式化字符串
              格式化字符含義主要有以下幾個(gè):
              Y - 四位的年份,如 2007
              y - 二位年份,如 07
              m - 二位月份,不足補(bǔ)零,從 01 到 12
              n - 月份,不補(bǔ)零,從 1 到 12
              d - 二位的天數(shù),不足補(bǔ)零,從 01 到 31
              j - 天數(shù), 不補(bǔ)零, 從 1 到 31
              H - 二位24小時(shí)格式,從 00 到 24
              h - 二位12小時(shí)格式,從 00 到 12
              G - 24小時(shí)格式,從 0 到 24
              g - 12 小時(shí)格式,從 0 到 12
              i - 二位分?jǐn)?shù),從 00 到 59
              s - 二位秒數(shù),從 00 到 59

              例子:
          ---------------------------------------------------------------------
              程序:
              $jieqiTpl->assign('time', 1198226131);

              模板:
              {?$time|date:"Y-m-d H:i:s"?}

              輸出:
              2007-12-21 16:35:31
          ---------------------------------------------------------------------

              4、str_replace - 字符串替換,參數(shù)一:查找的字符串,參數(shù)二:替換為字符串
              例子:
          ---------------------------------------------------------------------
              程序:
              $jieqiTpl->assign('var', 'http://www.jieqi.com');

              模板:
              {?$var|str_replace:"www":"demo"?}

              輸出:
              http://demo.jieqi.com
          ---------------------------------------------------------------------

              5、urlencod,urldecode - 分別是把字符串進(jìn)行url編碼和解碼,于在url傳遞變量情況,無參數(shù)
              例子:
          ---------------------------------------------------------------------
              程序:
              $jieqiTpl->assign('var', 'http://www.jieqi.com');

              模板:
              {?$var|urlencode?}

              輸出:
              http%3A%2F%2Fwww.jieqi.com
          ---------------------------------------------------------------------

              6、strlen - 計(jì)算字符串長度,無參數(shù)
              例子:
          ---------------------------------------------------------------------
              程序:
              $jieqiTpl->assign('var', 'abcd');

              模板:
              {?$var|strlen?}

              輸出:
              4
          ---------------------------------------------------------------------

              7、default - 變量為空的時(shí)候默認(rèn)輸出的值,參數(shù)一:默認(rèn)值
              例子:
          ---------------------------------------------------------------------
              程序:
              $jieqiTpl->assign('var', 'abcd');
              $jieqiTpl->assign('var1', '');


              模板:
              {?$var|default:"empty"?} | {?$var1|default:"empty"?}

              輸出:
              abcd | empty
          ---------------------------------------------------------------------
             
              8、sprintf - 格式化輸出,參數(shù)一:格式化規(guī)則
              本函數(shù)參數(shù)是一個(gè)字符串,里面可以是任意要輸出的字符串,用 % + 類型標(biāo)志 來表示當(dāng)前變量格式
              常用格式為
              %d - 表示數(shù)字類型
              %06d - 表示顯示6位長度的數(shù)字類型,位數(shù)補(bǔ)足前面補(bǔ)0
              %s - 表示字符串類型

              例子:
          ---------------------------------------------------------------------
              程序:
              $jieqiTpl->assign('var', 123);


              模板:
              {?$var|sprintf:"%06d"?} | {?$var1|sprintf:"The number is %s"?}

              輸出:
              000123 | The number is 123

          13.JIEQI CMS模板 - 4.判斷語句
          四、判斷語句

              模板里面的斷語句主要由 {?if ...?},{?else?}, {?elseif ...?} 和 {?/if?} 這幾個(gè)標(biāo)記配合比較語句組成。
              一個(gè)完整判斷語句由 {?if ...?} 開頭 {?/if?} 結(jié)束,比較符號(hào)包括 ==(等于),!=(不等于),>(大于),<(小于),<=(小于等于),>=(大于等于)。
              判斷語句里面支持簡單的四則運(yùn)算,包括 +(加),-(減), *(乘), /(除), %(取余)。

              例子:
          ---------------------------------------------------------------------
              程序:
              $jieqiTpl->assign('var', 50);

              模板:
              {?if $var > 40?}big{?else?}small{?/if?}
              {?if $var % 5 == 0?}yes{?else?}no{?/if?}

              輸出:
              big
              yes

          15.JIEQI CMS模板 - 5.循環(huán)語句
          五、循環(huán)語句

              循環(huán)語句由 {?section name=i loop=$var columns=1?} 開頭,{?/section?} 結(jié)束。
              name=i 的 i 是循環(huán)時(shí)候的中間變量名(名稱可以自由設(shè)置,不能和其他變量同名)。
              loop=$var 的 $var 是實(shí)際內(nèi)容數(shù)組。
              columns=1 的 1 是指循環(huán)的時(shí)候分成幾列,可以不寫這部分,默認(rèn)為一列。這個(gè)參數(shù)主要用于生成多行多列的表格,當(dāng)這個(gè)參數(shù)大于1的時(shí)候,程序會(huì)自動(dòng)把循環(huán)次數(shù)補(bǔ)足成列的倍數(shù)。比如內(nèi)容數(shù)組一共有6個(gè)值,默認(rèn)循環(huán)六次,如果要生成四列的表格,那么循環(huán)就會(huì)變成8次,這樣正好生成4列2行的表格。
             
              在實(shí)際使用中,name 后面的變量也會(huì)被轉(zhuǎn)換成一個(gè)數(shù)組,在每次循環(huán)里面會(huì)相應(yīng)賦值。如前面的寫法,模板里面變量標(biāo)簽是 $i 的一個(gè)數(shù)組,包含以下內(nèi)容

              固定參數(shù)部分:
              $i['columns'] - 當(dāng)前循環(huán)是幾列的模式。
              $i['count']   - 內(nèi)容數(shù)組的單元個(gè)數(shù)
              $i['addrows'] - 多列的時(shí)候,附加的循環(huán)次數(shù)
              $i['loops']   - 總的循環(huán)次數(shù)

              循環(huán)變量部分:
              $i['key']     - 當(dāng)前數(shù)組單元的鍵值。
              $i['value']   - 當(dāng)前數(shù)組單元內(nèi)容
              $i['index']   - 循環(huán)的內(nèi)部序號(hào),從0開始,逐個(gè)遞增
              $i['order']   - 循環(huán)的排序,從1開始,逐個(gè)遞增
              $i['row']     - 當(dāng)前是第幾行,從1開始
              $i['column']  - 當(dāng)前是第幾列,從1開始
              $i['append']  - 當(dāng)前循環(huán)是不是附加循環(huán),0 表示否,1 表示是

              例子1:單列循環(huán)
          ---------------------------------------------------------------------
              程序:
              $var=array('a', 'b', 'c', 'd', 'e');
              $jieqiTpl->assign('var', $var);

              模板:
              {?section name=i loop=$var?}
              ($var[$i['key']])
              {?/section?}

              輸出:
              (a)(b)(c)(d)(e)

              備注:上面 $var[$i['key']],$i['value'] 這兩種方式表達(dá)的值是一樣的,另外兼容老版的表達(dá)方式 $var[i]
          ---------------------------------------------------------------------

          例子2:多列循環(huán)
          ---------------------------------------------------------------------
              程序:
              $var=array('a', 'b', 'c', 'd', 'e');
              $jieqiTpl->assign('var', $var);

              模板:
              <table width="100%" border="1">
              {?section name=i loop=$var columns=3?}
              {?if $i['column'] == 1?}<tr>{?/if?}
              <td>{?$i['order']?}.{?if $i['append'] == 0?}{?$var[$i['key']]?}{?else?}&nbsp;{?/if?}</td>
              {?if $i['column'] == $i['columns']?}</tr>{?/if?}
              {?/section?}
              </table>

              輸出:
              <table width="100%" border="1">
              <tr>
              <td>1.a</td>
              <td>2.b</td>
              <td>3.c</td>
              </tr>
              <tr>
              <td>4.d</td>
              <td>5.e</td>
              <td>6.&nbsp;</td>
              </tr>
              </table>

              備注:
              {?section name=i loop=$var columns=3?} 開始循環(huán),按照3列的模式生成
              {?if $i['column'] == 1?}<tr>{?/if?} 每行開始第一列時(shí)候,前面加上 <tr> 標(biāo)記
              {?if $i['column'] == $i['columns']?}</tr>{?/if?} 每行到最后一列時(shí)候,后面加上 </tr> 標(biāo)記
              {?$i['order']?} 數(shù)字序號(hào),從1開始遞增
              {?if $i['append'] == 0?}{?$var[$i['key']]?}{?else?}&nbsp;{?/if?} 如果不是附加字段,則直接輸出內(nèi)容,否則輸出 &nbsp;

          16.JIEQI CMS模板 - 6.頁面顯示相關(guān)配置
          六、頁面顯示相關(guān)配置

              JIEQI CMS 里面一個(gè)頁面通常可以有三部分組成,頁面框架、主體內(nèi)容和一定數(shù)量的區(qū)塊。

              1、頁面框架用于確定整體頁面格局,主要包含了頁面頂部內(nèi)容(如:logo、banner、導(dǎo)航鏈接)、頁面底部內(nèi)容(如:網(wǎng)站聲明)、以及中間內(nèi)容部分的結(jié)構(gòu)(如:分成左中右三列)。系統(tǒng)默認(rèn)所有的動(dòng)態(tài)程序頁面輸出都使用同一個(gè)框架模板,這樣的好處是整站風(fēng)格統(tǒng)一,并且比較容易修改。
              默認(rèn)的框架模板在網(wǎng)站的 /themes 目錄下,每個(gè)子目錄表示一種網(wǎng)站風(fēng)格,系統(tǒng)使用那種風(fēng)格,在后臺(tái)系統(tǒng)定義里面把風(fēng)格名稱設(shè)置成子目錄名即可(如:jieqidiv)。
              一套標(biāo)準(zhǔn)的風(fēng)格模板主要包含以下幾個(gè)文件:
              theme.html    - 頁面框架模板,適用整個(gè)系統(tǒng),修改網(wǎng)站風(fēng)格也主要是修改本文件。
              style.css     - 通用的css,在theme.html里面調(diào)用的,也是整站通用。
              jumppage.html - 程序跳轉(zhuǎn)頁面模板,比如用戶登錄時(shí)候,那個(gè)跳轉(zhuǎn)過渡的小窗口。
              msgbox.html   - 內(nèi)容提示方塊模板,通常這個(gè)提示信息是指插入到其他頁面的。
              msgwin.html   - 內(nèi)容提示頁面模板,跟msgbox.html不同,這是一個(gè)完整的提示頁面。
              msgerr.html   - 錯(cuò)誤信息提示模板,也是一個(gè)完整的提示頁面。

              2、主體內(nèi)容部分是指本頁面主要顯示的數(shù)據(jù),通常用一個(gè)單獨(dú)的模板。如用戶登錄后,打開個(gè)人資料頁面,個(gè)人資料的表格就是主體內(nèi)容部分,頭尾都套用頁面框架,而左側(cè)的“用戶設(shè)置”、“短消息”、“工具箱”則是本頁調(diào)用的區(qū)塊。
              主體內(nèi)容模板,系統(tǒng)功能部分模板就在網(wǎng)站的 /templates 目錄下,而其他模塊的模板在 /modules/模塊名/templates 目錄,如小說連載模塊是 /modules/article/templates, 論壇模塊是 、/templates/forum/templates。
              內(nèi)容模板的命名規(guī)則基本和對(duì)應(yīng)的程序相關(guān)聯(lián),后綴名是 .html
              如:
              /userdetail.php  對(duì)應(yīng)模板 /templates/userdetail.html
              /modules/article/articleinfo.php 對(duì)應(yīng)模板 /modules/article/templates/articleinfo.html

              3、區(qū)塊是一些內(nèi)容小方塊,如果用戶登錄區(qū)塊,排行榜區(qū)塊。所有區(qū)塊都允許在網(wǎng)站任何頁面調(diào)用。在一個(gè)頁面調(diào)用區(qū)塊主要有三種模式:
                 3.1 標(biāo)準(zhǔn)的框架 + 區(qū)塊配置文件:這種是默認(rèn)的顯示模式,框架部分使用系統(tǒng)默認(rèn)的,而一個(gè)頁面顯示幾個(gè)區(qū)塊和區(qū)塊放在什么位置皆在區(qū)塊配置文件之中。調(diào)整區(qū)塊位置和區(qū)塊數(shù)量只需要調(diào)整這個(gè)配置文件。
                 3.2 定制的頁面模板 + 區(qū)塊配置文件:這種模式調(diào)用哪幾個(gè)區(qū)塊仍舊在區(qū)塊配置文件中,而區(qū)塊顯示位置由模板里面直接控制,通常定制頁面就用這種方法。
                 3.3 直接在模板中設(shè)置區(qū)塊及參數(shù),不使用區(qū)塊配置文件:這種就相當(dāng)于把模板和區(qū)塊配置合并一起了,任何調(diào)整都修改這個(gè)模板。

          17.JIEQI CMS模板 - 7.頁面定制(一)
          七、頁面定制
              1、定制一個(gè)頁面,不使用系統(tǒng)框架,通常用于設(shè)計(jì)一個(gè)獨(dú)立的頁面,不使用系統(tǒng)默認(rèn)的導(dǎo)航,但是可能需要系統(tǒng)變量或者調(diào)用系統(tǒng)區(qū)塊。

              主要程序部分如下:
              <?php
          define('JIEQI_MODULE_NAME', 'system');  //定義本頁面屬于那個(gè)模塊

          require_once('global.php'); //包含通用程序,每個(gè)頁面必須高喊

          jieqi_getconfigs(JIEQI_MODULE_NAME, 'blocks'); //包含區(qū)塊參數(shù),如果需要在頁面調(diào)用區(qū)塊的話
          //本函數(shù)第一個(gè)書模塊名,第二個(gè)是區(qū)塊配置文件名,配置文件皆在 /configs 目錄下,如上例對(duì)應(yīng)的文件是 /configs/blocks.php

          $jieqi_page_template=JIEQI_ROOT_PATH.'/templates/custom.html'; //設(shè)置該頁面的模板文件

                  include_once(JIEQI_ROOT_PATH.'/header.php'); //包含頁頭處理
                  
                  $jieqiTpl->assign('jieqi_indexpage',1);  //設(shè)置首頁標(biāo)志,不是首頁請(qǐng)注釋本語句,便于模板里面可以判斷,給模板其他參數(shù)賦值也用這個(gè)方法

                  include_once(JIEQI_ROOT_PATH.'/footer.php');  //包含頁尾處理
               ?>

          模板部分可以使用系統(tǒng)標(biāo)簽,如 {?$jieqi_url?}

               也可以在載入?yún)^(qū)塊配置的前提下,在模板適當(dāng)位置加入顯示區(qū)塊的標(biāo)簽,標(biāo)簽寫法如下:

               區(qū)塊的標(biāo)題調(diào)用方式為 {?$jieqi_pageblocks['bidXXX']['title']?} 里面的 XXX 是指實(shí)際的區(qū)塊序號(hào),可以在區(qū)塊管理里面看到,或者在區(qū)塊配置文件中對(duì)應(yīng)的 bid。
               
               區(qū)塊內(nèi)容的調(diào)用方式為 {?$jieqi_pageblocks['bidXXX']['content']?} 規(guī)范跟標(biāo)題相同。

          posted on 2009-09-06 23:50 常言笑 閱讀(1157) 評(píng)論(0)  編輯  收藏


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           

          My Links

          Blog Stats

          常用鏈接

          留言簿(5)

          隨筆分類

          隨筆檔案

          搜索

          積分與排名

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 克山县| 丹寨县| 顺平县| 周至县| 揭东县| 雅江县| 红原县| 西峡县| 东乡县| 两当县| 嘉祥县| 迁安市| 麻阳| 进贤县| 肥东县| 新沂市| 资兴市| 揭阳市| 都江堰市| 兰坪| 肥东县| 沙湾县| 共和县| 合江县| 华容县| 准格尔旗| 皋兰县| 理塘县| 太湖县| 丹凤县| 平阳县| 余江县| 阿鲁科尔沁旗| 资源县| 玉屏| 临海市| 通城县| 大渡口区| 华亭县| 三门县| 榆树市|