示例:typecho文章 -pg电子试玩免费

类型
发布插件 » cms程序
标识
typechodemoskycaiji
下载
924次
更新
2021-11-07
实现typecho文章入库功能,您可参考该代码开发更多typecho应用,使用时需在数据绑定»cms路径结尾加上@typecho

推荐使用

[^\'\"] )[\'\"]/i',$configfile,$prefix)){
					//匹配前缀
					$cmsdb['db_prefix']=$prefix['pre'];
				}
				if(preg_match('/\$db->addserver\s*\((?p[\s\s] ?)\)\s*,/i',$configfile,$db)){
					//匹配数组
					$db=$db['db'];
					$dbkeys=array('db_host'=>'host','db_user'=>'user','db_pwd'=>'password','db_charset'=>'charset','db_port'=>'port','db_name'=>'database');
					foreach($dbkeys as $k=>$v){
						if(preg_match('/[\'\"]'.$v.'[\'\"]\s*=\s*>\s*[\'\"](?p[^\'\"] )[\'\"]/i',$db,$val)){
							$cmsdb[$k]=$val['val'];
						}
					}
				}
			}
		}
		return $cmsdb;
	}
	/*初始化扩展*/
	public function init_extend(){
		$siteurl=$this->db()->table('__options__')->where("name='siteurl'")->find();
		$this->siteurl=rtrim($siteurl['value'],'\/\\').'/';
	}
	//参数
	public $_params = array (
		'author' => array (
			'name' => '作者账号',
			'require' => 1,
			'tag' => 'select',
			'option' => 'function:param_option_author',
		),
		'category' => array (
			'name' => '分类',
			'require' => 1,
			'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){
		$newpost=array(
	        'title'=>$params['title'],
	        'created'=>time(),
	        'modified'=>time(),
	        'text'=>$params['content'],
	        'order'=>0,
	        'authorid'=>$params['author'],
	        'type'=>'post',
	        'status'=>'publish',
	        'allowcomment'=>1,
	        'allowping'=>1,
	        'allowfeed'=>1,
	        'parent'=>0
		);
		
		$postid=$this->db()->table('__contents__')->insert($newpost,false,true);//添加文章并返回id
		if($postid>0){
			$this->db()->table('__contents__')->where('cid',$postid)->update(array('slug'=>$postid));
			$this->db()->table('__relationships__')->insert(array('cid'=>$postid,'mid'=>$params['category']),true);
			
			$target=$this->siteurl.'/index.php/archives/'.$postid.'/';
			return array('id'=>$postid,'target'=>$target);
		}else{
			return array('id'=>0,'error'=>'文章入库失败');
		}
	}
	/*
	 * 参数选项:作者
	 * 必须返回键值对形式的数组
	 */
	public function param_option_author(){
		$usersdb=$this->db()->table('__users__')->where('group','administrator')->select();
		$userlist=array();
		foreach ($usersdb as $user){
			$userlist[$user['uid']]=$user['name'];
		}
		return $userlist;
	}
	
	/*
	 * 参数选项:分类
	 * 必须返回键值对形式的数组
	 */
	public function param_option_category(){
		$catsdb=$this->db()->table('__metas__')->select();//文章分类
		$catlist=array();
		foreach ($catsdb as $cat){
			$catlist[$cat['mid']]=$cat['name'];
		}
		return $catlist;
	}
}
?>
非常抱歉!该插件已停止更新仅供示例参考,cms程序更新可能会导致插件功能失效,请自行修改代码以适应您的需求
网站地图