我在安装自己的第一个模块时遇到问题。我在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文件"pathTo Modules/Modules/mod_helloworld/SQL/Install.mysql.utf8.SQL"未找到(消息翻译为英语)。
原因可能是什么?所有文件都使用不带BOM的UTF8。
该文件位于mod_helloworld/sql/
这是一个很好的问题,让我来解释一下。
install
XML标记包含执行命令和不复制文件的指令。因此,当Joomla执行XML清单文件(mod_helloworld.xml
文件)并到达install
XML标记时,它假设服务器上已经存在sql/install.mysql.utf8.sql
文件并尝试执行它,但该文件没有复制到服务器,因为我们在XML文件的早期没有告诉Joomla将其复制到服务器。
您应该做的是将以下内容添加到XML文件中:
<files>
<folder>sql</folder>
</files>
以上操作将确保sql
文件夹被复制到服务器,从而允许Joomla继续执行SQL安装命令。
我真的希望我能清楚地解释这个问题,因为Joomla的文件没有提到这一点(据我所知)。