修改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技術網站建設源碼以及服務器配置搭建相關技術文章。轉載請保留鏈接: http://www.bifwcx.com/article/web_30316.html