顯示塊I創建一個簡單的塊(只是一個芯/模板)與自定義PHTML文件,以使擴展,而無需修改其他PHTML文件。Magento的無ChildHtml
但我cannont使其顯示,除了通過修改原始模板添加$this->getChildHtml('myblock')
事情。
我想補充我的塊,而不改變其他任何PHTML。如何做到這一點,如何使塊自動顯示而不用getChildHtml
方法?
顯示塊I創建一個簡單的塊(只是一個芯/模板)與自定義PHTML文件,以使擴展,而無需修改其他PHTML文件。Magento的無ChildHtml
但我cannont使其顯示,除了通過修改原始模板添加$this->getChildHtml('myblock')
事情。
我想補充我的塊,而不改變其他任何PHTML。如何做到這一點,如何使塊自動顯示而不用getChildHtml
方法?
我弄清楚如何做到這一點,
我使用自己的佈局和模板創建自己的模塊。
在佈局中,我更新了父塊被調用的部分,首先插入我的新塊,然後在我的模板中,我通過getChildHtml()調用父項,所以我不必碰任何客戶端文件。
最好的問候,對大家
只有某些文件具有顯示所有子節點的功能。隨着中說,絕大多數不具備這種能力內置的。
您可以啓用通過添加一條線,你想渲染附加到任何塊PHTML文件這一功能。
<?php echo $this->getChildHtml() ?>
如果你的塊是core/text_list
類型或page/html_wrapper
的,然後它會顯示所有子nodes.See的core/text_list
塊的toHtml()函數:http://svn.magentocommerce.com/source/branches/1.7/app/code/core/Mage/Core/Block/Text/List.php
您可以在根塊定義塊如下:
<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/
希望這會幫助別人。 乾杯。
檢查本文的詳細信息 - http://nwdthemes.com/2015/05/29/render-layout-block-automatically-in-magento/
用戶明確要求如何做到這一點不使用,直到最底層()。 –
他不想使用$ this-> getChildHtml('block_id')。他希望在不修改原來的PHTML的情況下顯示,這一切都很好,很花哨。但是,除非已經調用$ this-> getChildHtml(''),否則不能使PHTML文件出現在任何其他文件中。正如我所說,這發生在很少的文件。他正在尋找這個自定義塊以神奇的方式出現。如果沒有$ this-> getChildHtml(),那麼任何佈局XML都不會將其顯示在指定的位置(句點)中。 – Ian