修改dede源码,让dede:channelartlist排除指定typeid
找到 \include\taglib\channelartlist.lib.php, 查找 $attlist
将
$attlist = 'typeid|0,row|20,cacheid|';
修改为:
$attlist = 'typeid|0,row|20,cacheid|,notypeid|0'; [此处添加了一个所要排除typeid的参数---notypeid]
查找:
$dsql->SetQuery("Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath from `dede_arctype` where $tpsql order by sortrank asc limit $totalnum");
在其前面添加(注意是在前面添加):
//否定指定ID
if($notypeid!=0) {
$tpsql = $tpsql."and not(id in($notypeid)) ";
}
模板调用:
{dede:channelartlist typeid ='114' notypeid='123,124,125,126,127,128'}
其中notypeid='123,124,125,126,127,128' 中的 123,124,125,126,127,128 为114的子栏目
修改后的channelartlist.lib.php
<?php
if
(!defined(
'DEDEINC'
))
exit
(
'Request Error!'
);
require_once
(DEDEINC.
'/arc.partview.class.php'
);
function
lib_channelartlist(&
$ctag
,&
$refObj
)
{
global
$dsql
,
$envs
,
$_sys_globals
;
//处理标记属性、innertext
$attlist
=
'typeid|0,row|20,cacheid|,notypeid|0'
;
FillAttsDefault(
$ctag
->CAttribute->Items,
$attlist
);
extract(
$ctag
->CAttribute->Items, EXTR_SKIP);
$innertext
= trim(
$ctag
->GetInnerText());
$artlist
=
''
;
//读取固定的缓存块
$cacheid
= trim(
$cacheid
);
if
(
$cacheid
!=
''
) {
$artlist
= GetCacheBlock(
$cacheid
);
if
(
$artlist
!=
''
)
return
$artlist
;
}
if
(
empty
(
$typeid
))
{
$typeid
= ( !
empty
(
$refObj
->TypeLink->TypeInfos[
'id'
]) ?
$refObj
->TypeLink->TypeInfos[
'id'
] : 0 );
}
if
(
$innertext
==
''
)
$innertext
= GetSysTemplets(
'part_channelartlist.htm'
);
$totalnum
=
$row
;
if
(
empty
(
$totalnum
))
$totalnum
= 20;
//获得类别ID总数的信息
$typeids
=
array
();
if
(
$typeid
==0 ||
$typeid
==
'top'
) {
$tpsql
=
" reid=0 And ispart<>2 And ishidden<>1 And channeltype>0 "
;
}
else
{
if
(!
ereg
(
','
,
$typeid
)) {
$tpsql
=
" reid='$typeid' And ispart<>2 And ishidden<>1 "
;
}
else
{
$tpsql
=
" id in($typeid) And ispart<>2 And ishidden<>1 "
;
}
}
//否定指定ID
if
(
$notypeid
!=0) {
$tpsql
=
$tpsql
.
"and not(id in($notypeid)) "
;
}
$dsql
->SetQuery("Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath
from `dede_arctype` where
$tpsql
order by sortrank asc limit
$totalnum
");
$dsql
->Execute();
while
(
$row
=
$dsql
->GetArray()) {
$typeids
[] =
$row
;
}
if
(!isset(
$typeids
[0]))
return
''
;
$GLOBALS
[
'itemindex'
] = 0;
$GLOBALS
[
'itemparity'
] = 1;
for
(
$i
=0;isset(
$typeids
[
$i
]);
$i
++)
{
$GLOBALS
[
'itemindex'
]++;
$pv
=
new
PartView(
$typeids
[
$i
][
'id'
]);
$pv
->Fields[
'typeurl'
] = GetOneTypeUrlA(
$typeids
[
$i
]);
$pv
->SetTemplet(
$innertext
,
'string'
);
$artlist
.=
$pv
->GetResult();
$GLOBALS
[
'itemparity'
] = (
$GLOBALS
[
'itemparity'
]==1 ? 2 : 1);
}
//注销环境变量,以防止后续调用中被使用
$GLOBALS
[
'envs'
][
'typeid'
] =
$_sys_globals
[
'typeid'
];
$GLOBALS
[
'envs'
][
'reid'
] =
''
;
if
(
$cacheid
!=
''
) {
WriteCacheBlock(
$cacheid
,
$artlist
);
}
return
$artlist
;
}
?>
☉本站的源码不会像其它下载站一样植入大量的广告。为了更好的用户体验以后坚持不打水印
☉本站只提供精品源码,源码在于可用,不在多!!希望在这里找到你合适的。
☉本站提供的整站程序,均带数据及演示地址。可以在任一源码详情页查看演示地址
☉本站所有资源(包括源码、模板、素材、特效等)仅供学习与参考,请勿用于商业用途。
☉如有其他问题,请加网站客服QQ(984818011)进行交流。
- 织梦DedeCMS内容模型里面将系统模型改成自动模型
- 织梦DedeCMS默认图集内容页模板去掉自动播放的方法
- 织梦{dede:flink}友情链接标签支持limit属性的方法
- 织梦DedeCMS栏目页分页标题Title添加“第N页”的方法
- 织梦DedeCMS 5.7图集点击图片进入下一篇的修改方法
- DEDECMS织梦模板点赞功能教程
- 织梦dedecms支持短信验证发送解决方案
- dedecms织梦图集上传图片自动获取图片名做注释
- 织梦栏目分页标签获取单独超链接
- 织梦dede:channel标签的支持autoindex数字递增调用方
- dedecms织梦点击数过千、万、亿的写法
- dedecms列表页面第一个文章与其他文章不同样式