織夢中channelartlist、channel 標簽不支持limit屬性,下面教大家如何使這兩個標簽也支持limit屬性。
方法/步驟
1、給channelartlist標簽 加limit屬性
channelartlist標簽在5.7中只有row屬性,如果是需要頻道頁面樣式比較獨特的網站,不能夠滿足循環調用的需求,所以,給它加上limit屬性就好了。
給這個標簽加limit屬性也非常容易,dedecms的程序優點就在于擴展。
打開include/taglib/channelartlist.lib.php文件,約62行處,在下面加一行
if(empty($totalnum)) $totalnum = 20;
if(!empty($limit)) $totalnum = $limit;
這樣,如果有limit屬性的話,就可以用limit屬性來控制調用的記錄數量了。
2、給channel標簽 加limit屬性
最近開發一個網站發現我們的DEDECMS系統在channel 中不能使用limit,很是著急,上網搜索也沒有找到解決方案。沒有辦法,只好自己研究,其實很簡單,分享出來給大家。
首先請大家打開include/taglib/channel.lib.php文件,然后找到
1.在$line = empty($row) ? 100 : $row;
在它的下面加上下面代碼
//limit條件
$limit = trim(eregi_replace('limit','',$limit));if($limit!=''){$limit = " $limit ";}else{$limit = " limit 0,$line ";} |
2.然后把下面的
if($type=='top'){$sql = "SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepathFrom `dede_arctype` WHERE reid=0 And ishidden<>1 order by sortrank asc limit 0, $line ";}else if($type=='son'){if($typeid==0) return '';$sql = "SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepathFrom `dede_arctype` WHERE reid='$typeid' And ishidden<>1 order by sortrank asc limit $limit ";}else if($type=='self'){if($reid==0) return '';$sql = "SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepathFROM `dede_arctype` WHERE reid='$reid' And ishidden<>1 order by sortrank asc limit 0, $line ";}將limit 0, $line 改成 limit $limit3.使用方法:{dede:channel type='son' typeid=68 limit='0,6'}[field:typename/]{/dede:channel} |
以上解決方案發現一個問題:就是后面的channel標簽都需要加limit才行,不然輸不出。



















