修改include/arc.listview.class.php,以下是修改后的文件代码如下:<?php if(!defined(‘DEDEINC’)) exit(‘Request Error!’);require_once(DEDEINC.’/arc.partview.class.php’);require_once(DEDEINC.’/ftp.class.php’);helper(‘cache’);@set_time_limit(0);class ListView{var $dsql;var $dtp;var $dtp2;var $TypeID;var $TypeLink;var $PageNo;var $TotalPage;var $TotalResult;var $PageSize;var $ChannelUnit;var $ListType;var $Fields;var $PartView;var $upPageType;var $addSql;var $IsError;var $CrossID;var $IsReplace;var $ftp;var $remoteDir;var $Noflag;function __construct($typeid, $uppage=1){global $dsql,$ftp;$this->TypeID = $typeid;$this->dsql = &$dsql;$this->CrossID = ”;$this->IsReplace = false;$this->IsError = false;$this->dtp = new DedeTagParse();$this->dtp->SetRefObj($this);$this->dtp->SetNameSpace(“dede”, “{“, “}”);$this->dtp2 = new DedeTagParse();$this->dtp2->SetNameSpace(“field”,”[“,”]”);$this->TypeLink = new TypeLink($typeid);$this->upPageType = $uppage;$this->ftp = &$ftp;$this->remoteDir = ”;$this->TotalResult = is_numeric($this->TotalResult)? $this->TotalResult : “”;if(!is_array($this->TypeLink->TypeInfos)){$this->IsError = true;}if(!$this->IsError){$this->ChannelUnit = new ChannelUnit($this->TypeLink->TypeInfos[‘channeltype’]);$this->Fields = $this->TypeLink->TypeInfos;$this->Fields[‘id’] = $typeid;$this->Fields[‘position’] = $this->TypeLink->GetPositionLink(true);$this->Fields[‘title’] = preg_replace(“/[<>]/”, ” / “, $this->TypeLink->GetPositionLink(false));
//设置一些全局参数的值foreach($GLOBALS[‘PubFields’] as $k=>$v) $this->Fields[$k] = $v;$this->Fields[‘rsslink’] = $GLOBALS[‘cfg_cmsurl’].”/data/rss/”.$this->TypeID.”.xml”;
//设置环境变量SetSysEnv($this->TypeID,$this->Fields[‘typename’],0,”,’list’);$this->Fields[‘typeid’] = $this->TypeID; //获得交叉栏目IDif($this->TypeLink->TypeInfos[‘cross’]>0 && $this->TypeLink->TypeInfos[‘ispart’]==0){$selquery = ”;if($this->TypeLink->TypeInfos[‘cross’]==1){$selquery = “SELECT id,topid FROM `dede_arctype` WHERE typename LIKE ‘{$this->Fields[‘typename’]}’ AND id<>'{$this->TypeID}’ AND topid<>'{$this->TypeID}’ “;}else{$this->Fields[‘crossid’] = preg_replace(‘/[^0-9,]/’, ”, trim($this->Fields[‘crossid’]));if($this->Fields[‘crossid’]!=”){$selquery = “SELECT id,topid FROM `dede_arctype` WHERE id in({$this->Fields[‘crossid’]}) AND id<>{$this->TypeID} AND topid<>{$this->TypeID} “;}}if($selquery!=”){$this->dsql->SetQuery($selquery);$this->dsql->Execute();while($arr = $this->dsql->GetArray()){$this->CrossID .= ($this->CrossID==” ? $arr[‘id’] : ‘,’.$arr[‘id’]);}