Как правильно добавить блок CMS в файл шаблона


Я знаю два способа добавления статического блока в шаблон. Мне интересно, какой правильный метод, я подозреваю, что второй метод, но почему? Оба варианта верны?

МЕТОД 1: $это->getLayout()->Создать блок()

Создайте статический блок в администраторе Magento и вызовите его из файла шаблона с помощью кода ниже.

<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('something_custom')->toHtml() ?>

Метод 2:$это->getChildHtml()

Аналогично создайте статический блок в администраторе Magento, но сначала объявите его в xml-файле макета с помощью:

<block type="cms/block" name="something_custom">
    <action method="setBlockId"><block_id>something_custom</block_id></action>
</block>

, А затем вызовите его из файла шаблона с помощью приведенного ниже кода.

<?php echo $this->getChildHtml('something_custom') ?>
Author: Holly, 2015-09-23

2 answers

Tl;dr использовать метод 2


Если вы создаете код для сайта, который поддерживаете, и этот код никогда не будет использоваться другими, то различия между этими двумя методами почти не имеют значения. Я бы все равно использовал второй метод, потому что мне не нравится логика в шаблонах из первого метода.

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

/Редактировать: Если вы когда-нибудь собираетесь изменить тему, то снова захотите использовать второй метод, даже если вы единственный сопровождающий кода, как я сказал в первом абзаце.

 2
Author: Adi, 2015-09-23 15:55:01

Я обнаружил, что оба метода верны, и вы можете узнать больше, просмотрев эти сообщения: Добавьте статический блок cms на главную страницу

Также посмотрите на это: Вызовите статический блок в другой статический блок через шаблон

Я надеюсь, что все ваши сомнения будут рассеяны

 2
Author: Jai, 2017-04-13 12:55:02