2012-11-16 24 views
2

顯示塊I創建一個簡單的塊(只是一個芯/模板)與自定義PHTML文件,以使擴展,而無需修改其他PHTML文件。Magento的無ChildHtml

但我cannont使其顯示,除了通過修改原始模板添加$this->getChildHtml('myblock')事情。

我想補充我的塊,而不改變其他任何PHTML。如何做到這一點,如何使塊自動顯示而不用getChildHtml方法?

回答

1

我弄清楚如何做到這一點,

我使用自己的佈局和模板創建自己的模塊。

在佈局中,我更新了父塊被調用的部分,首先插入我的新塊,然後在我的模板中,我通過getChildHtml()調用父項,所以我不必碰任何客戶端文件。

最好的問候,對大家

-2

只有某些文件具有顯示所有子節點的功能。隨着中說,絕大多數不具備這種能力內置的。

您可以啓用通過添加一條線,你想渲染附加到任何塊PHTML文件這一功能。

<?php echo $this->getChildHtml() ?> 
+0

用戶明確要求如何做到這一點不使用,直到最底層()。 –

+0

他不想使用$ this-> getChildHtml('block_id')。他希望在不修改原來的PHTML的情況下顯示,這一切都很好,很花哨。但是,除非已經調用$ this-> getChildHtml(''),否則不能使PHTML文件出現在任何其他文件中。正如我所說,這發生在很少的文件。他正在尋找這個自定義塊以神奇的方式出現。如果沒有$ this-> getChildHtml(),那麼任何佈局XML都不會將其顯示在指定的位置(句點​​)中。 – Ian

1

您可以在根塊定義塊如下:

<reference name="root"> 
     <block type="core/template" name="custom_block" output="toHtml" template="custom/custom_block.phtml"/> 
    </reference> 

的技巧是使用輸出=「toHtml」,讓您的塊作爲輸出塊,只有輸出塊被自動渲染。將塊放在根下很重要,因爲默認情況下,主題根塊是唯一負責呈現其所有子塊的輸出塊。

更多詳細信息,請看看: http://magebase.com/magento-tutorials/digging-deeper-into-magentos-layout-xml-part-2/

希望這會幫助別人。 乾杯。