📄 inc_arcpart_view.php
字号:
<?php
require_once(dirname(__FILE__)."/inc_channel_unit.php");
require_once(dirname(__FILE__)."/inc_typelink.php");
/******************************************************
//Copyright 2004-2006 by DedeCms.com itprato
//本类的用途是用于解析和创建全局性质的模板,如频道封面,主页,单个页面等
******************************************************/
class PartView
{
var $dsql;
var $dtp;
var $dtp2;
var $TypeID;
var $Fields;
var $TypeLink;
var $pvCopy;
var $TempletsFile;
var $OldCacheTime;
//-------------------------------
//php5构造函数
//-------------------------------
function __construct($typeid=0)
{
global $PubFields;
$this->TypeID = $typeid;
$this->dsql = new DedeSql(false);
$this->dtp = new DedeTagParse();
$this->dtp->SetNameSpace("dede","{","}");
$this->dtp2 = new DedeTagParse();
$this->dtp2->SetNameSpace("field","[","]");
$this->TypeLink = new TypeLink($typeid);
$this->TempletsFile = '';
$this->OldCacheTime = -100;
if(is_array($this->TypeLink->TypeInfos))
{
foreach($this->TypeLink->TypeInfos as $k=>$v)
{
if(ereg("[^0-9]",$k)) $this->Fields[$k] = $v;
}
}
//设置一些全局参数的值
foreach($PubFields as $k=>$v) $this->Fields[$k] = $v;
}
//php4构造函数
//---------------------------
function PartView($typeid=0){
$this->__construct($typeid);
}
//设置要解析的模板
//------------------------
function SetTemplet($temp,$stype="file")
{
$this->OldCacheTime = $GLOBALS['cfg_al_cachetime'];
$GLOBALS['cfg_al_cachetime'] = 0;
if($stype=="string") $this->dtp->LoadSource($temp);
else{
$this->dtp->LoadTemplet($temp);
$this->TempletsFile = ereg_replace("^".$GLOBALS['cfg_basedir'],'',$temp);
}
if($this->TypeID > 0){
$this->Fields['position'] = $this->TypeLink->GetPositionLink(true);
$this->Fields['title'] = $this->TypeLink->GetPositionLink(false);
}
$this->ParseTemplet();
}
//显示内容
//-----------------------
function Display(){
$this->dtp->Display();
if($this->OldCacheTime!=-100) $GLOBALS['cfg_al_cachetime'] = $this->OldCacheTime;
}
//获取内容
//-----------------------
function GetResult(){
$rs = $this->dtp->GetResult();
if($this->OldCacheTime!=-100) $GLOBALS['cfg_al_cachetime'] = $this->OldCacheTime;
return $rs;
}
//保存结果为文件
//------------------------
function SaveToHtml($filename){
$this->dtp->SaveTo($filename);
if($this->OldCacheTime!=-100) $GLOBALS['cfg_al_cachetime'] = $this->OldCacheTime;
}
//解析的模板
/*
function __ParseTemplet();
*/
//------------------------
function ParseTemplet()
{
//global $envTypeid;
//if(!isset($envTypeid)) $envTypeid = 0;
if(!is_array($this->dtp->CTags)) return "";
foreach($this->dtp->CTags as $tagid=>$ctag)
{
$tagname = $ctag->GetName();
if($tagname=="field"){
//获得 field 标记值
@$this->dtp->Assign($tagid,$this->Fields[$ctag->GetAtt('name')]);
}else if($tagname=="onetype"||$tagname=="type"){
//获得单个栏目属性
$this->dtp->Assign($tagid,$this->GetOneType($ctag->GetAtt('typeid'),$ctag->GetInnerText()));
}else if($tagname=="autochannel"){
//获得自动栏目内容
$this->dtp->Assign($tagid,
$this->GetAutoChannel($ctag->GetAtt('partsort'),$ctag->GetInnerText(),$ctag->GetAtt('typeid'))
);
}else if($tagname=="arclist"||$tagname=="artlist"||$tagname=="likeart"||$tagname=="hotart"||
$tagname=="imglist"||$tagname=="imginfolist"||$tagname=="coolart"||$tagname=="specart"||$tagname=="autolist")
{ //特定的文章列表
$autopartid = 0;
$channelid = $ctag->GetAtt("channelid");
if($tagname=="imglist"||$tagname=="imginfolist"){ $listtype = "image"; }
else if($tagname=="specart"){ $channelid = -1; $listtype=""; }
else if($tagname=="coolart"){ $listtype = "commend"; }
else if($tagname=="autolist"){ $autopartid = $ctag->GetAtt('partsort'); }
else{ $listtype = $ctag->GetAtt('type'); }
//排序
if($ctag->GetAtt('sort')!="") $orderby = $ctag->GetAtt('sort');
else if($tagname=="hotart") $orderby = "click";
else $orderby = $ctag->GetAtt('orderby');
//对相应的标记使用不同的默认innertext
if(trim($ctag->GetInnerText())!="") $innertext = $ctag->GetInnerText();
else if($tagname=="imglist") $innertext = GetSysTemplets("part_imglist.htm");
else if($tagname=="imginfolist") $innertext = GetSysTemplets("part_imginfolist.htm");
else $innertext = GetSysTemplets("part_arclist.htm");
$typeid = trim($ctag->GetAtt("typeid"));
if(empty($typeid)) $typeid = $this->TypeID;
if(!isset($titlelen)) $titlelen = '';
if(!isset($infolen)) $infolen = '';
$this->dtp->Assign($tagid,
$this->GetArcList(
$this->TempletsFile,
$typeid,$ctag->GetAtt("row"),$ctag->GetAtt("col"),
$ctag->GetAtt("titlelen"),$ctag->GetAtt("infolen"),$ctag->GetAtt("imgwidth"),$ctag->GetAtt("imgheight"),
$ctag->GetAtt("type"),$orderby,$ctag->GetAtt("keyword"),$innertext,
$ctag->GetAtt("tablewidth"),0,"",$channelid,$ctag->GetAtt("limit"),$ctag->GetAtt("att"),
$ctag->GetAtt("orderway"),$ctag->GetAtt("subday"),$autopartid,$ctag->GetAtt("ismember")
)
);
}else if($tagname=="channelartlist"){
//获得频道的下级栏目列表及文档列表
$this->dtp->Assign($tagid,
$this->GetChannelList(trim($ctag->GetAtt('typeid')),$ctag->GetAtt('col'),$ctag->GetAtt('tablewidth'),$ctag->GetInnerText())
);
}else if($tagname=="hotwords"){
//热门关键字
$this->dtp->Assign($tagid,
GetHotKeywords($this->dsql,$ctag->GetAtt('num'),$ctag->GetAtt('subday'),$ctag->GetAtt('maxlength'),$ctag->GetAtt('orderby')));
}
else if($tagname=="channel"){
//获得栏目连接列表
$typeid = trim($ctag->GetAtt('typeid'));
if( empty($typeid) ){
$typeid = $this->TypeID;
$reid = $this->TypeLink->TypeInfos['reID'];
}else{
$reid=0;
}
$this->dtp->Assign($tagid,
$this->TypeLink->GetChannelList($typeid,$reid,$ctag->GetAtt("row"),
$ctag->GetAtt("type"),$ctag->GetInnerText(),
$ctag->GetAtt("col"),$ctag->GetAtt("tablewidth"),
$ctag->GetAtt("currentstyle"))
);
}else if($tagname=="mytag"){
//自定义标记
$this->dtp->Assign($tagid,
$this->GetMyTag($ctag->GetAtt("typeid"),$ctag->GetAtt("name"),$ctag->GetAtt("ismake"))
);
}else if($tagname=="myad"){
//广告代码
$this->dtp->Assign($tagid,
$this->GetMyAd($ctag->GetAtt("typeid"),$ctag->GetAtt("name"))
);
}else if($tagname=="vote"){
//投票
$this->dtp->Assign($tagid,
$this->GetVote(
$ctag->GetAtt("id"),$ctag->GetAtt("lineheight"),
$ctag->GetAtt("tablewidth"),$ctag->GetAtt("titlebgcolor"),
$ctag->GetAtt("titlebackground"),$ctag->GetAtt("tablebgcolor")
)
);
}else if($tagname=="friendlink"||$tagname=="flink"){
//友情链接
$this->dtp->Assign($tagid,
$this->GetFriendLink($ctag->GetAtt("type"),
$ctag->GetAtt("row"),$ctag->GetAtt("col"),
$ctag->GetAtt("titlelen"),$ctag->GetAtt("tablestyle"),
$ctag->GetAtt("linktype"),
$ctag->GetInnerText()
)
);
}else if($tagname=="mynews"){
//站内新闻
$this->dtp->Assign($tagid,
$this->GetMyNews($ctag->GetAtt("row"),$ctag->GetAtt("titlelen"),$ctag->GetInnerText())
);
}else if($tagname=="toparea"){
$this->dtp->Assign($tagid,
$this->GetTopArea($ctag->GetInnerText())
);
}else if($tagname=="loop"){
//数据表操作
$this->dtp->Assign($tagid,
$this->GetTable($ctag->GetAtt("table"),
$ctag->GetAtt("row"),$ctag->GetAtt("sort"),
$ctag->GetAtt("if"),$ctag->GetInnerText()
)
);
}else if($tagname=="sql"){
//数据表操作
$this->dtp->Assign($tagid,
$this->GetSql($ctag->GetAtt("sql"),$ctag->GetInnerText())
);
}else if($tagname=="tag"){
//自定义宏标签
$this->dtp->Assign($tagid,
$this->GetTags($ctag->GetAtt("row"),$ctag->GetAtt("sort"),$ctag->GetInnerText())
);
}
else if($tagname=="groupthread")
{
//圈子主题
$this->dtp->Assign($tagid,
$this->GetThreads($ctag->GetAtt("gid"),$ctag->GetAtt("row"),
$ctag->GetAtt("orderby"),$ctag->GetAtt("orderway"),$ctag->GetInnerText())
);
}
else if($tagname=="group")
{
//圈子
$this->dtp->Assign($tagid,
$this->GetGroups($ctag->GetAtt("row"),$ctag->GetAtt("orderby"),$ctag->GetInnerText())
);
}
else if($tagname=="ask")
{
//问答
$this->dtp->Assign($tagid,
$this->GetAsk($ctag->GetAtt("row"),$ctag->GetAtt("qtype"),$ctag->GetInnerText()),$ctag->GetAtt("typeid")
);
}
//特定条件的文档调用
else if($tagname=="arcfulllist"||$tagname=="fulllist"||$tagname=="likeart"||$tagname=="specart")
{
$channelid = $ctag->GetAtt("channelid");
if($tagname=="specart"){ $channelid = -1; }
$typeid = trim($ctag->GetAtt("typeid"));
if(empty($typeid)) $typeid = $this->TypeID;
$this->dtp->Assign($tagid,
$this->GetFullList(
$typeid,$channelid,$ctag->GetAtt("row"),$ctag->GetAtt("titlelen"),$ctag->GetAtt("infolen"),
$ctag->GetAtt("keyword"),$ctag->GetInnerText(),$ctag->GetAtt("idlist"),$ctag->GetAtt("limitv"),$ctag->GetAtt("ismember"),
$ctag->GetAtt("orderby"),$ctag->GetAtt("imgwidth"),$ctag->GetAtt("imgheight")
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -