我想知道是否有人知道我在哪里可以修改用于 Mage_Adminhtml_Catalog_ProductController
的集合(app / code / core / Mage / Adminhtml / controllers / Catalog / ProductController.php)?我改写/创建哪种方法来更改要展示的产品?
编辑1:我宁愿有办法使用观察员,即 . 我需要将哪些事件应用于我的代码?
EDIT2:最好在这里添加我想要实现的目标;我已经为产品添加了一个额外的属性,该产品包含哪个管理员添加了该特定产品 . 现在,在管理面板中,当用户查看产品列表时,他们只会看到该属性是其管理员ID的产品 .
EDIT3:我偶然发现 catalog_product_load_after
事件观察员,我不确定这是不是正确的,但这就是我所拥有的:
confix.xml
<?xml version="1.0"?>
<config>
<adminhtml>
<events>
<catalog_product_load_after> <!-- Name of Event -->
<observers>
<load_after> <!-- Any Unique Identifier -->
<type>singleton</type>
<class>Drench_Admindetails_Model_Observer</class> <!-- Over Model Class -->
<method>loadAfter</method> <!-- name of function -->
</load_after>
</observers>
</catalog_product_load_after>
</events>
</adminhtml>
</config>
和Model / Observer.php
<?php
class Drench_Admindetails_Model_Observer{
public function loadAfter(){
fb('testasd'); // this just a firephp call
}
}
2 回答
你可以听
catalog_product_collection_load_before
或catalog_product_collection_load_after
.要查找您感兴趣的事件,请使用Alan Storm的技术:编辑app / Mage.php dispatchEvent()方法,在开头添加以下行:
这将在/var/log/events.log文件中写入所有事件 .
我'd put a link to Alan'的原帖,但我可以't find it right now: if anyone find it I' ll更新我的答案 .
最快的方法是复制此文件
进入本地范围并向_prepareCollection()函数添加新过滤器 .
但是,这可能不是升级友好的 . 对于升级 - 友好的解决方案,我建议创建一个新的Magento模块,并在那里附加过滤器到_prepareCollection()函数 .