php 定时发布文章,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,内容很简单

复制代码 代码如下:

  • {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一致,自行修改)

访问这个地址就能触发定时文章发布,也可手动发布尚未到时的发布列表里的文章。

呵呵,不错吧,还不赶紧动手去试试。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值