1

提前致谢,

我想动态更改产品列表页面布局..

问题是,如果在 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());

有没有人做过这个。。

4

1 回答 1

0

我认为您将此代码放在已加载根块的位置。

一种可能性是使用 css,将列表置于 3 列模式并隐藏不需要的列 + 根据“$this->getMode()”使用 css 更改主列的宽度。

另一种方法是创建控制器来为列表和网格生成整个正文页面,并在更改模式时使用 AJAX 填充页面。

于 2012-11-28T11:21:13.877 回答