Atualização: descobri que a classe que realmente preciso reescrever é SMDesign_SMDZoom_Block_Product_View_Media
e não SMDesign_ColorswatchProductView_Block_Product_View_Media
como eu pensava originalmente. No entanto, o mesmo problema exato ainda se aplica.
A extensão SMDesign SMDZoom reescreve a classe de bloco 'catalog / product_view_media'. O xml para isso é assim:
<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>
Eu quero reescrever esta classe novamente. Quero reescrever a classe catalog / product_view_media que este módulo smdzoom está reescrevendo. Isso pode ser feito? Como seria o xml de configuração no meu módulo para fazer isso?
Atualmente, este é o meu arquivo xml init do módulo:
<config>
<modules>
<Goorin_SMDZoom>
<active>true</active>
<codePool>local</codePool>
</Goorin_SMDZoom>
<depends>
<Mage_Catalog />
<SMDesign_SMDZoom />
</depends>
</modules>
</config>
e o arquivo config.xml do módulo:
<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>
Minha nova classe simplesmente se parece com isso para testes:
class Goorin_SMDZoom_Block_Product_View_Media extends SMDesign_SMDZoom_Block_Product_View_Media
{
public function _construct() {
parent::_construct();
}
}
Estou testando isso exibindo dicas de caminho do modelo e vendo o bloco SMDesign ainda sendo usado na página de visualização do produto. O que estou fazendo de errado?
fonte
<depends>
nó não está funcionando ..É por isso que reescrever as classes principais é uma porcaria.
Filmando a partir daqui, aqui, mas acho que sua melhor aposta seria estender a implementação de amostras de cores
Mage_Catalog_Blog_Product_View_Media
e fazer com que seu módulo dependa do módulo de amostras de cores.Alan Storm respondeu a uma pergunta semelhante aqui .
Melhor ainda seria tentar fazer o que você está tentando fazer através de um observador.
fonte