常言笑的家

          Spring, Hibernate, Struts, Ajax, RoR

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

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

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

              模板:
              {?$var?}

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

              2、變量如果是數組的話,模板里面可以這樣表示,如 {?$ary['key']?}、{?$ary['0']['1']?}。方括號里面變量要加上單引號。另外還支持一種表示方法,上面的兩個變量可寫成 {?$ary.key?}、{?$ary.0.1?}。一般建議使用前一種,比較符合編程規范。
             
              例子:
          ---------------------------------------------------------------------
              程序:
              $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、如果變量是數組時候,里面的鍵值也是變量,則可以寫成 {?$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.變量調節器
          三、變量調節器

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

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

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

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

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

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

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

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

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

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

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

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

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

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

              模板:
              {?$var|urlencode?}

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

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

              模板:
              {?$var|strlen?}

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

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


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

              輸出:
              abcd | empty
          ---------------------------------------------------------------------
             
              8、sprintf - 格式化輸出,參數一:格式化規則
              本函數參數是一個字符串,里面可以是任意要輸出的字符串,用 % + 類型標志 來表示當前變量格式
              常用格式為
              %d - 表示數字類型
              %06d - 表示顯示6位長度的數字類型,位數補足前面補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?} 這幾個標記配合比較語句組成。
              一個完整判斷語句由 {?if ...?} 開頭 {?/if?} 結束,比較符號包括 ==(等于),!=(不等于),>(大于),<(小于),<=(小于等于),>=(大于等于)。
              判斷語句里面支持簡單的四則運算,包括 +(加),-(減), *(乘), /(除), %(取余)。

              例子:
          ---------------------------------------------------------------------
              程序:
              $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.循環語句
          五、循環語句

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

              固定參數部分:
              $i['columns'] - 當前循環是幾列的模式。
              $i['count']   - 內容數組的單元個數
              $i['addrows'] - 多列的時候,附加的循環次數
              $i['loops']   - 總的循環次數

              循環變量部分:
              $i['key']     - 當前數組單元的鍵值。
              $i['value']   - 當前數組單元內容
              $i['index']   - 循環的內部序號,從0開始,逐個遞增
              $i['order']   - 循環的排序,從1開始,逐個遞增
              $i['row']     - 當前是第幾行,從1開始
              $i['column']  - 當前是第幾列,從1開始
              $i['append']  - 當前循環是不是附加循環,0 表示否,1 表示是

              例子1:單列循環
          ---------------------------------------------------------------------
              程序:
              $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'] 這兩種方式表達的值是一樣的,另外兼容老版的表達方式 $var[i]
          ---------------------------------------------------------------------

          例子2:多列循環
          ---------------------------------------------------------------------
              程序:
              $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?} 開始循環,按照3列的模式生成
              {?if $i['column'] == 1?}<tr>{?/if?} 每行開始第一列時候,前面加上 <tr> 標記
              {?if $i['column'] == $i['columns']?}</tr>{?/if?} 每行到最后一列時候,后面加上 </tr> 標記
              {?$i['order']?} 數字序號,從1開始遞增
              {?if $i['append'] == 0?}{?$var[$i['key']]?}{?else?}&nbsp;{?/if?} 如果不是附加字段,則直接輸出內容,否則輸出 &nbsp;

          16.JIEQI CMS模板 - 6.頁面顯示相關配置
          六、頁面顯示相關配置

              JIEQI CMS 里面一個頁面通常可以有三部分組成,頁面框架、主體內容和一定數量的區塊。

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

              2、主體內容部分是指本頁面主要顯示的數據,通常用一個單獨的模板。如用戶登錄后,打開個人資料頁面,個人資料的表格就是主體內容部分,頭尾都套用頁面框架,而左側的“用戶設置”、“短消息”、“工具箱”則是本頁調用的區塊。
              主體內容模板,系統功能部分模板就在網站的 /templates 目錄下,而其他模塊的模板在 /modules/模塊名/templates 目錄,如小說連載模塊是 /modules/article/templates, 論壇模塊是 、/templates/forum/templates。
              內容模板的命名規則基本和對應的程序相關聯,后綴名是 .html
              如:
              /userdetail.php  對應模板 /templates/userdetail.html
              /modules/article/articleinfo.php 對應模板 /modules/article/templates/articleinfo.html

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

          17.JIEQI CMS模板 - 7.頁面定制(一)
          七、頁面定制
              1、定制一個頁面,不使用系統框架,通常用于設計一個獨立的頁面,不使用系統默認的導航,但是可能需要系統變量或者調用系統區塊。

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

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

          jieqi_getconfigs(JIEQI_MODULE_NAME, 'blocks'); //包含區塊參數,如果需要在頁面調用區塊的話
          //本函數第一個書模塊名,第二個是區塊配置文件名,配置文件皆在 /configs 目錄下,如上例對應的文件是 /configs/blocks.php

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

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

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

          模板部分可以使用系統標簽,如 {?$jieqi_url?}

               也可以在載入區塊配置的前提下,在模板適當位置加入顯示區塊的標簽,標簽寫法如下:

               區塊的標題調用方式為 {?$jieqi_pageblocks['bidXXX']['title']?} 里面的 XXX 是指實際的區塊序號,可以在區塊管理里面看到,或者在區塊配置文件中對應的 bid。
               
               區塊內容的調用方式為 {?$jieqi_pageblocks['bidXXX']['content']?} 規范跟標題相同。

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


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          My Links

          Blog Stats

          常用鏈接

          留言簿(5)

          隨筆分類

          隨筆檔案

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 玉林市| 遂平县| 徐汇区| 津市市| 大庆市| 清苑县| 新昌县| 卓尼县| 万源市| 沙河市| 平江县| 丁青县| 佛坪县| 盐源县| 通榆县| 塔城市| 历史| 商城县| 高唐县| 山西省| 和顺县| 五家渠市| 青田县| 海林市| 招远市| 荣成市| 古蔺县| 泗洪县| 彭州市| 固始县| 平罗县| 长垣县| 衡东县| 上蔡县| 宜良县| 涞水县| 慈利县| 安乡县| 怀柔区| 武平县| 大英县|