2012-10-03 22 views
1

我在magento社區版1.7上運行magento自定義模板。如何從客人隱藏$ custom_tab3?我希望該標籤只顯示登錄用戶。請參閱下面的代碼。任何幫助是超級高度讚賞!Magento隱藏來自客人的導航菜單項

<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> 

回答

0

您可以使用Mage::getSingleton('customer/session')->isLoggedIn()來檢查當前用戶是否登錄在你的代碼,你可以使用它像這樣:

$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模型。

+0

謝謝喬希!我使用了第二個代碼,它的功能就像一個魅力! –