क्या वर्तमान ग्राहक किसी समूह का हिस्सा है या नहीं, इस पर आधारित मेरे Magento लेआउट में सशर्त रूप से एक ब्लॉक जोड़ने का कोई तरीका है?सशर्त रूप से Magento लेआउट में ब्लॉक जोड़ें
या यह कुछ बेहतर नियंत्रक में संभाला जाएगा?
क्या वर्तमान ग्राहक किसी समूह का हिस्सा है या नहीं, इस पर आधारित मेरे Magento लेआउट में सशर्त रूप से एक ब्लॉक जोड़ने का कोई तरीका है?सशर्त रूप से Magento लेआउट में ब्लॉक जोड़ें
या यह कुछ बेहतर नियंत्रक में संभाला जाएगा?
customer_logged_in
और customer_logged_out
जैसे कुछ उपयोग करना अच्छा होगा लेकिन दुख की बात है कि यह अस्तित्व में नहीं है ... अभी तक।
चलिए एक ही तकनीक की प्रतिलिपि बनाते हैं। प्रारंभ करने के लिए आप के साथ config में इस के साथ एक मॉड्यूल बनाने की आवश्यकता होगी:
<frontend>
<events>
<controller_action_layout_load_before>
<observers>
<customer_group_observer>
<class>CUSTOM_MODULE/observer</class>
<method>beforeLoadLayout</method>
</customer_group_observer>
</observers>
</controller_action_layout_load_before>
</events>
</frontend>
CUSTOM_MODULE_Model_Observer
कक्षा में इस विधि जोड़ें: लेआउट फाइलों में अब
public function beforeLoadLayout($observer)
{
$groupId = Mage::getSingleton('customer/session')->getCustomerGroupId();
$group = Mage::getModel('customer/group')->load($groupId);
$observer->getEvent()->getLayout()->getUpdate()
->addHandle('customer_group_'.$group->getCode());
}
आप ग्राहक समूहों का उपयोग कर सकते हैं।
<layout>
<customer_group_General>
<reference name="content">
<!-- Add some blocks -->
</reference>
</customer_group_General>
</layout>
इसके अतिरिक्त, यह विधि आपको प्रति पृष्ठ ब्लॉक सीधे निर्दिष्ट करने की अनुमति नहीं देती है लेकिन आप इसके आसपास काम कर सकते हैं। यहां एक उदाहरण दिया गया है जो केवल उत्पाद पृष्ठों के लिए एक नया स्थान बनाता है, अन्य सभी पृष्ठों पर अपडेट का कोई प्रभाव नहीं होना चाहिए और गहराई से विफल होना चाहिए।
<layout>
<catalog_product_view>
<reference name="content">
<block type="core/text_list" name="group_container" />
</reference>
</catalog_product_view>
<customer_group_General>
<reference name="group_container">
<!-- Add some blocks -->
</reference>
</customer_group_General>
</layout>
निम्नलिखित पोस्ट विवरण कार्यक्षमता आपके आवश्यकता प्रदान करेगा: जोड़ने या तत्वों को दूर करने के अपने लेआउट फाइलों में http://www.magentocommerce.com/boards/viewthread/83244/#t219147
उपयोग customer_logged_in या ब्लॉक customer_logged_out, इन ब्लॉकों पिछले कहा जाता है।
अतिरिक्त एक्सटेंशन या कोड जोड़ने की आवश्यकता नहीं है, यह Magento में मानक के रूप में बनाया गया है।
उम्मीद है कि यह मदद करता है, मेरे लिए काम करता है। Magento संस्करण: 1.6+
महान उत्तर! पूरी सहायताके लिए शुक्रिया! – veilig
क्या इन हैंडल का उपयोग किसी विशिष्ट पृष्ठ को लक्षित करते समय किया जा सकता है? बनाम प्रत्येक पृष्ठ के लिए उपयोग किया जाता है जब कोई ग्राहक किसी विशेष समूह का हिस्सा होता है? – veilig
मुझे लगता है कि मुझे यह पता है कि यह कैसे करना है, कृपया अद्यतन उत्तर देखें। – clockworkgeek