Apakah mungkin untuk mengubah tipe blok dalam tata letak XML?
Saya tahu cara mengubah template menggunakan setTemplatemetode, tetapi saya mencoba mengubah tipe blok. Apakah ini mungkin?
Apakah mungkin untuk mengubah tipe blok dalam tata letak XML?
Saya tahu cara mengubah template menggunakan setTemplatemetode, tetapi saya mencoba mengubah tipe blok. Apakah ini mungkin?
Jawaban:
Mengubah tipe blok berarti mengubah kelas blok, jadi tidak, tapi ...
... Anda bisa saja menimpa blok:
layout.xmldiproses setelah blok dibuat, misalnya dengan <depends>diCompany_Module.xmlMasalahnya adalah, ini menimpa blok dan tidak mengubah jenisnya. Ini berarti semua yang dilakukan pada blok ini antara kreasi dan perubahan Anda hilang.
Misalnya untuk mengubah 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>
Anda tidak dapat mengubahnya di file tata letak afaik. Anda dapat, bagaimanapun, memperluas dan menimpanya di file konfigurasi Anda.
Contoh:
<config>
<global>
<blocks>
<catalog>
<rewrite><product_view>My_Custom_Block_Product_View</product_view></rewrite>
</catalog>
</blocks>
</global>
</config>
Ingatlah untuk memperpanjang blok asli.
Saya menghadapi masalah serupa yang perlu saya perbarui blok tertentu untuk tata letak tertentu.
Apa yang akhirnya saya lakukan dan tampaknya berhasil adalah (dalam file layout)
<controller_x_y>
<reference name="block_name_reference">
<block type="mymodule/customblock" name="block_name_reference" />
</reference>
</controller_x_y>
Semoga ini membantu.