2013-05-10 70 views
0

在local.xml中,我添加了一個名爲「category_header」的塊,並按照預期顯示。Magento:通過類別定製自定義塊自定義佈局更新

<catalog_category_layered> 
    ... 
    <reference name="root"> 
     <block type="catalog/category_view" name="category.header" as="category_header" template="catalog/category/view_header.phtml" /> 
    </reference> 
    ... 
</catalog_category_layered> 

在根據admin「的一個特定的類別/用戶定製設計/自定義佈局更新」我試圖通過以下的塊添加到「category_header」塊(通訊塊只是一個例子):

<reference name="category_header"> 
    <block type="newsletter/subscribe" name="newsletter" template="newsletter/subscribe.phtml"/> 
</reference> 

這是行不通的。如果我將引用更改爲「內容」(引用名稱=「內容」),它會正常工作並顯示在內容塊中。

所以我的問題是:我需要做什麼才能夠定位category_header塊?

回答

0

你加入你的塊到根:

<reference name="root"> 
    <!-- ... --> 
</reference> 

你確定你想這樣做,這是最高層。

如果您有意將您的塊添加到根,那麼您還必須在基本模板文件內輸出該塊。

例如,如果您使用的是1列布局,您將需要修改的頁面模板otuput您塊:

模板/頁/ 1column.phtml

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

的原因它在使用content的時候起作用contains是所有內容容器的子項都會自動輸出的,但是根容器的子項不是,並且需要手動添加到你的模板中。

如果您使用任何其他頁面佈局(2col-left等),您還需要將輸出添加到每個視圖文件。

您還需要輸出category_header視圖/塊內的所有塊:

<?php echo $this->getChildHtml('newsletter_header') // rename.. ?> 
+0

我添加「category_h eader「的根目錄是我使用2col左頁面佈局,但我想要在左/主列上方顯示1 col」標題「 - http://s11.postimg.org/da31tifpv/category_header巴紐。這工作得很好,我遇到的問題是試圖將塊添加到「category_header」塊。 – Walker 2013-05-10 10:45:37

0

確保目錄/分類/ view_header.phtml包含

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

你總是可以找到孩子塊與:

<?php Zend_Debug::dump(array_keys($this->getChild())) ?> 
+0

謝謝,並抱歉我遲到的答覆,benmark。其實我已經回聲:在view_header.phtml模板中編輯了getChildHtml('newsletter')。不幸的是它沒有奏效。我最終在根模板中調用通訊。不是一個漂亮的解決方案,但它必須做幾天,直到我可以回到該部分。 – Walker 2013-05-13 22:01:03