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

ルートブロックが既にロードされている場所にこのコードを配置したと思います。

1 つの可能性は、css を使用し、リストを 3 列モードにして、不要な列を非表示にし、「$this->getMode()」に応じて css を使用してメイン列の幅を変更することです。

もう 1 つの方法は、コントローラーを作成してリストとグリッドのボディ ページ全体を生成し、モードを変更するときに AJAX を使用してページに入力することです。

于 2012-11-28T11:21:13.877 に答える