Sé que Magento tiene un sistema similar a un gancho llamado eventos. ¿Alguien tiene una lista completa o un script que pueda usarse para determinar a qué eventos se puede llamar?
event-observer
magento-1
puntos de referencia
fuente
fuente
Respuestas:
No hay una lista de todos los eventos de magento, porque la mayoría de los eventos se nombran dinámicamente.
Si me preguntas, conocer estos eventos clave (y las consecuencias) es un buen punto de partida (además de la lista de Nick):
Cada objeto extendido desde Mage_Core_Model_Abstract distribuye muchos eventos relacionados con la carga, el guardado y la eliminación:
Por ejemplo, para agregar cheques, después de cargar el objeto
para agregar datos adicionales al objeto antes de guardarlo
Para guardar otros modelos después de que se guardó el "padre"
limpiar antes de eliminar el modelo
limpiar, antes de que se elimine el modelo, ¿o tal vez después? ¡Todavía estás aquí en la transacción!
Si quiere estar seguro de que la entidad fue eliminada
Las colecciones extendidas desde Mage_Core_Model_Resource_Db_Collection_Abstract también tienen dos eventos genéricos:
Por ejemplo: para cambiar el SQL para cargar la colección:
Por ejemplo: para agregar datos adicionales a los objetos:
fuente
_eventPrefix
eventos para el modelo, los eventos de solicitud específicos, los eventos de bloque genéricos ocasionalmente útiles y la importancia de iniciar sesión para encontrar eventosapp/code/core/Mage/Core/Model/App.php
ymage::log($eventName,null,'events.txt',true);
aldispatchEvent
método. Cargue la página que estoy tratando de observar. Obviamente, no deje esto como está y revierta una vez que se haya creado su var / logs / events.txt. Sucio sí. Rápido si. :)Haga lo sangriento
grep 'Mage::dispatchEvent' app/ -rsn
Esto le proporcionará una lista de eventos específicos para su instalación, ya que la lista de eventos puede variar según la versión de Magento, las personalizaciones y las extensiones instaladas.fuente
sales_order_place_after
sucederá, pero parece que la llamada para disparar está comentadaCheckout/Type/Onepage.php
.Lo uso como una buena hoja de trucos http://www.nicksays.co.uk/magento-events-cheat-sheet-1-7/ . Tiene todos los eventos que se pueden llamar en 1.7.
fuente
Sé que esta pregunta ha sido respondida, solo agrego mi camino aquí:
public static function dispatchEvent
(ln: ~ 446) al principio agrego//Mage::log($name, null, 'events.log', true);
¡Luego abre var / log / events.log (~ 40kb) y ve un montón de eventos solo en esa página! :)
fuente
La respuesta ya ha sido aceptada pero publicaré mi respuesta de todos modos para el futuro:
Si desea ver la lista de eventos que Magento tiene, tiene 3 opciones:
1) Google para ello, hay muchas personas que han compilado una lista de eventos de Magento
2) Cree un módulo que se enganche en el
controller_action_predispatch
evento que es el evento que se llama antes de que se llame cualquier otro evento. Dentro de este módulo puede registrar algunos eventos que se envían:Agregue lo siguiente en config.xml
Y dentro de yourmodule / Model / Observer:
Lo anterior registraría cada evento que se envía ...
3) Si tiene acceso SSH, puede ejecutar el siguiente comando para obtener una descripción general de todos los eventos (y sus archivos donde se envían):
fuente
controller_action_predispatch
, en particularcontroller_front_init_before
. 2) Este enfoque simplemente no registrará todos los eventos que se envían, ¿es un error tipográfico o una sección incompleta?Estoy usando Magento Developer Toolbar que tiene una buena característica de mostrar eventos que se pueden observar en la página cargada.
fuente
Aquí puede ver la mayoría de los eventos existentes: http://www.magentocommerce.com/wiki/5_-_modules_and_development/reference/magento_events
fuente
Hice un grep en el módulo principal de Mage de Magento, y cumplí una lista,
Lista exhaustiva de eventos de Magento
PD Como se señaló, puede contener eventos que están dentro de las funciones obsoletas de Magento, por lo tanto, verifique el archivo y la referencia de línea antes de la implementación.
Abierto para sugerencias!
fuente
El comando grep enumerado anteriormente generaría duplicados (mucho) y no cubre la lista de prefijos de eventos que se requerirían para comprender los nombres de eventos generados dinámicamente. Estos comandos representan ambas listas con solo valores únicos. Podría agregar la bandera -n como la otra respuesta grep y obtener el número de línea, supongo. Pero la pregunta no preguntaba en qué parte del código estaban todos. ~ _ ~
fuente
hay una hoja de trucos aquí también http://mikebywaters.wordpress.com/2012/07/23/magento-event-observer-list/
fuente
http://www.magentocommerce.com/wiki/5_-_modules_and_development/reference/magento_events
Aquí puede encontrar la lista completa de eventos de observación.
fuente
Consulte estas hojas de trucos
https://www.nicksays.co.uk/magento-events-cheat-sheet-1-8/ http://rabee.me/codes/magento/cheatsheet/1.9/
Te será útil.
fuente
Puede encontrar toda la lista de eventos de backend + frontend en un solo enlace
http://www.magentocommerce.com/wiki/5_-_modules_and_development/reference/magento_events
fuente
Si alguien alguna vez necesita una lista actualizada, estoy tratando de mantenerla actualizada:
https://gist.github.com/digitalpianism/d8157c6b492238af2ed7809e5e3a134e
fuente
Puede encontrar todos los eventos de magento-1x siguiendo la url. https://magento2.atlassian.net/wiki/display/m1wiki/Magento+1.x+Events+Reference
fuente