Categories: Мадженто 2

Как создать представление (view) для модуля в Magento 2

В сегодняшнем уроке вы узнаете, как создать View (представление) и его действие в Magento 2. В предыдущем уроке мы рассмотрели вопрос создания контроллера для Magento 2, а сегодня вы увидите, как связать представление (шаблон) с нашим действием! Мы будем использовать заготовки из предыдущего урока.

 

 

Добавьте папку view в корень модуля

Создайте папку view в корне модуля /Sebweo/Test. Именно эта папка будет содержать весь макет (файлы макета для Блока, который будет отображаться на сайте, и шаблоны). Создайте в этой папке каталог frontend, в котором создайте 2 папки: layout (для макетов) и templates (для файлов шаблонов).

 

 

Добавьте phtml файл шаблона

Создайте файл test_view.phtml в папке /Sebweo/Test/view/frontend/templates/ с таким контентом:

<div class="test_block">
 <p>Тестовый блок</p>
</div>

 

Здесь мы будем отображать html-контент, который будет доступен в действии (action) testirovka/proverka/index (см. предыдущий урок).

 

 

Добавьте файл макета для действия

Теперь мы свяжем наше действие с нашим контроллером и шаблоном. Для этого создайте файл testirovka_proverka_index.xml (обратите внимание на название <id_маршрута>_<название_контроллера>_<название_действия>) в каталоге /Sebweo/Test/view/frontend/layout/, с таким содержимым:

<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="1column" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
 <body>
  <referenceContainer name="content">
    <block class="Magento\Framework\View\Element\Template" name="testBlock" template="Sebweo_Test::test_view.phtml"></block>
  </referenceContainer>
 </body>
</page>

 

 

Имя файла очень важное. Для маршрута (URL) testirovka/proverka/index мы должны назвать наш файл макета testirovka_proverka_index.xml, чтобы Magento 2 автоматически получил наш файл макета из действия. Вам просто нужно заменить «/» в URL действия на «_«, и вы получите имя файла макета.

 

 

Для чего нужен этот файл?

<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="1column" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">

 

Эта инструкция сообщает Magento 2, что мы обновляем макет этого действия с помощью шаблона 1column.phtml.

 

<body>
 <referenceContainer name="content">
  <block class="Magento\Framework\View\Element\Template" name="testBlock" template="Sebweo_Test::test_view.phtml"></block>
 </referenceContainer>
</body>

 

Нод referenceBlock позволяет Magento 2 получить блок с соответствующим именем (здесь content).

Нод block позволяет Magento 2 добавлять новый Блок, здесь этот блок будет использовать логический класс Magento\Framework\View\Element\Template, будет носить имя testBlock, и ему будет присвоен файл шаблона test_view.phtml, который находится в модуле Sebweo_Test.

 

Этот блок XML кода позволяет вам создать блок в области content (содержимого) веб-сайта и использовать файл-шаблон test_view.phtml, который мы создали ранее.

Обратите внимание, что здесь мы используем класс Magento\Framework\View\Element\Template, который является основным классом, что позволяет отображать .phtml шаблон без специальной логики.

 

 

Отредактируйте действие, чтобы получить его макет

Magento 2 для получения файла макета, нужна его загрузка с помощью метода loadLayout(). А отображает он его с помощью функции renderLayout().

 

Отредактируйте файл /Sebweo/Test/Controller/Proverka/Index.php следующим образом:

namespace Sebweo\Test\Controller\Proverka;
class Index extends \Magento\Framework\App\Action\Action
{
 public function execute()
 {
   $this->_view->loadLayout();
   $this->_view->renderLayout();
 }
}

 

И теперь вы можете получить доступ к вашему шаблону через URL-адрес, который описан в предыдущем уроке: {DOMEN}/testirovka/proverka/index/.

 

 

Теперь вы знаете, как добавить представление (view), связанное с действием вашего контроллера Magento 2. Примите наши поздравления!

До следующих уроков.

 

Recent Posts

Сравнение цен с конкурентами: зачем это нужно интернет-магазину

Содержание статьи Введение: почему цены решают все Что значит сравнение цен с конкурентами 5 причин,…

4 дня ago

Лучшие сауны Киева: проверенные адреса и актуальные цены

В последние годы интерес к саунам в Киеве заметно вырос. Это связано не только с…

5 дней ago

BaniSauny: быстрый гид по баням и саунам Киева

В современном ритме мегаполиса отдых стал неотъемлемой частью заботы о здоровье и эмоциональном состоянии. Особенно…

6 дней ago

Рекламный аккаунт Facebook: Как получить максимум от рекламы с Tech4You

В современном мире цифрового маркетинга Facebook (Meta) остается одной из самых мощных платформ для продвижения…

1 неделя ago

Тактический тепловизор: назначение, особенности и преимущества

Этот прибор стал незаменимым элементом арсенала представителей множества профессий, но особенно актуален среди военных. Тепловизор…

2 недели ago

Как книги для саморазвития помогают «закрыть лишние мысли» и начать жить здесь и сейчас

Постоянный поток новостей, рабочих задач и личных забот часто приводит к тому, что в голове…

2 недели ago