2012-11-06 60 views
2

我已經更新了我page.xml文件,包括像這樣在左列的類別模板:添加邊欄到主頁佈局?

<page_one_column_home translate="label"> 
    <label>All One-Column Home Layout Pages</label> 
    <reference name="root"> 
     <action method="setTemplate"><template>page/1column-home.phtml</template></action> 
     <!-- Mark root page block that template is applied --> 
     <action method="setIsHandle"><applied>1</applied></action> 
    </reference> 
    ... 
</page_one_column_home> 

添加以下代碼:

<reference name="left"> 
     <block type="catalog/navigation" name="category.sidebar" as="categorySidebar" template="catalog/navigation/left.phtml"/> 
    </reference> 

我還更新了主頁模板文件打印在'左'列中生成的HTML:

<?php echo $this->getChildHtml('left'); ?> 

但是,這是行不通的;結果是什麼都沒有打印在主頁佈局的左欄中。

+0

hi Ozzy。是否要將所有類別顯示在左側而不是頂部(這是默認情況下在magento中)? –

回答

1

有沒有需要修改自己的基本模板。

轉到

Magento CMS -> pages -> home 

更改設計選項卡中選擇佈局2columns左或3-列作爲必需的。

然後,您可以使用左側導航,但可能需要進行一些更改。如果您檢查了left.phtml,它會檢查是否有任何當前類別,如果沒有,則不會顯示。

可以使該模板的副本,例如:

copy catalog/navigation/left.phtml to catalog/navigation/left-home.phtml 

然後你可以從:

<?php if (!Mage::registry('current_category')) return ?> 
<?php $_categories = $this->getCurrentChildCategories() ?> 

這樣:

<?php //if (!Mage::registry('current_category')) return ?> 
<?php $_categories = $this->getStoreCategories() ?> 

這將使左側導航欄會顯示您的所有頂級類別。

然後,您將此添加到您的CMS - >頁面 - > home layuout更新XML。

<reference name="left"> 
    <block type="catalog/navigation" name="catalog.leftnav" as="categorySidebar" after="currency"  template="catalog/navigation/left-home.phtml"/> 
    </block> 
</reference> 
+0

安德魯,謝謝你的替代解決方案。我已經做出了自己的選擇。但是我打開這個問題是因爲我試圖瞭解爲什麼當我將這個代碼添加到1-col佈局時,此代碼爲'$ this-> getChildHtml('left')'不起作用phtml文件。 – Ozzy

0

請試試這個

<default> 
    <reference name="left"> 
    <block type="catalog/navigation" name="catalog.leftnav" as="categorySidebar" after="currency"  template="catalog/navigation/left.phtml"/> 
    </block> 
    </reference> 
    </default> 

而且清除Magento的緩存

+0

爲什麼這與我已經嘗試過的不同? – Ozzy