喜欢就分享给更多人!

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

dede教程 02-27 11:48
修改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');
functionlib_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 $tpsqlorder 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= newPartView($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;
}
?>

友情链接: 菜鸟吧源码 菜鸟聚会登录 网站目录大全 菜鸟吧导航网 冒泡网赚 中创网 福缘创业网 臭虾米项目网 小淘学社 吾图资源网 懒人之家源码 ASP300源码 折翼天使 锦尚中国 莎莎源码论坛 吾爱源码论坛 织梦58 搜虎源码论坛 游戏咖啡屋 码农网 虎格网 织梦猫 魔克吧 忽悠兄基地

网站快速入口:| 网站首页 | 用户登录 | 快捷登录 | 注册账号 | 会员中心 |