CMS發布插件開發

使用“后臺?工具&開發?開發?CMS發布插件”可快速生成插件

我們用個示例來演示如何制作插件,首先確定我們的需求:將采集的文章發布到wordpress程序里

輸入插件名稱:wordpress文章入庫,CMS程序選擇wordpress,插件功能標識:article(表示文章入庫),作者版權填你自己的

然后添加參數,什么是參數呢?參數在界面中是可視化的控件,可綁定或輸入數據,方便用戶操作

輸入變量名供代碼中調用該參數的值,必填可過濾空值,參數名稱供用戶界面操作,參數類型生成相應控件

參數類型:

  • 數字(number)、字符(text)、開關(radio)、文本(textarea) 會轉換成界面相應的html元素

  • “選擇采集字段(select)”會將采集器中的字段生成select選項元素

  • “選擇固定值(select)”并輸入選項值會將預設的值生成select選項元素

  • “選擇函數返回值(select)”并輸入函數名會將函數返回的數組生成select選項元素

配置完畢點擊“保存”將在根目錄/plugin/release/cms中生成相應的插件文件

CMS界面操作

編輯任務的“發布設置”,發布方式選擇“本地cms程序”,如果有wordpress程序會自動檢測出(沒有可手動綁定),在“CMS插件”中就可以看到剛才添加的插件

大家可以看到,文章標題、文章內容是“選擇采集字段(select)”類型,如果采集器中有字段,這里就會自動顯示出來

而作者賬號、分類是“選擇函數返回值(select)”類型,這里沒有值是因為函數方法中沒有返回數據庫中的數據

編輯插件文件,找到“作者賬號”函數(你自己設置的函數名),編寫代碼讀取數據庫中的賬號并返回鍵值對數組

public function param_option_author(){
	$usersDb=$this->db()->table('__USERS__')->limit(100)->select();
	$userList=array();
	foreach ($usersDb as $user){
		$userList[$user['user_login']]=$user['user_login'];
	}
	return $userList;
}

分類同理

public function param_option_category(){
	$catsDb=$this->db()->table('__TERMS__')->select();
	$catList=array();
	foreach ($catsDb as $cat){
		$catList[$cat['term_id']]=$cat['name'];
	}
	return $catList;
}

代碼中無需設置cms的數據庫配置,只需$this->db()即可自動調用cms數據庫對象,表名也無需加入前綴,使用__表名大寫__可自動生成完整表名,數據庫操作可參考thinkphp5

注意:并不是支持所有cms程序,只預設了幾個流行的程序,如未檢測出程序且數據綁定也無效的情況下,數據庫配置需要您自行在插件中加入代碼:

//CMS全稱必須與你插件的cms程序名一致,$cmsPath為cms的根目錄路徑
public function cms_db_CMS全稱($cmsPath){
	//請讀取cms的配置文件并將數據庫保存為以下數組形式后返回,可參考BaseCms.php中的其它cms_db_方法
	$cmsDb=array(
		'db_type'  => 'mysql',//數據庫類型
		'db_user'  => '',//用戶
		'db_pwd'   => '',//密碼
		'db_host'  => '',//數據庫主機
		'db_port'  => 3306,//端口
		'db_name'  => '',//數據庫名稱
		'db_charset'  => 'utf8',//數據庫編碼
		'db_prefix'  => '',//表前綴
	);
	return $cmsDb;
}

發布數據到CMS程序

以上配置都完成后接下來就是入庫工作,找到或添加方法:runImport

/*
 * 導入數據
 * 必須以數組形式返回:
 * id(必填)表示入庫返回的自增id或狀態
 * target(可選)記錄入庫的數據位置(發布的網址等)
 * desc(可選)記錄入庫的數據位置附加信息
 * error(可選)記錄入庫失敗的錯誤信息
 * 入庫的信息可在“已采集數據”中查看
 * return array('id'=>0,'target'=>'','desc'=>'','error'=>'');
 */
 public function runImport($params){
 	print_r($params);die();
	return array('id'=>0,'target'=>'','desc'=>'','error'=>'');
 }

$params數組即參數值列表,打印出來可發現,鍵名就是參數的變量名,值是最終處理后的結果,直接調用$params[變量名]便可得到參數的值

runImport方法必須返回數組,可以做網址排重、數據記錄等作用

以上示例已經上傳至云平臺,您可參考該示例開發出屬于您自己的插件

常見問題

亂碼:使用 auto_convert2utf8($str) 自動轉換成utf-8編碼

檢測不出CMS:請手動綁定,輸入cms路徑并在路徑結尾加上@CMS程序名,例如:@discuz

最近2019年免费中文字幕电影,最近更新2018中文国语字幕,最近中文字幕2018高清一页,一二三四免费观看视频中文版在线宜宾蜀戎网络公司