Dato che si trattava di EE, sono stato in grado di utilizzare il supporto Magento, ma ho anche risolto le cose da solo per aiutare a focalizzare il problema e ottenere una soluzione il più velocemente possibile. Le modifiche al codice sono state fornite da Magento, quindi applicarle ai file app / code / core effettivi va bene anche se puoi sempre duplicare i file nel tuo / app / code / local e applicare le modifiche lì.
Il problema era che il metodo di memorizzazione nella cache dei blocchi aggiunto in 1.14.2 non generava una chiave cache univoca, quindi quando avevo più blocchi utilizzati nello spazio del controller di categoria, la chiave cache generata finiva per essere unica solo per l'hit della prima pagina, risultante in tutte quelle pagine per mostrare contenuti duplicati.
La correzione consisteva nell'aggiungere quanto segue (visualizzato in formato file diff per mostrare il contesto che circonda le aggiunte - basta aggiungere le righe con il + dove devono andare):
In app / code / core / Mage / Cms / Block / Block.php alla riga 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;
+ }
}
In app / code / core / Mage / Cms / Block / Widget / Block.php alla riga 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;
+ }
}
Non penso che sarei l'unico a vedere questo problema e se si presenta in CE 1.9.2, spero che questo possa aiutare a risolverlo per alcune persone.