<?php
/**
* 示例:hadsky发帖
* 您可参考代码自行开发hadsky的更多功能
* 您可以使用 thinkphp5的函数
*/
namespace plugin\release\cms;
class HadskyDemoSkycaiji extends BaseCms{
public function cms_db_hadsky($cmsPath){
$dbFile=realpath($cmsPath.'/puyuetian/mysql/config.php');
//转换成thinkphp数据库配置
include $dbFile;
$config=$_G['MYSQL'];
if(preg_match('/set names (\w+)/i', $config['CHARSET'],$charset)){
$config['CHARSET']=$charset[1];
}else{
$config['CHARSET']='utf8';
}
$cmsDb=array(
'db_type' => 'mysql',
'db_user' => $config['USERNAME'],
'db_pwd' => $config['PASSWORD'],
'db_host' => $config['LOCATION'],
'db_port' => 3306,
'db_name' => $config['DATABASE'],
'db_charset' => $config['CHARSET'],
'db_prefix' => $config['PREFIX']
);
return $cmsDb;
}
//参数
public $_params = array (
'author' => array (
'name' => '作者账号',
'require' => 1,
'tag' => 'text',
),
'forum' => array (
'name' => '版块ID',
'require' => 1,
'tag' => 'select',
'option' => 'function:param_option_forum',
),
'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['id'];
}else{
return array('id'=>0,'error'=>'用户不存在');
}
$newRead=array(
'sortid'=>$params['forum'],
'uid'=>$uid,
'title'=>$params['title'],
'content'=>$params['content'],
'looknum'=>0,
'zannum'=>0,
'posttime'=>time(),
'readlevel'=>0,
'replyuid'=>$uid,
'replycontent'=>null,
'replytime'=>0,
'replyip'=>null,
'postip'=>'',
'top'=>0,
'high'=>0,
'replyafterlook'=>0,
'data'=>null,
'del'=>0,
'activetime'=>time(),
'replyid'=>0,
'fs'=>1,
'label'=>''
);
$id=$this->db()->table('__READ__')->insert($newRead,false,true);//添加主题并返回id
if($id>0){
return array('id'=>$id,'target'=>'文章:'.$id);
}else{
return array('id'=>0,'error'=>'添加文章失败');
}
}
/*
* 参数选项:版块
* 必须返回键值对形式的数组
*/
public function param_option_forum(){
$forumsDb=$this->db()->table('__READSORT__')->select();
$forumList=array();
foreach ($forumsDb as $forum){
$forumList[$forum['id']]=auto_convert2utf8($forum['title']);
}
return $forumList;
}
}
?>