2014-12-08 4 views
0

Я использую конфигурационный файл ниже. Однако, когда я сохраняю продукт, класс наблюдателя никогда не вызывается.Magento не вызывает класс наблюдателя

<?xml version="1.0"?> 
<config> 
<modules> 
    <PcTp_Stock> 
     <version>1.0.0</version> 
    </PcTp_Stock> 
</modules> 
<global> 
    <blocks> 
     <stock> 
      <class>PcTp_Stock_Block</class> 
     </stock> 
    </blocks> 
    <models> 
     <stock> 
      <class>PcTp_Stock_Model</class> 
     </stock> 
    </models> 

</global> 
<adminhtml> 
    <layout> 
     <updates> 
      <stock> 
       <file>stock.xml</file> 
      </stock> 
     </updates> 
    </layout> 
    <events> 
     <catalog_product_save_after> 
      <observers> 
       <pctp_stock_product_catalog_data_inventory> 
        <type>singleton</type> 
        <class>stock/observer</class> 
        <method>saveProductTabData</method> 
       </pctp_stock_product_catalog_data_inventory> 
      </observers> 
     </catalog_product_save_after> 
    </events> 
</adminhtml> 

Класс наблюдателя (Pc_Tp_Stock_Model_Observer) сохраняется приложение/код/​​местные/ПХТФ/Фото/Модель/Observer.php

Как получить эту работу?

<?php 

class Pc_Tp_Stock_Model_Observer 
+0

Try catalog_product_prepare_save вместо этого. Глядя на лист обмана 1.7, я не вижу этого события https://www.nicksays.co.uk/magento-events-cheat-sheet-1-7/ – PixieMedia

ответ

-1

Ваша архитектура именования выглядит немного, когда вы объявляете наблюдателя/класс. Попробуйте изменить его на это;

<observers> 
      <PcTp_Stock_Model_Observer> 
       <type>singleton</type> 
       <class>PcTp_Stock_Model_Observer</class> 
       <method>saveProductTabData</method> 
      </PcTp_Stock_Model_Observer> 
</observers> 

А затем в файле Model/Observer.php;

class PcTp_Stock_Model_Observer { 

    public function saveProductTabData() { 

     // Do something 

    } 

} 

Также убедитесь, что событие доступно в 1.7. Я использую этот сайт для быстрого справочного руководства для 1.7 https://www.nicksays.co.uk/magento-events-cheat-sheet-1-7/, вместо этого стоит попробовать catalog_product_prepare_save.

Лучшие

Том

0

config.xml

<?xml version="1.0"?> 
<config> 
<modules> 
    <PcTp_Stock> 
     <version>1.0.0</version> 
    </PcTp_Stock> 
</modules> 
<global> 
    <models> 
     <PcTp_Stock> 
      <class>PcTp_Stock_Model</class> 
     </PcTp_Stock> 
    </models> 
</global> 
<adminhtml> 
    <events> 
     <catalog_product_save_after> 
      <observers> 
       <pctp_stock_save_after> 
        <type>model</type> 
        <class>PcTp_Stock/observer</class> 
        <method>catalogProductSaveAfter</method> 
       </pctp_stock_save_after> 
      </observers> 
     </catalog_product_save_after> 
    </events> 
</adminhtml> 
</config> 

приложение \ код ... \ ПХТФ \ Фото \ Model \ Observer.php

<?php 

class PcTp_Stock_Model_Observer { 

    public function catalogProductSaveAfter($observer) { 
     die('observer launched'); 
    } 

}