各类知识收集,PHP技术分享与解决方案各类知识收集,PHP技术分享与解决方案各类知识收集,PHP技术分享与解决方案

Str Tom,为分享PHP技术和解决方案,贡献一份自己的力量!
收藏本站(不迷路),每天更新好文章!
当前位置:首页 > CMS教程 > dedecms

修改dede源码,让dede:channelartlist排除指定typeid

管理员 2015-09-28
dedecms
121

找到 includetaglibchannelartlist.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;     } 未经允许不得转载:Str Tom工作室 » 修改dede源码,让dede:channelartlist排除指定typeid

相关推荐

扫码关注

qrcode

QQ交谈

回顶部