【发布时间】:2012-10-05 09:51:03
【问题描述】:
是否可以在 joomla install.xml 文件中写入一些 sql,在安装时执行?或者以其他方式做这个把戏?关键是我已经编写了自定义授权插件,我必须禁用/替换/删除现有的。
【问题讨论】:
-
forum.joomla.org/viewtopic.php?f=304&t=574026 这应该对您有所帮助。但不幸的是,我认为答案是否定的!
是否可以在 joomla install.xml 文件中写入一些 sql,在安装时执行?或者以其他方式做这个把戏?关键是我已经编写了自定义授权插件,我必须禁用/替换/删除现有的。
【问题讨论】:
您可以使用外部 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 下的 filename 节点:
<files>
<filename>install.mysql.utf8.sql</filename>
</files>
3。在你的清单中添加一个install node,告诉 Joomla 在安装时要执行什么 SQL 文件:
<install>
<sql>
<file driver="mysql" charset="utf8">install.mysql.utf8.sql</file>
</sql>
</install>
如果您使用它安装插件并且它是新安装(该插件之前没有安装在站点上),那么 Joomla 将执行 SQL 文件。
如果您需要在插件升级(重新安装)时执行 SQL,则必须使用 update 节点。
SQL 文件的替代方法是在安装/更新时使用 PHP 脚本来执行(可以自己运行 SQL 查询)。如需帮助,请参阅this。
【讨论】: