M1850资源网 - 最专业的网站源码模板下载站!

全部作品
全部作品
织梦模板
网站模板
源码插件
游戏源码
脚本特效
视频教程
建站教程
M1850资源网 > 建站教程 > 织梦教程 > 织梦二次开发 > 修改dede源码,让dede:channelartlist排除指定typeid

推荐下载

修改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; } ?> ?
嘿,我来帮您!

展开