XML düzeninde bir blok türünü değiştirmek mümkün müdür?
setTemplate
Yöntemini kullanarak şablon değiştirmek nasıl biliyorum , ama bir blok türünü değiştirmeye çalışıyorum. Mümkün mü?
XML düzeninde bir blok türünü değiştirmek mümkün müdür?
setTemplate
Yöntemini kullanarak şablon değiştirmek nasıl biliyorum , ama bir blok türünü değiştirmeye çalışıyorum. Mümkün mü?
Yanıtlar:
Blok türünü değiştirmek, blok sınıfını değiştirmek anlamına gelir, yani hayır, ama ...
... sadece bloğun üzerine yazabilirsiniz:
layout.xml
, blok oluşturulduktan sonra işlendiğinizden emin olun , örn <depends>
.Company_Module.xml
Sorun, bloğun üzerine yazması ve türü değiştirmemesidir. Bu, yaratılış ile sizin değişiminiz arasındaki bu blokta yapılan her şeyin kaybolduğu anlamına gelir.
Örneğin catalog.navigation
:
<layout version="0.1.0">
<catalog_category_default translate="label">
<reference name="left">
<block type="myModule/navigation" name="catalog.leftnav" after="currency" template="myModule/catalog/navigation/left.phtml"/>
</reference>
</catalog_category_default>
</layout>
Bunu afaik düzen dosyalarında değiştiremezsiniz. Ancak, bunları yapılandırma dosyalarınızda genişletebilir ve geçersiz kılabilirsiniz.
Misal:
<config>
<global>
<blocks>
<catalog>
<rewrite><product_view>My_Custom_Block_Product_View</product_view></rewrite>
</catalog>
</blocks>
</global>
</config>
Orijinal bloğu uzatmayı unutmayın.
Belirli bir düzen için belirli bir bloğu güncellemem gereken benzer bir sorunla karşı karşıya kaldım.
Sonunda ne yapıyorum ve işe yarıyor gibi görünüyor (düzen dosyasında)
<controller_x_y>
<reference name="block_name_reference">
<block type="mymodule/customblock" name="block_name_reference" />
</reference>
</controller_x_y>
Bu yardımcı olur umarım.