пользовательская phtml-страница magento 2

Я только что ознакомился (достаточно) с Magento 1.9 и смог выполнить необходимые настройки, и мне сказали, что, как только он выйдет, мы перейдем на Magento v2.0. Обнаружив различия в файловой структуре, я думаю, что смогу увидеть, где разместить свой код для пользовательских страниц, которые мы используем, но как я могу добавить эту страницу из моего проекта в статический блок для последующего использования? Раньше использовался следующий метод (я понимаю, что это может не соответствовать лучшей практике, но это сработало):

  1. Создайте папку элемента в папке темы или основных шаблонов. например. /app/design/frontend/<theme>/default/template/myelement/mypage.phtml
  2. Добавьте эту страницу/элемент в статический блок, используя следующее в редакторе содержимого:

    {{block type="<theme>/default" template="myelement/mypage.phtml"}}

Затем этот блок можно добавить на страницы категорий по мере необходимости.

В Magento 2 я попробовал то, что считаю необходимым, а именно копирование файловой структуры и добавление к ней файлов phtml, поэтому файл шаблона теперь находится в:

/app/code/<supplier>/<module>/view/frontend/templates/mypage.phtml

Добавляем в редактор контента следующее:

{{block type="<supplier>/<module>" template="mypage.phtml"}}

К сожалению, это не отображает предполагаемую страницу (элемент). Он также не отображает вызывающую запись «{{block», что обычно происходит, когда строка недействительна, поэтому я могу только предположить, что я что-то упускаю со ссылкой на этот шаблон.

Если кто-то может предложить некоторую помощь в этом, я был бы очень признателен.

РЕДАКТИРОВАТЬ: Продолжение исследований по этому вопросу привело меня к следующим предположениям:

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

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

Однако это привело к дополнительной проблеме. Пока у меня есть требуемый код, я не могу добавить модуль. Добавление модуля в etc/config.php, как предлагалось в 2 из 3 руководств, просто приводило к сбою M2, как администратора, так и внешнего интерфейса, когда вы пытаетесь очистить кеш. Это происходит после ручной очистки папок кеша в каталоге var.

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

Здесь осталось не так много волос, поэтому ищу помощи! заранее спасибо


person user3867548    schedule 19.06.2015    source источник


Ответы (3)


На GitHub есть несколько примеров, в том числе https://github.com/magento/magento2-samples/tree/master/sample-module-newpage, который показывает модуль, добавляющий новую страницу с очень простым файлом шаблона PHTML. Однако в этом примере не используется редактирование контента CMS — это пример, основанный на использовании файлов макета.

Вы упомянули, что у вас были сбои. Потребуется больше деталей, чтобы помочь в этом. Если вы решили эту проблему, не могли бы вы обновить этот вопрос и принять ответ, чтобы закрыть его? Спасибо!

person Alan Kent    schedule 11.08.2015
comment
Работа над этим проектом временно остановлена. Будет повторно посетить его позже. На данный момент мы продолжаем работать с Magento 1.9 и постепенно переходим на Magento 2. Тем не менее, спасибо за ваш вклад, мы будем иметь его в виду, когда мы вернемся к Magento 2. - person user3867548; 12.08.2015

Вы должны попробовать «класс» вместо «тип». Так должен выглядеть ваш код.

{{block class="<package>\<module>\Block\MyBlock" template="mypage.phtml"}}
person aziz    schedule 21.06.2015
comment
Спасибо Азиз. К сожалению, похоже, что, хотя ваш ответ может быть правильным, я все еще что-то упускаю. - person user3867548; 22.06.2015
comment
Спасибо Азиз. Хотя я уверен, что ваш ответ правильный и, безусловно, имеет смысл, я все еще должен что-то упустить. Я прошел через учебники по созданию модулей (излишне для того, что я хочу, но мог бы и научиться). При добавлении модуля в config.php, как это предлагается в учебниках, Magento2 просто падает (админ и интерфейс). Использование полной файловой структуры модуля с использованием предложенного вами кода предотвращает отображение всего блока. Есть предположения? - person user3867548; 22.06.2015

Вы должны попробовать "VenderName_Modulename::myelement/mypage.phtml" вместо "myelement/mypage.phtml". Так должен выглядеть ваш код.

 {{block class="VenderNameModulename\Block\MyBlock" template="VenderName_Modulename::myelement/mypage.phtml"}}
person Joel    schedule 18.04.2017