2011-12-19 138 views
1

我目前正在搞亂Magento的過程中,我只是想知道是否有人知道我在哪裏可以修改用於Mage_Adminhtml_Catalog_ProductController(app/code/core/Mage/Adminhtml /controllers/Catalog/ProductController.php)?我正在重寫/創建哪種方法來更改要顯示的產品?Magento限制管理產品

編輯1:我寧願有一種使用觀察員的方式,即,我需要將我的代碼應用於哪個事件?

編輯2:最好在這裏添加我想要實現的;我爲產品添加了一個額外的屬性,該屬性包含哪些管理員添加了特定產品。現在,在管理面板中,當用戶查看產品列表時,他們只會看到該屬性是其管理員標識的產品。

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> 

和型號/Observer.php

<?php 
class Drench_Admindetails_Model_Observer{ 
    public function loadAfter(){ 
     fb('testasd'); // this just a firephp call 
    } 
} 
+0

你究竟想做什麼? – 2011-12-19 13:07:50

+0

請參閱我的編輯.... – 2011-12-19 13:19:08

回答

1

你可以聽catalog_product_collection_load_beforecatalog_product_collection_load_after

要找到你感興趣的情況下,使用艾倫風暴的技術:編輯應用程序/ Mage.php dispatchEvent()方法,在開始加入這一行:

Mage::log('Event: ' . $name, null, 'events.log'); 

這會寫在所有事件一個/var/log/events.log文件。
我把一個鏈接到Alan的原始文章,但我現在找不到它:如果有人發現它,我會更新我的答案。

+0

偉大的伴侶!這工作!原來是'catalog_product_collection_load_after'事件。謝謝 – 2011-12-19 13:52:57

+0

np,很高興我能幫上忙。 – OSdave 2011-12-19 14:09:23

1

的最快方法是這個文件

複製

放入您的本地範圍並向_prepareCollection()函數添加新過濾器。

但是,這可能不是升級友好的。對於升級解決方案,我建議創建一個新的Magento模塊並在那裏爲_prepareCollection()函數附加過濾器。

+0

但是,感謝那些事件解決方案更好。如果這不起作用,我會研究這種方法! – 2011-12-19 13:53:51