2013-07-13 8 views
0

해당 페이지에 나열된 제품의 json 표현을 포함하는 내 목록 페이지의 헤드에 자바 스크립트 개체를 삽입해야합니다. 즉, 카테고리의 모든 제품이 아니라 툴바에서 페이지 된 제품 만 삽입해야합니다.Magento 옵서버로드 오더 문제를 해결하는 가장 좋은 방법은 무엇입니까?

관찰자를 catalog_block_product_list_collection에 배치하여 데이터를 얻을 수 있지만 Head Block이 렌더링 된 후에이 데이터를 얻을 수 있으므로 헤드의 하위 블록에서 해당 데이터를 사용하지 못하게됩니다.

내가 알 수있는 한 두 가지 옵션이 있습니다.

  1. 자바 스크립트 블록을 바닥 글에로드하고 jquery를 사용하여 머리글에 삽입하십시오.
  2. catalog_block_product_list_collection이 호출되기 전에 Magento가 수행 한 작업을 수정하고 내 모델에서 논리를 다시 작성하십시오.

Magento의 숙련 된 개발자가 어떤 방법으로 뛰어 오르고 두 기술의 함정이 궁금했는데, 미리 감사드립니다.

답변

0

헤더에 사용자 정의 블록을 이미 추가 했으므로 제대로 작성하면 목록 블록에서 제품 컬렉션을 검색 할 수 있습니다.

$this->getLayout()->getBlock('product_list')->getLoadedProductCollection(); 

질문에 대한 오해가 있었지만 도움이 될 수 있습니다.

+0

감사합니다. @butterbrot이 작업을 수행하는 것처럼 보입니다. 블로 그 자체에서 부모 레이아웃을 얻을 수 있다는 것을 알지 못했지만, 지금 생각할 때 분명히 분명해 보입니다. 나는 그것을 줄 것이다. 나는 돌아와서 그 결과를 알려줄거야. –

+0

멋진, 손가락 교차, 내 게시 된 – butterbrot

+0

그것은 제품 컬렉션을 가져 오지만 페이징 내 개체 또는 product_list 블록 자체에서 페이지에 모두 표시되지 적용되지 않았습니다. getLoadedProductCollection()을 호출하면 제품 콜렉션이 널 (null)이면 싱글 톤으로로드된다고 생각합니다. 메이지 (Mage)는 일반적으로 우리가 밟아서 막아 버린 일부 설정 작업을 수행 했어야합니다. 개체를 복제하여 싱글 톤 문제를 해결할 수 있었고 제품이 페이지에 올바르게 표시되지만 머리 json에서는 여전히 두 개 많은 제품. 복제 작업을하고 설정 작업을 해결해야하는 것 같습니다. –