首页 > 教程 >
在织梦标签dede:list中增加noflag属性的方法支持5.7版本
2023-03-09教程围观次
简介修改include/arc.listview.class.php,以下是修改后的文件代码如下:
修改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 $Type ;
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->Type = new Type ($typeid);
$this->upPageType = $uppage;
$this->ftp = &$ftp;
$this->remoteDir = ”;
$this->TotalResult = is_numeric($this->TotalResult)? $this->TotalResult : “”;
if(!is_array($this->Type ->TypeInfos))
{
$this->IsError = true;
}
if(!$this->IsError)
{
$this->ChannelUnit = new ChannelUnit($this->Type ->TypeInfos[‘channeltype’]);
$this->Fields = $this->Type ->TypeInfos;
$this->Fields[‘id’] = $typeid;
$this->Fields[‘position’] = $this->Type ->GetPosition (true);
$this->Fields[‘ ’] = preg_replace(“/[<>]/”, ” / “, $this->Type ->GetPosition (false));
//设置一些全局参数的值
foreach($GLOBALS[‘PubFields’] as $k=>$v) $this->Fields[$k] = $v;
$this->Fields[‘rss ’] = $GLOBALS[‘cfg_cmsurl’].”/data/rss/”.$this->TypeID.”. ”;//设置环境变量
SetSysEnv($this->TypeID,$this->Fields[‘typename’],0,”,’list’);
$this->Fields[‘typeid’] = $this->TypeID; //获得交叉栏目ID
if($this->Type ->TypeInfos[‘cross’]>0 && $this->Type ->TypeInfos[‘ispart’]==0)
{
$selquery = ”;
if($this->Type ->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’]);
}