Comment puis-je inclure un bloc dynamique dans la page du produit avec plein de page mise en cache activée?

Nous aimerions ajouter un bloc dynamique à la page du produit. Le problème est que la page du produit a pleine page en cache (et on ne peut pas désactiver cette fonction en raison de problèmes de vitesse). Nous voulons afficher des informations différentes sur chaque page de produit basé sur l'enregistrés dans le compte de l'utilisateur, et elle varie d'un produit à l'autre.

J'ai créé un bloc séparé qui dispose de sa propre mise en cache, mais cela affiche le même pâté de maisons de la précédente page du produit. Je suis en train de modifier la méthode de mise en cache afin de ne pas enregistrer le cache de la précédente page du produit.

Il fonctionne de la premières fois que je vais à la page produits, mais tout à coup commence à afficher un Magento page d'erreur qui dit que, "Le site web a rencontré une erreur lors de la récupération de http://www.mycompany.com/productpage.html.

Il peut être arrêté pour maintenance ou configuré de manière incorrecte."

Voici ce que j'ai fait jusqu'à présent.

J'ai créé app/code/local/MyCompany/MyModule/PageCache/etc/config.xml pour ajouter MyCompany_PageCache_Model.

Puis j'ai créé le fichier qui contrôle la mise en cache dans app/code/local/MyCompany/MyModule/PageCache/Model/Container/MyFile.php

avec ces fonctions:

protected function _getCacheId()
{
    return 'CONSTANT_CACHE' . md5($this->_placeholder->getAttribute('cache_id'));
}

protected function _saveCache($data, $id, $tags = array(), $lifetime = null)
{
    return false;
}

protected function _renderBlock()
{
    $blockClass = $this->_placeholder->getAttribute('block');
    $template = $this->_placeholder->getAttribute('template');

    $block = new $blockClass;
    $block->setTemplate($template);
    $block->setLayout(Mage::app()->getLayout());
    return $block->toHtml();
}

J'ai également créé cache.xml sous Catalogue/etc avec mon espace réservé pour CONSTANT_CACHE.

Est la syntaxe ci-dessus incorrecte, ou est-il un moyen plus facile de faire cela?

  • Veuillez s'il vous plaît marquer une réponse comme correcte?
InformationsquelleAutor novak | 2012-02-02