2017-09-11 5 views
0

FPC 캐시가 활성화 된 경우 세션 값이 블록에서 작동하지 않습니다. 캐시 가능 블록에서 세션 값을 처리하는 방법. 고객 ID를 다음과 같이 추가했습니다. 블록에서 캐시.FPC 캐시가 활성화 된 경우 세션 값이 작동하지 않습니다.

public function getCacheKey(){ 
    if (Mage::getSingleton('customer/session')->getCustomerId() == '') { 
     return 'custom_cache_key_not_loggedin'; 
    } else { 
     return 'custom_cache_key_' . Mage::getSingleton('customer/session')->getCustomerId(); 
    } 
} 

하지만 당신의 FPC (전체 페이지 캐시 경우이 어떤 영향을주지 않습니다 명심하십시오 : 당신은 예를 들어, getCacheKey 방법에서 사용자 지정 값을 반환해야이 경우

public function getCacheKeyInfo() { 
    $info = parent::getCacheKeyInfo(); 
    $info['current_product_id'] = Mage::registry('current_product')->getId(); 
    $info['customer_id'] = Mage::getSingleton('customer/session')->getCustomerId(); 
    return $info; 
} 
+0

어떤 버전 Magento와 PFC에 어떤 모듈을 사용하고 있습니까? – Ronn0

+0

magento 1.4 및 맞춤 모듈에 FPC 구현 – user3040610

+0

음, 아마도 맞춤 모듈에 있습니까? 그러나 우리는 그것을 위해 더 많은 것을 필요로합니다. – Ronn0

답변

0

) 사용 가능. FULL 페이지 캐시는 질문에 대한 질문이 아닙니다.

내가 어디에서해야합니까?

귀하의 상황에서 사용자가 로그인 할 때 특정 (사용자) 블록 캐싱을 건너 뛰는 것이 좋습니다.

+0

답변 해 주셔서 감사합니다.하지만 고객 세션을 받아야합니다. id 다른 함수 getOptionHML() – user3040610

+0

올바른 방법으로 읽으면 cachinig를 구현하는 방법이 옳지 않다는 것을 알 수 있습니다. 따라서 가치가 필요한 것은 중요하지 않습니다. 캐싱 방법과 그 배후의 논리를 향상시키는 문제입니다. – Ronn0