লেআউটে <অপসারণ নাম = "" /> এবং <অ্যাকশন পদ্ধতি = "আনসেটচিল্ড"> এর মধ্যে পার্থক্য


21

মধ্যে পার্থক্য কি <action method=”unsetChild”>এবং <remove name=""/>?

উভয় ফাংশন বিন্যাস থেকে একটি ব্লক অপসারণ করতে ব্যবহৃত হয়।

কেউ উদাহরণ দিয়ে ব্যাখ্যা করতে পারে?

উত্তর:


21

<remove name="" />এর গ্লোবাল ব্লক স্কোপে কাজ করে Mage_Core_Model_Layout। এগুলি সংগ্রহ করা হয় Mage_Core_Model_Layout::generateXml()এবং নির্দিষ্ট নাম এমনকি ব্লকটিকে তাত্ক্ষণিকভাবে নিষ্ক্রিয় করা থেকে বিরত রাখতে ব্যবহৃত হয় । এছাড়াও, কোনও <remove />এড ব্লকের জন্য ঘোষিত কোনও শিশু ব্লকও তাত্ক্ষণিকভাবে চলবে না

<action method="" />ওরফে Mage_Core_Block_Abstract::unsetChild()একটি ব্লক-স্তরের পদ্ধতি যা ডি তালিকাভুক্ত করে নির্দেশিত শিশু ব্লক (দ্বারা ওরফে , দ্বারা নয় নাম পিতা বা মাতা ব্লক উদাহরণস্বরূপ যার উপর কর্ম বলা হচ্ছে থেকে)। এটি প্রায়শই রেন্ডার আউটপুট থেকে ব্লকটি "অদৃশ্য হয়ে যায়" এর ফলস্বরূপ, যদিও ব্লক উদাহরণটি এখনও তৈরি করা হয়। সাথে একযোগে ব্যবহার ::append()বা ::insert()পদ্ধতি, এটি একটি "স্থানান্তর" সম্পাদন করতে ব্যবহার করা হয়।


কেবল এটি যুক্ত করার জন্য, যদি ব্লকের একটি উপনাম না থাকে তবে এটি নামের সাথে মিলবে।
বেন ক্রুক

2
সঠিক, যখন কোনও উপনাম সরবরাহ করা হবে না, তখন aliasসন্তানের জন্য এটি সেট করা থাকে name। 👍
বেনমার্কস

2

<remove name="" />, সমস্ত লেআউট দিয়ে সমাপ্ত হলে, ম্যাজেন্টো কোন লেআউট হ্যান্ডেলটিতে যুক্ত হয়েছে তা নির্বিশেষে ইঙ্গিতযুক্ত নাম = "" সহ ব্লকটিকে পুরোপুরি মুছে ফেলবে। এই পদ্ধতিটি ব্যবহার করে এক অবস্থান থেকে একটি ব্লক সরিয়ে অন্য জায়গায় যুক্ত করা অসম্ভব

<action method="unsetChild">যেখানে এটি ব্যবহৃত হচ্ছে সেই প্রসঙ্গে কাজ করে। বিদ্যমান ব্লকগুলি এক জায়গা থেকে অন্য জায়গায় সরিয়ে আনার জন্য আনসেটচিল্ড তৈরি করা হয়েছে। আপনি যদি একটি নির্দিষ্ট লেআউট হ্যান্ডেল থেকে নির্দিষ্ট ব্লকটি সরাতে চান এবং তারপরে অন্য কোনও অবস্থান বা লেআউট হ্যান্ডেলে সন্নিবেশ করতে চান তবে আপনাকে এই পদ্ধতিটি ব্যবহার করতে হবে।


বেশ নয়; সংশোধনের জন্য আমার উত্তর দেখুন।
বেনমার্ক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.