2012-10-18 6 views
5

Mam heck czasu wymyślić kod/parametry do dziurkowania Pełnej strony pamięci podręcznej w magento dla bloku Mage_Catalog_Block_Product_Price. Mogę uzyskać cenę za wyświetlenie przy pierwszej ładowaniu strony, ale gdy identyfikator pamięci podręcznej jest unikalny, to nie renderuje ona ceny poprawnie (poprawnie buforuje, gdy ma być buforowana). Wiem, że muszę wysłać parametry, takie jak id_produktu itp., Ale nie wiadomo, co (np. "Xx") musi zostać wysłane z getCacheKeyInfo do kontenera pamięci podręcznej do użycia w $ this -> _ placeholder-> getAttribute ('xx'). I co należy przygotować i wysłać z _renderView() do układu ceny/widoku.Dziurkowanie Mage_Catalog_Block_Product_Price w Magento EE FPC

tej pory zrobiłem następujący powodzeniem (każdy z nich dane testowe wyjście)

  • Utworzono cache.xml w moim module/etc folderu
  • Utworzony model pojemnik cache i zweryfikowane prace (wystarczy ustawienia)
  • przepisał/przedłużony Mage_Catalog_Block_Product_Price w moim modelu, aby dodać getCacheKeyInfo()

Tak więc problem jest to, że próbowałem wiele variatio ns w obrębie _getCacheId() i _renderBlock() modelu kontenera w połączeniu z getCacheKeyInfo(), jak opisano powyżej. Ale uderzam w przeszkodę. Jeśli ktokolwiek może mnie poprowadzić we właściwym kierunku, byłoby to bardzo cenne.

+0

nadal masz ten problem? Czy próbowałeś najpierw bez przepisywania bloku? –

Odpowiedz

2

Zmagam się również z buforowaniem całej strony.
To są moje wyniki i bardzo mi pomogły.

Proszę spojrzeć na: app/code/core/Enterprise/PageCache/Model/Processor/Default.php Linia 47

/** 
* Check if request can be cached 
* 
* @param Zend_Controller_Request_Http $request 
* @return bool 
*/ 
public function allowCache(Zend_Controller_Request_Http $request) 
{ 
    foreach ($this->_noCacheGetParams as $param) { 
     if (!is_null($request->getParam($param, null))) { 
      return false; 
     } 
    } 
    if (Mage::getSingleton('core/session')->getNoCacheFlag()) { 
     return false; 
    } 
    return true; 
} 

Patrząc na tej funkcji nie wydają się być dwa sposoby unikania (wyłączenie) pełną Cache strony:

GET parametr:
Możesz użyć parametrów "store" lub "ze_store" z prefiksem z trzema znakami podkreślenia, aby ominąć pamięć podręczną. Przykład:

http://magentourl.com/catelog/category/view/id/123?___store 

Mage::getUrl('catalog/category/view', array('id' => 123, 'query' => array('___store' => ''))) 

zmiennej sesji:
Można również uniknąć całej strony buforowania przez ustawienie (tymczasowa) Sesja zmiennej:

Mage::getSingleton('core/session')->setNoCacheFlag(true)