修改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进行交流。
- 最好最实用的二次开发教程(dedeCMS,ecshop为例)
- Dede二次开发程序详解(dede学习必备一)
- dedecms制作Html+Css代码运行框jQuery版
- 织梦CMS二次开发列表AJAX按条件排序
- 织梦CMS二次开发不同栏目调用不同的模板教程
- dedecms 实现友情链接在首页、内页分别显示
- 如何加快dedecms 内容生成速度方法
- 如何使用DEDEcms/织梦制作复合筛选或联动筛选图解
- DEDECMS批量导入excel数据到后台文章系统的开发教程
- DEDECMS JSON数据生成 DEDECMS JSON接口制作
- 织梦DedeCMS禁止调用隐藏栏目下文章的开发方法
- dede地区联动搜索 彻底解决办法
常用程序开发
- 织梦Dedecms的channelartlist标签支持当前栏目高亮方
- DEDE5.6,DEDE5.7实现同时调用一级、二级、三级栏目
- 如何使用DEDEcms/织梦制作复合筛选或联动筛选图解
- dedecms 调用指定栏目,指定作者,指定自定义字段
- 织梦dedecms5.7标签tags静态化生成HTML方法
- dedecms 自定义表单分页+模版显示
- dedecms 二次开发调用当前作者文档的标签
- 织梦arclist标签实现分页的方法
- 织梦首页列表实现分页的两种方法
- DEDECMS会员空间调用收藏
- 在文章页直接调用dede织梦自定义字段图片地址
- 织梦dedecms首页列表页ajax点击下拉加载更多文章瀑布