Joomla 模块 - SQL 未找到?

Joomla module - SQL not found?

我在安装自己的第一个模块时遇到问题。我遵循了 joomla.org 上的教程。几乎一切似乎工作正常。但是我的 sql 文件出错。

sql 文件的 mod_helloworld.xml 部分是这样的:

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

当我尝试上传模块(作为 zip 文件)时,Joomla 显示此错误:

JInstaller: :Install: SQL-File „pathTo Modules/modules/mod_helloworld/sql/install.mysql.utf8.sql“ not found (message translated to English).

可能是什么原因?所有文件都使用无 BOM 的 UTF8。

文件在mod_helloworld/sql/

里面

这是一个很好的问题,让我解释一下。

install XML 标签包含 执行 命令而不是 复制 文件的说明。因此,当 Joomla 执行 XML 清单文件(mod_helloworld.xml 文件)并到达 install XML 标签时,它假定 sql/install.mysql.utf8.sql 文件已经存在于服务器并尝试执行它 - 但该文件没有复制到服务器,因为我们没有告诉 Joomla 在 XML 文件中更早地将它复制到服务器。

您应该做的是将以下内容添加到您的 XML 文件中:

<files>
    <folder>sql</folder>
</files>

以上将确保 sql 文件夹被复制到服务器,从而允许 Joomla 继续执行 SQL 安装命令。

我真的希望我能清楚地解释这个问题,因为 Joomla 的文档没有提到这一点(据我所知)。