কখন 'নাম' ব্যবহার করবেন এবং কখন 'হিসাবে' ব্যবহার করবেন


26

আমি খুঁজে পেয়েছি যে unsetChildপদ্ধতিটি ব্যবহার করার চেষ্টা করার সময়, কখনও কখনও আমাকে 'নাম' গুণাবলী এবং অন্যদের 'হিসাবে' ব্যবহার করতে হয়। দেখে মনে হচ্ছে কোনও ব্লক যদি সাধারণত যুক্ত করা হয় তবে আপনি 'হিসাবে' ব্যবহার করেন তবে appendপদ্ধতিটি ব্যবহার করে যদি এটি কোনও ব্লকে যুক্ত হয় তবে আপনাকে 'নাম' ব্যবহার করতে হতে পারে। এই ধারণাটি কি সঠিক?

এর পিছনে যুক্তি কী এবং আপনার কোন বৈশিষ্ট্যটি ব্যবহার করা উচিত তা বোঝার একটি মানক উপায় আছে?

উত্তর:


15

ব্লক সর্বদা দ্বারা উল্লেখ করা যেতে পারে name। এলিয়াস ( as) কোনও ব্লকের দীর্ঘ নাম সরল করতে ব্যবহৃত হয় এবং কেবলমাত্র সুযোগের সাথে পৃথক হয়। Nameপৃষ্ঠাতে এবং aliasপ্যারেন্ট ব্লকের মধ্যে অনন্য হতে হবে ।


5
আমি আশঙ্কা করছি এর কোনটিই সত্য নয়। টেমপ্লেটে, কোনও ব্লকটির নাম থাকতে পারে না যদি এটির একটি উলাম সেট থাকে। আপনি কেবলমাত্র উপনামটি ব্যবহার করতে পারেন alias উপনামের স্বতন্ত্রতার জন্য একেবারে বিপরীত সত্য - টেমপ্লেট পরিবর্তন না করে ভিন্ন ব্লকের জন্য রেন্ডার করা সম্ভব করার জন্য ওরফে পরিচয় করানো হয়েছিল।
জানু টমকা

5
@ জনটমকা এলিয়াসগুলির প্রধান ব্যবহার দিয়েছেন। এটি উল্লেখ করা উচিত যে "আপনি যদি একটি উলাম সেট থাকে তবে আপনি তার নামের সাথে কোনও ব্লকটি উল্লেখ করতে পারবেন না" এই বিবৃতিটি সাধারণত সত্য হলেও, একটি পদ্ধতি রয়েছে getBlockHtml()যা কখনও কখনও নাম দ্বারা ব্লকগুলি রেন্ডার করতে ব্যবহৃত হয়।
বেনমার্কস

6

আপনি যখন হিসাবে ব্যবহার করেন , আপনি পিটিএইচটিএমএল টেমপ্লেটে $ this-> getChildHtml ("as_value") কল করতে পারেন ।

নাম অনন্য হওয়া আবশ্যক, আর ব্যবহার করা যেতে পারে <রেফারেন্স> ব্লক, <অপসারণ> , ইত্যাদি

উদাহরণস্বরূপ (ক্যাটালগ। এক্সএমএল):

<block type="catalog/product_view" name="product.info" template="catalog/product/view.phtml">
    <block type="catalog/product_view_media" name="product.info.media" as="media" template="catalog/product/view/media.phtml"/>
</block>

আপনি যদি ক্যাটালগ / পণ্য / ভিউ.এফটিএমটি খুলেন তবে আপনি দেখতে পাবেন:

<div class="product-img-box">
    <?php echo $this->getChildHtml('media') ?>
</div>

দেখেন তো? যেমন = "মিডিয়া", এবং তারপরে $ এটি-> getChildHtml ('মিডিয়া') ...


5

কেউ unsetChildএখনও সম্পর্কে নির্দিষ্ট প্রশ্নের উত্তর দেয়নি। কোনও ব্লকের বাচ্চাদের সম্পর্কিত পদ্ধতিগুলি সর্বদা উলাম দ্বারা শিশু ব্লককে বোঝায়, যা কেবল পিতামাতার কাছে পরিচিত এবং নামটির বিপরীতে, বিশ্বব্যাপী অনন্য নয়।

তবে ব্লকটি যদি কোনও উপনাম সংজ্ঞায়িত না করে তৈরি করা হয়, তবে উপনামটি নামের সাথে পূর্বনির্ধারিত হয়।

সংক্ষেপে, চাইল্ড ব্লকের যদি একটি স্পষ্টর নাম হয় তবে আপনাকে অবশ্যই উপনামটি ব্যবহার করতে হবে। যদি না হয় তবে নামটি ব্যবহার করুন।

as="..."এক্সএমএল এর মাধ্যমে ব্লকটি শিশু ব্লক হিসাবে তৈরি করা হলে, বা যদি তাদের কাছাকাছি স্থানান্তরিত হয় বা গতিশীলভাবে append(), insert()অথবা এর মতো পদ্ধতিতে গতিশীলভাবে যুক্ত করা হয় তবে এ্যালিয়াস দেওয়া হয় setChild()

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