2012-11-28 1 views
1

감사합니다, 나는 동적으로 제품 목록 페이지 레이아웃을 변경하려면세트 제품 목록 페이지 레이아웃 동적 list.phtml에서 미리

..

질문 list.phtml의 경우 것은 내가 클릭하면 때문이다 그리드 링크에서 list.phtml 파일의 레이아웃은 2columns-right.phtml이어야합니다. 목록 링크를 클릭하면 레이아웃은 2columns-left.phtml이어야합니다.

나는 이것을 위해 아직 다음과 같은 코드를 사용했습니다. .

if($this->getMode() == 'grid' && $this->getLayout()->getBlock('root')->getTemplate() != 'page/2columns-left.phtml'): 
$this->getLayout()->getBlock('root')->setTemplate('page/2columns-right.phtml'); 
elseif($this->getMode() == 'list' && $this->getLayout()->getBlock('root')->getTemplate() != 'page/2columns-right.phtml'): 
$this->getLayout()->getBlock('root')->setTemplate('page/2columns-left.phtml'); 
endif; 

var_dump($pageLayout=$this->getLayout()->getBlock('root')->getTemplate()); 

아무도 이것을 전에 한 적이 있습니까?

답변

0

나는이 코드를 루트 블록이 이미로드 된 장소에 두는 것이 좋다고 생각합니다.

한 가지 가능성은 css를 사용하여 3 열 모드로 목록을 만들고 원하지 않는 열을 숨기고 "$ this-> getMode()"에 따라 CSS를 사용하여 주 열의 너비를 변경하는 것입니다.

또 다른 방법은 목록 및 그리드의 전체 본문 페이지를 생성하고 AJAX를 사용하여 모드를 변경할 때 페이지를 채우는 컨트롤러를 만드는 것입니다.