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

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

首先在后台专题列表页进行修改,添加“一键生成全部内容页”的链接。


效果如图

找到专题列表页的模板文件,添加一个链接“一键生成专题内容页”,链接地址你可以自己定义,这里是?

 代码如下 复制代码
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

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

金山wps怎么自动生成目录?wps自动生成目录

  很多人使用金山WPS文字的时候不懂如何设置自动生成目录,那么就跟小编一起来学习一下如何操作吧,相信学会后可以在你的功能中节省一大笔时间. 金山wps怎么自动生成目录?wps自动生成目录 1.打开工具栏"引用"项 2.点击第一项"插入目录" 3.根据选项选择合适的目录即可. 注意事项: 需要列为标题的内容要按照"样式"中的选项按顺序分别设置成"标题"."标题一"."标题二"才可以自动生

Thinkphp5.0自动生成模块及目录的方法详解

本文实例讲述了Thinkphp5.0自动生成模块及目录的方法.分享给大家供大家参考,具体如下: Thinkphp5.0发布已有些时日了,据说性能方面有很大的提升,按照官方的话,ThinkPHP5.0版本是一个颠覆和重构版本,采用全新的架构思想,引入了很多的PHP新特性,优化了核心,减少了依赖,实现了真正的惰性加载,并针对API开发做了大量的优化.是时候得download一份,研究一下.今天主要讲讲其自动创建模块及目录. Thinkphp5.0自动生成模块较ThinkPHP3.2,确实有很大的变化

php的扩展自动生成

扩展生成 毫无疑问你已经注意到, 每个php扩展都包含一些非常公共的并且非常单调的结构和文件. 当开始一个新扩展开发的时候, 如果这些公共的结构已经存在, 我们只用考虑填充功能代码是很有意义的. 为此, 在php中包含了一个简单但是很有用的shell脚本. ext_skel 切换到你的php源代码树下ext/目录中, 执行下面的命令: jdoe@devbox:/home/jdoe/cvs/php-src/ext/$ ./ext_skel extname=sample7   稍等便可, 输出一些文

使用Apache OpenJPA开发EJB 3.0应用,第5部分: 实体标识的自动生成

数据的唯一性是所有应用程序非常基本的要求,由开发者或者用户来维护这种 唯一性存在着较大的风险,因此,由系统自动产生唯一标识是一种常见的做法. OpenJPA 中支持四种不同的实体标识自动生成策略: 容器自动生成的实体 标识: 使用数据库的自动增长字段生成实体标识: 根据数据库序 列号(Sequence)技术生成实体标识: 使用数据库表的字段生成实体标识 : 这四种方式各有优缺点,开发者可以根据实际情况进行选择. 可选择的注释 要让容器和数据库结合管理实体标识的自动生成,根据实际 情况的不同,开发

自动生成insert数据的SQL脚本

判断当表存在标识列的时候就要允许将显式值插入表的标识列中,设置: Set Identity_insert TableName Off 判断数据类型: 如,varchar,char,datetime,nvarchar,nchar,uniqueidentifier时候,在insert字段中就要增加双引号,否则就不加. Use TestGoDeclare @Table1 nvarchar(128), @Table2 nvarchar(128), @Sql1 nvarchar(4000), @Sql2

在线自动生成三层架构

问题描述 界面不好,大家不要批评了.请登陆到http://52csharp.com本工具是本网站专用的sql小工具.1.直接打开生成项目下面sql文件夹中的sql脚本文件2.填写数据库服务器名称3.填写数据库用户名密码4.测试数据连接合法性5.生成数据库同时生成db.ini文件.6.把db.ini文件拷贝到编译完成的应用程序下面7.在web里面要引用本网站提供在线通过输入数据库结构自动生成代码,生成的代码基于基于面向对象的思想和三层架构设计,融入了工厂模式,反射机制等等一些思想.采用Model+

新手求解答一下-eclipse不能自动生成xml

问题描述 eclipse不能自动生成xml 在eclipse中在建立activity时不能自动生成xml这是什么情况呀!是不是sdk和adt版本不配呀.求解 解决方案 Tomcat自动缓存context.xml,导致在eclipse中修改后,不能立即启作用 解决方案二: activity跟xml有啥关系,你是不是创建错了类型 解决方案三: 你说的是新建activity时自动生成main.xml文件吗?这个在新建activity时可以选择自动生成也可以去掉自动生成,估计你是去掉了自动生成.这个和版

MyBatis自动生成Where语句_java

最近监控到类似这样一个慢查询: select delete_flag,delete_time from D_OrderInfo WHERE ( OrderId is not null and OrderId = N'xxxx') D_OrderInfo表上有一个OrderId的索引,但OrderId字段是Varchar类型. 由于开发框架MyBatis自动生成Where条件不会指定参数类型,字符串类型的参数到了SQLServer里就自动成了NVARCHAR(4000)类型了,坑人的是,不指定参数

java自动生成ID号的方法_java

本文实例讲述了java自动生成ID号的方法.分享给大家供大家参考.具体实现方法如下: import java.util.UUID; public class SystemAttribute { public static String getUUID() { return UUID.randomUUID().toString().replace("-",""); } } 希望本文所述对大家的java程序设计有所帮助. 以上是小编为您精心准备的的内容,在的博客.问答.