Переписывание функции наблюдателя Magento Gift Card - PullRequest
8 голосов
/ 19 января 2012

Когда мне нужно переписать функцию в наблюдателе, расположенном в разделе Enterprise, как этот бит перезаписи будет выглядеть в config.xml.

это что-то вроде этого?1005 * Мой класс объявлен следующим образом: класс Custom_GiftCard_Model_Observer расширяет Enterprise_GiftCard_Model_Observer {.....}

1 Ответ

17 голосов
/ 19 января 2012

В данный момент у меня нет настроенной среды разработки предприятия, так что это не проверено, но она должна работать, как описано.

Если вы посмотрите на конфигурацию Подарочной карты в

app/code/core/Enterprise/GiftCard/etc/config.xml

Вы можете найти и найти псевдоним класса для наблюдателя подарочной карты.

<class>enterprise_giftcard/observer</class>

Итак, с псевдонимом класса enterprise_giftcard/observer у вас есть имя группы моделей enterprise_giftcard и модель.имя класса observer.

В файле конфигурации вашего модуля вы сначала создадите область для конфигурации модели

<global>
    <models>

    </models>
</global>

Затем вы добавите имя группы класса, который хотите переписать, enterprise_giftcard

<global>
    <models>
        <enterprise_giftcard>
        </enterprise_giftcard>
    </models>
</global>

Затем вы добавите узел, говорящий о том, что вы хотите перезаписать отдельный класс в этой группе

<global>
    <models>
        <enterprise_giftcard>
            <rewrite>
            </rewrite>
        </enterprise_giftcard>
    </models>
</global>

Вы добавите узел, указывающий, какой классв группе, которую вы хотите переписать, используя часть имени псевдонима класса (observer)

<global>
    <models>
        <enterprise_giftcard>
            <rewrite>
                <observer></observer>
            </rewrite>
        </enterprise_giftcard>
    </models>
</global>

И, наконец, в этом узле вы добавите текстовый узел, который является именем вашего новогоclass.

<global>
    <models>
        <enterprise_giftcard>
            <rewrite>
                <observer>Custom_GiftCard_Model_Observer</observer>
            </rewrite>
        </enterprise_giftcard>
    </models>
</global>

Вы можете проверить свою перезапись, непосредственно создав экземпляр наблюдателя и проверив имя его класса

$model = Mage::getModel('enterprise_giftcard/observer');
var_dump(get_class($model));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...