修改dede源码,让dede:channelartlist排除指定typ,DEDE技术
导读:DEDE技术DEDE技术找到 \include\taglib\channelartlist.lib.php, 查找$attlist 将 $attlist = typeid|0,row|dede模板堂。
找到 \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");
在其前面添加(注意是在前面添加):
//dede58模板否定指定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,12模板织梦7,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; } ?> ?相关dede模板堂。声明: 本文由我的SEOUC技术文章主页发布于:2023-07-19 ,文章修改dede源码,让dede:channelartlist排除指定typ,DEDE技术主要讲述源码,标签,DEDE技术网站建设源码以及服务器配置搭建相关技术文章。转载请保留链接: https://www.seouc.com/article/web_30316.html