修改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
<?phpif(!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列表页面第一个文章与其他文章不同样式
