Добавьте некоторый блок на страницу просмотра продукта через XML-файл модуля Magento

Привет, я разрабатываю простое расширение, в котором

мне нужно вставить новый блок на страницу продукта через файл xml. Ниже приведен xml файл моего модуля

<layout version="0.1.0">
      <total_index_index>
          <reference name="root">
             <action method="setTemplate"><template>page/2columns right.phtml</template></action>
           </reference>

           <reference name="content">
                  <block type="total/prototal"  name="total_prototal" template="total.phtml" />
                 </reference>
      </total_index_index>
</layout>

В этом макет работает с действием модуля index, и содержимое файла total.phtml видно. Мне нужно вставить содержимое total.phtml на страницу продукта.

Поэтому, пожалуйста, предложите мне, как я могу вставить это на страницу продукта через xml.

Спасибо


person Rohit Goel    schedule 20.05.2014    source источник
comment
Вы имеете в виду, что вам нужно добавить блок total_prototal под блок просмотра продукта?   -  person Slimshadddyyy    schedule 20.05.2014
comment
да, это может быть под кнопкой корзины или выше   -  person Rohit Goel    schedule 20.05.2014


Ответы (2)


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

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

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

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

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

person Lalit Kaushik    schedule 20.05.2014
comment
Привет, я делаю то же самое, но мой пользовательский блок не отображается в блоке alert_urls. Я хочу показать немного дополнительной информации сразу после названия продукта и цены на странице просмотра продукта. Есть ли другое решение сделать то же самое? - person user2393886; 16.01.2015

Я предполагаю, что у вас есть файл и папка в вашем дизайне, как это

/template/total/prototal.phtml

В вашем local.xml вы можете добавить, как показано ниже

<catalog_product_view>
     <reference name="product.info">
           <block type="core/template" name="total_prototal" template="total/prototal.phtml" after="product.info.addtocart"/>
      </reference>
</catalog_product_view>

Теперь в вашем catalog/product/view.phtml вызовите свой пользовательский блок

До

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

Добавлять

<?php echo $this->getChildHtml('total_prototal') ?>
person Slimshadddyyy    schedule 20.05.2014
comment
я не хочу редактировать файл представления. Должен автоматически добавляться - person Rohit Goel; 20.05.2014
comment
Если вы добавляете какой-либо блок, вам нужно вызвать его в файле phtml. Вам нужно указать Magento, где его разместить. - person Slimshadddyyy; 20.05.2014
comment
@Slimshadddyyy это неправда. Вы можете добавлять блоки в core/text_list и не рендерить их вручную. - person scrowler; 18.09.2016