2013-04-28 82 views
0

我想創建一個自定義頁面,我有以下使用空模板的XML。Magento佈局和分層導航

在我的控制,我有

public function indexAction() 
{ 
     $this->loadLayout(); 
     $this->getLayout()->getBlock('root')->setTemplate('page/empty.phtml'); 
     $this->renderLayout(); 
} 

而且在我的佈局,我有

<?xml version="1.0"?> 
<layout version="0.1.0"> 
    <brands_index_index> 
     <reference name="content"> 
      <block type="catalog/layer_view" name="catalog.leftnav" before="brands" template="catalog/layer/view.phtml"/> 
      <block type="core/template" name="brands" template="brands/brands.phtml" /> 
     </reference> 
    </brands_index_index> 
</layout> 

這工作得很好,並顯示分層導航。

但是,我希望分層導航顯示在brands.phtml模板中。 因此,我試圖做到以下幾點:

<?xml version="1.0"?> 
<layout version="0.1.0"> 
    <brands_index_index> 
     <reference name="content"> 
      <block type="core/template" name="brands" template="brands/brands.phtml" > 
       <block type="catalog/layer_view" name="catalog.leftnav" as="catalog.leftnav" template="catalog/layer/view.phtml"/> 
      </block> 
     </reference> 
    </brands_index_index> 
</layout> 

然而,這似乎並沒有當我brands.phtml中調用,直到最底層(「catalog.leftnav」)工作。

如何將分層導航切換到brands.phtml所需的位置?

所以,當我在「Magento Debug」中查看「呈現的塊」部分時,看起來塊已加載。但是,沒有生成HTML。是否有一個規則說分層導航必須位於左側/內容/右側塊或其他內容中?

感謝

回答

0

,直到最底層查找使用他們的屬性,而不是他們的名字屬性的孩子。所以嘗試改變你的塊定義,並相應地改變getChildHtml調用:

<block type="catalog/layer_view" name="catalog.leftnav" as="mynav" template="catalog/layer/view.phtml" /> 
+0

我也試過。它也不起作用。 :( – henrybai 2013-04-28 20:56:38

+0

FWIW,你可能會注意到,Magento團隊並沒有給出相同的名稱和名稱,我不知道是否有技術原因或者它只是一種文體選擇 – wierdo 2013-04-28 21:29:23

+0

哦,它看起來像你需要獲取圖層模型並調用setCurrentCategory方法來獲取任何有用的信息。 – wierdo 2013-04-28 21:41:12