Bu EE olduğu için Magento desteğinden yararlanabildim, ancak konuyu odaklamak ve mümkün olduğunca hızlı bir çözüm elde etmek için kendi başıma da çalıştım. Kod değişiklikleri Magento tarafından sağlanmıştır, bu nedenle onları gerçek uygulama / kod / çekirdek dosyalarına uygulamak iyidir, ancak / app / code / local dosyalarınızdaki dosyaları her zaman çoğaltabilir ve değişiklikleri oraya uygulayabilirsiniz.
Sorun, 1.14.2'de eklenen blok önbellekleme yönteminin benzersiz bir önbellek anahtarı üretmemesiydi, bu yüzden kategori denetleyicisi alanında birden fazla blok kullanıldığında, oluşturulan önbellek anahtarı yalnızca ilk sayfa isabeti için benzersizdi, tüm bu sayfaların yinelenen içerik göstermesine neden olur.
Düzeltme aşağıdakileri eklemekti (ekleri çevreleyen bağlamı göstermek için diff dosya biçiminde görüntülenir - sadece gitmeleri gereken + işaretli satırları ekleyin):
72. satırdaki app / code / core / Mage / Cms / Block / Block.php dosyasında:
}
return $html;
}
+
+ /**
+ * Retrieve values of properties that unambiguously identify unique content
+ *
+ * @return array
+ */
+ public function getCacheKeyInfo()
+ {
+ $blockId = $this->getBlockId();
+ if ($blockId) {
+ $result = array(
+ $blockId,
+ Mage::app()->getStore()->getCode(),
+ );
+ } else {
+ $result = parent::getCacheKeyInfo();
+ }
+ return $result;
+ }
}
82 numaralı satırdaki app / code / core / Mage / Cms / Block / Widget / Block.php dosyasında:
$helper = Mage::helper('cms');
$processor = $helper->getBlockTemplateProcessor();
$this->setText($processor->filter($block->getContent()));
+ $this->addModelTags($block);
}
}
unset(self::$_widgetUsageMap[$blockHash]);
return $this;
}
+
+ /**
+ * Retrieve values of properties that unambiguously identify unique content
+ *
+ * @return array
+ */
+ public function getCacheKeyInfo()
+ {
+ $result = parent::getCacheKeyInfo();
+ $blockId = $this->getBlockId();
+ if ($blockId) {
+ $result[] = $blockId;
+ }
+ return $result;
+ }
}
Bu sorunu gören tek kişi ben olacağımı düşünmüyorum ve eğer CE 1.9.2'de görünüyorsa, umarım bu bazı insanlar için çözülmesine yardımcı olacaktır.