织梦给Channelartlist和channel加limit属性

织梦CMS 6个月前 (02-09) 34次浏览 已收录 0个评论

织梦中 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,sitepath
From `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,sitepath
From `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,sitepath
FROM `dede_arctype` WHERE reid='$reid' And ishidden<>1 order by sortrank asc limit 0, $line ";
}

将 limit 0,$line 改成 limit $limit

3)使用方法:

{dede:channel type='son' typeid=68 limit='0,6'}
[field:typename/]
{/dede:channel}

以上解决方案发现一个问题:就是后面的 Channel 标签都需要加 limit 才行,不然输不出。


本文版权归湖南 SEO所有丨如需转载请注明文章出处
原文地址:https://www.wangxiaoyou.com/2913.html
喜欢 (0)
[736035566@qq.com]
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址