Web_PHP_DedeCMS_如何使list標籤支持noflag屬性?

需求:因爲要在列表頁中要用arclist 標籤調用幾篇文章放到頭部。所以下面的list標籤肯定有重複的,所以要用到noflag屬性,也就是上面用arclist標籤調用的,下面都不要出現。但是我們看下織夢的手冊,list標籤是不支持這個屬性的。

適用範圍:僅列表模板 list_*.htm
基本語法:
  {dede:list col='' titlelen='' infolen='' imgwidth='' imgheight='' listtype='' orderby=''
  pagesize='' orderway=''}{/dede:list}
參數說明:
  col='' 內容列數;
  titlelen='' 標題長度;
  infolen='' 內容摘要長度;
  imgwidth='' 縮略圖寬;
  imgheight='' 縮略圖高;
  orderby='' 排序方式,有效的排序方式有 senddate、pubdate、id、click、lastpost、postnum ,默認爲 sortrank,pagesize='20' 分頁大小;

但是我們知道arclist標籤是支持這個屬性的,然後我們完全可以仿照arclist標籤的文件/include/taglib/arclist.lib.php來處理下list標籤的那個類文件,也就是/include/arc.listview.class.php。

實現步驟:
1. 要在這個類(/include/arc.listview.class.php)裏面定義一下這個變量:在大約45行左右加入這個變量的定義;

這裏解釋下,知道語法的都知道var 是php4時用來定義的,不寫或者用public 都是可以的。


2.在構造函數中也要定義一下:大約72行左右加入;


3.在解析模板裏面的函數裏也要增加一下,解析的時候增加這個條件:大約在621行;


4.獲得一個單列的文檔列表的函數裏面加上這個條件:大約在694行;


5.在下面的排序方式中增加這段代碼。注意這裏是完整的代碼都要加上,如果你不會或者說自己懶得敲,你可以去arclist標籤那裏複製,是哪個文件我上面已經說過。

這裏我解釋下,因爲我們填寫noflag屬性的時候,有時候不止寫一個比如noflag='c,h'。所以這裏就是分割下然後循環下把這幾個屬性都加在這個sql語句中。我們知道不管怎麼做最後都是要用sql查詢 然後return。


6.要在sql語句中加上我們寫的這個關於noflag的:


7.還是sql語句:

弄好,到這裏就已經結束,你可以試下在list標籤中加上這個試一下是不是好用。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章