2011-12-27 53 views
0

我創建了一個新模塊,我嘗試在indexcontroller下的一個動作中加載模板。該模板正確加載,但基本/根模板未加載。 Magento只加載了我在XML中指定的模板文件。我解釋了我所遵循的步驟。Magento模板未正確加載

  • 創建一個名爲'Sample'的模塊。
  • 使用索引操作創建IndexController。
  • 在dir app/design/frontend/default/default/layout下創建local.xml文件
  • 在dir app/design/frontend/default/default/template/sample/sample_page.phtml下創建sample_page.phtml 。

的IndexController:

public function indexAction() { 
    $this->loadLayout(); 
    $this->renderLayout(); 
} 

local.xml中:

<layout version="0.1.0"> 
<default> 
</default> 
<sample_index_index> 
    <reference name="root"> 
     <block type="page/html" name="root" output="toHtml" template="sample/sample_page.phtml"> 
     </block> 
    </reference> 
</sample_index_index> 

任何人可以找我做了什麼問題?

回答

2

這裏的問題是,您引用了錯誤的佈局塊(在您的示例中爲「root」)。這樣做可以用您指定的頁面替換頁面的整個塊集。
要獲取顯示的所有塊(包括您的),只需參考「root」之外的另一個佈局塊,例如「content」。

您可能還想修改模塊頁面的根佈局塊(如果是這種情況),請在默認句柄中引用根塊並設置不同的模板。

下面是一個例子:

<layout version="0.1.0"> 
    <default> 
     <reference name="root"> 
      <action method="setTemplate"> 
       <template>page/1column.phtml</template> 
      </action> 
     </reference> 
    </default> 
    <sample_index_index> 
     <reference name="content"> 
      <block type="page/html" name="the_name_you_like" output="toHtml" template="sample/sample_page.phtml"> 
      </block> 
     </reference> 
    </sample_index_index> 
</layout> 
+0

是文斯它的工作原理,感謝... – 2011-12-27 09:43:08

+0

<引用名=「內容」>和塊名稱進行區別。 – 2011-12-27 09:43:29

+0

請注意,您可能想要設置另一個tpl作爲默認根目錄。有3或4種泛型,「page/1column.phtml」,「page/3columns.phtml」.... – 2011-12-27 09:46:15