2011-08-19 5 views

cevap

16

Henüz ... yok customer_logged_in ve customer_logged_out ama ne yazık ki böyle bir şey kullanmak güzel olurdu.

Aynı tekniği kopyalayalım. config bu bir modül yapmak gerekir başlamak için: CUSTOM_MODULE_Model_Observer sınıfta

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

bu yöntemi ekleyin:

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()); 
} 

Şimdi düzen dosyalarında müşteri grupları kullanabilirsiniz. Ayrıca, bu yöntem sayfa başına blokları doğrudan belirlemenize izin vermez, ancak bu konuda çalışabilirsiniz. Burada yalnızca ürün sayfalarında yeni bir konum oluşturan bir örnek var, diğer tüm sayfalarda güncellemenin bir etkisi olmamalı ve hassas bir şekilde başarısız olmalıdır. detay sizin gerektiren işlevsellik sağlayacaktır

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

Harika cevap! yardım için teşekkürler! – veilig

+0

Belirli bir sayfayı hedeflerken bu tutamaçları kullanabilir mi? Bir müşteri belirli bir grubun parçası olduğunda her sayfada kullanılır mı? – veilig

+0

Sanırım bunun nasıl yapılacağına dair bir fikrim var, lütfen güncellenmiş cevabı gör. – clockworkgeek

0

aşağıdaki mesaj: elemanlarını eklemek veya kaldırmak için düzen dosyalarında http://www.magentocommerce.com/boards/viewthread/83244/#t219147

kullanın customer_logged_in veya bloklar customer_logged_out, bu bloklar son olarak adlandırılır.

ek uzantıları veya kod eklemek gerek yok, bu standart olarak Magento yerleşiktir.

Bu yardımcı olur bana yardımcı olur. Magento Versiyon: 1.6+