2011-08-25 145 views
0
到頁腳

我在/app/design/frontend/mytemplate/default/template/page/html/footer.cat.links.phtml添加布局塊在Magento

創建一個.phtml文件,這在時刻僅包含1個html div,其中包含一些文本。

我想把這個添加到頁腳,但我沒有玩過佈局xml。

所以,我打開了/app/design/frontend/mytemplate/default/layout/page.xml,並嘗試添加:

<block type="catalog/navigation" name="footer.cat.links" as="footerCatLinks" template="page/html/footer.cat.links.phtml" />

(類型爲 「目錄/導航」 因爲我打算要得到這個工作:http://www.magentocommerce.com/wiki/4_-_themes_and_template_customization/catalog/getting_and_using_categories_and_subcategories

我把它只是頁腳塊像這裏面:

<block type="page/html_footer" name="footer" as="footer" template="page/html/footer.phtml"><my block here></block>

然後在footer.phtml,我試圖調用新的塊用:

<?php $this->getChildHtml('footerCatLinks') ?>

我刷新緩存等,但它不能在footer.cat.links添加HTML DIV。 phtml當我在瀏覽器中查看。

我終於認爲我是在Magento附近摸索了一下,但是從我對文檔的理解中,這應該起作用!我有多不對?

+0

page.xml中圍繞您的塊標記的佈局處理是什麼? –

回答

6

在Magento的佈局xml中,塊「type」屬性指示系統應該嘗試加載哪種類型的塊,因此指定type="catalog/navigation"指示Magento它需要加載Mage_Catalog_Block_Navigation。

除非您編寫了自己的塊類 - 在這種情況下完全沒有必要 - 您應該使用core/template類型的塊代替。然後,您可以直接在.phtml文件中利用類別模型(Mage::getModel('catalog/category');)來加載您的類別列表。

我一般喜歡用兩種name=""as=""相同的值,所以你的塊添加到頁腳我會用<default>佈局部分中的以下XML中的所有網頁:

<reference name="footer"> 
    <block type="core/template" template="page/html/footer.cat.links.phtml" name="footer_cat_links" as="footer_cat_links" /> 
</reference> 

確保刷新佈局xml緩存(如果啓用了緩存)(系統>緩存管理)。

請注意,您不需要呼叫$this->getChildHtml('footer_cat_links');,因爲頁腳塊應該已經包含$this->getChildHtml();,它將迭代分配給頁腳塊的所有子項目。