Magento对来宾隐藏导航菜单项 [英] Magento hide navigation menu item from guest
本文介绍了Magento对来宾隐藏导航菜单项的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在magento社区版本1.7上运行magento自定义模板.如何向来宾隐藏$ custom_tab3?我希望该选项卡仅对已登录的用户显示.请参见下面的代码.任何帮助都将受到高度赞赏!
I'm running a magento custom template on magento community edition 1.7. How do I hide $custom_tab3 from guests? I want that tab to only show up for logged in users. Please see code below. Any help is super highly appreciated!
<ul id="nav">
<?php if (Mage::getStoreConfig('celebritysettings/celebritysettings_header/navigation_home')): ?>
<li class="level0 level-top">
<a href="<?php echo $this->getBaseUrl(); ?>how-it-works"><span><?php echo $this->__('How It Works'); ?></span></a>
</li>
<?php endif; ?>
<?php
echo $_menu;
$custom_tab = Mage::getModel('cms/block')->load('celebrity_navigation_block');
if($custom_tab->getIsActive()) {
echo '
<li class="level0 level-top parent custom-block">
<a href="'.$this->getBaseUrl().'gift" class="level-top">
<span>'.$custom_tab->getTitle().'</span>
</a>
<div class="sub-wrapper">'.$this->getLayout()->createBlock('cms/block')->setBlockId('celebrity_navigation_block')->toHtml().'</div>
</li>';
}
$custom_tab2 = Mage::getModel('cms/block')->load('celebrity_navigation_block2');
if($custom_tab2->getIsActive()) {
echo '
<li class="level0 level-top parent custom-block" >
<a href="'.$this->getBaseUrl().'plans" class="level-top">
<span>'.$custom_tab2->getTitle().'</span>
</a>
<div class="sub-wrapper">'.$this->getLayout()->createBlock('cms/block')->setBlockId('celebrity_navigation_block2')->toHtml().'</div>
</li>';
}
$custom_tab3 = Mage::getModel('cms/block')->load('celebrity_navigation_block3');
if($custom_tab3->getIsActive()) {
echo '
<li class="level0 level-top parent custom-block">
<a href="'.$this->getBaseUrl().'showroom" class="level-top">
<span>'.$custom_tab3->getTitle().'</span>
</a>
<div class="sub-wrapper">'.$this->getLayout()->createBlock('cms/block')->setBlockId('celebrity_navigation_block3')->toHtml().'</div>
</li>';
}
$custom_tab4 = Mage::getModel('cms/block')->load('celebrity_navigation_block4');
if($custom_tab4->getIsActive()) {
echo '
<li class="level0 level-top parent custom-block">
<a href="'.$this->getBaseUrl().'magazine" class="level-top">
<span>'.$custom_tab4->getTitle().'</span>
</a>
<div class="sub-wrapper">'.$this->getLayout()->createBlock('cms/block')->setBlockId('celebrity_navigation_block4')->toHtml().'</div>
</li>';
}
?>
</ul>
推荐答案
您可以使用Mage::getSingleton('customer/session')->isLoggedIn()
检查当前用户是否已登录.在您的代码中,您可以像这样使用它:
You can use Mage::getSingleton('customer/session')->isLoggedIn()
to check whether the current user is logged in. In your code you can use it like this:
$custom_tab3 = Mage::getModel('cms/block')->load('celebrity_navigation_block3');
if($custom_tab3->getIsActive() && Mage::getSingleton('customer/session')->isLoggedIn()) {
echo '
<li class="level0 level-top parent custom-block">
<a href="'.$this->getBaseUrl().'showroom" class="level-top">
<span>'.$custom_tab3->getTitle().'</span>
</a>
<div class="sub-wrapper">'.$this->getLayout()->createBlock('cms/block')->setBlockId('celebrity_navigation_block3')->toHtml().'</div>
</li>';
}
甚至
if(Mage::getSingleton('customer/session')->isLoggedIn()) {
$custom_tab3 = Mage::getModel('cms/block')->load('celebrity_navigation_block3');
if($custom_tab3->getIsActive()) {
echo '
<li class="level0 level-top parent custom-block">
<a href="'.$this->getBaseUrl().'showroom" class="level-top">
<span>'.$custom_tab3->getTitle().'</span>
</a>
<div class="sub-wrapper">'.$this->getLayout()->createBlock('cms/block')->setBlockId('celebrity_navigation_block3')->toHtml().'</div>
</li>';
}
}
防止不必要地检索cms/block
模型.
to prevent unnecessary retrieval of the cms/block
model.
这篇关于Magento对来宾隐藏导航菜单项的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文