Magento - 帮助指定页面布局

时间:2010-07-10 19:20:49

标签: php xml layout magento

这是正在发生的事情:我有一个页面内容,用于我的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列中呈现的位置。我花了一整天时间试图找出这种情况发生的地方,但无济于事。

有关我应该看的地方的任何建议吗?

1 个答案:

答案 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);