Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

X2开发插件导出时的技巧

[复制链接]
viswow 发表于 2011-2-28 12:11:38 | 显示全部楼层 |阅读模式
*************************************************
** 本教程基于版本:Discuz! X 2.0                                         **
*************************************************

在之前的插件体系中,设计一个插件的最后一个步骤就是将插件导出为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 文件中增加:
  1.         <item id="installfile"><![CDATA[install.php]]></item>
  2.         <item id="uninstallfile"><![CDATA[uninstall.php]]></item>
复制代码
此代码,即可完全免去手动修改 xml 的操作了~~

分析代码:
打开 source\admincp\admincp_plugins.php 这个文件可以看到:
  1.         if(file_exists($plugindir.'/install.php')) {
  2.                 $pluginarray['installfile'] = 'install.php';
  3.         }
  4.         if(file_exists($plugindir.'/uninstall.php')) {
  5.                 $pluginarray['uninstallfile'] = 'uninstall.php';
  6.         }
  7.         if(file_exists($plugindir.'/upgrade.php')) {
  8.                 $pluginarray['upgradefile'] = 'upgrade.php';
  9.         }
  10.         if(file_exists($plugindir.'/check.php')) {
  11.                 $pluginarray['checkfile'] = 'check.php';
  12.         }
复制代码
这一段代码,也就是说这四种操作都可以在导出之前先建立好文件然后导出时候自动增加到 xml 文件里面了。




您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-11-17 08:31 , Processed in 0.021344 second(s), 3 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表