在织梦标签dede:list中增加noflag属性的方法支持5.7版本

修改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; //获得交叉栏目ID

if($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’]);

}