2012-01-19 4 views
8

Cuando necesito volver a escribir una función en un observador ubicado en la sección Enterprise, ¿cómo se verá ese bit de reescritura en config.xml?Reescribiendo la función de observador de tarjeta de regalo de Magento

¿es algo como esto?

<global> 
    <models> 
     <enterprise> 
      <rewrite> 
       <giftcard>Custom_GiftCard_Model_Observer</giftcard> 
      </rewrite> 
     </enterprise> 
    </models> 
</global> 

Mi clase se declara como sigue: Custom_GiftCard_Model_Observer clase extiende Enterprise_GiftCard_Model_Observer { ..... }

Respuesta

17

no tengo una configuración del entorno de desarrollo de la empresa en el momento, así que esto no se ha probado , pero debería funcionar como se describe.

Si nos fijamos en la configuración de la tarjeta de regalo en

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

Puede grep acerca y descubre el alias de clase para el observador tarjeta de regalo

<class>enterprise_giftcard/observer</class> 

lo tanto, con un alias de la clase de enterprise_giftcard/observer se tener un nombre de grupo de modelo de enterprise_giftcard y un nombre de clase de modelo de observer.

En el archivo de configuración del módulo, primero vamos a crear un espacio para la configuración del modelo

<global> 
    <models> 

    </models> 
</global> 

A continuación, agregará el nombre del grupo de la clase que desea volver a escribir, enterprise_giftcard

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

a continuación, vamos a añadir un nodo diciendo que desea volver a escribir la una sola clase en este grupo

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

, añadirá un nodo que indica la clase que, en el grupo al que desea volver a escribir, usando la parte del nombre del alias de clase (observer)

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

Y, por último, dentro de este nodo, añadirá un nodo de texto que es el nombre de tu nueva clase.

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

Puede probar su reescritura instanciándolo el observador directamente, y la comprobación de su nombre de clase

$model = Mage::getModel('enterprise_giftcard/observer'); 
var_dump(get_class($model)); 
+0

Descripción Bueno, yo soy ur seguidor. – Gowri

+0

gracias por la respuesta rápida. lo probaré rápidamente – ShaunOReilly

+0

Eso hizo el trabajo, gracias. ¡Estaba tirando de mi cabello, porque olvidé lo básico! – ShaunOReilly

Cuestiones relacionadas