1

我尝试为 Joomla 3.1.5 创建简单的模块

模块安装没问题,但 sql 安装文件中的代码被忽略。当我卸载模块卸载脚本工作。

我在安装 sql 中的代码

CREATE TABLE IF NOT EXISTS `#__mylist_songs`(
`song_id` int(11) not null auto_increment PRIMARY KEY,
`name` varchar(255) not null,
`author` varchar(150) not null
)Engine=MyIsam  default charset=utf8;

CREATE TABLE IF NOT EXISTS `#__mylist_vote`(
`vote_id` int(11) not null auto_increment PRIMARY KEY,
`song_id` int(11) not null,
`ip` varchar(26),
`vote_date` datetime not null default '0000-00-00 00:00:00'
)Engine=MyIsam  default charset=utf8;

在模块 xml

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

        <filename module="mod_mylist">mod_mylist.php</filename>
        <filename>script.php</filename>
        <folder>tmpl</folder>
        <filename>helper.php</filename>
        <filename>index.html</filename>
        <filename>mod_mylist.xml</filename>
        <filename>sql/mysql/install.mysql.utf8.sql</filename>
        <filename>sql/mysql/uninstall.mysql.utf8.sql</filename>
        <folder>sql</folder>
        <folder>sql/mysql</folder>
        <folder>sql/mysql/updates</folder>
    </files>
    <scriptfile>script.php</scriptfile>

但是在数据库中安装模块后没有改变。当我在卸载 sql 脚本中出现语法错误时,joomla 显示错误,但是当安装安装完成时没有错误。

我不明白为什么。路径是正确的,我检查了它。

4

2 回答 2

0

尝试对您的 XML 使用以下内容:

<files>
    <filename module="mod_mylist">mod_mylist.php</filename>
    <filename>index.html</filename>
    <filename>helper.php</filename>
    <folder>tmpl</folder>
    <folder>sql</folder>
</files>

<install>我已经删除了对实际 SQL 文件的引用,因为如果您在标签中调用它们并清理其余部分,则不需要定义它们。

于 2013-10-04T08:36:01.703 回答
0

尝试这个,

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

并且 install.sql 文件应该有查询。还要确保数据库用户有权添加新表。更多_

希望它有帮助..

于 2013-10-04T05:59:11.543 回答