<?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; } ?>
|