এক্সএমএল লেআউটে কোনও ব্লকের ধরণের পরিবর্তন করা কি সম্ভব?
setTemplate
পদ্ধতিটি ব্যবহার করে কীভাবে টেমপ্লেট পরিবর্তন করতে হয় তা আমি জানি তবে আমি একটি ব্লকের ধরণের পরিবর্তন করার চেষ্টা করছি। এটা কি সম্ভব?
এক্সএমএল লেআউটে কোনও ব্লকের ধরণের পরিবর্তন করা কি সম্ভব?
setTemplate
পদ্ধতিটি ব্যবহার করে কীভাবে টেমপ্লেট পরিবর্তন করতে হয় তা আমি জানি তবে আমি একটি ব্লকের ধরণের পরিবর্তন করার চেষ্টা করছি। এটা কি সম্ভব?
উত্তর:
ব্লকের ধরণ পরিবর্তন করা মানে ব্লক ক্লাস পরিবর্তন করা, সুতরাং না, তবে ...
... আপনি কেবল ব্লকটি ওভাররাইট করতে পারেন:
layout.xml
ব্লকটি তৈরি হওয়ার পরে আপনার প্রক্রিয়া করা হয়েছে, যেমন <depends>
ইন-সহCompany_Module.xml
সমস্যাটি হ'ল এটি ব্লকটিকে ওভাররাইট করে এবং প্রকারটি পরিবর্তন করে না। এর অর্থ এই যা যা তৈরি এবং আপনার পরিবর্তনের মধ্যে যা এই ব্লকটিতে করা হয় তা হ'ল।
উদাহরণস্বরূপ 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>
আপনি এটিকে লেআউট-ফাইলগুলিতে পরিবর্তন করতে পারবেন না। আপনি তাদের কনফিগারেশন ফাইলগুলিতে প্রসারিত ও ওভাররাইড করতে পারেন।
উদাহরণ:
<config>
<global>
<blocks>
<catalog>
<rewrite><product_view>My_Custom_Block_Product_View</product_view></rewrite>
</catalog>
</blocks>
</global>
</config>
মূল ব্লক প্রসারিত মনে রাখবেন।
আমি একইরকম সমস্যার মুখোমুখি হয়েছি যে একটি নির্দিষ্ট বিন্যাসের জন্য আমার একটি নির্দিষ্ট ব্লক আপডেট করতে হবে।
আমি যা করতে পেরেছি এবং এটি কাজ করে মনে হচ্ছে তা হ'ল (লেআউট ফাইলটিতে)
<controller_x_y>
<reference name="block_name_reference">
<block type="mymodule/customblock" name="block_name_reference" />
</reference>
</controller_x_y>
আশাকরি এটা সাহায্য করবে.