10

"promo_en" ve "promo_de" adında iki statik CMS Bloğum var - mevcut iki "en" ve "de" mağaza görünümü için tercüme.İki veya daha fazla mağaza görüntülemesiyle XML düzeninde Magento statik CMS bloğu

Modüllerin layout.xml dosyalarını kullanarak bunları bazı modüllerin kenar çubuğuna eklemek istiyorum.

<block type="cms/block" name="Promo_de"> 
    <action method="setBlockId"><block_id>promo_de</block_id></action> 
</block> 
<block type="cms/block" name="Promo_en"> 
    <action method="setBlockId"><block_id>promo_en</block_id></action> 
</block> 

İkisini de yeniden adlandırırsanız: onlar benim şu anda olduğum storeview hiçe hem gösteri (bazı otomatik filtreleme beklenir) -

Sorun aşağıdaki sözdizimini kullanarak ikisini de eklerseniz olmasıdır "promo" ve aşağıdaki sözdizimini kullanmak - Ben Magento'nın önbellek aktive kadar iyi çalışıyor - storeview ilk önbelleğe alınır ne olursa olsun CMS blok donuyor sonra çıktıyı:

<block type="cms/block" name="Promo"> 
    <action method="setBlockId"><block_id>promo</block_id></action> 
</block> 

ve konuyla ilgili fikirler veya geçici çözümler son derece vardır takdir.

+0

Veya XML sözdizimini kullanarak bu blok için önbellek devre dışı bırakmanın en azından bir yolu var mı? Bu konudaki Magento dokümantasyonu benim görüşüme göre neredeyse hiç yok ... – scooby37

+1

Bunu temasa geçme dosyasıyla yapabilir misiniz? Demo deposunun Fransızca, Almanca ve İngilizce temalarına göre? –

+0

Matthew'in önerdiği çözüm semantik olarak daha doğru. – clockworkgeek

cevap

3

Ben mevcut mağaza koduna göre kodda çevirileri anahtarlama sorunu Quickfix için kendi Mini Modülü yazma sona erdi Burada ve gelecekte bunu temizlemek zorunda kalacağız.

+2

Temiz bir şekilde tema geçersiz kılındı ​​Matta önerdi - bir göz atmalısınız Bir çözümden başka bir şey olmayan bu çözümü kullanmadan önce ... – scooby37

27

Kaba bir çözüm olarak her mağazaya özgü layout handles'u kullanabilirsiniz. Örneğin;

if(Mage::app()->getStore()->getCode() == 'de') 
{ 
    echo $this->getLayout()->createBlock('cms/block')->setBlockId('promo_de')->toHtml(); 
} 
else if(Mage::app()->getStore()->getCode() == 'en') 
{ 
    echo $this->getLayout()->createBlock('cms/block')->setBlockId('promo_en')->toHtml(); 
} 

Ben çirkin biliyorum ama zaman gerçekten bir sorun vardı:

<STORE_de> 
    <reference name="left"> 
     <block type="cms/block" name="Promo_de"> 
      <action method="setBlockId"><block_id>promo_de</block_id></action> 
     </block> 
    </reference> 
</STORE_de> 
<STORE_en> 
    <reference name="left"> 
     <block type="cms/block" name="Promo_en"> 
      <action method="setBlockId"><block_id>promo_en</block_id></action> 
     </block> 
    </reference> 
</STORE_en> 
+1

Teşekkürler - Bu şekilde kullanmayı çok isterdim. sadece belirli modüller üzerinde müşteri istediği bir promosyon kutusu için bir quickfix - ama maalesef magento sadece düzeni tutamaçları yok sayar ... hiçbir fikrim neden yok ... – scooby37

14

Neden aynı tanımlayıcıya sahip statik blokları oluşturmuyorsunuz ve sadece ilgili mağaza görünümünde etkinleştirin?

<block type="cms/block" name="Promo"> 
    <action method="setBlockId"><block_id>promo</block_id></action> 
</block> 

Sonra tanımlayıcı promo ile 2 statik blok oluşturmak ve ait oldukları yere sadece storeview bunları etkinleştirmek?

İlgili konular