2010-11-23 4 views
1

Я создал модуль, который использовал пользовательский виджет/сетку/столбец для моей сетки администратора, чтобы отображать уменьшенное изображение, и все сработало. Теперь мне нужно создать другой модуль в том же проекте, который сделает то же самое, но столбец изображения не будет работать. Похоже, что он даже не загружает мой новый класс, так как он не будет выполнять никаких stmt, которые я вставлял в файл. Я знаю, что он правильно загружает данные, b/c, если я меняю тип на текст, тогда правильная информация из БД заполняется в поле. Но когда я перехожу к своему новому типу «образ», ячейка пуста. кто-нибудь знает, почему он не будет работать?magento rewrite не работает

ABT/фон/и т.д./config.xml < < не работает

<global> 
    .... 
    <blocks> 
     <background> 
      <class>ABT_Background_Block</class> 
     </background> 
     <adminhtml> 
      <rewrite> 
       <widget_grid_column>ABT_Background_Block_Widget_Grid_Column</widget_grid_column> 
      </rewrite> 
     </adminhtml> 
    </blocks> 
    .... 
</global> 

модуль ввода скопирована, чтобы получить меня и работает, имеет точно такую ​​же настройку конфигурации, но все же он отлично работает ABT/Feature/и т.д./config.xml < < это работает правильно

<global> 
    .... 
    <blocks> 
     <feature> 
      <class>ABT_Feature_Block</class> 
     </feature> 
     <adminhtml> 
      <rewrite> 
       <widget_grid_column>ABT_Feature_Block_Widget_Grid_Column</widget_grid_column> 
      </rewrite> 
     </adminhtml> 
    </blocks> 
    .... 
</global> 

ответ

2

Вот что происходит с Magento, когда вы переписываете класс.

Когда Magento конкретизирует класс блок, он использует код что-то вроде следующего

$this->getLayout()->createBlock('adminhtml/widget_grid_column') 

Метод createBlock является завод. Magento использует идентификатор

adminhtml/widget_grid_column 

для поиска, который должен быть создан. По умолчанию, это

Mage_Adminhtml_Block_Widget_Grid_Column 

При создании рерайт, вы говорите Magento

Эй. вместо того, чтобы использовать «Mage_Adminhtml_Block_Widget_Grid_Column» для «adminhtml/widget_grid_column», вы должны использовать «ABT_Background_Block_Widget_Grid_Column»

Это означает, что для любой данной системы, класс может быть переписано только раз. В коде, который вы показываете выше, вы пытаетесь переписать класс дважды. Победит только один из ваших переписаний.

Быстрый подход, который я бы взял, - это сохранить все ваши настройки в одном классе переопределения.

В целом, я стараюсь избегать использования перезаписей, если это вообще возможно. Они - мощная система, но должны использоваться экономно. Я не сделал большой настройки сетки, но общий подход, который я попытался бы сделать, - это изменить макет adminhtml, чтобы создать новый класс grid из моего настраиваемого модуля, который расширяет существующий класс сетки, который, в свою очередь, может использовать пользовательские классы столбцов.

Больше работы спереди, но как только вы это поняли, вы можете использовать эту технику снова и снова и не беспокоиться о конфликтах с переписыванием.

+0

Это звучит лучше, чем то, что я делаю. Как я уже сказал, это мой первый проект w/magento, поэтому я новичок во всем этом. Вы бы не узнали о каких-либо ресурсах, которые могли бы помочь мне хромать, выполняя то, что вы описали? – veilig 2010-11-23 19:38:48

1

Я m не уверен, что правильно настроил вашу установку.

В любом случае, похоже, что у вас есть два правила переопределения в одном классе Widget_Grid_Column. Последний загруженный модуль - ABT_Feature, поэтому правило этого блока перезаписывает правило модуля ABT_Background.

У вас есть два решения:

  1. Объединить Характеристика и модуль фона в одном одном
  2. делает блок Feature в зависимости от фонового и обновляют правила перезаписи, так что ABT_Feature_Block_Widget_Grid_Column класса продлит ABT_Background_Block_Widget_Grid_Column.
+0

Возможно, вы правы - скорее всего, у меня нет этой установки правильно. Это мой первый опыт работы с Magento, и я просто последовал этому руководству, чтобы получить новый тип работы http://www.krishnasunuwar.com.np/2009/07/ecommerce-software-magento-showing-image-in-grid/ – veilig 2010-11-23 19:12:12