Antworten:
Magento hat standardmäßig drei "Bereiche" : frontend, adminhtmlund install, mit denen verschiedene Dinge wie Übersetzungen und Designs getrennt werden.
Der Bereich wird einmal geladen und festgelegt, wenn Magento initialisiert wird. Weitere Mage_Core_Model_App_Area::load()Informationen finden Sie unter. Sie werden einen zusätzlichen Bereich bemerken admin, aber es scheint, dass dieser nicht mehr verwendet wird (irgendwo mehr?). Einige Module fügen möglicherweise neue Bereiche hinzu, z. B. testvon EcomDev_PHPUnit.
Beobachter werden auch pro Bereich definiert, aber zusätzlich können Sie dann in definieren <global>, dass sie in allen Bereichen gelten.
Es werden nur Beobachter ausgeführt, die im aktuellen Bereich und in definiert sind global. Globale Beobachter stehen immer an erster Stelle.
Das Definieren eines Beobachters in <default>oder <admin>sollte eigentlich überhaupt nicht funktionieren.
install- es wird während des Magento-Installationsassistenten verwendet. Schauen Sie sich das an Mage_Install_Controller_Action(eigentlich scheint dieses nur für das Thema verwendet zu werden, daher können Sie keine Beobachter speziell für erstellen install)
Wenn Sie zwischenzeitlich <frontend></frontend>Beobachter aufrufen, wird dieses Beobachterereignis nur im Frontend ausgeführt. Wenn Sie dazwischen schreiben <adminhtml></adminhtml>, wird es nur im Backend ausgeführt. Wenn Sie dazwischen schreiben, <global></global>funktioniert das Beobachterereignis sowohl im Frontend als auch im Backend.
Nehmen Sie zum Beispiel ein Ereignis mit dem Namen "core_block_abstract_prepare_layout_after".
Fall 1:-
<adminhtml>
<events>
<core_block_abstract_prepare_layout_after>
</core_block_abstract_prepare_layout_after>
</events>
</adminhtml>
Das Beobachterereignis "<core_block_abstract_prepare_layout_after>" funktioniert nur im Backend
Fall 2: -
<frontend>
<events>
<core_block_abstract_prepare_layout_after>
</core_block_abstract_prepare_layout_after>
</events>
</frontend>
Das Beobachterereignis "<core_block_abstract_prepare_layout_after>" funktioniert nur im Frontend
Fall 3: -
<global>
<events>
<core_block_abstract_prepare_layout_after>
</core_block_abstract_prepare_layout_after>
</events>
</global>
Das Observer-Ereignis "<core_block_abstract_prepare_layout_after>" funktioniert nur im Frontend und Backend