Ponieważ była to EE, mogłem skorzystać ze wsparcia Magento, ale sam również opracowałem rozwiązania, aby pomóc w skupieniu się na problemie i jak najszybszym znalezieniu rozwiązania. Zmiany w kodzie zostały dostarczone przez Magento, więc zastosowanie ich do rzeczywistych plików aplikacji / kodu / rdzenia jest w porządku, chociaż zawsze można zduplikować pliki w / app / code / local i tam zastosować zmiany.
Problem polegał na tym, że metoda buforowania bloków dodana w 1.14.2 nie generowała unikatowego klucza pamięci podręcznej, więc gdy miałem wiele bloków używanych w obszarze kontrolera kategorii, wygenerowany klucz pamięci podręcznej okazał się unikalny tylko dla pierwszej strony, co powoduje, że wszystkie strony wyświetlają zduplikowane treści.
Rozwiązano problem polegający na dodaniu następujących elementów (wyświetlanych w formacie pliku różnicowego, aby pokazać kontekst otaczający dodatki - wystarczy dodać w wierszach +, gdzie powinny się znaleźć):
W app / code / core / Mage / Cms / Block / Block.php w linii 72:
}
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;
+ }
}
W app / code / core / Mage / Cms / Block / Widget / Block.php w linii 82:
$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;
+ }
}
Nie sądzę, że jako jedyny widzę ten problem, a jeśli pojawi się w CE 1.9.2, mam nadzieję, że pomoże to rozwiązać niektóre osoby.