2014-05-16 11 views
8

कोई उपयोगकर्ता लॉग इन है या नहीं, इसके आधार पर कुछ सशर्त लेआउट तर्क रखने का सबसे आसान/सबसे अनुशंसित तरीका क्या है?Magento में सशर्त लेआउट ब्लॉक लॉग इन अगर लॉग इन?

जैसे .. स्यूडोकोड अपने xml फ़ाइल में

if (customer logged in) 
    display this custom onepage checkout layout block 
otherwise 
    display this other custom layout block (for guests) 

उत्तर

10

उपयोग की स्थिति (local.xml, page.xml, आदि) में। जैसे एक सेमी ब्लॉक को जोड़ने के लिए है, तो ग्राहक में लॉग ऑन है: ग्राहकों को लॉग आउट, उदा

<customer_logged_in> <reference name="name_of_reference_block"> <block type="cms/block" name="block_name"> <action method="setBlockId"> <block_id>block_id</block_id> </action> </block> </reference> </customer_logged_in>

और एक ही तर्क एक ब्लॉक निकालें:

<customer_logged_out> <reference name="name_of_reference_block"> <remove name="name_of_block_to_remove"></remove> </reference> </customer_logged_out>

+1

वाह - कि प्रतिभाशाली लग रहा है, धन्यवाद जेरार्ड – Zabs

+0

है इन 'customer_logged_in/out' सशर्त टैग के अंदर नियंत्रक का संदर्भ होना संभव है? जैसे कुछ ऐसा: ' (...)' – Alan

+0

क्या आप Magento 2 में ऐसा करने के तरीके के बारे में जानते हैं? –

6

आप भी अपने टेम्पलेट में Magento ग्राहक सहायक का उपयोग कर सकते हैं:

if($this->helper('customer')->isLoggedIn()){ 

//Show block to logged in customers 

}else{ 

// Show different block to guest users 

} 

वैकल्पिक रूप से उपयोग करें:

Mage::helper('customer')->isLoggedIn() 
संबंधित मुद्दे