typecho插件如何編寫(xiě)插件掛載代碼,針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。
創(chuàng)新互聯(lián)主營(yíng)建德網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,重慶APP軟件開(kāi)發(fā),建德h5小程序開(kāi)發(fā)搭建,建德網(wǎng)站營(yíng)銷(xiāo)推廣歡迎建德等地區(qū)企業(yè)咨詢終于,在能夠保存配置信息后,我們可以開(kāi)始編寫(xiě)插件的掛載功能了。
首先我們需要知道系統(tǒng)為我們?cè)诟鱾€(gè)關(guān)鍵的環(huán)節(jié)都預(yù)留了插件點(diǎn)給我們,系統(tǒng)運(yùn)行到插件點(diǎn)時(shí),會(huì)檢測(cè)到是否有插件掛在這個(gè)點(diǎn)上,然后執(zhí)行插件的邏輯!
插件的工作就是找到合適的插件點(diǎn),掛上去,然后執(zhí)行自己的邏輯。
插件點(diǎn),插件鉤子,插件接口。。。在老高這兒是一個(gè)概念
官方的插件接口及功能列表
我們的插件需要執(zhí)行的邏輯在這里,Widget_Contents_Post_Edit類(lèi)的finishPublish方法
文件路徑var/Widget/Contents/Post/Edit.php:736,可以看到,接口為我們傳遞了兩個(gè)參數(shù),一個(gè)是發(fā)布的內(nèi)容,另一個(gè)是類(lèi)本身。有了類(lèi)本身,我們可以在插件中隨意調(diào)用他的公共方法!
復(fù)制代碼 代碼如下:
// 文章完成發(fā)布插件接口
$this->pluginHandle()->finishPublish($contents, $this);
還有一個(gè)頁(yè)面發(fā)布接口,下面的代碼會(huì)提到。
如何掛載
代碼如下,有省略。
復(fù)制代碼 代碼如下:
class BaiduSubmitTest_Plugin implements Typecho_Plugin_Interface
{
public static function activate(){
//掛載發(fā)布文章和頁(yè)面的接口
Typecho_Plugin::factory('Widget_Contents_Post_Edit')->finishPublish = array('BaiduSubmitTest_Plugin', 'send');
Typecho_Plugin::factory('Widget_Contents_Page_Edit')->finishPublish = array('BaiduSubmitTest_Plugin', 'send');
return '插件安裝成功,請(qǐng)進(jìn)入設(shè)置填寫(xiě)準(zhǔn)入密鑰';
}
...
...
public static function render($contents, $class){
//do something
}
}
有代碼我們看到,在插件激活時(shí),系統(tǒng)將插件類(lèi)BaiduSubmitTest_Plugin的render方法綁定到finishPublish的接口上!由于finishPublish會(huì)傳遞兩個(gè)參數(shù),所以render方法也要接受兩個(gè)參數(shù)。
關(guān)于typecho插件如何編寫(xiě)插件掛載代碼問(wèn)題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒(méi)有解開(kāi),可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識(shí)。