2012-05-08 6 views
2

製品リストページと製品ビューページのいくつかのカテゴリでキャッシュを無効にする必要があります。
これを検索しましたが、関連する回答は見つかりませんでしたが、これはMagentoで行うことができますか? 私はlist.phtmlとview.phtmlファイルを試しましたマゼンタのファイルのキャッシュを無効にする

+0

ページ全体か一部のページのみを意味しますか?カテゴリページの 'list.phtml'部分など? –

+0

ここに試してみてくださいhttp://stackoverflow.com/questions/8405232/disable-bypass-magento-full-page-cache-on-single-page –

+0

いいえ、私はlist.phtmlファイルのみをキャッシュします。このリンクは機能しません私 –

答えて

0

ブロックをオーバーライドして、本当に偽のcache_lifetimeを設定することができます。

たとえば、ブロックをローカル名前空間にコピーできます。あなたは、ナビゲーションブロックのキャッシュを無効にしたい場合たとえば、あなたは、これは、Magentoのブロックを上書きします

app\code\core\Mage\Catalog\Block\Navigation.php 

app\code\local\Mage\Catalog\Block\Navigation.php 

にコピーして、あなたが私たちの変化とそれを更新する可能性があります。

このブロックまたはほとんどのブロックが必要に応じて変更できるようになりました。以下は、このブロックのキャッシュを無効にする例です。

protected function _construct() 
{ 
    $this->addData(array(
     'cache_lifetime' => false, // or 1 or something tiny 
    )); 
} 

また、このような何かを追加します。

public function getCacheLifetime() 
{ 
    return null; // or 1 or what ever.. 
} 
ます。また、ページを保存するときに一意の識別子として使用されたキャッシュ「キー」を変更することができます

が、これはテンプレートブロックのデフォルトのキャッシュキーです:

/** 
* Get cache key informative items 
* 
* @return array 
*/ 
public function getCacheKeyInfo() 
{ 
    return array(
     'BLOCK_TPL', 
     Mage::app()->getStore()->getCode(), 
     $this->getTemplateFile(), 
     'template' => $this->getTemplate() 
    ); 
} 

配列の各要素は、これはあなたの要件に応じて変更することができ、キャッシュを生成するときに使用される一意のキーを作成するために結合されます。 上記のストアコードはそこにあります。つまり、キャッシュはストアのストアフロント/言語、および各言語/ストアのフロントをそれ自身のキャッシュされたページとして記録します。

ブロックに応じて、余分なパラメータを追加して、キャッシュの目標をより絞り込むことができます。

+0

Andrewはあなたにこれらの変更を行う場所を教えてください。ありがとう。 – Muk

+0

私はあなたのために私の答えを更新します:) – Andrew

+0

Andrewさん、「Blocks HTML output」キャッシュのために私のナビゲーションで問題に直面しています。Magento Enterpriseエディションを使用しています。このリンクの「http:// www.magentocommerce.com/boards/viewthread/298493/ " – Muk

関連する問題