在之前的插件體系中,設計一個插件的最後一個步驟就是將插件導出為 xml 文件以便安裝,如果對於沒有單獨數據表的插件來説,這樣就算是最後一步了,但是如果對於有自己的插件表,甚至還有自己的一個安裝流程的插件來説,還需要自行編輯 xml 文件,添加安裝腳本的信息,或者是添加卸載等腳本的信息。
在 Discuz!2.0 中只要插件目錄中存在 install.php 或者 uninstall.php 、 upgrade.php 這些文件,那麼在導出的時候都會自動的在 xml 文件中生成對應的數據。極大的方便了插件開發者。
以官方的 「我的馬甲」 插件為例,在 source/plugin/myrepeats 目錄下存在 install.php 和
uninstall.php 兩個文件,在 Discuz!X 1.5 中,如果在後台-插件-設計
我的馬甲,中點擊導出的話是不會有這兩個文件的相關信息導出的,在 Discuz!X 2.0 中,將會自動在 xml 文件中增加:
- <item id="installfile"><![CDATA[install.php]]></item>
- <item id="uninstallfile"><![CDATA[uninstall.php]]></item>
此代碼,即可完全免去手動修改 xml 的操作了~~
分析代碼:
打開 source/admincp/admincp_plugins.php 這個文件可以看到:
- if(file_exists($plugindir.'/install.php')) {
- $pluginarray['installfile'] = 'install.php';
- }
- if(file_exists($plugindir.'/uninstall.php')) {
- $pluginarray['uninstallfile'] = 'uninstall.php';
- }
- if(file_exists($plugindir.'/upgrade.php')) {
- $pluginarray['upgradefile'] = 'upgrade.php';
- }
- if(file_exists($plugindir.'/check.php')) {
- $pluginarray['checkfile'] = 'check.php';
- }
這一段代碼,也就是説這四種操作都可以在導出之前先建立好文件然後導出時候自動增加到 xml 文件裏面了。