PHPCMS V9二次开发之文章定时发布功能实现
首先把栏目的工作流设置成“一级审核”,然后,在phpcms/modules/content/ 文件夹里新建一个文件命名:MY_index.php,这样不影响phpcms v9升级。
内容如下:
-
<?php
-
defined('IN_PHPCMS') or exit('No permission resources.');
-
//模型缓存路径
-
class MY_index extends index {
-
private $db;
-
function __construct() {
-
$this->db = pc_base::load_model('content_model');
-
parent::__construct();
-
$this->dingshi();
-
}
-
//定时发布
-
public function dingshi() {
-
$this->content_check_db = pc_base::load_model('content_check_model');
-
$ids = $this->content_check_db->select('status=1 and username="admin" and inputtime<='.SYS_TIME,'checkid');
-
foreach($ids as $k)
-
{
-
$k1 = explode('-',$k['checkid']);
-
$this->db->set_model($k1[2]);
-
$this->db->status($k1[1]);
-
}
-
}
-
}
-
?>
这样,当有用户通过动态地址访问你的content模快时,如果定时到了,文章就会自动审核发布。
注意:
1、不适用于生成静态的网站。静态网站要用的话,可以把网站默认文档设置成index.php优先于index.html,这样当访问首页时也有效果。
2、设置栏目为“一级审核”,发布定时文章时,除了选择发布时间外,还要把状态设置为“审核”。
3、定时发布的文章很多时建议使用“fsockopen”伪异步处理,否则出发定时发布的会员会很卡。具体谷歌吧,我站平时就定时4、5篇,不会对用户体验造成什么影响。
4、修改username="admin"中的admin为你的管理员用户名。
让文章更新的均匀些,据说这样对SEO有帮助。但PHPCMS中国(phpcms.org.cn)刚建成,每天流量不大,这个定时发布又需要有人访问,这样就造成定时到了文章也不能及时发布。而我每时都能用手机上网,所以就做了个自己用手机上网,控制发布的小功能。
1、1楼添加的文件里面添加一个方法:yaokong(),添加后文件内容如下:
-
<?php
-
class MY_index extends index {
-
private $db;
-
function __construct() {
-
$this->db = pc_base::load_model('content_model');
-
parent::__construct();
-
$this->dingshi();
|