2012-03-20 1 views
5

İki farklı web sitesi çalıştıran tek bir Magento yüklemesi var. Biri e-kitaplar ve diğeri satmıyor ve dolayısıyla iş ekibi, uygulamanın Hesabım alanındaki müşteri gezinme bloğundan kaldırılan "İndirmelerim" bağlantısını görmeyi istiyor.Magento düzeni güncelleştirmelerini mağaza başına ayrı ayrı tanımlamak mümkün mü

Tasarım/frontend/base/layout/downloadable.xml dosyasında tanımlanan bağlantıyı görebiliyorum, ancak web sitelerinin yalnızca birinde bağlantıyı devre dışı bırakmama izin veren herhangi bir yol göremiyorum. Açıkçası, bu XML'i global olarak kapatmak için geçersiz kılabilirdim ancak kapsamda sınırlandırılacak değişikliğe ihtiyacım var.

Düzenleme geçersiz kılmalarını tek bir web sitesinde nasıl tanımlarsınız veya çoklu site Magento yüklemesinde saklarsınız? Aşağıdaki yanıtlarına göre

ben yapmış aşağıdaki gibidir:

uygulama/yerel/Mage/Müşteri/Blok/Hesap/navigation.php oluşturuldu ve çekirdek kod olmayan bir yöntem removeLink() ilave .

ben local.xml aşağıdaki değişiklik yaparsanız

, indirme bağlantısı kaldırılır: Belirli bir mağaza hedeflemek çalışırsanız

<?xml version="1.0" encoding="UTF-8"?> 
<layout> 
    <default> 
     <remove name="catalog.compare.sidebar"/> 
    </default> 
    <customer_account> 
     <reference name="customer_account_navigation"> 
      <action method="removeLink" translate="label" module="downloadable"> <name>downloadable_products</name></action> 
     </reference> 
    </customer_account> 
</layout> 

Ama, öyle değil. Örneğin.

<?xml version="1.0" encoding="UTF-8"?> 
<layout> 
    <default> 
     <remove name="catalog.compare.sidebar"/> 
    </default> 
    <STORE_mm> 
    <customer_account> 
     <reference name="customer_account_navigation"> 
      <action method="removeLink" translate="label" module="downloadable"> <name>downloadable_products</name></action> 
     </reference> 
    </customer_account> 
    </STORE_mm> 
</layout> 
+3

Farklı temalar kullanıyorsanız, bu gerçekten –

cevap

9

Anton'un önerdiği gibi, mağazanız için yeni bir düzen teması ayarlayın. Site çapındaki + mağaza kapsamındaki herhangi bir şey için başka bir yaklaşım, mağaza düzeni tanıtıcısını kullanmaktır - her mağazaya uygulanan bir <default> tanıtıcı gibidir. Mağaza kodunuz (Mağazaları Yönet> Mağaza Görünümü altında) 'foo'ysa mağaza düzeni tanıtıcısı <STORE_foo> olur.

Ref. Mage_Core_Controller_Varien_Action::addActionLayoutHandles()

+0

Mağazanın kapsamını kapsamlı bir şekilde ele alıp bu soruyu yansıtmak için güncellemeye çalışıyorum. İki web sitesi çok benzerdir, dolayısıyla bu örnekte birden fazla temaya sahip olmak ideal değildir. Ancak, STORE_x kuralı işlenmiyor gibi görünüyor. Hiç fikrin var mı? –

+1

'' tutamaçları sadece budur, tutamaklar. Diğer kolları hak etmiyorlar; Mağaza çapında düzen güncellemeleri için sadece kullanılabilir. Güncellenmiş örneğiniz göz önünde bulundurulduğunda, 'mm' mağazanız için yeni bir düzen teması bildirmeniz gerekir, ancak tüm temanın yalnızca "global" local.xml yönergelerini içermesi gereken local.xml dosyası bulunur. Diğer seçeneğiniz, sisteme yeni bir düzen dosyası ekleyen ve bunu bir local.xml gibi kullanan özel bir modül oluşturmaktır. – benmarks

+0

Bir removeLink yöntemi eklemek için değişiklikle birleştirilmiş ayrı bir tema yaklaşımı kullanıldı - thx –

2

Bu web sitesi için farklı temalar oluşturun.
uygulama/tasarım/kullanıcı arayüzü/default/website1/düzen/local.xml
ve uygulama/tasarım/kullanıcı arayüzü/default/website2/düzeni/sen indirilebilir düzen için gerekli değişiklikleri yapabilirsiniz local.xml
oluşturun. Bu, magento özelliğinde açıklanmıştır.

+0

+1'in bu kadar kolay olduğunu. Birden fazla mağaza kapsamını etkileyen her şey için varsayılan geri dönüş ile, birden fazla mağaza temaları yönetmek için en temiz yaklaşım olduğunu buldum. Ayrıca, varsayılan olarak ayrı bir pakette, örn. Uygulama/tasarım/frontend/mypackage/mytheme ve app/design/frontend/mypackage/default. – DWils