• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

arcarchivesclassphp

php 搞代码 4年前 (2022-01-23) 21次浏览 已收录 0个评论
<?phpif(!defined('DEDEINC')) exit("Request Error!");/** * 文档类 * * @version        $Id: arc.archives.class.php 4 15:13 2010年7月7日Z tianya $ * @package        DedeCMS.Libraries * @copyright      Copyright (c) 2007 - 2010, DesDev, Inc. * @license        http://help.dedecms.com/usersguide/license.html * @link           http://www.dedecms.com */require_once(DEDEINC."/typelink.class.php");require_once(DEDEINC."/channelunit.class.php");require_once(DEDEINC."/downmix.inc.php");require_once(DEDEINC.'/ftp.class.php');@set_time_limit(0);/** * 主文档类(Archives类) * * @package          TypeLink * @subpackage       DedeCMS.Libraries * @link             http://www.dedecms.com */class Archives{    var $TypeLink;    var $ChannelUnit;    var $dsql;    var $Fields;    var $dtp;    var $ArcID;    var $SplitPageField;    var $SplitFields;    var $NowPage;    var $TotalPage;    var $NameFirst;    var $ShortName;    var $FixedValues;    var $TempSource;    var $IsError;    var $SplitTitles;    var $PreNext;    var $addTableRow;    var $ftp;    var $remoteDir;    /**     *  php5构造函数     *     * @access    public     * @param     int  $aid  文档ID     * @return    string     */    function __construct($aid)    {        global $dsql,$ftp;        $this->IsError = FALSE;        $this->ArcID = $aid;        $this->PreNext = array();        $this->dsql = $dsql;        $query = "SELECT channel,typeid FROM `#@__arctiny` WHERE ";        $arr = $this->dsql->GetOne($query);        if(!is_array($arr))        {            $this->IsError = TRUE;        }        else        {            if($arr['channel']==0) $arr['channel']=1;            $this->ChannelUnit = new ChannelUnit($arr['channel'], $aid);            $this->TypeLink = new TypeLink($arr['typeid']);            if($this->ChannelUnit->ChannelInfos['issystem']!=-1)            {                // 如果当前文档不是系统模型,为单表模型                $query = "SELECT arc.*,tp.reid,tp.typedir,ch.addtable                FROM `#@__archives` arc                         LEFT JOIN #@__arctype tp on tp.id=arc.typeid                          LEFT JOIN #@__channeltype as ch on arc.channel = ch.id                          WHERE arc.id='$aid' ";                $this->Fields = $this->dsql->GetOne($query);            }            else           @本文来源gaodaimacom搞#代%码@网-搞代gaodaima码 {                $this->Fields['title'] = '';                $this->Fields['money'] = $this->Fields['arcrank'] = 0;                $this->Fields['senddate'] = $this->Fields['pubdate'] = $this->Fields['mid'] = $this->Fields['adminid'] = 0;                $this->Fields['ismake'] = 1;                $this->Fields['filename'] = '';            }            if($this->TypeLink->TypeInfos['corank'] > 0 && $this->Fields['arcrank']==0)            {                $this->Fields['arcrank'] = $this->TypeLink->TypeInfos['corank'];            }            $this->Fields['tags'] = GetTags($aid);            $this->dtp = new DedeTagParse();            $this->dtp->SetRefObj($this);            $this->SplitPageField = $this->ChannelUnit->SplitPageField;            $this->SplitFields = '';            $this->TotalPage = 1;            $this->NameFirst = '';            $this->ShortName = 'html';            $this->FixedValues = '';            $this->TempSource = '';            $this->ftp = &$ftp;            $this->remoteDir = '';            if(empty($GLOBALS['pageno']))            {                $this->NowPage = 1;            }            else            {                $this->NowPage = $GLOBALS['pageno'];            }            //特殊的字段数据处理            $this->Fields['aid'] = $aid;            $this->Fields['id'] = $aid;            $this->Fields['position'] = $this->TypeLink->GetPositionLink(TRUE);            $this->Fields['typeid'] = $arr['typeid'];            //设置一些全局参数的值            foreach($GLOBALS['PubFields'] as $k=>$v)            {                $this->Fields[$k] = $v;            }            //为了减少重复查询,这里直接把附加表查询记录放在 $this->addTableRow 中,在 ParAddTable() 不再查询            if($this->ChannelUnit->ChannelInfos['addtable']!='')            {                $query = "SELECT * FROM `{$this->ChannelUnit->ChannelInfos['addtable']}` WHERE `aid` = '$aid'";                $this->addTableRow = $this->dsql->GetOne($query);            }            //issystem==-1 表示单表模型,单表模型不支持redirecturl这类参数,因此限定内容普通模型才进行下面查询            if($this->ChannelUnit->ChannelInfos['addtable']!='' && $this->ChannelUnit->ChannelInfos['issystem']!=-1)            {                if(is_array($this->addTableRow))                {                    $this->Fields['redirecturl'] = $this->addTableRow['redirecturl'];                    $this->Fields['templet'] = $this->addTableRow['templet'];                    $this->Fields['userip'] = $this->addTableRow['userip'];                }                $this->Fields['templet'] = (empty($this->Fields['templet']) ? '' : trim($this->Fields['templet']));                $this->Fields['redirecturl'] = (empty($this->Fields['redirecturl']) ? '' : trim($this->Fields['redirecturl']));                $this->Fields['userip'] = (empty($this->Fields['userip']) ? '' : trim($this->Fields['userip']));            }            else            {                $this->Fields['templet'] = $this->Fields['redirecturl'] = '';            }        }//!error    }    //php4构造函数    function Archives($aid)    {        $this->__construct($aid);    }    /**     *  解析附加表的内容     *     * @access    public     * @return    void     */    function ParAddTable()    {        //读取附加表信息,并把附加表的资料经过编译处理后导入到$this->Fields中,以方便在模板中用 {dede:field name='fieldname' /} 标记统一调用        if($this->ChannelUnit->ChannelInfos['addtable']!='')        {            $row = $this->addTableRow;            if($this->ChannelUnit->ChannelInfos['issystem']==-1)            {                $this->Fields['title'] = $row['title'];                $this->Fields['senddate'] = $this->Fields['pubdate'] = $row['senddate'];                $this->Fields['mid'] = $this->Fields['adminid'] = $row['mid'];                $this->Fields['ismake'] = 1;                $this->Fields['arcrank'] = 0;                $this->Fields['money']=0;                $this->Fields['filename'] = '';            }            if(is_array($row))            {                foreach($row as $k=>$v) $row[strtolower($k)] = $v;            }            if(is_array($this->ChannelUnit->ChannelFields) && !empty($this->ChannelUnit->ChannelFields))            {                foreach($this->ChannelUnit->ChannelFields as $k=>$arr)                {                    if(isset($row[$k]))                    {                        if(!empty($arr['rename']))                        {                            $nk = $arr['rename'];                        }                        else                        {                            $nk = $k;                        }                        $cobj = $this->GetCurTag($k);                        if(is_object($cobj))                        {                            foreach($this->dtp->CTags as $ctag)                            {                                if($ctag->GetTagName()=='field' && $ctag->GetAtt('name')==$k)                                {                                    //带标识的专题节点                                    if($ctag->GetAtt('noteid') != '') {                                        $this->Fields[$k.'_'.$ctag->GetAtt('noteid')] = $this->ChannelUnit->MakeField($k, $row[$k], $ctag);                                    }                                    //带类型的字段节点                                    else if($ctag->GetAtt('type') != '') {                                        $this->Fields[$k.'_'.$ctag->GetAtt('type')] = $this->ChannelUnit->MakeField($k, $row[$k], $ctag);                                    }                                    //其它字段                                    else {                                        $this->Fields[$nk] = $this->ChannelUnit->MakeField($k, $row[$k], $ctag);                                    }                                }                            }                        }                        else                        {                            $this->Fields[$nk] = $row[$k];                        }                        if($arr['type']=='htmltext' && $GLOBALS['cfg_keyword_replace']=='Y' && !empty($this->Fields['keywords']))                        {                            $this->Fields[$nk] = $this->ReplaceKeyword($this->Fields['keywords'],$this->Fields[$nk]);                        }                    }                }//End foreach            }            //设置全局环境变量            $this->Fields['typename'] = $this->TypeLink->TypeInfos['typename'];            @SetSysEnv($this->Fields['typeid'],$this->Fields['typename'],$this->Fields['id'],$this->Fields['title'],'archives');        }        //完成附加表信息读取        unset($row);        //处理要分页显示的字段        $this->SplitTitles = Array();        if($this->SplitPageField!='' && $GLOBALS['cfg_arcsptitle']='Y'        && isset($this->Fields[$this->SplitPageField]))        {            $this->SplitFields = explode("#p#",$this->Fields[$this->SplitPageField]);            $i = 1;            foreach($this->SplitFields as $k=>$v)            {                $tmpv = cn_substr($v,50);                $pos = strpos($tmpv,'#e#');                if($pos>0)                {                    $st = trim(cn_substr($tmpv,$pos));                    if($st==""||$st=="副标题"||$st=="分页标题")                    {                        $this->SplitFields[$k] = preg_replace("/^(.*)#e#/is","",$v);                        continue;                    }                    else                    {                        $this->SplitFields[$k] = preg_replace("/^(.*)#e#/is","",$v);                        $this->SplitTitles[$k] = $st;                    }                }                else                {                    continue;                }                $i++;            }            $this->TotalPage = count($this->SplitFields);            $this->Fields['totalpage'] = $this->TotalPage;        }                //处理默认缩略图等        if (isset($this->Fields['litpic']))        {            if($this->Fields['litpic'] == '-' || $this->Fields['litpic'] == '')            {                $this->Fields['litpic'] = $GLOBALS['cfg_cmspath'].'/images/defaultpic.gif';            }            if(!preg_match("#^http:\/\/#i", $this->Fields['litpic']) && $GLOBALS['cfg_multi_site'] == 'Y')            {                $this->Fields['litpic'] = $GLOBALS['cfg_mainsite'].$this->Fields['litpic'];            }            $this->Fields['picname'] = $this->Fields['litpic'];                        //模板里直接使用{dede:field name='image'/}获取缩略图            $this->Fields['image'] = (!preg_match('/jpg|gif|png/i', $this->Fields['picname']) ? '' : "Fields['picname']}'%20/>");%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20//%20处理投票选项%20%20%20%20%20%20%20%20if%20(isset($this->Fields['voteid'])%20&&%20!empty($this->Fields['voteid']))%20%20%20%20%20%20%20%20{%20%20%20%20%20%20%20%20%20%20%20%20$this->Fields['vote']%20=%20'';%20%20%20%20%20%20%20%20%20%20%20%20$voteid%20=%20$this->Fields['voteid'];%20%20%20%20%20%20%20%20%20%20%20%20$this->Fields['vote']%20=%20"<script%20language='javascript'%20src='{$GLOBALS['cfg_cmspath']}/data/vote/vote_{$voteid}.js'></script>";%20%20%20%20%20%20%20%20%20%20%20%20if%20($GLOBALS['cfg_multi_site']%20==%20'Y')%20%20%20%20%20%20%20%20%20%20%20%20{%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$this->Fields['vote']%20=%20"<script%20language='javascript'%20src='{$GLOBALS['cfg_mainsite']}/data/vote/vote_{$voteid}.js'></script>";%20%20%20%20%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20(isset($this->Fields['goodpost'])%20&&%20isset($this->Fields['badpost']))%20%20%20%20%20%20%20%20{%20%20%20%20%20%20%20%20%20%20%20%20//digg%20%20%20%20%20%20%20%20%20%20%20%20if($this->Fields['goodpost']%20+%20$this->Fields['badpost']%20==%200)%20%20%20%20%20%20%20%20%20%20%20%20{%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$this->Fields['goodper']%20=%20$this->Fields['badper']%20=%200;%20%20%20%20%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20%20%20%20%20else%20%20%20%20%20%20%20%20%20%20%20%20{%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$this->Fields['goodper']%20=%20number_format($this->Fields['goodpost']/($this->Fields['goodpost']+$this->Fields['badpost']),%203)*100;%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$this->Fields['badper']%20=%20100%20-%20$this->Fields['goodper'];%20%20%20%20%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20}%20%20%20%20}%20%20%20%20//获得当前字段参数%20%20%20%20function%20GetCurTag($fieldname)%20%20%20%20{%20%20%20%20%20%20%20%20if(!isset($this->dtp->CTags))%20%20%20%20%20%20%20%20{%20%20%20%20%20%20%20%20%20%20%20%20return%20'';%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20foreach($this->dtp->CTags%20as%20$ctag)%20%20%20%20%20%20%20%20{%20%20%20%20%20%20%20%20%20%20%20%20if($ctag->GetTagName()=='field'%20&&%20$ctag->GetAtt('name')==$fieldname)%20%20%20%20%20%20%20%20%20%20%20%20{%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20$ctag;%20%20%20%20%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20%20%20%20%20else%20%20%20%20%20%20%20%20%20%20%20%20{%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20continue;%20%20%20%20%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20return%20'';%20%20%20%20}%20%20%20%20/**%20%20%20%20%20*%20%20生成静态HTML%20%20%20%20%20*%20%20%20%20%20*%20@access%20%20%20%20public%20%20%20%20%20*%20@param%20%20%20%20%20int%20%20%20%20$isremote%20%20是否远程%20%20%20%20%20*%20@return%20%20%20%20string%20%20%20%20%20*/%20%20%20%20function%20MakeHtml($isremote=0)%20%20%20%20{%20%20%20%20%20%20%20%20global%20$cfg_remote_site,$fileFirst;%20%20%20%20%20%20%20%20if($this->IsError)%20%20%20%20%20%20%20%20{%20%20%20%20%20%20%20%20%20%20%20%20return%20'';%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20$this->Fields["displaytype"]%20=%20"st";%20%20%20%20%20%20%20%20//预编译$th%20%20%20%20%20%20%20%20$this->LoadTemplet();%20%20%20%20%20%20%20%20$this->ParAddTable();%20%20%20%20%20%20%20%20$this->ParseTempletsFirst();%20%20%20%20%20%20%20%20$this->Fields['senddate']%20=%20empty($this->Fields['senddate'])?%20''%20:%20$this->Fields['senddate'];%20%20%20%20%20%20%20%20$this->Fields['title']%20=%20empty($this->Fields['title'])?%20''%20:%20$this->Fields['title'];%20%20%20%20%20%20%20%20$this->Fields['arcrank']%20=%20empty($this->Fields['arcrank'])?%200%20:%20$this->Fields['arcrank'];%20%20%20%20%20%20%20%20$this->Fields['ismake']%20=%20empty($this->Fields['ismake'])?%200%20:%20$this->Fields['ismake'];%20%20%20%20%20%20%20%20$this->Fields['money']%20=%20empty($this->Fields['money'])?%200%20:%20$this->Fields['money'];%20%20%20%20%20%20%20%20$this->Fields['filename']%20=%20empty($this->Fields['filename'])?%20''%20:%20$this->Fields['filename'];%20%20%20%20%20%20%20%20//分析要创建的文件名称%20%20%20%20%20%20%20%20$filename%20=%20GetFileNewName(%20%20%20%20%20%20%20%20%20%20%20%20$this->ArcID,$this->Fields['typeid'],$this->Fields['senddate'],%20%20%20%20%20%20%20%20%20%20%20%20$this->Fields['title'],$this->Fields['ismake'],$this->Fields['arcrank'],%20%20%20%20%20%20%20%20%20%20%20%20$this->TypeLink->TypeInfos['namerule'],$this->TypeLink->TypeInfos['typedir'],$this->Fields['money'],$this->Fields['filename']%20%20%20%20%20%20%20%20);%20%20%20%20%20%20%20%20$filenames%20%20=%20explode(".",%20$filename);%20%20%20%20%20%20%20%20$this->ShortName%20=%20$filenames[count($filenames)-1];%20%20%20%20%20%20%20%20if($this->ShortName=='')%20$this->ShortName%20=%20'html';%20%20%20%20%20%20%20%20$fileFirst%20=%20preg_replace("/\.".$this->ShortName."$/i",%20"",%20$filename);%20%20%20%20%20%20%20%20$this->Fields['namehand']%20=%20basename($fileFirst);%20%20%20%20%20%20%20%20$filenames%20%20=%20explode("/",%20$filename);%20%20%20%20%20%20%20%20$this->NameFirst%20=%20preg_replace("/\.".$this->ShortName."$/i",%20"",%20$filenames[count($filenames)-1]);%20%20%20%20%20%20%20%20if($this->NameFirst=='')%20%20%20%20%20%20%20%20{%20%20%20%20%20%20%20%20%20%20%20%20$this->NameFirst%20=%20$this->arcID;%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20//获得当前文档的全名%20%20%20%20%20%20%20%20$filenameFull%20=%20GetFileUrl(%20%20%20%20%20%20%20%20%20%20%20%20$this->ArcID,$this->Fields['typeid'],$this->Fields["senddate"],%20%20%20%20%20%20%20%20%20%20%20%20$this->Fields["title"],$this->Fields["ismake"],%20%20%20%20%20%20%20%20%20%20%20%20$this->Fields["arcrank"],$this->TypeLink->TypeInfos['namerule'],$this->TypeLink->TypeInfos['typedir'],$this->Fields["money"],$this->Fields['filename'],%20%20%20%20%20%20%20%20%20%20%20%20$this->TypeLink->TypeInfos['moresite'],$this->TypeLink->TypeInfos['siteurl'],$this->TypeLink->TypeInfos['sitepath']%20%20%20%20%20%20%20%20);%20%20%20%20%20%20%20%20$this->Fields['arcurl']%20=%20$this->Fields['fullname']%20=%20$filenameFull;%20%20%20%20%20%20%20%20//对于已设置不生成HTML的文章直接返回网址%20%20%20%20%20%20%20%20if($this->Fields['ismake']==-1%20||%20$this->Fields['arcrank']!=0%20||%20$this->Fields['money']>0%20%20%20%20%20%20%20%20%20%20%20%20||%20($this->Fields['typeid']==0%20&&%20$this->Fields['channel']%20!=%20-1)%20)%20%20%20%20%20%20%20%20{%20%20%20%20%20%20%20%20%20%20%20%20return%20$this->GetTrueUrl($filename);%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20//循环生成HTML文件%20%20%20%20%20%20%20%20else%20%20%20%20%20%20%20%20{%20%20%20%20%20%20%20%20%20%20%20%20for($i=1;$iTotalPage;$i++)%20%20%20%20%20%20%20%20%20%20%20%20{%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if($this->TotalPage%20>%201)%20{%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$this->Fields['tmptitle']%20=%20(empty($this->Fields['tmptitle'])%20?%20$this->Fields['title']%20:%20$this->Fields['tmptitle']);%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if($i>1)%20$this->Fields['title']%20=%20$this->Fields['tmptitle']."($i)";%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if($i>1)%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20{%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$TRUEfilename%20=%20$this->GetTruePath().$fileFirst."_".$i.".".$this->ShortName;%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20else%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20{%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$TRUEfilename%20=%20$this->GetTruePath().$filename;%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$this->ParseDMFields($i,1);%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$this->dtp->SaveTo($TRUEfilename);%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//如果启用远程发布则需要进行判断%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if($cfg_remote_site=='Y'%20&&%20$isremote%20==%201)%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20{%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//分析远程文件路径%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$remotefile%20=%20str_replace(DEDEROOT,%20'',%20$TRUEfilename);%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$localfile%20=%20'..'.$remotefile;%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//创建远程文件夹%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$remotedir%20=%20preg_replace("#[^\/]*\.html#",%20'',%20$remotefile);%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$this->ftp->rmkdir($remotedir);%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$this->ftp->upload($localfile,%20$remotefile,%20'ascii');%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20$this->dsql->ExecuteNoneQuery("Update%20`#@__archives`%20SET%20ismake=1%20WHERE.$this->ArcID."'");%20%20%20%20%20%20%20%20return%20$this->GetTrueUrl($filename);%20%20%20%20}%20%20%20%20/**%20%20%20%20%20*%20%20获得真实连接路径%20%20%20%20%20*%20%20%20%20%20*%20@access%20%20%20%20public%20%20%20%20%20*%20@param%20%20%20%20%20string%20%20%20%20$nurl%20%20连接%20%20%20%20%20*%20@return%20%20%20%20string%20%20%20%20%20*/%20%20%20%20function%20GetTrueUrl($nurl)%20%20%20%20{%20%20%20%20%20%20%20%20return%20GetFileUrl%20%20%20%20%20%20%20%20(%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$this->Fields['id'],%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$this->Fields['typeid'],%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$this->Fields['senddate'],%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$this->Fields['title'],%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$this->Fields['ismake'],%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$this->Fields['arcrank'],%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$this->TypeLink->TypeInfos['namerule'],%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$this->TypeLink->TypeInfos['typedir'],%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$this->Fields['money'],%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$this->Fields['filename'],%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$this->TypeLink->TypeInfos['moresite'],%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$this->TypeLink->TypeInfos['siteurl'],%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$this->TypeLink->TypeInfos['sitepath']%20%20%20%20%20%20%20%20);%20%20%20%20}%20%20%20%20/**%20%20%20%20%20*%20%20获得站点的真实根路径%20%20%20%20%20*%20%20%20%20%20*%20@access%20%20%20%20public%20%20%20%20%20*%20@return%20%20%20%20string%20%20%20%20%20*/%20%20%20%20function%20GetTruePath()%20%20%20%20{%20%20%20%20%20%20%20%20$TRUEpath%20=%20$GLOBALS["cfg_basedir"];%20%20%20%20%20%20%20%20return%20$TRUEpath;%20%20%20%20}%20%20%20%20/**%20%20%20%20%20*%20%20获得指定键值的字段%20%20%20%20%20*%20%20%20%20%20*%20@access%20%20%20%20public%20%20%20%20%20*%20@param%20%20%20%20%20string%20%20$fname%20%20键名称%20%20%20%20%20*%20@param%20%20%20%20%20string%20%20$ctag%20%20标记%20%20%20%20%20*%20@return%20%20%20%20string%20%20%20%20%20*/%20%20%20%20function%20GetField($fname,%20$ctag)%20%20%20%20{%20%20%20%20%20%20%20%20//所有Field数组%20OR%20普通Field%20%20%20%20%20%20%20%20if($fname=='array')%20%20%20%20%20%20%20%20{%20%20%20%20%20%20%20%20%20%20%20%20return%20$this->Fields;%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20//指定了ID的节点%20%20%20%20%20%20%20%20else%20if($ctag->GetAtt('noteid')%20!=%20'')%20%20%20%20%20%20%20%20{%20%20%20%20%20%20%20%20%20%20%20%20if(%20isset($this->Fields[$fname.'_'.$ctag->GetAtt('noteid')])%20)%20%20%20%20%20%20%20%20%20%20%20%20{%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20$this->Fields[$fname.'_'.$ctag->GetAtt('noteid')];%20%20%20%20%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20//指定了type的节点%20%20%20%20%20%20%20%20else%20if($ctag->GetAtt('type')%20!=%20'')%20%20%20%20%20%20%20%20{%20%20%20%20%20%20%20%20%20%20%20%20if(%20isset($this->Fields[$fname.'_'.$ctag->GetAtt('type')])%20)%20%20%20%20%20%20%20%20%20%20%20%20{%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20$this->Fields[$fname.'_'.$ctag->GetAtt('type')];%20%20%20%20%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20else%20if(%20isset($this->Fields[$fname])%20)%20%20%20%20%20%20%20%20{%20%20%20%20%20%20%20%20%20%20%20%20return%20$this->Fields[$fname];%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20return%20'';%20%20%20%20}%20%20%20%20/**%20%20%20%20%20*%20%20获得模板文件位置%20%20%20%20%20*%20%20%20%20%20*%20@access%20%20%20%20public%20%20%20%20%20*%20@return%20%20%20%20string%20%20%20%20%20*/%20%20%20%20function%20GetTempletFile()%20%20%20%20{%20%20%20%20%20%20%20%20global%20$cfg_basedir,$cfg_templets_dir,$cfg_df_style;%20%20%20%20%20%20%20%20$cid%20=%20$this->ChannelUnit->ChannelInfos['nid'];%20%20%20%20%20%20%20%20if(!empty($this->Fields['templet']))%20%20%20%20%20%20%20%20{%20%20%20%20%20%20%20%20%20%20%20%20$filetag%20=%20MfTemplet($this->Fields['templet']);%20%20%20%20%20%20%20%20%20%20%20%20if(%20!preg_match("#\/#",%20$filetag)%20)%20$filetag%20=%20$GLOBALS['cfg_df_style'].'/'.$filetag;%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20else%20%20%20%20%20%20%20%20{%20%20%20%20%20%20%20%20%20%20%20%20$filetag%20=%20MfTemplet($this->TypeLink->TypeInfos["temparticle"]);%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20$tid%20=%20$this->Fields['typeid'];%20%20%20%20%20%20%20%20$filetag%20=%20str_replace('{cid}',%20$cid,$filetag);%20%20%20%20%20%20%20%20$filetag%20=%20str_replace('{tid}',%20$tid,$filetag);%20%20%20%20%20%20%20%20$tmpfile%20=%20$cfg_basedir.$cfg_templets_dir.'/'.$filetag;%20%20%20%20%20%20%20%20if($cid=='spec')%20%20%20%20%20%20%20%20{%20%20%20%20%20%20%20%20%20%20%20%20if(%20!empty($this->Fields['templet'])%20)%20%20%20%20%20%20%20%20%20%20%20%20{%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$tmpfile%20=%20$cfg_basedir.$cfg_templets_dir.'/'.$filetag;%20%20%20%20%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20%20%20%20%20else%20%20%20%20%20%20%20%20%20%20%20%20{%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$tmpfile%20=%20$cfg_basedir.$cfg_templets_dir."/{$cfg_df_style}/article_spec.htm";%20%20%20%20%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20if%20(%20defined('DEDEMOB')%20)%20%20%20%20%20%20%20%20{%20%20%20%20%20%20%20%20%20%20%20%20$tmpfile%20=str_replace('.htm','_m.htm',$tmpfile);%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20if(!file_exists($tmpfile))%20%20%20%20%20%20%20%20{%20%20%20%20%20%20%20%20%20%20%20%20$tmpfile%20=%20$cfg_basedir.$cfg_templets_dir."/{$cfg_df_style}/".($cid=='spec'%20?%20'article_spec.htm'%20:%20'article_default.htm');%20%20%20%20%20%20%20%20%20%20%20%20if%20(%20defined('DEDEMOB')%20)%20%20%20%20%20%20%20%20%20%20%20%20{%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$tmpfile%20=str_replace('.htm','_m.htm',$tmpfile);%20%20%20%20%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20if%20(!preg_match("#.htm$#",%20$tmpfile))%20return%20FALSE;%20%20%20%20%20%20%20%20return%20$tmpfile;%20%20%20%20}%20%20%20%20/**%20%20%20%20%20*%20%20动态输出结果%20%20%20%20%20*%20%20%20%20%20*%20@access%20%20%20%20public%20%20%20%20%20*%20@return%20%20%20%20void%20%20%20%20%20*/%20%20%20%20function%20display()%20%20%20%20{%20%20%20%20%20%20%20%20global%20$htmltype;%20%20%20%20%20%20%20%20if($this->IsError)%20%20%20%20%20%20%20%20{%20%20%20%20%20%20%20%20%20%20%20%20return%20'';%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20$this->Fields["displaytype"]%20=%20"dm";%20%20%20%20%20%20%20%20if($this->NowPage%20>%201)%20$this->Fields["title"]%20=%20$this->Fields["title"]."({$this->NowPage})";%20%20%20%20%20%20%20%20//预编译%20%20%20%20%20%20%20%20$this->LoadTemplet();%20%20%20%20%20%20%20%20$this->ParAddTable();%20%20%20%20%20%20%20%20$this->ParseTempletsFirst();%20%20%20%20%20%20%20%20//跳转网址%20%20%20%20%20%20%20%20$this->Fields['flag']=empty($this->Fields['flag'])?%20""%20:%20$this->Fields['flag'];%20%20%20%20%20%20%20%20if(preg_match("#j#",%20$this->Fields['flag'])%20&&%20$this->Fields['redirecturl']%20!=%20'')%20%20%20%20%20%20%20%20{%20%20%20%20%20%20%20%20%20%20%20%20if($GLOBALS['cfg_jump_once']=='N')%20%20%20%20%20%20%20%20%20%20%20%20{%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$pageHtml%20=%20"\r\n\r\n<meta%20http-equiv=\"Content-Type\"%20c/html;%20charset=".$GLOBALS['cfg_soft_lang']."\">\r\n".$this->Fields['title']."\r\n";%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$pageHtml%20.=%20"<meta%20http-equiv=\"refresh\"%20c/head>\r\n<body>\r\n";%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$pageHtml%20.=%20"现在正在转向:".$this->Fields['title'].",请稍候...

\r\n转向内容简介:".$this->Fields['description']."\r\n\r\n\r\n";%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20echo%20$pageHtml;%20%20%20%20%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20%20%20%20%20else%20%20%20%20%20%20%20%20%20%20%20%20{%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20header("location:{$this->Fields['redirecturl']}");%20%20%20%20%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20%20%20%20%20exit();%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20$pageCount%20=%20$this->NowPage;%20%20%20%20%20%20%20%20$this->ParseDMFields($pageCount,0);%20%20%20%20%20%20%20%20$this->dtp->display();%20%20%20%20}%20%20%20%20/**%20%20%20%20%20*%20%20载入模板%20%20%20%20%20*%20%20%20%20%20*%20@access%20%20%20%20public%20%20%20%20%20*%20@return%20%20%20%20void%20%20%20%20%20*/%20%20%20%20function%20LoadTemplet()%20%20%20%20{%20%20%20%20%20%20%20%20if($this->TempSource=='')%20%20%20%20%20%20%20%20{%20%20%20%20%20%20%20%20%20%20%20%20$tempfile%20=%20$this->GetTempletFile();%20%20%20%20%20%20%20%20%20%20%20%20if(!file_exists($tempfile)%20||%20!is_file($tempfile))%20%20%20%20%20%20%20%20%20%20%20%20{%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20echo%20"文档ID:{$this->Fields['id']}%20-%20{$this->TypeLink->TypeInfos['typename']}%20-%20{$this->Fields['title']}
";%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20echo%20"模板文件不存在,无法解析文档!";%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20exit();%20%20%20%20%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20%20%20%20%20$this->dtp->LoadTemplate($tempfile);%20%20%20%20%20%20%20%20%20%20%20%20$this->TempSource%20=%20$this->dtp->SourceString;%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20else%20%20%20%20%20%20%20%20{%20%20%20%20%20%20%20%20%20%20%20%20$this->dtp->LoadSource($this->TempSource);%20%20%20%20%20%20%20%20}%20%20%20%20}%20%20%20%20/**%20%20%20%20%20*%20%20解析模板,对固定的标记进行初始给值%20%20%20%20%20*%20%20%20%20%20*%20@access%20%20%20%20public%20%20%20%20%20*%20@return%20%20%20%20void%20%20%20%20%20*/%20%20%20%20function%20ParseTempletsFirst()%20%20%20%20{%20%20%20%20%20%20%20%20if(empty($this->Fields['keywords']))%20%20%20%20%20%20%20%20{%20%20%20%20%20%20%20%20%20%20%20%20$this->Fields['keywords']%20=%20'';%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20if(empty($this->Fields['reid']))%20%20%20%20%20%20%20%20{%20%20%20%20%20%20%20%20%20%20%20%20$this->Fields['reid']%20=%200;%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20$GLOBALS['envs']['tags']%20=%20$this->Fields['tags'];%20%20%20%20%20%20%20%20if(isset($this->TypeLink->TypeInfos['reid']))%20%20%20%20%20%20%20%20{%20%20%20%20%20%20%20%20%20%20%20%20$GLOBALS['envs']['reid']%20=%20$this->TypeLink->TypeInfos['reid'];%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20$GLOBALS['envs']['keyword']%20=%20$this->Fields['keywords'];%20%20%20%20%20%20%20%20$GLOBALS['envs']['typeid']%20=%20$this->Fields['typeid'];%20%20%20%20%20%20%20%20$GLOBALS['envs']['topid']%20=%20GetTopid($this->Fields['typeid']);%20%20%20%20%20%20%20%20$GLOBALS['envs']['aid']%20=%20$GLOBALS['envs']['id']%20=%20$this->Fields['id'];%20%20%20%20%20%20%20%20$GLOBALS['envs']['adminid']%20=%20$GLOBALS['envs']['mid']%20=%20isset($this->Fields['mid'])?%20$this->Fields['mid']%20:%201;%20%20%20%20%20%20%20%20$GLOBALS['envs']['channelid']%20=%20$this->TypeLink->TypeInfos['channeltype'];%20%20%20%20%20%20%20%20if($this->Fields['reid']>0)%20%20%20%20%20%20%20%20{%20%20%20%20%20%20%20%20%20%20%20%20$GLOBALS['envs']['typeid']%20=%20$this->Fields['reid'];%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20MakeOneTag($this->dtp,%20$this,%20'N');%20%20%20%20}%20%20%20%20/**%20%20%20%20%20*%20%20解析模板,对内容里的变动进行赋值%20%20%20%20%20*%20%20%20%20%20*%20@access%20%20%20%20public%20%20%20%20%20*%20@param%20%20%20%20%20string%20%20$pageNo%20%20页码数%20%20%20%20%20*%20@param%20%20%20%20%20string%20%20$ismake%20%20是否生成%20%20%20%20%20*%20@return%20%20%20%20string%20%20%20%20%20*/%20%20%20%20function%20ParseDMFields($pageNo,%20$ismake=1)%20%20%20%20{%20%20%20%20%20%20%20%20$this->NowPage%20=%20$pageNo;%20%20%20%20%20%20%20%20$this->Fields['nowpage']%20=%20$this->NowPage;%20%20%20%20%20%20%20%20if($this->SplitPageField!=''%20&&%20isset($this->Fields[$this->SplitPageField]))%20%20%20%20%20%20%20%20{%20%20%20%20%20%20%20%20%20%20%20%20$this->Fields[$this->SplitPageField]%20=%20$this->SplitFields[$pageNo%20-%201];%20%20%20%20%20%20%20%20%20%20%20%20if($pageNo>1)%20$this->Fields['description']%20=%20trim(preg_replace("/[\r\n\t]/",%20'%20',%20cn_substr(html2text($this->Fields[$this->SplitPageField]),%20200)));%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20//解析模板%20%20%20%20%20%20%20%20if(is_array($this->dtp->CTags))%20%20%20%20%20%20%20%20{%20%20%20%20%20%20%20%20%20%20%20%20foreach($this->dtp->CTags%20as%20$i=>$ctag)%20%20%20%20%20%20%20%20%20%20%20%20{%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if($ctag->GetName()=='field')%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20{%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$this->dtp->Assign($i,%20$this->GetField($ctag->GetAtt('name'),%20$ctag)%20);%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20else%20if($ctag->GetName()=='pagebreak')%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20{%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if($ismake==0)%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20{%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$this->dtp->Assign($i,$this->GetPagebreakDM($this->TotalPage,$this->NowPage,$this->ArcID));%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20else%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20{%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$this->dtp->Assign($i,$this->GetPagebreak($this->TotalPage,$this->NowPage,$this->ArcID));%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20else%20if($ctag->GetName()=='pagetitle')%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20{%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if($ismake==0)%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20{%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$this->dtp->Assign($i,$this->GetPageTitlesDM($ctag->GetAtt("style"),$pageNo));%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20else%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20{%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$this->dtp->Assign($i,$this->GetPageTitlesST($ctag->GetAtt("style"),$pageNo));%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20else%20if($ctag->GetName()=='prenext')%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20{%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$this->dtp->Assign($i,$this->GetPreNext($ctag->GetAtt('get')));%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20else%20if($ctag->GetName()=='fieldlist')%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20{%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$innertext%20=%20trim($ctag->GetInnerText());%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if($innertext=='')%20$innertext%20=%20GetSysTemplets('tag_fieldlist.htm');%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$dtp2%20=%20new%20DedeTagParse();%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$dtp2->SetNameSpace('field','[',']');%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$dtp2->LoadSource($innertext);%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$oldSource%20=%20$dtp2->SourceString;%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$oldCtags%20=%20$dtp2->CTags;%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$res%20=%20'';%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if(is_array($this->ChannelUnit->ChannelFields)%20&&%20is_array($dtp2->CTags))%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20{%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20foreach($this->ChannelUnit->ChannelFields%20as%20$k=>$v)%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20{%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if(isset($v['autofield'])%20&&%20empty($v['autofield']))%20{%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20continue;%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$dtp2->SourceString%20=%20$oldSource;%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$dtp2->CTags%20=%20$oldCtags;%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$fname%20=%20$v['itemname'];%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20foreach($dtp2->CTags%20as%20$tid=>$ctag2)%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20{%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if($ctag2->GetName()=='name')%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20{%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$dtp2->Assign($tid,$fname);%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20else%20if($ctag2->GetName()=='tagname')%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20{%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$dtp2->Assign($tid,$k);%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20else%20if($ctag2->GetName()=='value')%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20{%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$this->Fields[$k]%20=%20$this->ChannelUnit->MakeField($k,$this->Fields[$k],$ctag2);%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20@$dtp2->Assign($tid,$this->Fields[$k]);%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$res%20.=%20$dtp2->GetResult();%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$this->dtp->Assign($i,$res);%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20}//end%20case%20%20%20%20%20%20%20%20%20%20%20%20}//结束模板循环%20%20%20%20%20%20%20%20}%20%20%20%20}%20%20%20%20/**%20%20%20%20%20*%20%20关闭所占用的资源%20%20%20%20%20*%20%20%20%20%20*%20@access%20%20%20%20public%20%20%20%20%20*%20@return%20%20%20%20void%20%20%20%20%20*/%20%20%20%20function%20Close()%20%20%20%20{%20%20%20%20%20%20%20%20$this->FixedValues%20=%20'';%20%20%20%20%20%20%20%20$this->Fields%20=%20'';%20%20%20%20}%20%20%20%20/**%20%20%20%20%20*%20%20获取上一篇,下一篇链接%20%20%20%20%20*%20%20%20%20%20*%20@access%20%20%20%20public%20%20%20%20%20*%20@param%20%20%20%20%20string%20%20$gtype%20%20获取类型%20%20%20%20%20%20%20*%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20pre:上一篇%20%20preimg:上一篇图片%20%20next:下一篇%20%20nextimg:下一篇图片%20%20%20%20%20*%20@return%20%20%20%20string%20%20%20%20%20*/%20%20%20%20function%20GetPreNext($gtype='')%20%20%20%20{%20%20%20%20%20%20%20%20$rs%20=%20'';%20%20%20%20%20%20%20%20if(count($this->PreNext)ArcID;%20%20%20%20%20%20%20%20%20%20%20%20$preR%20=%20%20$this->dsql->GetOne("Select%20id%20From%20`#@__arctiny`%20where%20id-1%20And%20typeid='{$this->Fields['typeid']}'%20order%20by%20id%20desc");%20%20%20%20%20%20%20%20%20%20%20%20$nextR%20=%20$this->dsql->GetOne("Select%20id%20From%20`#@__arctiny`%20where%20id>$aid%20And%20arcrank>-1%20And%20typeid='{$this->Fields['typeid']}'%20order%20by%20id%20asc");%20%20%20%20%20%20%20%20%20%20%20%20$next%20=%20(is_array($nextR)%20?%20"%20where%20arc.id={$nextR['id']}%20"%20:%20'%20where%201>2%20');%20%20%20%20%20%20%20%20%20%20%20%20$pre%20=%20(is_array($preR)%20?%20"%20where%20arc.id={$preR['id']}%20"%20:%20'%20where%201>2%20');%20%20%20%20%20%20%20%20%20%20%20%20$query%20=%20"Select%20arc.id,arc.title,arc.shorttitle,arc.typeid,arc.ismake,arc.senddate,arc.arcrank,arc.money,arc.filename,arc.litpic,%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20t.typedir,t.typename,t.namerule,t.namerule2,t.ispart,t.moresite,t.siteurl,t.sitepath%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20from%20`#@__archives`%20arc%20left%20join%20#@__arctype%20t%20on%20arc.typeid=t.id%20%20";%20%20%20%20%20%20%20%20%20%20%20%20$nextRow%20=%20$this->dsql->GetOne($query.$next);%20%20%20%20%20%20%20%20%20%20%20%20$preRow%20=%20$this->dsql->GetOne($query.$pre);%20%20%20%20%20%20%20%20%20%20%20%20if(is_array($preRow))%20%20%20%20%20%20%20%20%20%20%20%20{%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$mlink%20=%20GetFileUrl($preRow['id'],$preRow['typeid'],$preRow['senddate'],$preRow['title'],$preRow['ismake'],$preRow['arcrank'],%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$preRow['namerule'],$preRow['typedir'],$preRow['money'],$preRow['filename'],$preRow['moresite'],$preRow['siteurl'],$preRow['sitepath']);%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$this->PreNext['pre']%20=%20"上一篇:{$preRow['title']}%20";%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$this->PreNext['preimg']%20=%20"%20";%20%20%20%20%20%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20%20%20%20%20else%20%20%20%20%20%20%20%20%20%20%20%20{%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$this->PreNext['pre']%20=%20"上一篇:没有了%20";%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$this->PreNext['preimg']%20=""; } if(is_array($nextRow)) { $mlink = GetFileUrl($nextRow['id'],$nextRow['typeid'],$nextRow['senddate'],$nextRow['title'],$nextRow['ismake'],$nextRow['arcrank'], $nextRow['namerule'],$nextRow['typedir'],$nextRow['money'],$nextRow['filename'],$nextRow['moresite'],$nextRow['siteurl'],$nextRow['sitepath']); $this->PreNext['next'] = "下一篇:{$nextRow['title']} "; $this->PreNext['nextimg'] = "%20";%20%20%20%20%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20%20%20%20%20else%20%20%20%20%20%20%20%20%20%20%20%20{%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$this->PreNext['next']%20=%20"下一篇:没有了%20";%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20$this->PreNext['nextimg']%20=""; } } if($gtype=='pre') { $rs = $this->PreNext['pre']; } else if($gtype=='preimg'){ $rs = $this->PreNext['preimg']; } else if($gtype=='next') { $rs = $this->PreNext['next']; } else if($gtype=='nextimg'){ $rs = $this->PreNext['nextimg']; } else { $rs = $this->PreNext['pre']." ".$this->PreNext['next']; } return $rs; } /** * 获得动态页面分页列表 * * @access public * @param int $totalPage 总页数 * @param int $nowPage 当前页数 * @param int $aid 文档id * @return string */ function GetPagebreakDM($totalPage, $nowPage, $aid) { global $cfg_rewrite; if($totalPage==1) { return ""; } $PageList = "
  • 共".$totalPage."页:
  • "; $nPage = $nowPage-1; $lPage = $nowPage+1; if($nowPage==1) { $PageList.="
  • 上一页
  • "; } else { if($nPage==1) { $PageList.="
  • 上一页
  • "; if($cfg_rewrite == 'Y') { $PageList = preg_replace("#.php\?aid=(\d+)#i", '-\\1-1.html', $PageList); } } else { $PageList.="
  • 上一页
  • "; if($cfg_rewrite == 'Y') { $PageList = str_replace(".php?aid=", "-", $PageList); $PageList = preg_replace("#&pageno=(\d+)#i", '-\\1.html', $PageList); } } } for($i=1;$i<=$totalPage;$i++) { if($i==1) { if($nowPage!=1) { $PageList.="
  • 1
  • "; if($cfg_rewrite == 'Y') { $PageList = preg_replace("#.php\?aid=(\d+)#i", '-\\1-1.html', $PageList); } } else { $PageList.="
  • 1
  • "; } } else { $n = $i; if($nowPage!=$i) { $PageList.="
  • ".$n."
  • "; if($cfg_rewrite == 'Y') { $PageList = str_replace(".php?aid=", "-", $PageList); $PageList = preg_replace("#&pageno=(\d+)#i", '-\\1.html', $PageList); } } else { $PageList.="
  • {$n}
  • "; } } } if($lPage <= $totalPage) { $PageList.="
  • 下一页
  • "; if($cfg_rewrite == 'Y') { $PageList = str_replace(".php?aid=", "-", $PageList); $PageList = preg_replace("#&pageno=(\d+)#i", '-\\1.html', $PageList); } } else { $PageList.= "
  • 下一页
  • "; } return $PageList; } /** * 获得静态页面分页列表 * * @access public * @param int $totalPage 总页数 * @param int $nowPage 当前页数 * @param int $aid 文档id * @return string */ function GetPagebreak($totalPage, $nowPage, $aid) { if($totalPage==1) { return ""; } $PageList = "
  • 共".$totalPage."页:
  • "; $nPage = $nowPage-1; $lPage = $nowPage+1; if($nowPage==1) { $PageList.="
  • 上一页
  • "; } else { if($nPage==1) { $PageList.="
  • NameFirst.".".$this->ShortName."'>上一页
  • "; } else { $PageList.="
  • NameFirst."_".$nPage.".".$this->ShortName."'>上一页
  • "; } } for($i=1;$i<=$totalPage;$i++) { if($i==1) { if($nowPage!=1) { $PageList.="
  • NameFirst.".".$this->ShortName."'>1
  • "; } else { $PageList.="
  • 1
  • "; } } else { $n = $i; if($nowPage!=$i) { $PageList.="
  • NameFirst."_".$i.".".$this->ShortName."'>".$n."
  • "; } else { $PageList.="
  • {$n}
  • "; } } } if($lPage <= $totalPage) { $PageList.="
  • NameFirst."_".$lPage.".".$this->ShortName."'>下一页
  • "; } else { $PageList.= "
  • 下一页
  • "; } return $PageList; } /** * 获得动态页面小标题 * * @access public * @param string $styleName 类型名称 * @param string $pageNo 页码数 * @return string */ function GetPageTitlesDM($styleName, $pageNo) { if($this->TotalPage==1) { return ""; } if(count($this->SplitTitles)==0) { return ""; } $i=1; $aid = $this->ArcID; if($styleName=='link') { $revalue = ""; foreach($this->SplitTitles as $k=>$v) { if($i==1) { $revalue .= "$v \r\n"; } else { if($pageNo==$i) { $revalue .= " $v \r\n"; } else { $revalue .= "$v \r\n"; } } $i++; } } else { $revalue = "{$i}、{$v}\r\n"; } else { $revalue .= "Fields['phpurl']."/view.php?aid=$aid&pageno=$i'>{$i}、{$v}\r\n"; } } $i++; } $revalue .= "\r\n"; } return $revalue; } /** * 获得静态页面小标题 * * @access public * @param string $styleName 类型名称 * @param string $pageNo 页码数 * @return string */ function GetPageTitlesST($styleName, $pageNo) { if($this->TotalPage==1) { return ""; } if(count($this->SplitTitles)==0) { return ""; } $i=1; if($styleName=='link') { $revalue = ""; foreach($this->SplitTitles as $k=>$v) { if($i==1) { $revalue .= "NameFirst.".".$this->ShortName."'>$v \r\n"; } else { if($pageNo==$i) { $revalue .= " $v \r\n"; } else { $revalue .= "NameFirst."_".$i.".".$this->ShortName."'>$v \r\n"; } } $i++; } } else { $revalue = "{$i}、{$v}\r\n"; } else { $revalue .= "NameFirst."_".$i.".".$this->ShortName."'>{$i}、{$v}\r\n"; } } $i++; } $revalue .= "\r\n"; } return $revalue; } /** * 高亮问题修正, 排除alt title 直接的字符替换 * * @param string $kw * @param string $body * @return string */ function ReplaceKeyword($kw,&$body) { $query = "SELECT * FROM #@__keywords WHERE rpurl'' ORDER BY LENGTH(keyword) DESC"; $this->dsql->SetQuery($query); $this->dsql->Execute(); $tags = array(); while($row = $this->dsql->GetArray()) { $key = trim($row['keyword']); $key_url = trim($row['rpurl']); $tags[] = array('tagName' => $key, 'tagUrl' => $key_url); } $body = $this -> tagReplace($body, $tags); return $body; } public function tagReplace($content, $tags){//替换内容及所有tags $replaceArr = array(); $htmTagsArr = array(); $content = $this -> shieldHtmlTag($content, $htmTagsArr); foreach($tags as $key=>$value) { $content = $this -> tagReplaceContent($content, $tags[$key], $replaceArr, $key); } foreach($replaceArr as $key=>$value) { //echo "Key=" . $key . ", Value=" . $value . "
    "; $content = str_replace($key, $value, $content); } $content = $this -> recoveryHtmlTag($content, $htmTagsArr); return $content; } public function tagReplaceContent($content, $tag, &$replaceArr, $i){//替换内容及tag $tagName = $tag['tagName']; $tagUrl = $tag['tagUrl']; //echo "tagName=" . $tagName . ", tagUrl=" . $tagUrl . "
    "; //$content = str_replace($reValue, $tagName, $content); $reKey = "######" . $i . "######"; $content = str_replace($tagName, $reKey, $content); $reValue = "".$tagName.""; $replaceArr[$reKey] = $reValue; return $content; } public function shieldHtmlTag($content, &$htmTagsArr){//屏蔽html标签 preg_match_all('/]+>[^>]+a>/',$content,$aTags); $aTags = array_unique($aTags[0]); foreach($aTags as $key=>$value) { //echo '$htmlTags[$i]'.$htmlTags[$key].$key.'
    '; $reKey = "##ATAG##" . $key . "##ATAG##"; $content = str_replace($aTags[$key], $reKey, $content); $htmTagsArr[$reKey] = $aTags[$key]; } preg_match_all('//',$content,$htmlTags); $htmlTags = array_unique($htmlTags[0]); //print_r($htmlTags); foreach($htmlTags as $key=>$value) { //echo '$htmlTags[$i]'.$htmlTags[$key].$key.'
    '; $reKey = "##TAG##" . $key . "##TAG##"; $content = str_replace($htmlTags[$key], $reKey, $content); $htmTagsArr[$reKey] = $htmlTags[$key]; } //echo $content; return $content; } public function recoveryHtmlTag($content, &$htmTagsArr){//恢复html标签 foreach($htmTagsArr as $key=>$value) { //echo "Key=" . $key . ", Value=" . $value . "
    "; $content = str_replace($key, $value, $content); } return $content; }}//End Archives//高亮专用, 替换多次是可能不能达到最多次function _highlight($string, $words, $result, $pre){ global $cfg_replace_num; $string = str_replace('\"', '"', $string); if($cfg_replace_num > 0) { foreach ($words as $key => $word) { if($GLOBALS['replaced'][$word] == 1) { continue; } $string = preg_replace("#".preg_quote($word)."#", $result[$key], $string, $cfg_replace_num); if(strpos($string, $word) !== FALSE) { $GLOBALS['replaced'][$word] = 1; } } } else { $string = str_replace($words, $result, $string); } return $pre.$string;}

    以上就介绍了arcarchivesclassphp,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。


    搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
    转载请注明原文链接:arcarchivesclassphp
    喜欢 (0)
    [搞代码]
    分享 (0)
    发表我的评论
    取消评论

    表情 贴图 加粗 删除线 居中 斜体 签到

    Hi,您需要填写昵称和邮箱!

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址