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

作者:袖梨 2022-06-25
由于内容页都是生成静态的,所以需要做一个“一键生成专题内容页”的功能,被关联到该专题的文章,可以一次全部生成静态页。
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);
}
}

原文转自:小谈博客

相关文章

精彩推荐