10

"promo_en"と "promo_de"という2つの静的CMSブロックがあり、2つの既存のstoreview "en"と "de"に対して翻訳されています。2つ以上のstoreviewsを持つXMLレイアウトのMagento静的CMSブロック

モジュールのlayout.xmlファイルを使用して、それらをいくつかのモジュールのサイドバーに追加したいと思います。

問題は、私は次の構文を使用してそれらの両方を追加した場合ということである - 彼らは両方私は(私はいくつかの自動フィルタリングを期待する)で、現在よstoreview無視して示しています。私はそれらの両方の名前を変更する場合

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

を「プロモーション」に、次の構文を使用します - 私はMagentoののキャッシュをアクティブにするまでそれが正常に動作し - そして、何でもstoreview上のCMSブロックフリーズの出力が最初にキャッシュされている:

問題に関する
<block type="cms/block" name="Promo"> 
    <action method="setBlockId"><block_id>promo</block_id></action> 
</block> 

やアイデアや回避策は非常にあります感謝。

+0

XML構文を使用して、少なくともこのブロックのキャッシュを無効にする方法はありますか?そのトピックに関するMagentoのドキュメントは、私の意見ではほとんど存在しません... – scooby37

+1

テーマオーバーライドファイルでこれを行うことはできますか?デモストアのフランス語、ドイツ語、英語のテーマビューによると、 –

+0

マシューの示唆された解決策は意味的により正確です。 – clockworkgeek

答えて

3

私は、現在の店舗コードに基づいてコード内の翻訳を切り替え、問題をクイックフィックスするために自分自身のミニモジュールを書くことになった:

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

私はそれが醜いと知っているが、時間が本当に問題でしたここで私はこれを将来的にはきれいにしなければならないでしょう...

+2

マシューが提案したクリーンな方法がテーマオーバーライドのようです。クイックフィックス以上のこのソリューションを使用する前に – scooby37

27

大まかな回避策として、各ストア固有のlayout handlesを使用できます。例えば;

<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

ありがとう - 私はそれがそうであったのでこの方法を使用するのが大好きだった顧客が特定のモジュールで望むプロモーションボックス用のクイックフィックスですが、残念ながらマゼンタはレイアウトハンドルを無視しています...理由はありません... – scooby37

14

同じ識別子を持つスタティックブロックを作成し、対応するストアビューでのみ有効にするのはなぜですか?

次に、識別子promoを持つ2つの静的ブロックを作成し、それらが所属するストアビューでのみ有効にしますか?

関連する問題