3 votes

observateur d'événements magento (magento1.7)

J'essaie d'implémenter un observateur simple dans mon module (app/code/local/Foo/Bar). Mon objectif est de mettre les noms des produits à '[nom du produit] est cool' lorsqu'un produit est chargé dans le frontend.

Ce sont mes dossiers : app/code/local/Foo/Bar/etc/config.xml

<?xml version="1.0" encoding="UTF-8"?>

<config>
    <global>
        <models>
            <foo_bar>       
                    <class>Foo_Bar_Model</class>
            </foo_bar>  
        </models>
    </global>
    <frontend>
        <events>
            <catalog_product_load_after>
                <observers>
                    <foo_bar>
                        <type>model</type>
                        <class>foo_bar/observer</class>
                        <method>catalogProductLoadAfter</method>
                    </foo_bar>
                </observers>
            </catalog_product_load_after>
        </events>
    </frontend>
</config>

app/code/local/Foo/Bar/Model/Observer.php

<?php 
class Foo_Bar_Model_Observer{

public function catalogProductLoadAfter(Varien_Event_Observer $observer)

{
    $product = $observer ->getProduct();

    $product ->setName($product.getName().' '.'is cool');
} 
}
?>

J'ai également configuré le module dans app/etc/modules/Foo_Bar.xml

<?xml version="1.0" encoding="UTF-8"?>
 <config>
   <modules>
     <Foo_Bar>
        <active>true</active>
        <codePool>local</codePool>
     </Foo_Bar>
  </modules>
</config>

Mais cela ne fonctionne pas, quelqu'un a-t-il une suggestion ?

2voto

Andrew Points 7878

Vous n'avez besoin que du nom du module pour le modèle :

<foo_bar>
     <type>model</type>
     <class>bar/observer</class>
     <method>catalogProductLoadAfter</method>
</foo_bar>

vous n'avez pas besoin de spécifier Foo_Bar

Vous avez également une erreur dans votre PHP

$product ->setName($product.getName().' '.'is cool');

devrait être

$product->setName($product->getName().' '.'is cool');

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X