Обновление: я обнаружил, что класс, который мне действительно нужно переписать, - это SMDesign_SMDZoom_Block_Product_View_Media
не то, SMDesign_ColorswatchProductView_Block_Product_View_Media
что я изначально думал. Тем не менее, точно такая же проблема все еще применяется.
Расширение SMDesign SMDZoom переписывает класс блока 'catalog / product_view_media'. XML для этого выглядит так:
<global>
...
<blocks>
<smdzoom>
<class>SMDesign_SMDZoom_Block</class>
</smdzoom>
</blocks>
<blocks>
<catalog>
<rewrite>
<product_view_media>SMDesign_SMDZoom_Block_Product_View_Media</product_view_media>
</rewrite>
</catalog>
</blocks>
....
</global>
Я хочу переписать этот класс еще раз. Я хочу переписать класс catalog / product_view_media, который переписывает этот модуль smdzoom. Можно ли это сделать? Как будет выглядеть config xml в моем модуле?
В настоящее время это мой модуль init xml файл:
<config>
<modules>
<Goorin_SMDZoom>
<active>true</active>
<codePool>local</codePool>
</Goorin_SMDZoom>
<depends>
<Mage_Catalog />
<SMDesign_SMDZoom />
</depends>
</modules>
</config>
и файл модуля config.xml:
<global>
<blocks>
<gbismdzoom>
<class>Goorin_SMDZoom_Block</class>
</gbismdzoom>
<catalog>
<rewrite>
<product_view_media>Goorin_SMDZoom_Block_Product_View_Media</product_view_media>
</rewrite>
</catalog>
</blocks>
</global>
Мой новый класс просто выглядит так для тестирования:
class Goorin_SMDZoom_Block_Product_View_Media extends SMDesign_SMDZoom_Block_Product_View_Media
{
public function _construct() {
parent::_construct();
}
}
Я тестирую это, отображая подсказки к шаблонам, и вижу, что блок SMDesign все еще используется на странице просмотра продукта. Что я делаю неправильно?
источник
<depends>
узел не работает ..Вот почему переписывание базовых классов - отстой.
Съемка оттуда, но я думаю, что вам лучше всего расширить реализацию образца цвета,
Mage_Catalog_Blog_Product_View_Media
а затем заставить свой модуль зависеть от модуля выбора цвета.Алан Сторм ответил на аналогичный вопрос здесь .
Еще лучше было бы попытаться сделать то, что вы пытаетесь сделать через наблюдателя.
источник