3

是否可以在 joomlainstall.xml文件中编写一些 sql,在安装时执行?或者以其他方式做这个把戏?关键是我已经编写了自定义授权插件,我必须禁用/替换/删除现有的。

4

1 回答 1

3

您可以使用外部 SQL 文件并让它们在安装时执行。

1.在您的插件根目录中创建一个 SQL 文件install.mysql.utf8.sql ,其中包含如下内容:

CREATE TABLE IF NOT EXISTS `#__tablename` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=0 ;

2. 在您的 XML 清单中,将文件添加为 files 下的文件节点:

<files>
    <filename>install.mysql.utf8.sql</filename>
</files>

3. 在您的清单中添加一个安装节点,告诉 Joomla 在安装时要执行什么 SQL 文件:

<install>
    <sql>
        <file driver="mysql" charset="utf8">install.mysql.utf8.sql</file>
    </sql>
</install>

如果您使用它安装插件并且它是新安装的(该插件之前没有安装在站点上),那么 Joomla 将执行 SQL 文件。

如果您需要对插件的升级(重新安装)执行 SQL,则必须使用更新节点。

SQL 文件的替代方法是在安装/更新时使用要执行的 PHP 脚本(可以自己运行 SQL 查询)。如需帮助,请参阅

于 2012-10-05T11:13:13.137 回答