我目前正在摆弄Magento,我想知道是否有人知道我可以在哪里修改用于Mage_Adminhtml_Catalog_ProductController (app/code/core/Mage/Adminhtml/controllers/Catalog/ProductController.php)?的集合我要重写/创建哪种方法来更改要显示的产品?
EDIT1:我更希望有一种使用观察者的方式,即我需要将我的代码应用于哪个事件?
EDIT2:最好在这里添加我想要实现的内容;我已经为products添加了一个额外的属性,该属性包含哪个管理员添加了该特定产品。现在,在管理面板中,当用户查看产品列表时,他们只能看到该属性为其管理员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
}
}发布于 2011-12-19 21:34:30
你可以听catalog_product_collection_load_before或catalog_product_collection_load_after。
要找到您感兴趣的事件,请使用Alan Storm的技术: edit app/Mage.php dispatchEvent()方法,在开头添加以下行:
Mage::log('Event: ' . $name, null, 'events.log');这将在/var/log/events.log文件中写入所有事件。
我会放一个链接到Alan的原始帖子,但我现在找不到它:如果有人找到它,我会更新我的答案。
发布于 2011-12-19 21:34:03
最快的方法是复制此文件
app/code/core/Mage/Adminhtml/Block/Catalog/Product/Grid.php放到您的本地作用域中,并向_prepareCollection()函数添加新的过滤器。
然而,这可能对升级并不友好。对于优先升级的解决方案,我建议创建一个新的Magento模块,并将过滤器附加到_prepareCollection()函数中。
https://stackoverflow.com/questions/8561675
复制相似问题