3

私はsales_ordersのテーブルにいくつかの属性を追加する必要があるモジュールに取り組んできました。そこで、リソースインストールスクリプトを作成してXMLに追加すると思いました。私にとって、これは簡単な作業ではありませんでした。正直なところ、私はそれを機能させることはできません。解決策を見つけるために数時間検索しましたが、見つかりませんでした。奇妙なことに、私のモジュールはcore_resourceテーブルにありません...

これが私のXMLです。私はXML編集に少し慣れていません。たぶん私は間違いを犯しました。

XML:

<config>
        <global>
       <modules>
        <Sendcloud_Magento>
            <version>0.2.0</version>
        </Sendcloud_Magento>
    </modules>
    <helpers>
          <magento>
            <class>Sendcloud_Magento_Helper</class>
        </magento>
        </helpers>
      <models>
        <magento>
               <class>Sendcloud_Magento_Model</class>
            <resourceModel>magento_resource</resourceModel>
        </magento>
          <magento_mysql4>
            <class>Sendcloud_Magento_Model_Mysql4</class>
        </magento_mysql4>
     </models>

    <resources>
<!-- ... -->
<magento_setup>
    <setup>
        <module>Sendcloud_Magento</module>
        <class>Sendcloud_Magento_Model_Resource_Mysql4_Setup</class>
    </setup>
    <connection>
        <use>core_setup</use>
    </connection>
</magento_setup>
<!-- ... -->
</resources>
</global>
 <admin>
    <routers>
        <magento>
            <use>admin</use>
            <args>
                <module>Sendcloud_Magento</module>
                <frontName>sendcloud</frontName>
            </args>
        </magento>
    </routers>
</admin>
<adminhtml>
    <acl>
        <resources>
            <all>
                <title>Allow Everything</title>
            </all>
            <admin>
                <children>
                    <system>
                        <children>
                            <config>
                                <children>
                                    <sendcloud>
                                        <title>Sendcloud</title>
                                    </sendcloud>
                                </children>
                            </config>
                        </children>
                    </system>
                </children>
            </admin>
        </resources>
    </acl>

    <layout>
        <updates>
            <magento>
                <file>magento.xml</file>
            </magento>
        </updates>
    </layout>
    <events>
        <core_block_abstract_prepare_layout_before>
            <observers>
                <magento_core_block_abstract_prepare_layout_before>
                    <class>Sendcloud_Magento_Model_Observer</class>
                    <method>addMassAction</method>
                </magento_core_block_abstract_prepare_layout_before>
            </observers>
        </core_block_abstract_prepare_layout_before>
    </events>
</adminhtml>

モジュールにインストーラースクリプトを配置しました。パス/local/Sendcloud/Magento/sql/magento_setup/mysql4-install-0.2.0.php

echo 'Running This Upgrade: '.get_class($this)."\n <br /> \n";
die("Exit for now");    

Sendcloud / Magento / Model / Resource / Mysql4/Setup.phpで作成されたモデルがあります

class Sendcloud_Magento_Model_Resource_Mysql4_Setup extends Mage_Core_Model_Resource_Setup {
}

私の質問に対する解決策をお持ちの方がいらっしゃると思います。

よろしくお願いいたします。明けましておめでとうございます。

ポール

4

2 に答える 2

1

したがって、バージョンを0.2.0から0.3.0に更新する必要があります。これを試してください

app \ code \ local \ Sendcloud \ Magento \ etc \ config.xml

<?xml version="3.0"?>
<config>
    <modules>
        <Sendcloud_Magento>
            <version>0.3.0</version>
        </Sendcloud_Magento>
    </modules>
    <frontend>
        <routers>
            <magento>
                <use>standard</use>
                <args>
                    <module>Sendcloud_Magento</module>
                    <frontName>magento</frontName>
                </args>
            </magento>
        </routers>
    </frontend>
    <global>
        <models>
            <magento>
                <class>Sendcloud_Magento_Model</class>
                <resourceModel>magento_mysql4</resourceModel>
            </magento>
            <magento_mysql4>
                <class>Sendcloud_Magento_Model_Mysql4</class>
                <entities>
                    <magento>
                        <table>magento</table>
                    </magento>
                </entities>
            </magento_mysql4>
        </models>
        <resources>
            <magento_setup>
                <setup>
                    <module>Sendcloud_Magento</module>
                </setup>
                <connection>
                    <use>core_setup</use>
                </connection>
            </magento_setup>
            <magento_write>
                <connection>
                    <use>core_write</use>
                </connection>
            </magento_write>
            <magento_read>
                <connection>
                    <use>core_read</use>
                </connection>
            </magento_read>
        </resources>
    </global>
</config>

app \ code \ local \ Sendcloud \ Magento \ Model \ Magento.php

class Sendcloud_Magento_Model_Magento extends Mage_Core_Model_Abstract
{
    public function _construct()
    {
        parent::_construct();
        $this->_init('magento/magento');
    }
}

app \ code \ local \ Sendcloud \ Magento \ Model \ Mysql4 \ Magento.php

class Sendcloud_Magento_Model_Mysql4_Magento extends Mage_Core_Model_Mysql4_Abstract
{
    public function _construct()
    {    
        // Note that the magento_id refers to the key field in your database table.
        $this->_init('magento/magento', 'magento_id');
    }
}

app \ code \ local \ Sendcloud \ Magento \ Model \ Mysql4 \ Magento \ Collection.php

class Sendcloud_Magento_Model_Mysql4_Magento_Collection extends Mage_Core_Model_Mysql4_Collection_Abstract
    {
        public function _construct()
        {
            parent::_construct();
            $this->_init('magento/magento');
        }
    }

app \ code \ local \ Sendcloud \ Magento \ sql \ magento_setup \ mysql4-upgrade-0.2.0-0.3.0.php

$installer = $this;

$installer->startSetup();

$installer->addAttribute(
));

$installer->endSetup(); 

app \ etc \ modules \ Sendcloud_Magento.xml

<?xml version="1.0"?>
<config>
    <modules>
        <Sendcloud_Magento>
            <active>true</active>
            <codePool>local</codePool>
        </Sendcloud_Magento>
    </modules>
</config> 
于 2012-12-26T19:56:45.517 に答える
0

app / etc / modules /に別のXMLファイルを配置してモデルをアクティブ化しましたか?

于 2012-12-26T16:41:52.210 に答える