dedecms list增加noflag属性的方法 实现让列表标签不调用有推荐属性的文章
<div id="content"><p>
修改include/arc.listview.class.php,以下是修改后的文件</p>
<p>
</p>
<div class="msgheader">
<div class="right">
<span><u>复制代码</u></span>
</div>
代码如下:</div>
<div class="msgborder" id="phpcode1">
<br>
<?php if(!defined('DEDEINC')) exit('Request Error!');</p> <p>require_once(DEDEINC.'/arc.partview.class.php');<br>
require_once(DEDEINC.'/ftp.class.php');</p> <p>helper('cache');<br>
@set_time_limit(0);</p> <p><br>
class ListView<br>
{<br>
var $dsql;<br>
var $dtp;<br>
var $dtp2;<br>
var $TypeID;<br>
var $TypeLink;<br>
var $PageNo;<br>
var $TotalPage;<br>
var $TotalResult;<br>
var $PageSize;<br>
var $ChannelUnit;<br>
var $ListType;<br>
var $Fields;<br>
var $PartView;<br>
var $upPageType;<br>
var $addSql;<br>
var $IsError;<br>
var $CrossID;<br>
var $IsReplace;<br>
var $ftp;<br>
var $remoteDir;<br>
var $Noflag; <br>
function __construct($typeid, $uppage=1)<br>
{<br>
global $dsql,$ftp;<br>
$this->TypeID = $typeid;<br>
$this->dsql = &$dsql;<br>
$this->CrossID = '';<br>
$this->IsReplace = false;<br>
$this->IsError = false;<br>
$this->dtp = new DedeTagParse();<br>
$this->dtp->SetRefObj($this);<br>
$this->dtp->SetNameSpace("dede", "{", "}");<br>
$this->dtp2 = new DedeTagParse();<br>
$this->dtp2->SetNameSpace("field","[","]");<br>
$this->TypeLink = new TypeLink($typeid);<br>
$this->upPageType = $uppage;<br>
$this->ftp = &$ftp;<br>
$this->remoteDir = '';<br>
$this->TotalResult = is_numeric($this->TotalResult)? $this->TotalResult : "";<br><br>
if(!is_array($this->TypeLink->TypeInfos))<br>
{<br>
$this->IsError = true;<br>
}<br>
if(!$this->IsError)<br>
{<br>
$this->ChannelUnit = new ChannelUnit($this->TypeLink->TypeInfos['channeltype']);<br>
$this->Fields = $this->TypeLink->TypeInfos;<br>
$this->Fields['id'] = $typeid;<br>
$this->Fields['position'] = $this->TypeLink->GetPositionLink(true);<br>
$this->Fields['title'] = preg_replace("/[<>]/", " / ", $this->TypeLink->GetPositionLink(false));<br>
//设置一些全局参数的值<br>
foreach($GLOBALS['PubFields'] as $k=>$v) $this->Fields[$k] = $v;<br>
$this->Fields['rsslink'] = $GLOBALS['cfg_cmsurl']."/data/rss/".$this->TypeID.".xml";</p> <p>//设置环境变量<br>
SetSysEnv($this->TypeID,$this->Fields['typename'],0,'','list');<br>
$this->Fields['typeid'] = $this->TypeID;</p> <p>//获得交叉栏目ID<br>
if($this->TypeLink->TypeInfos['cross']>0 && $this->TypeLink->TypeInfos['ispart']==0)<br>
{<br>
$selquery = '';<br>
if($this->TypeLink->TypeInfos['cross']==1)<br>
{<br>
$selquery = "SELECT id,topid FROM `dede_arctype` WHERE typename LIKE '{$this->Fields['typename']}' AND id<>'{$this->TypeID}' AND topid<>'{$this->TypeID}' ";<br>
}<br>
else<br>
{<br>
$this->Fields['crossid'] = preg_replace('/[^0-9,]/', '', trim($this->Fields['crossid']));<br>
if($this->Fields['crossid']!='')<br>
{<br>
$selquery = "SELECT id,topid FROM `dede_arctype` WHERE id in({$this->Fields['crossid']}) AND id<>{$this->TypeID} AND topid<>{$this->TypeID} ";<br>
}<br>
}<br>
if($selquery!='')<br>
{<br>
$this->dsql->SetQuery($selquery);<br>
$this->dsql->Execute();<br>
while($arr = $this->dsql->GetArray())<br>
{<br>
$this->CrossID .= ($this->CrossID=='' ? $arr['id'] : ','.$arr['id']);<br>
}<br>
}<br>
}<br>
}//!error<br>
}</p> <p>//php4构造函数<br>
function ListView($typeid,$uppage=0){<br>
$this->__construct($typeid,$uppage);<br>
}<br>
//关闭相关资源<br>
function Close()<br>
{ }<br>
function CountRecord()<br>
{<br>
global $cfg_list_son,$cfg_need_typeid2,$cfg_cross_sectypeid;<br>
if(empty($cfg_need_typeid2)) $cfg_need_typeid2 = 'N';<br><br>
//统计数据库记录<br>
$this->TotalResult = -1;<br>
if(isset($GLOBALS['TotalResult'])) $this->TotalResult = $GLOBALS['TotalResult'];<br>
if(isset($GLOBALS['PageNo'])) $this->PageNo = $GLOBALS['PageNo'];<br>
else $this->PageNo = 1;<br>
$this->addSql = " arc.arcrank > -1 ";<br><br>
$typeid2like = " '%,{$this->TypeID},%' ";<br>
if($cfg_list_son=='N')<br>
{<br><br>
if($cfg_need_typeid2=='N')<br>
{<br>
if($this->CrossID=='') $this->addSql .= " AND (arc.typeid='".$this->TypeID."') ";<br>
else $this->addSql .= " AND (arc.typeid in({$this->CrossID},{$this->TypeID})) ";<br>
}<br>
else<br>
{<br>
if($this->CrossID=='')<br>
{<br>
$this->addSql .= " AND ( (arc.typeid='".$this->TypeID."') OR CONCAT(',', arc.typeid2, ',') LIKE $typeid2like) ";<br>
} else {<br>
if($cfg_cross_sectypeid == 'Y')<br>
{<br>
$typeid2Clike = " '%,{$this->CrossID},%' ";<br>
$this->addSql .= " AND ( arc.typeid IN({$this->CrossID},{$this->TypeID}) OR CONCAT(',', arc.typeid2, ',') LIKE $typeid2like OR CONCAT(',', arc.typeid2, ',') LIKE $typeid2Clike)";<br>
} else {<br>
$this->addSql .= " AND ( arc.typeid IN({$this->CrossID},{$this->TypeID}) OR CONCAT(',', arc.typeid2, ',') LIKE $typeid2like)";<br>
}<br>
}<br>
}<br>
}<br>
else<br>
{<br>
$sonids = GetSonIds($this->TypeID,$this->Fields['channeltype']);<br>
if(!preg_match("/,/", $sonids)) {<br>
$sonidsCon = " arc.typeid = '$sonids' ";<br>
}<br>
else {<br>
$sonidsCon = " arc.typeid IN($sonids) ";<br>
}<br>
if($cfg_need_typeid2=='N')<br>
{<br>
if($this->CrossID=='') $this->addSql .= " AND ( $sonidsCon ) ";<br>
else $this->addSql .= " AND ( arc.typeid IN ({$sonids},{$this->CrossID}) ) ";<br>
}<br>
else<br>
{<br>
if($this->CrossID=='')<br>
{<br>
$this->addSql .= " AND ( $sonidsCon OR CONCAT(',', arc.typeid2, ',') like $typeid2like ) ";<br>
} else {<br>
if($cfg_cross_sectypeid == 'Y')<br>
{<br>
$typeid2Clike = " '%,{$this->CrossID},%' ";<br>
$this->addSql .= " AND ( arc.typeid IN ({$sonids},{$this->CrossID}) OR CONCAT(',', arc.typeid2, ',') LIKE $typeid2like OR CONCAT(',', arc.typeid2, ',') LIKE $typeid2Clike) ";<br>
} else {<br>
$this->addSql .= " AND ( arc.typeid IN ({$sonids},{$this->CrossID}) OR CONCAT(',', arc.typeid2, ',') LIKE $typeid2like) ";<br>
}<br>
}<br>
}<br>
}<br>
if($this->TotalResult==-1)<br>
{<br>
$cquery = "SELECT COUNT(*) AS dd FROM `dede_arctiny` arc WHERE ".$this->addSql;<br>
$row = $this->dsql->GetOne($cquery);<br>
if(is_array($row))<br>
{<br>
$this->TotalResult = $row['dd'];<br>
}<br>
else<br>
{<br>
$this->TotalResult = 0;<br>
}<br>
}</p> <p>//初始化列表模板,并统计页面总数<br>
$tempfile = $GLOBALS['cfg_basedir'].$GLOBALS['cfg_templets_dir']."/".$this->TypeLink->TypeInfos['templist'];<br>
$tempfile = str_replace("{tid}", $this->TypeID, $tempfile);<br>
$tempfile = str_replace("{cid}", $this->ChannelUnit->ChannelInfos['nid'], $tempfile);<br>
if(!file_exists($tempfile))<br>
{<br>
$tempfile = $GLOBALS['cfg_basedir'].$GLOBALS['cfg_templets_dir']."/".$GLOBALS['cfg_df_style']."/list_default.htm";<br>
}<br>
if(!file_exists($tempfile)||!is_file($tempfile))<br>
{<br>
echo "模板文件不存在,无法解析文档!";<br>
exit();<br>
}<br>
$this->dtp->LoadTemplate($tempfile);<br>
$ctag = $this->dtp->GetTag("page");<br>
if(!is_object($ctag))<br>
{<br>
$ctag = $this->dtp->GetTag("list");<br>
}<br>
if(!is_object($ctag))<br>
{<br>
$this->PageSize = 20;<br>
}<br>
else<br>
{<br>
if($ctag->GetAtt("pagesize")!="")<br>
{<br>
$this->PageSize = $ctag->GetAtt("pagesize");<br>
}<br>
else<br>
{<br>
$this->PageSize = 20;<br>
}<br>
}<br>
$this->TotalPage = ceil($this->TotalResult/$this->PageSize);<br>
}<br>
function MakeHtml($startpage=1, $makepagesize=0, $isremote=0)<br>
{<br>
global $cfg_remote_site;<br>
if(empty($startpage))<br>
{<br>
$startpage = 1;<br>
}</p> <p>//创建封面模板文件<br>
if($this->TypeLink->TypeInfos['isdefault']==-1)<br>
{<br>
echo '这个类目是动态类目!';<br>
return '../plus/list.php?tid='.$this->TypeLink->TypeInfos['id'];<br>
}</p> <p>//单独页面<br>
else if($this->TypeLink->TypeInfos['ispart']>0)<br>
{<br>
$reurl = $this->MakePartTemplets();<br>
return $reurl;<br>
}</p> <p>$this->CountRecord();<br>
//初步给固定值的标记赋值<br>
$this->ParseTempletsFirst();<br>
$totalpage = ceil($this->TotalResult/$this->PageSize);<br>
if($totalpage==0)<br>
{<br>
$totalpage = 1;<br>
}<br>
CreateDir(MfTypedir($this->Fields['typedir']));<br>
$murl = '';<br>
if($makepagesize > 0)<br>
{<br>
$endpage = $startpage+$makepagesize;<br>
}<br>
else<br>
{<br>
$endpage = ($totalpage+1);<br>
}<br>
if( $endpage >= $totalpage+1 )<br>
{<br>
$endpage = $totalpage+1;<br>
}<br>
if($endpage==1)<br>
{<br>
$endpage = 2;<br>
}<br>
for($this->PageNo=$startpage; $this->PageNo < $endpage; $this->PageNo++)<br>
{<br>
$this->ParseDMFields($this->PageNo,1);<br>
$makeFile = $this->GetMakeFileRule($this->Fields['id'],'list',$this->Fields['typedir'],'',$this->Fields['namerule2']);<br>
$makeFile = str_replace("{page}", $this->PageNo, $makeFile);<br>
$murl = $makeFile;<br>
if(!preg_match("/^\//", $makeFile))<br>
{<br>
$makeFile = "/".$makeFile;<br>
}<br>
$makeFile = $this->GetTruePath().$makeFile;<br>
$makeFile = preg_replace("/\/{1,}/", "/", $makeFile);<br>
$murl = $this->GetTrueUrl($murl);<br>
$this->dtp->SaveTo($makeFile);<br>
//如果启用远程发布则需要进行判断<br>
if($cfg_remote_site=='Y'&& $isremote == 1)<br>
{<br>
//分析远程文件路径<br>
$remotefile = str_replace(DEDEROOT, '',$makeFile);<br>
$localfile = '..'.$remotefile;<br>
$remotedir = preg_replace('/[^\/]*\.html/', '',$remotefile);<br>
//不相等则说明已经切换目录则可以创建镜像<br>
$this->ftp->rmkdir($remotedir);<br>
$this->ftp->upload($localfile, $remotefile, 'acii');<br>
}<br>
}<br>
if($startpage==1)<br>
{<br>
//如果列表启用封面文件,复制这个文件第一页<br>
if($this->TypeLink->TypeInfos['isdefault']==1<br>
&& $this->TypeLink->TypeInfos['ispart']==0)<br>
{<br>
$onlyrule = $this->GetMakeFileRule($this->Fields['id'],"list",$this->Fields['typedir'],'',$this->Fields['namerule2']);<br>
$onlyrule = str_replace("{page}","1",$onlyrule);<br>
$list_1 = $this->GetTruePath().$onlyrule;<br>
$murl = MfTypedir($this->Fields['typedir']).'/'.$this->Fields['defaultname'];<br>
//如果启用远程发布则需要进行判断<br>
if($cfg_remote_site=='Y'&& $isremote == 1)<br>
{<br>
//分析远程文件路径<br>
$remotefile = $murl;<br>
$localfile = '..'.$remotefile;<br>
$remotedir = preg_replace('/[^\/]*\.html/', '',$remotefile);<br>
//不相等则说明已经切换目录则可以创建镜像<br>
$this->ftp->rmkdir($remotedir);<br>
$this->ftp->upload($localfile, $remotefile, 'acii');<br>
}<br>
$indexname = $this->GetTruePath().$murl;<br>
copy($list_1,$indexname);<br>
}<br>
}<br>
return $murl;<br>
}</p> <p>function Display()<br>
{<br>
if($this->TypeLink->TypeInfos['ispart']>0)<br>
{<br>
$this->DisplayPartTemplets();<br>
return ;<br>
}<br>
$this->CountRecord();<br>
if((empty($this->PageNo) || $this->PageNo==1)<br>
&& $this->TypeLink->TypeInfos['ispart']==1)<br>
{<br>
$tmpdir = $GLOBALS['cfg_basedir'].$GLOBALS['cfg_templets_dir'];<br>
$tempfile = str_replace("{tid}",$this->TypeID,$this->Fields['tempindex']);<br>
$tempfile = str_replace("{cid}",$this->ChannelUnit->ChannelInfos['nid'],$tempfile);<br>
$tempfile = $tmpdir."/".$tempfile;<br>
if(!file_exists($tempfile))<br>
{<br>
$tempfile = $tmpdir."/".$GLOBALS['cfg_df_style']."/index_default.htm";<br>
}<br>
$this->dtp->LoadTemplate($tempfile);<br>
}<br>
$this->ParseTempletsFirst();<br>
$this->ParseDMFields($this->PageNo,0);<br>
$this->dtp->Display();<br>
} <br>
function MakePartTemplets()<br>
{<br>
$this->PartView = new PartView($this->TypeID,false);<br>
$this->PartView->SetTypeLink($this->TypeLink);<br>
$nmfa = 0;<br>
$tmpdir = $GLOBALS['cfg_basedir'].$GLOBALS['cfg_templets_dir'];<br>
if($this->Fields['ispart']==1)<br>
{<br>
$tempfile = str_replace("{tid}",$this->TypeID,$this->Fields['tempindex']);<br>
$tempfile = str_replace("{cid}",$this->ChannelUnit->ChannelInfos['nid'],$tempfile);<br>
$tempfile = $tmpdir."/".$tempfile;<br>
if(!file_exists($tempfile))<br>
{<br>
$tempfile = $tmpdir."/".$GLOBALS['cfg_df_style']."/index_default.htm";<br>
}<br>
$this->PartView->SetTemplet($tempfile);<br>
}<br>
else if($this->Fields['ispart']==2)<br>
{<br>
//跳转网址<br>
return $this->Fields['typedir'];<br>
}<br>
CreateDir(MfTypedir($this->Fields['typedir']));<br>
$makeUrl = $this->GetMakeFileRule($this->Fields['id'],"index",MfTypedir($this->Fields['typedir']),$this->Fields['defaultname'],$this->Fields['namerule2']);<br>
$makeUrl = preg_replace("/\/{1,}/", "/", $makeUrl);<br>
$makeFile = $this->GetTruePath().$makeUrl;<br>
if($nmfa==0)<br>
{<br>
$this->PartView->SaveToHtml($makeFile);<br>
//如果启用远程发布则需要进行判断<br>
if($GLOBALS['cfg_remote_site']=='Y'&& $isremote == 1)<br>
{<br>
//分析远程文件路径<br>
$remotefile = str_replace(DEDEROOT, '',$makeFile);<br>
$localfile = '..'.$remotefile;<br>
$remotedir = preg_replace('/[^\/]*\.html/', '',$remotefile);<br>
//不相等则说明已经切换目录则可以创建镜像<br>
$this->ftp->rmkdir($remotedir);<br>
$this->ftp->upload($localfile, $remotefile, 'acii');<br>
}<br>
}<br>
else<br>
{<br>
if(!file_exists($makeFile))<br>
{<br>
$this->PartView->SaveToHtml($makeFile);<br>
//如果启用远程发布则需要进行判断<br>
if($cfg_remote_site=='Y'&& $isremote == 1)<br>
{<br>
//分析远程文件路径<br>
$remotefile = str_replace(DEDEROOT, '',$makeFile);<br>
$localfile = '..'.$remotefile;<br>
$remotedir = preg_replace('/[^\/]*\.html/', '',$remotefile);<br>
//不相等则说明已经切换目录则可以创建镜像<br>
$this->ftp->rmkdir($remotedir);<br>
$this->ftp->upload($localfile, $remotefile, 'acii');<br>
}<br>
}<br>
}<br>
return $this->GetTrueUrl($makeUrl);<br>
}</p> <p> <br>
function DisplayPartTemplets()<br>
{<br>
$this->PartView = new PartView($this->TypeID,false);<br>
$this->PartView->SetTypeLink($this->TypeLink);<br>
$nmfa = 0;<br>
$tmpdir = $GLOBALS['cfg_basedir'].$GLOBALS['cfg_templets_dir'];<br>
if($this->Fields['ispart']==1)<br>
{<br>
//封面模板<br>
$tempfile = str_replace("{tid}",$this->TypeID,$this->Fields['tempindex']);<br>
$tempfile = str_replace("{cid}",$this->ChannelUnit->ChannelInfos['nid'],$tempfile);<br>
$tempfile = $tmpdir."/".$tempfile;<br>
if(!file_exists($tempfile))<br>
{<br>
$tempfile = $tmpdir."/".$GLOBALS['cfg_df_style']."/index_default.htm";<br>
}<br>
$this->PartView->SetTemplet($tempfile);<br>
}<br>
else if($this->Fields['ispart']==2)<br>
{<br>
//跳转网址<br>
$gotourl = $this->Fields['typedir'];<br>
header("Location:$gotourl");<br>
exit();<br>
}<br>
CreateDir(MfTypedir($this->Fields['typedir']));<br>
$makeUrl = $this->GetMakeFileRule($this->Fields['id'],"index",MfTypedir($this->Fields['typedir']),$this->Fields['defaultname'],$this->Fields['namerule2']);<br>
$makeFile = $this->GetTruePath().$makeUrl;<br>
if($nmfa==0)<br>
{<br>
$this->PartView->Display();<br>
}<br>
else<br>
{<br>
if(!file_exists($makeFile))<br>
{<br>
$this->PartView->Display();<br>
}<br>
else<br>
{<br>
include($makeFile);<br>
}<br>
}<br>
}</p> <p> <br>
function GetTruePath()<br>
{<br>
$truepath = $GLOBALS["cfg_basedir"];<br>
return $truepath;<br>
}</p> <p> <br>
function GetTrueUrl($nurl)<br>
{<br>
if($this->Fields['moresite']==1)<br>
{<br>
if($this->Fields['sitepath']!='')<br>
{<br>
$nurl = preg_replace("/^".$this->Fields['sitepath']."/", '', $nurl);<br>
}<br>
$nurl = $this->Fields['siteurl'].$nurl;<br>
}<br>
return $nurl;<br>
}</p> <p> <br>
function ParseTempletsFirst()<br>
{<br>
if(isset($this->TypeLink->TypeInfos['reid']))<br>
{<br>
$GLOBALS['envs']['reid'] = $this->TypeLink->TypeInfos['reid'];<br>
}<br>
$GLOBALS['envs']['typeid'] = $this->TypeID;<br>
$GLOBALS['envs']['topid'] = GetTopid($this->Fields['typeid']);<br>
$GLOBALS['envs']['cross'] = 1;<br>
MakeOneTag($this->dtp,$this);<br>
}</p> <p> <br>
function ParseDMFields($PageNo,$ismake=1)<br>
{<br>
//替换第二页后的内容<br>
if(($PageNo>1 || strlen($this->Fields['content'])<10 ) && !$this->IsReplace)<br>
{<br>
$this->dtp->SourceString = str_replace('','display:none',$this->dtp->SourceString);<br>
$this->IsReplace = true;<br>
}<br>
foreach($this->dtp->CTags as $tagid=>$ctag)<br>
{<br>
if($ctag->GetName()=="list")<br>
{<br>
$limitstart = ($this->PageNo-1) * $this->PageSize;<br>
$row = $this->PageSize;<br>
if(trim($ctag->GetInnerText())=="")<br>
{<br>
$InnerText = GetSysTemplets("list_fulllist.htm");<br>
}<br>
else<br>
{<br>
$InnerText = trim($ctag->GetInnerText());<br>
}<br>
$this->dtp->Assign($tagid,<br>
$this->GetArcList(<br>
$limitstart,<br>
$row,<br>
$ctag->GetAtt("col"),<br>
$ctag->GetAtt("titlelen"),<br>
$ctag->GetAtt("infolen"),<br>
$ctag->GetAtt("imgwidth"),<br>
$ctag->GetAtt("imgheight"),<br>
$ctag->GetAtt("listtype"),<br>
$ctag->GetAtt("orderby"),<br>
$InnerText,<br>
$ctag->GetAtt("tablewidth"),<br>
$ismake,<br>
$ctag->GetAtt("orderway"),<br>
$ctag->GetAtt("noflag")<br>
)<br>
);<br>
}<br>
else if($ctag->GetName()=="pagelist")<br>
{<br>
$list_len = trim($ctag->GetAtt("listsize"));<br>
$ctag->GetAtt("listitem")=="" ? $listitem="index,pre,pageno,next,end,option" : $listitem=$ctag->GetAtt("listitem");<br>
if($list_len=="")<br>
{<br>
$list_len = 3;<br>
}<br>
if($ismake==0)<br>
{<br>
$this->dtp->Assign($tagid,$this->GetPageListDM($list_len,$listitem));<br>
}<br>
else<br>
{<br>
$this->dtp->Assign($tagid,$this->GetPageListST($list_len,$listitem));<br>
}<br>
}<br>
else if($PageNo!=1 && $ctag->GetName()=='field' && $ctag->GetAtt('display')!='')<br>
{<br>
$this->dtp->Assign($tagid,'');<br>
}<br>
}<br>
}</p> <p> <br>
function GetMakeFileRule($typeid,$wname,$typedir,$defaultname,$namerule2)<br>
{<br>
$typedir = MfTypedir($typedir);<br>
if($wname=='index')<br>
{<br>
return $typedir.'/'.$defaultname;<br>
}<br>
else<br>
{<br>
$namerule2 = str_replace('{tid}',$typeid,$namerule2);<br>
$namerule2 = str_replace('{typedir}',$typedir,$namerule2);<br>
return $namerule2;<br>
}<br>
}</p> <p> <br>
function GetArcList($limitstart=0,$row=10,$col=1,$titlelen=30,$infolen=250,<br>
$imgwidth=120,$imgheight=90,$listtype="all",$orderby="default",$innertext="",$tablewidth="100",$ismake=1,$orderWay='desc',$noflag='')<br>
{<br>
global $cfg_list_son,$cfg_digg_update;<br>
$noflags = explode(',', $noflag);<br>
$noflagsql = '';<br>
for($i=0;$i<count($noflags);$i++)<br>
{<br>
$noflagsql .= "And arc.flag not like '%{$noflags[$i]}%' ";<br>
} <br>
$typeid=$this->TypeID;<br><br>
if($row=='') $row = 10;<br>
if($limitstart=='') $limitstart = 0;<br>
if($titlelen=='') $titlelen = 100;<br>
if($infolen=='') $infolen = 250;<br>
if($imgwidth=='') $imgwidth = 120;<br>
if($imgheight=='') $imgheight = 120;<br>
if($listtype=='') $listtype = 'all';<br>
if($orderWay=='') $orderWay = 'desc';<br><br>
if($orderby=='') {<br>
$orderby='default';<br>
}<br>
else {<br>
$orderby=strtolower($orderby);<br>
}<br><br>
$tablewidth = str_replace('%','',$tablewidth);<br>
if($tablewidth=='') $tablewidth=100;<br>
if($col=='') $col=1;<br>
$colWidth = ceil(100/$col);<br>
$tablewidth = $tablewidth.'%';<br>
$colWidth = $colWidth.'%';<br><br>
$innertext = trim($innertext);<br>
if($innertext=='') {<br>
$innertext = GetSysTemplets('list_fulllist.htm');<br>
}</p> <p>//排序方式<br>
$ordersql = '';<br>
if($orderby=="senddate" || $orderby=="id") {<br>
$ordersql=" ORDER BY arc.id $orderWay";<br>
}<br>
else if($orderby=="hot" || $orderby=="click") {<br>
$ordersql = " ORDER BY arc.click $orderWay";<br>
}<br>
else if($orderby=="lastpost") {<br>
$ordersql = " ORDER BY arc.lastpost $orderWay";<br>
}<br>
else {<br>
$ordersql=" ORDER BY arc.sortrank $orderWay";<br>
}</p> <p>//获得附加表的相关信息<br>
$addtable = $this->ChannelUnit->ChannelInfos['addtable'];<br>
if($addtable!="")<br>
{<br>
$addJoin = " LEFT JOIN `$addtable` ON arc.id = ".$addtable.'.aid ';<br>
$addField = '';<br>
$fields = explode(',',$this->ChannelUnit->ChannelInfos['listfields']);<br>
foreach($fields as $k=>$v)<br>
{<br>
$nfields[$v] = $k;<br>
}<br>
if(is_array($this->ChannelUnit->ChannelFields) && !empty($this->ChannelUnit->ChannelFields))<br>
{<br>
foreach($this->ChannelUnit->ChannelFields as $k=>$arr)<br>
{<br>
if(isset($nfields[$k]))<br>
{<br>
if(!empty($arr['rename'])) {<br>
$addField .= ','.$addtable.'.'.$k.' as '.$arr['rename'];<br>
}<br>
else {<br>
$addField .= ','.$addtable.'.'.$k;<br>
}<br>
}<br>
}<br>
}<br>
}<br>
else<br>
{<br>
$addField = '';<br>
$addJoin = '';<br>
}</p> <p>//如果不用默认的sortrank或id排序,使用联合查询(数据量大时非常缓慢)<br>
if(preg_match('/hot|click|lastpost/', $orderby))<br>
{<br>
$query = "Select arc.*,tp.typedir,tp.typename,tp.isdefault,tp.defaultname,<br>
tp.namerule,tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath<br>
$addField<br>
from `dede_archives` arc<br>
left join `dede_arctype` tp on arc.typeid=tp.id<br>
$addJoin<br>
where {$this->addSql} $noflagsql $ordersql limit $limitstart,$row";<br>
}<br>
//普通情况先从arctiny表查出ID,然后按ID查询(速度非常快)<br>
else<br>
{<br>
$numquery = "Select id From `dede_archives` arc where {$this->addSql} $noflagsql $ordersql";<br>
$this->dsql->SetQuery($numquery);<br>
$this->dsql->Execute();<br>
while($arr=$this->dsql->GetArray())<br>
{<br>
$fuck[] = $arr['id'];<br>
}<br>
$this->TotalResult = count($fuck);<br>
$t1 = ExecTime();<br>
$ids = array();<br>
$query = "Select id From `dede_archives` arc where {$this->addSql} $noflagsql $ordersql limit $limitstart,$row ";<br>
$this->dsql->SetQuery($query);<br>
$this->dsql->Execute();<br>
while($arr=$this->dsql->GetArray())<br>
{<br>
$ids[] = $arr['id'];<br>
}<br>
$idstr = join(',',$ids);<br>
if($idstr=='')<br>
{<br>
return '';<br>
}<br>
else<br>
{<br>
$query = "Select arc.*,tp.typedir,tp.typename,tp.corank,tp.isdefault,tp.defaultname,<br>
tp.namerule,tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath<br>
$addField<br>
from `dede_archives` arc left join `dede_arctype` tp on arc.typeid=tp.id<br>
$addJoin<br>
where arc.id in($idstr) $noflagsql $ordersql ";<br>
}<br>
$t2 = ExecTime();<br>
//echo $t2-$t1;</p> <p>}<br>
$this->dsql->SetQuery($query);<br>
$this->dsql->Execute('al');<br>
$t2 = ExecTime();</p> <p>//echo $t2-$t1;<br>
$artlist = '';<br>
$this->dtp2->LoadSource($innertext);<br>
$GLOBALS['autoindex'] = 0;<br>
for($i=0;$i<$row;$i++)<br>
{<br>
if($col>1)<br>
{<br>
$artlist .= "<div>\r\n";<br>
}<br>
for($j=0;$j<$col;$j++)<br>
{<br>
if($row = $this->dsql->GetArray("al"))<br>
{<br>
$GLOBALS['autoindex']++;<br>
$ids[$row['id']] = $row['id'];</p> <p>//处理一些特殊字段<br>
$row['infos'] = cn_substr($row['description'],$infolen);<br>
$row['id'] = $row['id'];<br>
if($cfg_digg_update > 0)<br>
{<br>
$prefix = 'diggCache';<br>
$key = 'aid-'.$row['id'];<br>
$cacherow = GetCache($prefix, $key);<br>
$row['goodpost'] = $cacherow['goodpost'];<br>
$row['badpost'] = $cacherow['badpost'];<br>
$row['scores'] = $cacherow['scores'];<br>
}</p> <p>if($row['corank'] > 0 && $row['arcrank']==0)<br>
{<br>
$row['arcrank'] = $row['corank'];<br>
}</p> <p>$row['filename'] = $row['arcurl'] = GetFileUrl($row['id'],$row['typeid'],$row['senddate'],$row['title'],$row['ismake'],<br>
$row['arcrank'],$row['namerule'],$row['typedir'],$row['money'],$row['filename'],$row['moresite'],$row['siteurl'],$row['sitepath']);<br>
$row['typeurl'] = GetTypeUrl($row['typeid'],MfTypedir($row['typedir']),$row['isdefault'],$row['defaultname'],<br>
$row['ispart'],$row['namerule2'],$row['moresite'],$row['siteurl'],$row['sitepath']);<br>
if($row['litpic'] == '-' || $row['litpic'] == '')<br>
{<br>
$row['litpic'] = $GLOBALS['cfg_cmspath'].'/images/defaultpic.gif';<br>
}<br>
if(!preg_match("/^http:\/\//i", $row['litpic']) && $GLOBALS['cfg_multi_site'] == 'Y')<br>
{<br>
$row['litpic'] = $GLOBALS['cfg_mainsite'].$row['litpic'];<br>
}<br>
$row['picname'] = $row['litpic'];<br>
$row['stime'] = GetDateMK($row['pubdate']);<br>
$row['typelink'] = "<a href='".$row['typeurl']."'>".$row['typename']."</a>";<br>
$row['image'] = "<img src='".$row['picname']."' border='0' width='$imgwidth' height='$imgheight'>
</div>
</div>
<div class="tags mb10 clearfix">
<ul class="meta-tags items" style='margin: 0px; padding-right: 0px; padding-left: 0px; outline: none; list-style: none; max-width: 500px; line-height: 12px; font-family: tahoma, arial, "Microsoft YaHei";'></ul>
</div>
<p>
</p>
頁:
[1]