我是magento的新手。我没有权限修改控制器文件。所以我正在用块创建新模块以使我的要求有效。现在一切正常。
但是,现在根据条件,我需要加载不同的布局。 (一个带有左侧边栏,另一个没有左侧边栏)。我必须通过块代码加载布局xml文件。
我不知道如何处理阻止。任何人都可以帮助我吗?
答案 0 :(得分:1)
您好,您可以将模板设置为布局xml,如下所示
<reference name="root">
<action method="setTemplate"><template>page/1column.phtml</template></action>
</reference>
<reference name="root">
<action method="setTemplate"><template>page/2columnleft.phtml</template></action>
</reference>
答案 1 :(得分:1)
您可以尝试以下解决方案。 首先,您不能轻易地为特定页面添加两种不同的布局
<checkout_index_cart>
<reference name="root">
<action method="setTemplate"><template>page/2columns-left.phtml</template></action>
</reference>
...
<checkout_index_cart>
<checkout_onepage_index>
<reference name="root">
<action method="setTemplate"><template>page/1column.phtml</template></action>
</reference>
...
<checkout_onepage_index>
答案 2 :(得分:1)
在辅助函数
中定义的条件的基础上更改页面布局<reference name="root">
<action method="setTemplate"><template helper="modulename/getNewLayoutupdate"/></action>
</reference>
这是辅助函数,相应地有条件
public function getNewLayoutupdate(){
$page_layout = Mage::getStoreConfig('customize_your_own');
switch($page_layout)
{
case 'empty':
$page_layout = 'page/empty.phtml';
break;
case 'one_column':
$page_layout = "page/1column.phtml";
break;
case 'two_columns_left':
$page_layout = 'page/2columns-left.phtml';
break;
case 'two_columns_right':
$page_layout = 'page/2columns-right.phtml';
break;
case 'three_columns':
$page_layout = 'page/3columns.phtml';
break;
default:
$page_layout = 'page/2columns-right.phtml';
}
return $page_layout;
}
答案 3 :(得分:1)
我已经修好了自己。
在块中,更改了布局,而不是删除left
侧边栏。
protected function _prepareLayout() {
if($my_condition)
{
$this->getLayout()->getBlock('root')->setTemplate("page/1column.phtml");
}
parent::_prepareLayout();
return $this;
}
答案 4 :(得分:0)