PHPCMS V9实现文章定时发布
对于做站的朋友来讲,有时会希望可以定时发布一些文章呢?
本文介绍的方法,希望可以帮到大家。
首先把栏目的工作流设置成“一级审核”,然后,在phpcms/modules/content/ 文件夹里新建一个文件命名:MY_index.php,这样不影响phpcms v9升级。
内容如下:
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有帮助。下面是一个用手机上网,控制发布的小功能。
1、添加一个方法:yaokong(),添加后文件内容如下:
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 inputtime<='.SYS_TIME,'checkid');
foreach($ids as $k)
{
$k1 = explode('-',$k['checkid']);
$this->db->set_model($k1[2]);
$this->db->status($k1[1]);
}
}
//遥控发布
public function yaokong() {
session_start();
if($key=$_GET['key'])
{
if($key!='yourkey'){
$_SESSION['admin_ro'] = 0;
exit('KEY error');
}
$_SESSION['admin_ro'] = 1;
unset($session_storage);
}elseif(!$_SESSION['admin_ro']) {
header("HTTP/1.0 404 Not Found");exit;
}
if($_GET['id'] && $_GET['model']){
$id = intval($_GET['id']);
$model = intval($_GET['model']);
$this->db->set_model($model);
$this->db->status($id);
header('Location: '.APP_PATH.'index.php?m=content&c=index&a=yaokong');
}
$this->content_check_db = pc_base::load_model('content_check_model');
$ids = $this->content_check_db->select('status=1');
if(empty($ids)){
$_SESSION['admin_ro'] = 0;
exit('none');
}
foreach($ids as $i=>$k)
{
$k1 = explode('-',$k['checkid']);
$ids[$i]['id'] = $k1[1];
$ids[$i]['model'] = $k1[2];
}
$CATEGORYS = getcache('category_content_1','commons');
include template('content','check');
}
}
?>
2、phpcms/templates/(你的模板文件夹)/content 文件夹添加新文件 check.html,内容很简单
<li>{$CATEGORYS[$id['catid']]['catname']} + {$id[title]} + {$id[username]} + {date('m/d H:i',$id['inputtime'])} + <a href="{APP_PATH}index.php?m=content&c=index&a=yaokong&id= {$id['id']}&model={$id['model']}">发布</a></li>{/loop}</ul>
用手机访问:你的域名/index.php?m=content&c=index&a=yaokong&key=yourkey('yourkey'和上面代码中的yourkey一致,自行修改)
访问这个地址就能触发定时文章发布,也可手动发布尚未到时的发布列表里的文章。
呵呵,不错吧,还不赶紧动手去试试。
您可能感兴趣的文章:
phpcms用什么开发的
PHPCMS V9 定时发布文章是如何实现的?
PHPCMS V9源码-网站入口文件index.php
phpcms用了什么框架?
phpcms v9更换域名后上传图片功能无效的解决办法
修复PHPCMS V9发布文章不显示用户名的bug
如何让PHPCMS V9首页无法只显示推荐的友情链接
PHPCMS V9 调用随机文章的方法
PHPCMS v9后台登陆提示验证码错误的解决方法
phpcms有什么功能模块?