Как разместить мой блок на странице просмотра продукта каталога


enter image description here Мой XML-код находится здесь

<?xml version="1.0"?>
<layout version="0.1.0">
<catalog_product_view>
    <reference name="product.info">
        <block type="demo/demo" before="product.description" name="demo" template="demo/demo.phtml" />
    </reference>
</catalog_product_view>
</layout> 

Я хочу поставить свой блок под product.info и выше описание продукта.

Я не хочу изменять какой-либо основной файл и не хочу использовать Метод getChildHtml

Author: Vaibhav Ahalpara, 2014-12-25

3 answers

Попробуйте это:

<catalog_product_view>
        <reference name="alert.urls"> 
            <block type="total/prototal"  name="total_prototal" template="total.phtml" />  
        </reference>
</catalog_product_view>

Убедитесь, что эта строка должна существовать в представлении.phtml файл:

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

Надеюсь, это поможет!

 2
Author: mrumair.com, 2014-12-25 08:13:51

Перейдите к файлу просмотра вашей темы и добавьте его туда, где вы хотите отобразить содержимое..

Mage::app()->getLayout()->createBlock('modulename/blockname')->getFunctionName()->setTemplate('path_to_template');
 0
Author: Pavan Kumar, 2014-12-25 07:28:52

Вы можете управлять порядком вставленных блоков с помощью атрибута узла before и after. См. http://www.magentocommerce.com/knowledge-base/entry/controlling-block-order для получения дополнительной информации.

Но, поскольку вы устанавливаете свой блок demo.demo как дочерний блок product.info, он не будет отображаться как дочерний блок, если вы не отображаете его getChildHtml внутри catalog/product/view.phtml (product.info файл шаблона).

Установите свой блок не внутри product.info, а снаружи, прямо перед этим описанной выше техникой:

<catalog_product_view>
    <block type="demo/demo" before="product.info" name="demo" template="demo/demo.phtml" />
</catalog_product_view>

Дочерние блоки не отображаются автоматически путем перебора их дочерних элементов. Есть всего несколько типов блоков, где это верно. См. http://blog.philwinkle.com/the-most-misunderstood-concept-in-magento / чтобы понять это и неправильное представление о блоках в Magento.

Автоматически отображаемые блоки

При определении в макете любой блок типа ядро/text_list автоматически отобразит все свои дочерние элементы. В то время как ядро/текст будет автоматически отображаться, он действительно должен содержать только текст и, следовательно, не полезен для целей компоновки

И

Другие блоки

Любой другой тип блока необходимо будет отрисовывать вручную. Предоставьте блоку псевдоним, который затем можно передать в getChildHtml, возвращая содержимое, которое вы затем повторяете.

Чтобы дать вам tl; др.

 0
Author: Nicolas, 2014-12-25 07:37:28