示例:zblog文章 (ZblogDemoSkycaiji)

  更新日期:2018-07-20 14:44
实现zblog博客文章入库功能,您可参考该代码开发更多zblog应用,使用时需在数据绑定》CMS路径结尾加上@zblog

应用代码

<?php
/**
 * 示例:Zblog文章
 * 您可参考代码自行开发Zblog的更多功能
 * 您可以使用 thinkphp3.2的函数
 */
namespace Release\Cms;
class ZblogDemoSkycaijiCms extends BaseCms{
	public $siteurl;//cms站点网址
	public function cms_db_zblog($cmsPath){
		$dbFile=realpath($cmsPath.'/zb_users/c_option.php');
		//转换成thinkphp数据库配置
		$config=include $dbFile;
		$cmsDb=array(
			'db_type'  => $config['ZC_DATABASE_TYPE'],
			'db_user'  => $config['ZC_MYSQL_USERNAME'],
			'db_pwd'   => $config['ZC_MYSQL_PASSWORD'],
			'db_host'  => $config['ZC_MYSQL_SERVER'],
			'db_port'  => $config['ZC_MYSQL_PORT'],
			'db_name'  => $config['ZC_MYSQL_NAME'],
			'db_charset'  => $config['ZC_MYSQL_CHARSET'],
			'db_prefix'  => $config['ZC_MYSQL_PRE']
		);
		return $cmsDb;
	}
	/*初始化扩展*/
	public function init_extend(){
		$system=$this->db()->table('__CONFIG__')->where("conf_Name='system'")->find();
		$system=unserialize($system['conf_value']);
		$this->siteurl=str_replace('|', '', $system['ZC_BLOG_HOST']);
	}
	//参数
	public $_params=array(
		'author' => array (
			'name' => '作者账号',
			'tag' => 'select',
			'option' => 'function:param_option_author',
			'require'=>1,
		),
		'category' => array (
			'name' => '分类',
			'tag' => 'select',
			'option' => 'function:param_option_category',
			'require'=>1,
		),
		'title' => array (
			'name' => '文章标题',
			'tag' => 'select',
			'option' => 'function:param_option_fields',
			'require'=>1,
		),
		'content' => array (
			'name' => '文章内容',
			'tag' => 'select',
			'option' => 'function:param_option_fields',
			'require'=>1,
		),
	);

	/*
	 * 导入数据
	* 必须以数组形式返回:
	* id(必填)表示入库返回的自增id或状态
	* target(可选)记录入库的数据位置(发布的网址等)
	* desc(可选)记录入库的数据位置附加信息
	* error(可选)记录入库失败的错误信息
	* 入库的信息可在“已采集数据”中查看
	* return array('id'=>0,'target'=>'','desc'=>'','error'=>'');
	*/
	public function runImport($params){
		$newPost=array(
	        'log_CateID'=>$params['category'],
	        'log_AuthorID'=>$params['author'],
	        'log_Tag'=>'',
	        'log_Status'=>0,
	        'log_Type'=>0,
	        'log_Alias'=>'',
	        'log_IsTop'=>0,
	        'log_IsLock'=>0,
	        'log_Title'=>$params['title'],
	        'log_Intro'=>mb_substr(strip_tags($params['content']), 0,100,'utf-8'),
	        'log_Content'=>$params['content'],
	        'log_PostTime'=>time(),
	        'log_CommNums'=>0,
	        'log_ViewNums'=>0,
	        'log_Template'=>'',
	        'log_Meta'=>''
		);
		
		$postId=$this->db()->table('__POST__')->add($newPost);//添加文章并返回id
		if($postId>0){
			$target=$this->siteurl.'?id='.$postId;
			return array('id'=>$postId,'target'=>$target);
		}else{
			return array('id'=>0,'error'=>'文章入库失败');
		}
	}
	/*
	 * 参数选项:作者
	 * 必须返回键值对形式的数组
	 */
	public function param_option_author(){
		$usersDb=$this->db()->table('__MEMBER__')->select();
		$userList=array();
		foreach ($usersDb as $user){
			$userList[$user['mem_id']]=$user['mem_name'];
		}
		return $userList;
	}
	
	/*
	 * 参数选项:分类
	 * 必须返回键值对形式的数组
	 */
	public function param_option_category(){
		$catsDb=$this->db()->table('__CATEGORY__')->select();//文章分类
		$catList=array();
		foreach ($catsDb as $cat){
			$catList[$cat['cate_id']]=$cat['cate_name'];
		}
		return $catList;
	}
}
?>