由于内容页都是生成静态的,所以需要做一个“一键生成专题内容页”的功能,被关联到该专题的文章,可以一次全部生成静态页。
首先在后台专题列表页进行修改,添加“一键生成全部内容页”的链接。
效果如图
找到专题列表页的模板文件,添加一个链接“一键生成专题内容页”,链接地址你可以自己定义,这里是?
代码如下 | 复制代码 |
m=content&c=create_html&a=zt_show&specialid=<?php echo $info['id']?>, |
也就是说要在content模块的create_html控制器建立一个zt_show方法,用这个方法一键生成专题内容页。
下面是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/
时间: 2024-12-03 08:58:29