আমি getChildHtml () কলটিতে ডেটা পাস করতে সক্ষম হতে চাই। কারণটি হ'ল, ব্লকের আউটপুট একটি পণ্যের ধরণের উপর নির্ভরশীল। সুতরাং আমি পণ্যটি getChildHtml এ পাস করতে চাই যাতে এটি আউটপুট সম্পর্কে সিদ্ধান্ত নিতে পারে।
আমি এটি ভিতরে করছি template/checkout/cart/item/default.phtml
।
আদর্শভাবে, কলটি দেখতে এমন হবে:
echo $this->getChildHtml('child_block_name', $_item);
তারপরে আমার ব্লকটি আইটেম থেকে পণ্যের ধরণ পেতে এবং সঠিক আউটপুট প্রদর্শন করতে পারে।
যেহেতু এই ডেটাটিতে অবশ্যই প্রবেশ করা সম্ভব নয় getChildHtml
- মূল ব্লকটি পুনরায় লেখালেখি না করে কীভাবে এই জাতীয় আচরণ করা যায়?
আমার কাছে যে দুটি সমাধান রয়েছে তা নিম্নরূপ (খুব আকর্ষণীয় নয়):
1 - কোনও সহায়ক তৈরি করুন এবং কোনও ব্লক এবং টেমপ্লেটকে এটি রেন্ডার করার পরিবর্তে সহায়তার মাধ্যমে এইচটিএমএল আউটপুট অ্যাক্সেস করুন $this->helper('my_module')->getItemHtml($_item);
2 - টেমপ্লেটের ভিতরে চাইল্ড ব্লক এবং এতে ডেটা সেট করুন:
$this->getChild('child_name')->setData('item', $_item);
echo $this->getChildHtml('child_name')
আমি মনে করি ম্যাজেন্টো আর্কিটেকচারের দিক থেকে, 2 নম্বর দুটি খারাপের চেয়ে কম, তবে এটি কোনও টেমপ্লেটের অভ্যন্তরে দেখতে কুৎসিত।