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 '';
??? ??? ??? }else{
??? ??? ??? ??? return '';
??? ??? ??? }
??? ? }
?? }

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

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

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

?