推荐使用emlog远程发布接口插件
非常抱歉!该插件已停止更新仅供示例参考,cms程序更新可能会导致插件功能失效,请自行修改代码以适应您的需求
<?php
/**
* 示例:emlog文章
* 您可参考代码自行开发emlog的更多功能
* 您可以使用 thinkphp5的函数
*/
namespace plugin\release\cms;
class EmlogDemoSkycaiji extends BaseCms{
public $siteurl;//cms站点网址
//初始化扩展
public function init_extend(){
$this->siteurl=$this->db()->table('__OPTIONS__')->where(array('option_name'=>'blogurl'))->value('option_value');
}
public function cms_db_emlog($cmsPath){
$configFile=realpath($cmsPath.'/config.php');
$cmsDb=array('db_type'=>'mysql','db_charset'=>'utf8');
if(file_exists($configFile)){
$configFile=file_get_contents($configFile);
if($configFile){
$dbKeys=array('db_host'=>'DB_HOST','db_user'=>'DB_USER','db_pwd'=>'DB_PASSWD','db_prefix'=>'DB_PREFIX','db_name'=>'DB_NAME');
foreach($dbKeys as $k=>$v){
if(preg_match('/define\s*\(\s*[\'\"]'.$v.'[\'\"]\s*,\s*[\'\"](?P<val>[^\'\"]+)[\'\"]\s*\)/i',$configFile,$val)){
$cmsDb[$k]=$val['val'];
}
}
}
}
return $cmsDb;
}
//参数
public $_params = array (
'author' => array (
'name' => '作者账号',
'require' => 1,
'tag' => 'select',
'option' => 'function:param_option_author',
),
'category' => array (
'name' => '分类',
'tag' => 'select',
'option' => 'function:param_option_category',
),
'title' => array (
'name' => '文章标题',
'require' => 1,
'tag' => 'select',
'option' => 'function:param_option_fields',
),
'content' => array (
'name' => '文章内容',
'require' => 1,
'tag' => 'select',
'option' => 'function:param_option_fields',
),
);
/*
* 导入数据
* 必须以数组形式返回:
* id(必填)表示入库返回的自增id或状态
* target(可选)记录入库的数据位置(发布的网址等)
* desc(可选)记录入库的数据位置附加信息
* error(可选)记录入库失败的错误信息
* 入库的信息可在“已采集数据”中查看
* return array('id'=>0,'target'=>'','desc'=>'','error'=>'');
*/
public function runImport($params){
$uid=$this->db()->table('__USER__')->where(array('username'=>$params['author']))->find();
if(!empty($uid)){
$uid=$uid['uid'];
}else{
return array('id'=>0,'error'=>'用户不存在');
}
$newPost=array(
'title'=>$params['title'],
'date'=>time(),
'content'=>$params['content'],
'excerpt'=>'',
'alias'=>'',
'author'=>$uid,
'sortid'=>1,
'type'=>'blog',
'views'=>0,
'comnum'=>0,
'attnum'=>0,
'top'=>'n',
'sortop'=>'n',
'hide'=>'n',
'checked'=>'y',
'allow_remark'=>'y',
'password'=>'',
'template'=>'',
'tags'=>'',
);
$postId=$this->db()->table('__BLOG__')->insert($newPost,false,true);//添加文章并返回id
if($postId>0){
//返回成功内容网址
$target=$this->siteurl.'?post='.$postId;
return array('id'=>$postId,'target'=>$target);
}else{
return array('id'=>0,'error'=>'文章入库失败');
}
}
/*
* 参数选项:作者
* 必须返回键值对形式的数组
*/
public function param_option_author(){
$usersDb=$this->db()->table('__USER__')->limit(100)->select();
$userList=array();
foreach ($usersDb as $user){
$userList[$user['username']]=$user['username'];
}
return $userList;
}
/*
* 参数选项:分类
* 必须返回键值对形式的数组
*/
public function param_option_category(){
$catsDb=$this->db()->table('__SORT__')->select();
$catList=array();
foreach ($catsDb as $cat){
$catList[$cat['sid']]=$cat['sortname'];
}
return $catList;
}
}
?>