讓dedecms實現(xiàn)shtml包含的實現(xiàn)方法

字號:


    讓dedecms實現(xiàn)shtml包含,這個是十分簡單,也是十分輕松的一個問題。我們可以通過對dedecms的二次開發(fā),實現(xiàn)對dedecms頂 部導(dǎo)航,中間部分,右邊公共部分,以及底部,都有一個很好的支持,從而減少html生成的時候頻繁的消耗系統(tǒng)資源去生成dedecms的html功能。這 樣可以加快dedecms生成html的速度。
    首先我們要實現(xiàn)一個對dedecms欄目右邊實現(xiàn)shtml包含。有關(guān)dedecms配置shtml環(huán)境,上篇文章都講述過了。
    1:首先建立右邊公共模板templates/default/right.htm
    2:編寫以下標(biāo)簽
    復(fù)制代碼 代碼如下:
    function lib_shtml(&$ctag,&$refObj)
    {
    if(isset($_GET['tid'])){
    return file_get_contents('../data/'.$refObj->Fields['id'].'right.htm');
    }else{
    return '<!--#include virtual="'.$GLOBALS['cfg_cmspath'].'/data/'.$refObj->Fields['id'].'right.htm"-->';
    }
    }
    3:生成欄目的時候,生成對應(yīng)欄目的右邊。
    arc.listview.class.php
    復(fù)制代碼 代碼如下:
    var $tcp1;
    var $tcp3;</p> <p> $this->tcp1 = new DedeTagParse();
    $this->tcp1->SetRefObj($this);
    $this->tcp1->SetNameSpace("dede", "{", "}");
    加載right.htm模板
    $this->tcp1->LoadTemplate($GLOBALS['cfg_basedir'].$GLOBALS['cfg_templets_dir']."/".$GLOBALS['cfg_df_style']."/right.htm");
    生成html
    $file = $this->Fields['id'].'right.htm';
    $rightfile = $GLOBALS['cfg_basedir'].$GLOBALS['cfg_cmspath']."/data/".$file;
    if(!file_exists($rightfile)){
    $this->tcp1->SaveTo($rightfile);
    }else{
    if((time()-filectime($rightfile))>3600){
    $this->tcp1->SaveTo($rightfile);
    }
    }
    給模板賦值
    MakeOneTag($this->tcp1,$this);
    4:模板中直接調(diào)用{dede:shtml/}
    后臺生成,就完成了讓dedecms實現(xiàn)shtml包含.