2012-01-19 11 views
8

Quando ho bisogno di riscrivere una funzione in un osservatore situato nella sezione Enterprise, come risulterà il bit di riscrittura su config.xml.Riscrittura della funzione di osservatore di carte regalo Magento

è qualcosa di simile?

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

La mia classe è dichiarata come segue: classe Custom_GiftCard_Model_Observer estende Enterprise_GiftCard_Model_Observer { ..... }

risposta

17

Non ho una messa a punto ambiente di sviluppo delle imprese in questo momento, quindi questo è testato , ma dovrebbe funzionare come descritto.

Se si guarda la configurazione Gift Card in

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

È possibile grep su e scoprire l'alias di classe per l'osservatore carta regalo

<class>enterprise_giftcard/observer</class> 

Così, con una classe alias enterprise_giftcard/observer voi avere un nome gruppo modello di enterprise_giftcard e un nome classe modello di observer.

Nel file di configurazione del modulo, in primo luogo si creerà una zona per configurazione del modello

<global> 
    <models> 

    </models> 
</global> 

Poi, si aggiungerà il nome del gruppo della classe che si desidera riscrivere, enterprise_giftcard

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

Poi, si aggiunge un nodo dicendo che vuole riscrivere la una sola classe in questo gruppo

<global> 
    <models> 
     <enterprise_giftcard> 
      <rewrite> 
      </rewrite> 
     </enterprise_giftcard> 
    </models> 
</global> 
.210

Il, si aggiungerà un nodo indicando classe che nel gruppo che si desidera riscrivere, utilizzando la parte del nome dell'alias di classe (observer)

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

E, infine, all'interno di questo nodo, si aggiungerà un nodo di testo che è il nome della tua nuova classe.

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

È possibile verificare la riscrittura istanziando l'osservatore direttamente, e controllando il suo nome di classe

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

descrizione Beh io sono ur seguace. – Gowri

+0

grazie per la risposta rapida. lo proverò rapidamente. – ShaunOReilly

+0

Questo ha fatto il lavoro, grazie. Mi stavo strappando i capelli, perché ho dimenticato le basi! – ShaunOReilly