2010-10-18 10 views
5

Quindi abbiamo inserito il blocco "visualizzato di recente" nella nostra vista prodotto. All'inizio sembra tutto a posto, ma ora vedo strani errori che hanno a che fare con layout nulli. Se spengo il caching, funziona bene, ma con la memorizzazione nella cache della pagina completa ha esito negativo quando si chiama $ this-> getColumnCount(); nel modello.Magento: lo spostamento di "Visti di recente" nella pagina del prodotto crea strani errori di memorizzazione nella cache

Quello che ho fatto per consentire visti di recente sulla pagina del prodotto è stata:

nel catalog.xml all'interno del blocco contenuto di catalog_product_view:

  <block type="reports/product_viewed" name="reports.product.viewed" as="recently_viewed" template="reports/product_viewed.phtml"> 
       <action method="setColumnCount"><columns>4</columns></action> 
       <action method="setItemLimit"><type>recently_viewed</type><limit>4</limit></action> 
      </block> 

nel file di modello: catalogo/prodotto/vista .phtml:

   <?php echo $this->getChildHtml('recently_viewed') ?> 

tutto carichi multa la prima volta, ma poi se clicco su un altro vista del prodotto, quindi ricaricare la pagina di errori fuori. Ho rintracciato l'errore fino alla classe: Mage_Page_Helper_Layout.

la funzione getCurrentPageLayout(), ha una linea:

$this->getLayout()->getBlock('root') 

e $ this-> getLayout sta tornando nulla che provoca la chiamata getBlock ad un'eccezione.
se ho disabilitato la memorizzazione nella cache non si verificano errori e tutto funziona correttamente.

+0

è che in Enterprise Edition? Se si guarda in 'app/code/core/Enterprise/PageCache/etc/cache.xml' sembra fornire una soluzione alternativa per quel blocco ma non conosco la funzionalità o il modo in cui funziona. – clockworkgeek

+0

sì, la sua edizione aziendale. grazie per il puntatore. sto esaminando quel codice ma non riesco a trovare un modo per disattivare completamente il caching per quel blocco. anche se imposto cache_lifetime su 1, mi viene comunque restituito lo stesso errore e, se tolgo il blocco xml dal cache.xml, esso memorizza la pagina in modo indefinito e non si aggiorna quando faccio clic su altri elementi. – GeekPride

risposta

1

Quale versione stai utilizzando? Per quanto ne so, Magento Enterprise 1.9 ha seri problemi con la cache nella pagina intera. Scusa, non posso essere più utile.

1

Avete appena disabilitato il caching in admin o effettivamente cancellato/var/cache? Magento potrebbe utilizzare vecchie pagine memorizzate nella cache quando lo si attiva nuovamente causando errori. C'è un pulsante per svuotare le cache nella gestione della cache o puoi farlo manualmente.

1

Ho appena applicato le modifiche a un'installazione stock di Magento EE 1.9.1 e non riesco a verificare l'errore segnalato.

Il blocco viene aggiornato correttamente finché visito il mio catalogo e non attiva eccezioni quando aggiorno la pagina più volte.

1

prendere questa patch da Varien per 1.9.1.1 e funzionerà:

Index: app/code/core/Enterprise/PageCache/Model/Container/Catalognavigation.php 
=================================================================== 
--- app/code/core/Enterprise/PageCache/Model/Container/Catalognavigation.php (revision 87812) 
+++ app/code/core/Enterprise/PageCache/Model/Container/Catalognavigation.php (working copy) 
@@ -133,6 +133,7 @@ 
      $category = Mage::getModel('catalog/category')->load($categoryId); 
      Mage::register('current_category', $category); 
     } 
+  $block->setLayout(Mage::app()->getLayout()); 

     return $block->toHtml(); 
    } 
Index: app/code/core/Enterprise/PageCache/Model/Container/Accountlinks.php 
=================================================================== 
--- app/code/core/Enterprise/PageCache/Model/Container/Accountlinks.php (revision 87812) 
+++ app/code/core/Enterprise/PageCache/Model/Container/Accountlinks.php (working copy) 
@@ -71,6 +71,7 @@ 
        $linkInfo['li_params'], $linkInfo['a_params'], $linkInfo['before_text'], $linkInfo['after_text']); 
      } 
     } 
+  $block->setLayout(Mage::app()->getLayout()); 

     return $block->toHtml(); 
    } 
Index: app/code/core/Enterprise/PageCache/Model/Container/Orders.php 
=================================================================== 
--- app/code/core/Enterprise/PageCache/Model/Container/Orders.php (revision 87812) 
+++ app/code/core/Enterprise/PageCache/Model/Container/Orders.php (working copy) 
@@ -63,6 +63,7 @@ 

     $block = new $block; 
     $block->setTemplate($template); 
+  $block->setLayout(Mage::app()->getLayout()); 

     return $block->toHtml(); 
    } 
Index: app/code/core/Enterprise/PageCache/Model/Container/Sidebar/Recentlycompared.php 
=================================================================== 
--- app/code/core/Enterprise/PageCache/Model/Container/Sidebar/Recentlycompared.php (revision 87812) 
+++ app/code/core/Enterprise/PageCache/Model/Container/Sidebar/Recentlycompared.php (working copy) 
@@ -62,6 +62,7 @@ 

     $block = new $block; 
     $block->setTemplate($template); 
+  $block->setLayout(Mage::app()->getLayout()); 

     return $block->toHtml(); 
    } 
Index: app/code/core/Enterprise/PageCache/Model/Container/Sidebar/Comparelist.php 
=================================================================== 
--- app/code/core/Enterprise/PageCache/Model/Container/Sidebar/Comparelist.php (revision 87812) 
+++ app/code/core/Enterprise/PageCache/Model/Container/Sidebar/Comparelist.php (working copy) 
@@ -60,6 +60,7 @@ 

     $block = Mage::app()->getLayout()->createBlock('catalog/product_compare_list'); 
     $block->setTemplate($template); 
+  $block->setLayout(Mage::app()->getLayout()); 

     return $block->toHtml(); 
    } 
Index: app/code/core/Enterprise/PageCache/Model/Container/Messages.php 
=================================================================== 
--- app/code/core/Enterprise/PageCache/Model/Container/Messages.php (revision 87812) 
+++ app/code/core/Enterprise/PageCache/Model/Container/Messages.php (working copy) 
@@ -81,6 +81,7 @@ 
     foreach ($this->_messageStoreTypes as $type) { 
      $this->_addMessagesToBlock($type, $block); 
     } 
+  $block->setLayout(Mage::app()->getLayout()); 

     return $block->toHtml(); 
    } 
Index: app/code/core/Enterprise/PageCache/Model/Container/Viewedproducts.php 
=================================================================== 
--- app/code/core/Enterprise/PageCache/Model/Container/Viewedproducts.php (revision 87812) 
+++ app/code/core/Enterprise/PageCache/Model/Container/Viewedproducts.php (working copy) 
@@ -76,6 +76,7 @@ 
     $block = new $block; 
     $block->setTemplate($template); 
     $block->setProductIds($productIds); 
+  $block->setLayout(Mage::app()->getLayout()); 

     return $block->toHtml(); 
    } 
Index: app/code/core/Enterprise/PageCache/Model/Container/Wishlistlinks.php 
=================================================================== 
--- app/code/core/Enterprise/PageCache/Model/Container/Wishlistlinks.php (revision 87812) 
+++ app/code/core/Enterprise/PageCache/Model/Container/Wishlistlinks.php (working copy) 
@@ -59,6 +59,7 @@ 
    { 
     $block = $this->_placeholder->getAttribute('block'); 
     $block = new $block; 
+  $block->setLayout(Mage::app()->getLayout()); 
     return $block->toHtml(); 
    } 
} 
Problemi correlati