Chinaunix首页 | 论坛 | 博客
  • 博客访问: 305774
  • 博文数量: 111
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 707
  • 用 户 组: 普通用户
  • 注册时间: 2013-02-26 11:00
个人简介

小伙向前冲呀,小伙向前冲呀。

文章分类

全部博文(111)

文章存档

2014年(43)

2013年(68)

我的朋友

分类: PHP

2013-07-12 05:30:48

dedecms实现shtml包含,可以通过对dedecms的二次开发,实现对顶部导航,中间部分,右边公共部分,以及底部,都有一个很好的支持,从而减少html生成的时候频繁的消耗系统资源去生成dedecms的html功能。这样可以加快dedecms生成html的速度。

首先,实现一个对栏目右边实现shtml包含。
1,首先建立右边公共模板templates/default/right.htm
2,编写以下标签:

  1. function lib_shtml(&$ctag,&$refObj)
  2. {
  3. if(isset($_GET['tid'])){
  4. return file_get_contents('../data/'.$refObj->Fields['id'].'right.htm');
  5. }else{  //by
  6. return '';
  7. }
  8. }
    ?>
2,生成栏目的时候,生成对应栏目的右边。
   arc.listview.class.php

  1. <?php
  2. /**
  3. * desc: dedecms包含shtml
  4. * edit:
  5. */
  6. var $tcp1;
  7. var $tcp3;</p> <p> $this->tcp1 = new DedeTagParse();
  8. $this->tcp1->SetRefObj($this);
  9. $this->tcp1->SetNameSpace("dede", "{", "}");
  10.      加载right.htm模板
  11.      $this->tcp1->LoadTemplate($GLOBALS['cfg_basedir'].$GLOBALS['cfg_templets_dir']."/".$GLOBALS['cfg_df_style']."/right.htm");
  12.     生成html
  13.      $file = $this->Fields['id'].'right.htm';
  14.             $rightfile = $GLOBALS['cfg_basedir'].$GLOBALS['cfg_cmspath']."/data/".$file;
  15.            
  16.             if(!file_exists($rightfile)){
  17.                 $this->tcp1->SaveTo($rightfile);
  18.            
  19.             }else{
  20.                 if((time()-filectime($rightfile))>3600){
  21.                     $this->tcp1->SaveTo($rightfile);
  22.  }
  23. }
  24. ?>
 给模板赋值

点击(此处)折叠或打开

  1. MakeOneTag($this->tcp1,$this);
4,模板中直接调用{dede:shtml/}
后台生成,即完成dedecms实现shtml包含。
阅读(928) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~