PHPCMS定时定量发布,并设置发布时间为最新当前时间
首先在api/count.php文件中的?>PHP代码前,增加如下代码:
/*新增定时发布功能2024-05-10*/
$urlobj = pc_base::load_app_class('url', 'content');//加载内容模块content下的url类
$html = pc_base::load_app_class('html', 'content');//加载内容模块content下的html类
$modelid = $modelid ? $modelid : intval($_GET['modelid']);//获取当前模型id
$content_db = $content_db ? $content_db : pc_base::load_model('content_model');//加载内容模型
$content_db->set_model($modelid);//根据模型id获取对应表并未下面的实例化做准备
$where = ' status = 1 and inputtime <= '.SYS_TIME;//组装查询条件
$r = $content_db->count($where);//统计操作个数
if( !empty($r) ){ //执行update操作
//配置参数
$limit = 1;//每次更新发布的数量
$r = $limit;
$ids = $content_db->select($where, 'id,catid', $r, $limit, '', 'id');//组装所有id组成的数组
foreach($ids AS $kid=>$v){
$catid = $v['catid']; //获取栏目id
$id = $kid; //获取文章id
$r = $content_db->get_content($catid,$id);//返回主附表合并数据;
$urls = $urlobj->show($id, 0, $catid, $r['inputtime'], '',$r,'add');//返回组装数据
$urls['data']['inputtime'] = $urls['data']['updatetime'] = SYS_TIME;//将最新时间赋值给最新数据
$urls1 = $urls[0];//提取最新url
$urls['data']['url'] = $urls1;//赋值到最新数据中
$content_zdb = $content_zdb ? $content_zdb : pc_base::load_model('content_model');//加载内容模型
$content_zdb->set_model($modelid);
$content_zdb->update(array('url'=>$urls1),array('id'=>$id));//更新数据库url
if($urls['content_ishtml']) $html->show($urls[1],$urls['data'],0);//执行生成内页操作
$html->index();
$html->create_relation_html($catid);
}
$where1 = $where.' limit '.$limit;
$content_db->update( array('status'=>99,'inputtime'=>SYS_TIME,'updatetime'=>SYS_TIME),$where1 );
}
2.在bt计划任务添加访问文章内页url的任务.
最后就大功告成了。