dedecms生成右shtml边公共栏目

2013-01-31 22:28 来源:www.chinab4c.com 作者:dedecms专家

    dedecms生成右shtml边公共栏目,我们在上篇文章里面研究过dedecms生成底部shtml公共文件,本文我们将讨论dedecms生成右边的公共数据栏目。dedecms的文章详细页面,以及文章列表,都是公共相同的右边。如果能把右边生成shtml做文章调用,那么确实是太轻松了。对dedecms生成html速度将增加很大的效率。

    下面我们谈谈dedecms生成右shtml边公共栏目

   1:自己编写栏目调用接口,通过typeid来生成不同的right.html比如分类id为1的文章以及列表都公用1right.htm

   2:function Makeshtmllist()
    {    $this->ParseTempletsFirst();
        $this->PartView = new PartView($this->TypeID,false);
        $this->PartView->SetTypeLink($this->TypeLink);
        $nmfa = 0;
        $tmpdir = $GLOBALS['cfg_basedir'].$GLOBALS['cfg_templets_dir'];
        $tempfile = str_replace("{tid}",$this->TypeID,$this->Fields['tempindex']);
        $tempfile = str_replace("{cid}",$this->ChannelUnit->ChannelInfos['nid'],$tempfile);
        $tempfile = $tmpdir."/".$tempfile;
        if(!file_exists($tempfile)){
                $tempfile = $tmpdir."/".$GLOBALS['cfg_df_style']."/right.htm";
        }
         $tempfile = $tmpdir."/".$GLOBALS['cfg_df_style']."/right.htm";
       $this->PartView->SetTemplet($tempfile);
       $right_shtml  = $GLOBALS['cfg_basedir'].$GLOBALS['cfg_cmspath']."/data/shtml/".$this->TypeID."right.html";
       $this->PartView->SaveToHtml($right_shtml);
    }

    我们首先要处理好right.htm公共模板,然后写接口。自动调用分类数据。生成不同分类的shtml包含文件。

   3:内容调用标签,我们可以扩展shtml标签。

    
   if($type == 'right'){
     
      if(in_array($file,array('index.php','list.php','view.php'))){
         if(file_exists($html_dir)){
            if($file=='view.php'){
                return file_get_contents($html_dir.$refObj->Fields['typeid']."right.html");
            }else{
                return file_get_contents($html_dir.$refObj->Fields['id']."right.html");
            }
           
         }
      }else{
           
            if($file=='view.php' ){
               
                return '<!--#include virtual="'.$shtml_dir.$refObj->Fields['typeid'].'right.html"-->';
            }else{
                return '<!--#include virtual="'.$shtml_dir.$refObj->Fields['id'].'right.html"-->';
            }
      }
   }

  4:调用 {dede:shtml type="right"/}

   以上我们就完成了dedecms生成右shtml边公共栏目的处理。

   来源:http://www.chinab4c.com