一聚教程网:一个值得你收藏的教程网站

热门教程

phpcms生成专题的同时自动生成专题相关文章

时间:2022-06-25 16:25:53 编辑:袖梨 来源:一聚教程网

由于内容页都是生成静态的,所以需要做一个“一键生成专题内容页”的功能,被关联到该专题的文章,可以一次全部生成静态页。
zt_show0

首先在后台专题列表页进行修改,添加“一键生成全部内容页”的链接。
zt_show
效果如图
找到专题列表页的模板文件,添加一个链接“一键生成专题内容页”,链接地址你可以自己定义,这里是?
 代码如下 复制代码
m=content&c=create_html&a=zt_show&specialid=
也就是说要在content模块的create_html控制器建立一个zt_show方法,用这个方法一键生成专题内容页。
zt_show2
下面是zt_show()方法,就不详细说明了。根据自己的需要修改,参考思路。

 

 代码如下 复制代码

public function zt_show(){
 $specialid = isset($_GET['specialid']) ? intval($_GET['specialid']) : 0;
 if (!$specialid) {
  showmessage('参数错误',HTTP_REFERER);
 }
 $this->special_content_db = pc_base::load_model('special_content_model');
 $this->html = pc_base::load_app_class('html');
 $curl = $this->special_content_db->select("specialid='$specialid'","catid,curl");
 
 $ids = '';
 
 foreach ($curl as $k => $v) {
  $v['curl'] =  str_replace("|".$v['catid'], '', $v['curl']);
  $ids[] = $v['curl'];
 }
 
 $ids = implode(",", $ids);//该专题包含的所有内容id
 
 $siteid = param::get_cookie("siteid") ? param::get_cookie("siteid") : 1;//当前站点
 $modelid = ($siteid == 1) ? 12 : 14;//根据当前站点得出对应模型
 
 if($modelid) {
  //设置模型数据表名
  $this->db->set_model($modelid);
  $table_name = $this->db->table_name;
  $rs = $this->db->query("SELECT * FROM `$table_name` where id in($ids) ORDER BY `id` DESC ");
  $data = $this->db->fetch_array($rs);
  $tablename = $this->db->table_name.'_data';
  $this->url = pc_base::load_app_class('url');
  foreach($data as $r) {
   if($r['islink']) continue;
   $this->db->table_name = $tablename;
   $r2 = $this->db->get_one(array('id'=>$r['id']));
   if($r) $r = array_merge($r,$r2);
   if($r['upgrade']) {
    $urls[1] = $r['url'];
   } else {
    $urls = $this->url->show($r['id'], '', $r['catid'],$r['inputtime']);
   }
   $this->html->show($urls[1],$r,0,'edit',$r['upgrade']);
  }
  showmessage('生成该专题内容页成功',HTTP_REFERER);
 }
}

原文转自:小谈博客  http://www.tantengvip.com/2014/05/phpcms-special-content-html/

热门栏目