1

最近我创建了自定义 magento 扩展,我想发布它,但我发现安装文件没有安装。

安装文件没有创建表。

我在 config.xml 中有以下代码

<?xml version="1.0" ?>
<config>
    <modules>
        <Tricore_Contactus>
            <version>1.0.0</version>
        </Tricore_Contactus>
    </modules>
.
.
.
</config>

我在扩展名内的 sql\contactus_setup 文件夹中创建了 mysql4-install-1.0.0.php 文件,代码如下。

$installer = $this;
$installer->startSetup();

$installer->run("
    INSERT INTO ".Mage::getConfig()->getTablePrefix()."core_email_template  VALUES
    (NULL, 'Tricore Contact us', 'Name: {{var data.name}}\r\nE-mail: {{var data.email}}\r\nTelephone: {{var data.mobilenumber}}\r\n\r\nComment: {{var data.message}}', NULL, 1, 'Contact Form', NULL, NULL, NULL, '2013-04-23 11:04:45', 'contacts_email_email_template', '{\"var data.name\":\"Sender Name\",\"var data.email\":\"Sender Email\",\"var data.telephone\":\"Sender Telephone\",\"var data.comment\":\"Comment\"}'),
    (NULL, 'Tricore Auto Respond', 'Dear {{var data.name}}\r\n\r\nWe have got your submitted information.\r\n\r\nE-mail: {{var data.email}}\r\nelephone: {{var data.mobilenumber}}\r\n\r\nComment: {{var data.message}}\r\n\r\nOur representative will respond you soon.\r\n', NULL, 1, 'Autoreply ', NULL, NULL, NULL, '2013-04-23 11:07:46', 'contacts_email_email_template', '{\"var data.name\":\"Sender Name\",\"var data.email\":\"Sender Email\",\"var data.telephone\":\"Sender Telephone\",\"var data.comment\":\"Comment\"}');
");
$installer->endSetup();

安装扩展时,它会将条目添加到 core_resource 表中,但不会将 reocrd 插入 core_email_template 表中。

有时它不会调用 mysql4-install-1.0.0.php 文件。enter code here

请帮忙。

谢谢

4

1 回答 1

2

您发布的所有内容似乎都是正确的。所以也许你忘记了以下http://www.magentocommerce.com/knowledge-base/entry/magento-for-dev-part-6-magento-setup-resources

在您的情况下,xml 将是:

 <global>
    <!-- ... -->
    <resources>
        <contactus_setup>
            <setup>
                <module>Tricore_Contactus</module>
                <class>Mage_Eav_Model_Entity_Setup</class>
            </setup>
        </contactus_setup>
        <contactus_write>
             <connection>
                <use>core_write</use>
            </connection>
        </contactus_write>
        <contactus_read>
            <connection>
                <use>core_read</use>
            </connection>
        </contactus_read>
    </resources>
    <!-- ... -->
</global> 

另外一个旁注:为了调试那些我在 mysql4-...php 的底部添加了一个 die("SQL-SCRIPT IS RUNNING") 所以我可以确定,代码至少被执行了——如果 sql只是没有被应用,我可以按 F5 直到它起作用(与一直更改 core_resources 条目相反)..如果“死”没有显示,你可以确定,你的 xml 是问题

于 2013-05-04T12:20:30.943 回答