这是正在发生的事情:我有一个页面内容,用于我的3列布局中的模块渲染(我相信这是默认设置),我希望它在1列中呈现,但我不知道如何。
较长版本: 我正在使用Unirgy的Dropship Microsite,我正试图让供应商登陆页面以1列布局呈现。 我的布局xml文件如下所示:
<?xml version="1.0"?>
<layout>
<udropship_vendor_login>
<reference name="login_links">
<action method="addLink" translate="label title" module="umicrosite">
<label>Register New Account</label>
<url helper="umicrosite/getVendorRegisterUrl"/>
<title>Register New Account</title><prepare/>
<urlParams/>
<position>20</position>
</action>
</reference>
</udropship_vendor_login>
<umicrosite_vendor_register>
<update handle="udropship_vendor" />
<reference name="content">
<block type="directory/data" template="unirgy/microsite/vendor/register.phtml" name="register" />
</reference>
</umicrosite_vendor_register>
[..removed unrelated xml..]
<umicrosite_index_index>
<reference name="content">
<block type="core/template" template="unirgy/microsite/home.phtml" name="vendorHome" />
</reference>
</umicrosite_index_index>
</layout>
有趣的是umicrosite_vendor_register呈现在1列中,但umicrosite_index_index呈现在默认的3列布局中。我已经尝试将其块类型更改为目录/数据以匹配umicrosite_vendor_register,但这不起作用。
我的IndexController非常简单:
$this->loadLayout()->renderLayout();
我想我缺少的是Magneto告诉寄存器页面在1列中呈现而索引页面在3列中呈现的位置。我花了一整天时间试图找出这种情况发生的地方,但无济于事。
有关我应该看的地方的任何建议吗?
答案 0 :(得分:4)
您应该将这样的内容添加到布局更新xml:
<reference name="root">
<action method="setTemplate">
<template>page/1column.phtml</template>
</action>
</reference>
您也可以使用以下代码段在代码中执行此操作:
$root = $this->getLayout()->getBlock('root');
$template = "page/1column.phtml";
$root->setTemplate($template);