गुण संपादित करें और उत्पाद संपादित बैकएंड में अन्य फ़ील्ड


10

दुकान के मालिक के लिए उत्पादों (और शायद श्रेणियों) के संपादन को आसान बनाने के लिए, हम कुछ उपयोगकर्ताओं से व्यवस्थापक बैकएंड में कुछ अनावश्यक टैब और फ़ील्ड छिपाना चाहेंगे।

इसका मतलब है: कुछ विशेषताओं को छिपाना, लेकिन यह भी "ग्राहक समीक्षा", "क्रॉस-सेलिंग" आदि जैसे टैब हैं।

यह कैसे किया जा सकता है?

जवाबों:


10

सेट is_visibleकरने के लिए 0विशेषता पर है और यह व्यवस्थापक रूप (उत्पाद पृष्ठ और भी विशेषता प्रबंधन पृष्ठ) में दिखाई नहीं देंगे।

आप इसे SQL टूल या प्रोग्राम स्क्रिप्ट में सेटअप स्क्रिप्ट के माध्यम से कर सकते हैं:

$installer->updateAttribute('catalog_product', $attribute_code, 'is_visible', '0');

क्या आप जानते हैं कि यदि खाली टैब अपने आप गायब हो जाएंगे? और क्या उन विशेषताओं को अस्थायी रूप से व्यवस्थापक के लिए दृश्यमान बनाने का एक तरीका है? वैसे भी - यह अभी भी एक मॉड्यूल के लिए एक अच्छा प्रारंभिक बिंदु होगा जो उन्हें उपयोगकर्ता के आधार पर दिखाई देगा।
एलेक्स

1
आप इसे विस्तारित कर सकते हैं - और अपने स्वयं के ACL में यह निर्धारित करने के लिए डाल सकते हैं कि कौन इसे संपादित / संपादित नहीं कर सकता है
बेन सबक - सोनासी

मुझे बस एहसास हुआ कि केवल विशेषताओं की तुलना में बहुत सारी चीजें हैं :-) मेरे प्रश्न का शीर्षक संपादित किया जिससे कि अधिक स्पष्ट हो सके।
एलेक्स

मुझे लगता है कि टैब खाली होने पर गायब हो जाते हैं। उन्हें दिखाने के लिए, बस दो पर्यवेक्षकों को अनुरोध से पहले उन्हें दिखाने के लिए और बाद में उन्हें छिपाने के लिए जोड़ें? इस समय मेरे पास सबसे अच्छा विचार है। और असफल नहीं जब दो लोग समानांतर दुकान में हों। वैकल्पिक: पर्यवेक्षक और संग्रह क्वेरी को बदल दें। लेकिन तब आपको लगता है कि बहुत दूर होगा ...
Fabian Blechschmidt

वे वास्तव में गायब नहीं होते हैं - और मैं उन टैब के बारे में बात कर रहा हूं जो विशेषताओं (क्रॉस-सेल आदि) के बारे में नहीं हैं
एलेक्स

8

यह घटनाओं core_block_abstract_prepare_layout_before(विधि removeAttributes()) और core_block_abstract_prepare_layout_after(विधि removeTabs()) के अवलोकन से संभव है ।

टिप्पणी : मैं इसे एक मॉड्यूल में डाल रहा हूं जो प्रत्येक विशेषता / टैब के लिए एसीएल प्रविष्टियां जोड़ता है ताकि वे कुछ उपयोगकर्ताओं से छिपाए जा सकें।

पर्यवेक्षकों में हमें जांचना होगा, कि हम ब्लॉक में हैं Mage_Adminhtml_Block_Catalog_Product_Edit_Tabsऔर टैब या विशेषताओं को हटा सकते हैं।

/**
 * Overwrite the cache field in the product to remove disabled attributes
 *
 * event: core_block_abstract_prepare_layout_before
 *
 * @param Varien_Event_Observer $event
 */
public function removeAttributes(Varien_Event_Observer $event)
{
    $block = $event->getBlock();
    if (!$block instanceof Mage_Adminhtml_Block_Catalog_Product_Edit_Tabs) {
        return;
    }

    $editableAttributes = $block->getProduct()->getTypeInstance()->getEditableAttributes();
    $adminSession = Mage::getSingleton('admin/session');


    // TODO: remove attribute to hide from the $editableAttributes array

   $block->getProduct()->setData('_cache_editable_attributes', $editableAttributes);
}

/**
 * Remove hidden tabs from product edit
 * event: core_block_abstract_prepare_layout_after
 *
 * @param Varien_Event_Observer $event
 */
public function removeTabs(Varien_Event_Observer $event)
{
    $block = $event->getBlock();
    if (!$block instanceof Mage_Adminhtml_Block_Catalog_Product_Edit_Tabs) {
        return;
    }

    // TODO / Example: remove inventory tab
    $block->removeTab('inventory'); 

    // fix tab selection, as we might have removed the active tab
    $tabs = $block->getTabsIds();

    if (count($tabs) == 0) {
        $block->setActiveTab(null);
    } else {
        $block->setActiveTab($tabs[0]);
    }
}

क्या आपको कभी एसीएल सेटअप मॉड्यूल के साथ कहीं भी मिला? मुझे जो परेशानी हो रही है वह यह है कि मेरे पास सैकड़ों विशेषता सेट हैं। यह कैसे लागू होगा क्योंकि अब सैकड़ों 'समूह' टैब भी होंगे।
एंथोनी सिश्चेली

हाँ, यह हम में से एक परियोजना में चल रहा है
एलेक्स

क्या आपके पास जीआईटी है? हम सिर्फ उसी प्रोजेक्ट पर काम कर रहे हैं। बस अलग-अलग रणनीतियां देखकर। यदि नहीं, तो मैं आपको बता दूंगा कि जब मैं जल्द ही ऐसा कर दूं तो मुझे यह करना चाहिए।
एंथोनी सिसचेली

हमने इसे अनुमति देने के लिए केवल एक एक्सटेंशन बनाया है। यह Aitoc Permission Module की पूर्ण कार्यक्षमता का भी उपयोग करता है। तो आप दोनों का शानदार तालमेल मिलता है।
एंथोनी सिश्चेली

ओह दिलचस्प। मुझे Aitoc पसंद नहीं है ... क्या आप अपना मॉड्यूल प्रकाशित करते हैं? हमारा अभी प्रकाशित नहीं हुआ है, ...
एलेक्स

0

टैब छुपाने का एक अपेक्षाकृत आसान तरीका केवल एक नया व्यवस्थापक उपयोगकर्ता बनाना है और केवल उन क्षेत्रों तक पहुंच प्रदान करना है जो शॉप ओनर उपयोग कर रहे हैं। आपको या किसी अन्य डेवलपर को परिवर्तन करने की क्षमता छोड़ने के दौरान दुकान के मालिक के लिए चीजों को सरल रखेगा।


ज़रूर - यह सामान्य क्षेत्रों (मेनू प्रविष्टियों और इतने पर) के लिए काम करता है, लेकिन केवल उत्पाद संपादन स्क्रीन में बहुत कम टैब के लिए (समीक्षाओं को उसी तरह अक्षम किया जा सकता है)। एकल विशेषताओं को अक्षम नहीं किया जा सकता है।
एलेक्स

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.