我正在尝试在我的模块中实现一个简单的观察者(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>
应用/代码/本地/富/酒吧/型号/ Observer.php
<?php
class Foo_Bar_Model_Observer{
public function catalogProductLoadAfter(Varien_Event_Observer $observer)
{
$product = $observer ->getProduct();
$product ->setName($product.getName().' '.'is cool');
}
}
?>
我还在 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>
但是它有效,有没有人有任何建议?
答案 0 :(得分:2)
您只需要模型的模块名称:
<foo_bar>
<type>model</type>
<class>bar/observer</class>
<method>catalogProductLoadAfter</method>
</foo_bar>
您不需要指定Foo_Bar
你的PHP也有错误
$product ->setName($product.getName().' '.'is cool');
应该是
$product->setName($product->getName().' '.'is cool');