加入收藏
您当前的位置:首页 > DedeCMS

如何给DedeCMS V5.7 SP1 channel 标签加上limit属性

时间:2014-10-21 19:11:43  来源:  作者:

我们设计网站时有时要在调用栏目的同时个性化栏目输出,如我们想将栏目分2显示, 这时如有limit属性,就查指定每栏从不同的栏目输出了。可DedeCMS的channel标签默认不支持limit属性, 我们来给DedeCMS V5.7 SP1的channel 标签加上limit属性。 打开标签文件include\taglib\channel.lib.php, 第一步, 找到: function lib_channel(&$ctag,&$refObj) { global $dsql; $attlist = “typeid|0,reid|0,row|500,col|1,type|son,currentstyle|,cacheid|”; 改成: function lib_channel(&$ctag,&$refObj) { global $dsql; $attlist = “typeid|0,reid|0,row|500,col|1,type|son,currentstyle|,cacheid|,limit|0“; 注意加上的黑体部分。 第二步,在: $innertext = $ctag->GetInnerText(); $line = empty($row) ? 100 : $row; 下边加如下代码: $limit = trim(eregi_replace(‘limit’,”,$limit)); if($limit!=”){ $limit = ” $limit “; }else{ $limit = ” limit 0,$line “; } 第三步,将下边的代码黑体部分: if($type==’top’) { $sql = “SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath From `#@__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,sitepath From `#@__arctype` WHERE reid=’$typeid’ And ishidden<>1 order by sortrank asc limit 0, $line “; } else if($type==’self’) { if($reid==0) return ”; $sql = “SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath FROM `#@__arctype` WHERE reid=’$reid’ And ishidden<>1 order by sortrank asc limit 0, $line “; } 修改成: if($type==’top’) { $sql = “SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath From `#@__arctype` WHERE reid=0 And ishidden<>1 order by sortrank asc limit $limit, $line “; } else if($type==’son’) { if($typeid==0) return ”; $sql = “SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath From `#@__arctype` WHERE reid=’$typeid’ And ishidden<>1 order by sortrank asc limit $limit, $line “; } else if($type==’self’) { if($reid==0) return ”; $sql = “SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath FROM `#@__arctype` WHERE reid=’$reid’ And ishidden<>1 order by sortrank asc limit $limit, $line “; } 第四步,将代码黑体部分: if($type==’son’ && $reid!=0 && $totalRow==0) { $sql = “SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath FROM `#@__arctype` WHERE reid=’$reid’ And ishidden<>1 order by sortrank asc limit 0, $line “; $dsql->SetQuery($sql); $dsql->Execute(); } 改成: if($type==’son’ && $reid!=0 && $totalRow==0) { $sql = “SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath FROM `#@__arctype` WHERE reid=’$reid’ And ishidden<>1 order by sortrank asc limit $limit, $line “; $dsql->SetQuery($sql); $dsql->Execute(); } 代码就修改完成。 使用方法: 如我们想调用1到40的40条栏目名称,可用: {dede:channel type=’top’ limit=’0′ row=’40′ } [field:typename/]
{/dede:channel} 如要调用从40开始的40条栏目名称,则代码是: {dede:channel type=’top’ limit=’39′ row=’40′ } [field:typename/]
{/dede:channel}

特别说明:本站部分资源来源网络,仅供学习与参考,请勿用于商业用途。转载请注明来自:www.phpld.cn PHPL中文网
上一篇:如何调用DEDECMS最新文章列表到首页?
下一篇:如何将DedeCMS栏目名称分3列显示?
推荐资讯
DedeCMS将data目录迁移到web根目录之外
DedeCMS将data目录迁移
相关信息
头条信息
热门信息