사용자 정의 페이지에 계층 탐색 블록 추가


9

Magento의 Layered Navigation 블록은 제품 목록 페이지에서 훌륭하게 작동합니다.

이 블록을 사용자 정의 제품 목록이있는 사용자 정의 페이지에 어떻게 성공적으로 복사 할 수 있습니까?

참고 : XML에 블록을 추가하고 호출하는 것이 getChildHtml('blockname')속임수는 아닙니다.


2
layared 탐색은 현재 범주의 제품에서 빌드되므로 layared 탐색 블록 코드에 기본 범주를 추가해야합니다.
Sander Mangel

여러 카테고리의 제품이 여러 개인 경우 (예 : 거래 제품) +1
pzirkind

2
나는 그것을 위해 특별한 범주를 만들 것입니다. 다른 방법이있을 수 있지만 이것은 가장 쉽고 확장 성이 좋은 방법입니다!
Sander Mangel

1
정말로 원하는 경우 사용자 정의 카테고리를 작성해야합니다. 계층화 된 내비게이션에는 실제로 작업 할 범주가있을 것으로 예상되며, 많은 클래스를 재정의하지 않고 간단한 ProductCollection을 사용하지 않습니다.
Rick Kuipers

답변:


5

기본적으로 Mage_Catalog_Block_Product_Listextend/overwrite 에서 수행 (List.php) 하고 getProductCollection()메소드를 다시 작성하십시오 .

protected function _getProductCollection()
{
    if (is_null($this->_productCollection)) {
        // Build collection and set it
        $collection = "...";
        $this->setProductCollection($collection);
    }

    return $this->_productCollection;
}

그것이 끝나면 Mage_Catalog_Model_Layer클래스와를 모두 덮어 쓰고 Mage_Catalog_Model_Category새로운 변수를 도입했습니다.

protected $_customProductCollection;

getProductCollection()두 클래스 모두를 덮어 썼고 메소드 시작 부분에 이것을 추가했습니다.

if(isset($this->_customProductCollection)){
    return $this->_customProductCollection;
}

또한이 "customProductCollection"두 클래스 모두에서 이것을 설정할 수있는 방법 이 있습니다. 일단 설정되면 계층화 된 내비게이션 / 카테고리 의 나머지 데이터는 이 컬렉션을 기반으로합니다.

초기 질문 + 답변을 확인 하십시오 .

행운을 빕니다 ;)


customproductcollection을 설정하는이 방법은 무엇이며 어디서 호출합니까?
easymoden00b
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.