Magento Включение CUSTOM phtml файла в view.phtml - PullRequest
6 голосов
/ 18 января 2012

Я пытаюсь выяснить, как создавать собственные phtml-файлы для включения в view.phtml (и, в конечном итоге, для вызова из любого phtml-файла Magento по умолчанию).

Я создал отдельный phtml-файл с содержимым, которое мне нужно, с именем productbadges.phtml

Это будет удалено как последний элемент в

Я понимаю, что выноска обычно

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

Однако я знаю, что мне нужно добавить что-то в catalog.xml, чтобы Magento распознал выноску и смог найти правильный файл. Но я не совсем понимаю синтаксис Magento XML.

Может ли кто-нибудь помочь?

Ответы [ 4 ]

6 голосов
/ 20 января 2012

Ответ Vicch - правильный способ сделать это.

Однако также полезно знать, что существует альтернативный метод:

$block = $this->getLayout()->createBlock(
      'Mage_Core_Block_Template',
      'choose_a_block_name',
       array('template' => 'folder/myphtmlfile.phtml')
 );

Я публикую это для общего знания. Это неприемлемый способ сделать это, поскольку он не согласуется с тем, как используются шаблоны и блоки Magento.

6 голосов
/ 11 июля 2014

вы можете использовать

<?php echo $this->getLayout()->createBlock('core/template')->setTemplate('goodtest/test.phtml')->toHtml(); ?>

, см. Также здесь:

Как мне вызвать .phtml блок на конкретной странице в magento?

и

хотят вызвать один файл phtml в другом файле phtml, используя тег привязки

5 голосов
/ 18 января 2012

Учитывая предоставленную вами информацию, я могу дать только общее решение.

Сначала вам нужно найти XML-формат для этого view.phtml.Вы должны искать что-то вроде:

<block type="..." name="..." ... template="../view.phtml">

Чтобы добавить объявление нового шаблона непосредственно под оберточным блоком, оно должно быть:

<block type="..." name="..." ... template="../view.phtml">    
    <block type="..." name="phtmlfilename" template="../phtmlfilename.phtml"/>
    ...
</block>

Также можно ссылатьсявнешний блок где-то еще:

<reference name="[name_of_view.phtml_block]">
    <block type="..." name="phtmlfilename" template="../phtmlfilename.phtml"/>
</reference>

Тип нового шаблона - это имя класса, которое должно быть core/template или его подтипом.

0 голосов
/ 18 июля 2017

Ответ на этот вопрос приведен ниже кодов, просто замените "directory / acc_drop.phtml" на путь к файлу.

    <?php echo $this->getLayout()->createBlock('core/template')->setTemplate('directory/acc_drop.phtml')->toHtml(); ?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...