dedecmsCMS中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条件
01
$limit = trim(eregi_replace(
'limit'
,
''
,$limit));
02
03
if
($limit!=
''
){
04
05
$limit =
" $limit "
;
06
07
}
else
{
08
09
$limit =
" limit 0,$line "
;
10
11
}
2.然后把下面的
01
if
($
type
==
'top'
)
02
03
{
04
05
$sql = "SELECT
id
,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath
06
07
From `dede_arctype` WHERE reid=0 And ishidden<>1 order by sortrank asc limit 0, $line ";
08
09
}
else
if
($
type
==
'son'
)
10
11
{
12
13
if
($typeid==0)
return
''
;$sql = "SELECT
id
,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath
14
15
From `dede_arctype` WHERE reid=
'$typeid'
And ishidden<>1 order by sortrank asc limit $limit ";}
16
17
else
if
($
type
==
'self'
){
18
19
if
($reid==0)
return
''
;$sql = "SELECT
id
,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath
20
21
FROM `dede_arctype` WHERE reid=
'$reid'
And ishidden<>1 order by sortrank asc limit 0, $line ";
22
23
}
24
25
将limit 0, $line 改成 limit $limit
26
27
3.使用方法:
28
29
{dede:channel
type
=
'son'
typeid=68 limit=
'0,6'
}
30
31
[field:typename/]
32
33
{/dede:channel}
以上解决方案发现一个问题:就是后面的channel标签都需要加limit才行,不然输不出。
THE END