作為一個(gè)新手,目前也是剛剛玩轉(zhuǎn)discuz的插件功能,好東西不敢獨(dú)享,就拿出來(lái)大家一起分享入門(mén)的過(guò)程。
現(xiàn)在網(wǎng)上很多關(guān)于discuz的插件教程都是很簡(jiǎn)單的教程,原因可能是這個(gè)東西是商業(yè)化的東西,本著分享的精神,今天我就自己做了一個(gè)教程,discuz新手入門(mén)的教程。
很詳細(xì)的介紹我是怎樣入門(mén)的。
問(wèn)題1.discuz后臺(tái)沒(méi)有設(shè)計(jì)新插件!
解決方案:在config\config_global.php 最下面添加 $_config['plugindeveloper'] = 2; 刷新后臺(tái)應(yīng)用即可
問(wèn)題2.怎么知道discuz在那些點(diǎn)設(shè)置了鉤子呢?
設(shè)置完成1后 工具->清理緩存 然后刷新下頁(yè)面就出現(xiàn)好多 類(lèi)似string global_usernav_extra1的東西 這就是錨點(diǎn),也是插件可以利用的點(diǎn)。
好了下面開(kāi)始做插件:
后臺(tái) ->應(yīng)用 ->設(shè)計(jì)新插件
提交后 請(qǐng)?jiān)诓寮芾碇?啟用即可
然后點(diǎn)擊 設(shè)計(jì)
就會(huì)進(jìn)入如下圖所示
接著
在source/plugin下新建一個(gè)文件夾,文件夾的名稱(chēng)要和所要?jiǎng)?chuàng)建的插件的標(biāo)識(shí)符相同。
然后在創(chuàng)建的文件夾下面 創(chuàng)建您需要的文件。如下圖 我在模塊里面定義了 頁(yè)面嵌入的 test1類(lèi)文件,則需要在插件文件夾中新建一個(gè)test1.class.php的文件愛(ài)你
下面是需要注意的東西。
test1.class.php中 文件的上部分 是discuz的引入部分,而下面的類(lèi)名必須要和插件的名稱(chēng)一致。
之后在類(lèi)中書(shū)寫(xiě)function函數(shù)。這里需要注意的是:只有function的的名稱(chēng)與 外面相應(yīng)位置顯示的名稱(chēng)一致的時(shí)候 才會(huì)在相應(yīng)頁(yè)面中的相應(yīng)位置中運(yùn)行。
在每次新增加或者修改文件 則盡量刷新下緩存文件
在前臺(tái)的相應(yīng)頁(yè)面刷新后 就會(huì)出現(xiàn)我們剛才做的簡(jiǎn)單的示例。
這里需要注意的是,如果需要在指定位置進(jìn)行運(yùn)算的話,進(jìn)行頁(yè)面輸出的時(shí)候盡量不要使用echo 或者var_dump進(jìn)行輸出,因?yàn)檫@樣會(huì)輸出到最頂部,也就是網(wǎng)頁(yè)的外圍部分上。而使用return則會(huì)在指定的地方進(jìn)行輸出。
值得注意的是,在編寫(xiě)插件的時(shí)候,如果確實(shí)要輸出的話,先按照1步驟后,看下前臺(tái)所需的頁(yè)面上有沒(méi)有。到此,簡(jiǎn)單的discuz的插件就開(kāi)發(fā)完畢了。點(diǎn)擊導(dǎo)出按鈕后導(dǎo)出文件放在 當(dāng)前插件文件夾的根目錄下 直接的發(fā)布給別人就可以正常的使用了。