对于做站的朋友来讲,有时会希望可以定时发布一些文章呢?
本文介绍的方法,希望可以帮到大家。
首先把栏目的工作流设置成“一级审核”,然后,在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,内容很简单
复制代码 代码如下:
- {loop $ids $id}
- {$CATEGORYS[$id['catid']]['catname']} + {$id[title]} + {$id[username]} + {date('m/d H:i',$id['inputtime'])} + 发布{/loop}
用手机访问:你的域名/index.php?m=content&c=index&a=yaokong&key=yourkey('yourkey'和上面代码中的yourkey一致,自行修改)
访问这个地址就能触发定时文章发布,也可手动发布尚未到时的发布列表里的文章。
呵呵,不错吧,还不赶紧动手去试试。