2011-12-26 2 views
1

Я пытаюсь переопределить magento enterprise catalogevent block, но та же самая ошибка faltal: Неустранимая ошибка: Вызов функции-члена setData() для не-объекта в .. \ www \ app \ code \ ядро ​​\ Mage \ Adminhtml \ Block \ Widget \ Form \ Container.php на линии 129 мой новый модуль config.xml:magento admin form alter

<global> 
     <blocks> 
      <ss_todaysevents> 
       <class>Ssd_Todaysevents_Block</class> 
      </ss_todaysevents> 
      <enterprise_catalogevent> 
       <rewrite> 
        <adminhtml_event_edit_form> 
         Ss_TodaysEvents_Block_Adminhtml_Event_Edit_Form 
        </adminhtml_event_edit_form> 
       </rewrite> 
      </enterprise_catalogevent> 
     </blocks>   
    </global> 

класс Ss_TodaysEvents_Block_Adminhtml_Event_Edit_Form в .. \ WWW \ приложение \ код \ Local \ Ss \ TodaysEvents \ Block \ Adminhtml \ Event \ Edit \ Form.php и имеет следующий код:

class Ss_TodaysEvents_Block_Adminhtml_Event_Edit_Form extends Enterprise_CatalogEvent_Block_Adminhtml_Event_Edit_Form 
{ 
    protected function _prepareForm() 
    { 
     parent::_prepareForm();  
     if (Mage::getConfig()->getModuleConfig('Ss_Brands')->is('active')) { 
      $fieldset = $this->getForm()->getElements()->searchById('general_fieldset'); 
      $fieldset->addField('brand_name', 'select', 
           array(
            'label' => Mage::helper('brands')->__('Brand'), 
            'title' => Mage::helper('brands')->__('Brand'), 
            'name' => 'brands_id', 
            'values' => Mage::helper('brands')->getBrandsArrayList(), 
           ) 
      ); 

     } 
     return $this; 
    } 


} 

Что там? Спасибо

+0

Вы можете добавить соответствующий блок кода, что сообщение об ошибке с упоминанием? –

+0

' Ssd_Todaysevents_Block' Просто из любопытства, почему дополнительный 'd'? а не только 'Ss_' ...? – B00MER

ответ

0

Если единственная цель вашего модуля - переписать, вам не нужно настраивать группу классов (global/blocks/ss_todaysevents). Вы непосредственно сопоставляете класс с другим классом _ имя класса.

Magento не разбивает пробелы в текстовых узлах. В вашем adminhtml_event_edit_form узле ваш имя_класса не должны иметь пробелы вокруг него, т.е .:

<adminhtml_event_edit_form>Ss_TodaysEvents_Block_Adminhtml_Event_Edit_Form</adminhtml_event_edit_form>