超越Magento企业核心观察者方法

时间:2016-01-16 00:33:55

标签: php magento enterprise

我试图过度使用位于Enterprise_Catalog_Model_Observer类中的多个方法。在核心配置中,此Observer定义为

{% for item in page.related_links.all %}
   {% with item.link_page.specific as related_page %}
      <li><a href="{{ item.link }}">{{ item.title }}</a></li>
      <br><div class="description">{{ related_page.date }}
        <span class="pink">[{{ related_page.topicTag }}]</span>
         {{ related_page.name }} <span class="pink">[{{ related_page.city }}]</span>
      </div>
   {% endwith %}
{% endfor %}

在我的enxtension app / code / local / Extensioname / Redirects / etc / config.xml

        <catalog_product_save_after>
            <observers>
                <catalog_product_save_custom_redirect>
                    <class>enterprise_catalog/observer</class>
                    <method>saveProductCustomRedirect</method>
                </catalog_product_save_custom_redirect>
            </observers>
        </catalog_product_save_after>

在app / code / local / Extensioname / Redirects / Model / Observer.php

<?xml version="1.0"?>
<config>
    <modules>
        <Extensioname_Redirects>
            <version>0.1.0</version>
        </Extensioname_Redirects>
    </modules>
    <global>
        <models>
            <Extensioname_Redirects>
                <class>Extensioname_Redirects_Model_Observer</class>
            </Extensioname_Redirects>
        </models>
    </global>

    <frontend>
        <events>
            <catalog_product_save_after>
                <observers>
                    <extensioname_redirects>
                        <class>Extensioname_Redirects_Model_Observer</class>
                        <method>saveProductCustomRedirect</method>
                    </extensioname_redirects>
                 </observers>
            </catalog_product_save_after>
        </events>
    </frontend>
</config>

但核心观察者仍在发射saveProductCustomRedirects,而我的扩展程序无效。请帮忙

1 个答案:

答案 0 :(得分:0)

对于它的价值:如果有人遇到麻烦我的问题归结为不在我的扩展配置中重写核心观察者。单词外壳也出现了一个问题,一旦我的所有xml标签在模型节点中更改为小写,扩展就开始工作了。我更新的扩展配置如下。

<?xml version="1.0"?>
<config>
    <modules>
        <My_Extension>
            <version>0.1.0</version>
        </My_Extension>
    </modules>

    <global>
        <models>

            <my_extension>
                <class>My_Extension_Model_Observer</class>
            </my_extension>
            <!-- Updated here to rewrite core observer
                 Enterprise_Catalog_Model_Observer -->
            <enterprise_catalog>
                <rewrite>
                    <observer>My_Extension_Model_Observer</observer>
                </rewrite>
            </enterprise_catalog>
        </models>
    </global>

    <frontend>
        <events>
            <catalog_product_save_after>
                <observers>
                    <my_extension>
                        <class>My_Extension_Model_Observer</class>
                        <method>saveProductCustomRedirect</method>
                    </my_extension>
                </observers>
            </catalog_product_save_after>
        </events>
    </frontend>
</config>