magento的事件处理

要监听一个事件,在模块的config.xml要配置相应的参数,可以参考Openstream/GeoIP模块:
<?xml version="1.0"?>
<config>
    <modules>
        <Openstream_GeoIP>
            <version>0.1.2</version>
        </Openstream_GeoIP>
    </modules>
    <global>
    ……   
       <events>
            <controller_front_init_before>
                <observers>
                    <geoip>
                        <type>singleton</type>
                        <class>geoip/observer</class>
                        <method>controllerFrontInitBefore</method>
                    </geoip>
                </observers>
            </controller_front_init_before>
        </events>

    </global>
   ……
</config>

即在global/events标签下添加一个子元素,
标签名为要观察的事件名,接下来是observers,再下来就是你自己的模块名,有class和method来定义相应的类和方法;

这些事件什么时候会触发呢,可以看下方法Mage_Core_Controller_Varien_Front::init的代码
 public function init()
    {
        Mage::dispatchEvent('controller_front_init_before', array('front'=>$this));
     ……

        Mage::dispatchEvent('controller_front_init_routers', array('front'=>$this));
……
        return $this;
    }


目前系统中的事件有

 [0] => resource_get_tablename
    [1] => core_collection_abstract_load_before
    [2] => core_collection_abstract_load_after
    [3] => controller_front_init_before
    [4] => controller_front_init_routers
    [5] => model_load_after
    [6] => core_abstract_load_after
    [7] => core_locale_set_locale
    [8] => controller_action_predispatch
    [9] => customer_session_init
    [10] => controller_action_predispatch_catalog
    [11] => controller_action_predispatch_catalog_product_view
    [12] => catalog_controller_product_init_before
    [13] => model_load_before
    [14] => catalog_product_load_before
    [15] => catalog_product_load_after
    [16] => customerlocator_session_init
    [17] => catalog_controller_product_init
    [18] => catalog_controller_product_init_after
    [19] => catalog_controller_product_view
    [20] => controller_action_layout_load_before
    [21] => core_layout_update_updates_get_after
    [22] => controller_action_layout_generate_xml_before
    [23] => controller_action_layout_generate_blocks_before
    [24] => core_block_abstract_prepare_layout_before
    [25] => core_block_abstract_prepare_layout_after
    [26] => core_layout_block_create_after
    [27] => core_session_abstract_clear_messages
    [28] => controller_action_layout_generate_blocks_after
    [29] => controller_action_layout_render_before
    [30] => controller_action_layout_render_before_catalog_product_view
    [31] => core_block_abstract_to_html_before
    [32] => core_block_abstract_to_html_after
    [33] => uioptimization_canonicalurl_before
    [34] => sales_order_collection_load_before
    [35] => sales_order_collection_load_after
    [36] => custom_quote_process
    [37] => checkout_quote_init
    [38] => page_block_html_topmenu_gethtml_before
    [39] => catalog_category_tree_init_inactive_category_ids
    [40] => catalog_entity_attribute_load_after
    [41] => eav_collection_abstract_load_before
    [42] => catalog_category_collection_load_before
    [43] => catalog_category_collection_load_after
    [44] => catalog_category_load_before
    [45] => catalog_category_load_after
    [46] => page_block_html_topmenu_gethtml_after
    [47] => core_block_messages_get_grouped_html_after
    [48] => catalog_helper_output_construct
    [49] => catalog_product_collection_load_before
    [50] => catalog_product_collection_load_after
    [51] => catalog_product_collection_apply_limitations_before
    [52] => customer_group_load_before
    [53] => customer_group_load_after
    [54] => catalog_product_get_final_price
    [55] => currency_display_options_forming
    [56] => catalog_product_view_config
    [57] => catalog_block_product_status_display
    [58] => catalog_product_is_salable_before
    [59] => catalog_product_is_salable_after
    [60] => catalog_product_type_configurable_price
    [61] => catalog_product_collection_apply_limitations_after
    [62] => catalog_product_upsell
    [63] => core_abstract_load_before
    [64] => controller_action_postdispatch_catalog_product_view
    [65] => controller_action_postdispatch_catalog
    [66] => controller_action_postdispatch
    [67] => controller_front_send_response_before
    [68] => http_response_send_before
    [69] => controller_front_send_response_after
posted @ 2015-06-20 17:22  szphper  阅读(196)  评论(0)    收藏  举报