2012-07-25 169 views
0

在我的Magento產品頁面上,我有一個選項卡式系統來顯示描述,功能和另一個選項卡,稱爲下載 - 這需要在特定組中登錄客戶時可見。Magento產品詳細信息 - 用戶登錄+客戶組限制?

在我的佈局XML來的catalog.xml我有這樣的:

​​3210

但是 - 即使我登錄的任何組中的客戶框沒有顯示,因此從那裏取出<customer_logged_in>顯示標籤+框。

所以我需要知道:

  1. 爲什麼這個不顯示時,即時通訊登錄?
  2. 我可以在登錄時進行此演出 - 但僅限於特定的客戶羣組嗎?

我想也許你可以使用<customer_logged_in setCustomerGroupId="2">或類似的東西!

謝謝。

回答

1

別擔心,我現在已經通過一個.phtml模板文件排序,下面的代碼爲別人:

$_allowed_group_ids = array(1); // Stick in Allowed Customer Group ID's 
$_product_collateral = array(); // We will store the tabbed content in our own array 
$_restricted_tabs = array('downloads'); 

foreach ($this->getChildGroup('detailed_info', 'getChildHtml') as $alias => $html) { 

    $_product_collateral[$alias] = $html; 

    if(in_array($alias, $_restricted_tabs)):    

     if(Mage::getSingleton('customer/session')->isLoggedIn()): 

      $_group_id = Mage::getSingleton('customer/session')->getCustomerGroupId(); 

      if(!in_array($_group_id, $_allowed_group_ids)):       
       unset($_product_collateral[$alias]); 
       continue; 
      endif; 
     else: 
      unset($_product_collateral[$alias]); 
      continue;       
     endif;  

    endif;                  
} 

實例應用:

<ul> 
    <?php foreach($_product_collateral as $alias => $html): ?> 
    <li><a href="#tab-<?php echo strtolower($alias); ?>"><?php echo ucfirst($alias); ?></a></li> 
    <?php endforeach; ?>  
</ul> 

使用示例對包裝內容:

<?php foreach($_product_collateral as $alias => $html): ?>    
<div class="box-collateral <?php echo "box-{$alias}"?>" id="tab-<?php echo strtolower($alias); ?>"> 
    <?php echo $html; ?> 
</div> 
<?php endforeach;?> 
2

您可以使用客戶登錄重定向magento擴展。它會解決你的問題。

+0

你真的看過我的問題嗎?我不想要任何重定向....只是想隱藏一個標籤,如果用戶沒有登錄,而不是正確的客戶羣。 – 2012-07-25 11:29:56

+0

如果客戶登錄,則可以在產品的view.phtml文件中使用登錄條件,否則顯示這些內容 – Mufaddal 2012-07-25 11:31:35

相關問題