Update: Ich habe festgestellt, dass die Klasse, die ich neu schreiben muss, SMDesign_SMDZoom_Block_Product_View_Media
nicht so ist, SMDesign_ColorswatchProductView_Block_Product_View_Media
wie ich es ursprünglich gedacht habe. Es gilt jedoch genau dasselbe.
Die Erweiterung SMDesign SMDZoom schreibt die Blockklasse 'catalog / product_view_media' um. Die XML dafür sieht so aus:
<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>
Ich möchte diese Klasse noch einmal umschreiben. Ich möchte die Klasse catalog / product_view_media neu schreiben, die dieses smdzoom-Modul neu schreibt. Kann das gemacht werden? Wie würde die XML-Konfiguration in meinem Modul dafür aussehen?
Derzeit ist dies meine Modul-Init-XML-Datei:
<config>
<modules>
<Goorin_SMDZoom>
<active>true</active>
<codePool>local</codePool>
</Goorin_SMDZoom>
<depends>
<Mage_Catalog />
<SMDesign_SMDZoom />
</depends>
</modules>
</config>
und die Datei config.xml des Moduls:
<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>
Meine neue Klasse sieht zum Testen einfach so aus:
class Goorin_SMDZoom_Block_Product_View_Media extends SMDesign_SMDZoom_Block_Product_View_Media
{
public function _construct() {
parent::_construct();
}
}
Ich teste dies durch Anzeigen von Vorlagenpfadhinweisen und sehe, dass der SMDesign-Block immer noch auf der Produktansichtsseite verwendet wird. Was mache ich falsch?
quelle
<depends>
Knoten nicht funktioniert.Das ist der Grund, warum das Umschreiben von Kernklassen scheiße ist.
Von dort aus zu drehen ist hier angesagt, aber ich denke, Ihre beste Wahl wäre, die Implementierung von Farbfeldern zu erweitern
Mage_Catalog_Blog_Product_View_Media
und dann Ihr Modul vom Farbfeldmodul abhängig zu machen.Alan Sturm beantwortet eine ähnliche Frage hier .
Noch besser wäre es, zu versuchen, alles, was Sie versuchen, durch einen Beobachter zu tun.
quelle