লোকাল.এক্সএমএল এর মাধ্যমে পণ্য তালিকা থেকে সরঞ্জামদণ্ডটি সরান


13

আমি আমার লেআউট আপডেটের জন্য লোকাল.এক্সএমএল ব্যবহার করতে অভ্যস্ত, তবে আমি অপসারণ বা আনসেটচিল্ড পদ্ধতিগুলি ব্যবহার করে পণ্য তালিকা ব্লক থেকে সরঞ্জামদণ্ডটি সরিয়ে ফেলতে পারি না।

কেউ যদি বলতে পারে এটি আসলে সম্ভব না হয় বা আমি কিছু ভুল করছি?

আমি চেষ্টা করেছি:

<action method="unsetChild">  
    <alias>toolbar</alias>
</action>

এবং

<action method="unsetChild">  
    <alias>product_list_toolbar</alias>
</action>

এবং <remove name="" />পদ্ধতিগুলিও কিন্তু কিছুই কার্যকর হয় না।

উত্তর:


11

এবং আপনি কোনও কিছু ওভাররাইড না করে এটিকে সরাতে পারবেন না। getToolbarBlock()পদ্ধতিটি কেমন দেখাচ্ছে তা এখানে :

public function getToolbarBlock()
{
    if ($blockName = $this->getToolbarBlockName()) {
        if ($block = $this->getLayout()->getBlock($blockName)) {
            return $block;
        }
    }
    $block = $this->getLayout()->createBlock($this->_defaultToolbarBlock, microtime());
    return $block;
} 

এর অর্থ হ'ল যদি নির্দিষ্ট নামের (কোনও মান দ্বারা ফেরত getToolbarBlockName) ব্লক উপস্থিত থাকে তবে সেই ব্লকটি ফিরে আসবে। অন্যথায় টাইপ সহ একটি নতুন ব্লক তৈরি হয় catalog/product_list_toolbarএবং এটি পদ্ধতি দ্বারা ফিরে আসে।

[সম্পাদনা] আমার সবেমাত্র একটি ক্রেজি ধারণা ছিল। টুলবার ব্লকের ধরণটি পরিবর্তন করবেন না কেন? এইভাবে এটি সরঞ্জামদণ্ড হিসাবে রেন্ডার করা হবে না। আমি এটি চেষ্টা করে দেখিনি তবে আমি মনে করি এটি মূল্যবান।
কিছুটা এইরকম:

<reference name="product_list">
    <block type="core/template" name="product_list_toolbar" />
</reference>

আমি একই নামের সাথে একটি ব্লক যুক্ত করার অর্থ কিন্তু অন্য ধরণের। যদি এটি কাজ না করে তবে অনুগ্রহ করে হবেন না; এটা ঠিক ধারণা করা হয় :)


1
এর মত কোড এটি আমাকে ম্যাজেন্টো দিয়ে সত্যই বিরক্ত করে। সুতরাং এখন আমাকে ওভাররাইড ক্লাস বা টেমপ্লেটগুলি যেতে হবে যেখানে কিছু দুর্দান্ত লেআউট এক্সএমএল পর্যাপ্ত হতে পারে
মার্টি ওয়ালেস

আমি কাজ করার মতো যথেষ্ট উন্মাদ ধারণা দিয়ে উত্তরটি আপডেট করেছি।
মারিয়াস

@ মার্টিওয়েলেস - কমপক্ষে প্রথম স্থানে XML লেআউট রয়েছে is আমি মনে করি যে লোকেরা কীভাবে এটি ব্যবহার করতে হয় তা জানার পরে লেআউট XML "মাউসকে একটি কুকি দিন" বিভাগে চলে আসে।
বেনমার্কস

1
বিভিন্ন ধরণের সমস্যা সৃষ্টি করতে পারে, কারণ আমাদের পেজিং সেট করার জন্য সেটকলিকেশন ফাংশনটি প্রয়োজন
অ্যালেক্স

1
সত্যিই হতাশাব্যঞ্জক, jQuery (ডকুমেন্ট) দিয়ে jquery ব্যবহার করে এটি আড়াল করা একটি আরও কম অনুপ্রেরণামূলক হ্যাক হবে ready
ড্যানি জেড

8

আপনার local.xmlফাইলটিতে নিম্নলিখিতগুলি যুক্ত করুন:

<catalog_category_default>
    <!-- Remove Toolbar by setting a blank template -->
    <reference name="product_list_toolbar">
        <action method="setTemplate"><template /></action>
    </reference>
</catalog_category_default>

বিভাগের পৃষ্ঠায় একটি কাস্টম বিন্যাস আপডেটের জন্য, এটি সেরা উত্তর।
জোসেফ সুইফটটারে

2

দেখে মনে হচ্ছে যে কোনও অদ্ভুত উপায়ে ডেভস জিনিসটি তৈরি করেছিল বলে আপনি এটি XML- এর মাধ্যমে এটিকে সরাতে বা আনসেট করতে পারবেন না। তবে আপনি একটি ফাঁকা টেমপ্লেট তৈরি করতে পারেন এবং পরিবর্তে এই সরঞ্জামটি সরঞ্জামদণ্ডগুলিকে এই ফাঁকা টেম্পলেটটিতে নির্দেশ করতে পারেন।

<catalog_category_default>
    <reference name="product_list_toolbar">
        <action method="setTemplate">
            <template>theme/package/blank.phtml</template>
        </action>
    </reference>
</catalog_category_default>
<catalog_category_layered>
    <reference name="product_list_toolbar">
        <action method="setTemplate">
            <template>theme/package/blank.phtml</template>
        </action>
    </reference>
</catalog_category_layered>
<catalogsearch_result_index>
    <reference name="product_list_toolbar">
        <action method="setTemplate">
            <template>theme/package/blank.phtml</template>
        </action>
    </reference>
</catalogsearch_result_index>

এটি এটিকে সাধারণ বিভাগ, অ্যাঙ্কার্ড বিভাগ এবং অনুসন্ধান পৃষ্ঠা থেকে সরিয়ে ফেলবে।

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