2010-07-10 101 views
1

以下是發生了什麼:我有一個頁面內容,用於在我的3列布局中渲染模塊(我相信這是默認設置),我希望它在1列中呈現,但我不不知道如何。Magento - 幫助指定頁面佈局

較長版本: 我使用的是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(); 

我想我缺少的是在磁告訴register頁面中1列和索引頁在3列渲染渲染。我花了整整一天的時間來弄清楚發生了什麼,但無濟於事。

任何建議,我應該看看?

回答

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); 
+1

感謝完美的工作,謝謝! 這是我在我的XML結束了(如果其他人是好奇): <引用名= 「根」> <引用名= 「內容」> <塊類型= 「核/模板」 模板= 「unirgy /微型/ home.phtml」 名稱= 「vendorHome」/> Mike 2010-07-10 21:25:04