Magento 2 HTML-файл и PHP-файл в пользовательском шаблоне процесса?

10

Как я проверил из документации magento 2 об изменении содержимого мини-карт.

Есть два способа:

  1. На этой странице: http://devdocs.magento.com/guides/v2.0/frontend-dev-guide/themes/theme-inherit.html

Мы изменим его, настроив minicart.phml и разместив его в: app/design/frontend/OrangeCo/orange/Magento_Checkout/templates/cart/minicart.phtml

  1. Но на другой странице: http://devdocs.magento.com/guides/v2.0/frontend-dev-guide/templates/template-sample.html

Мы настраиваем его в content.html и размещаем в:

app/design/frontend/OrangeCo/orange/Magento_Checkout/web/template/minicart/content.html

Итак, эти вопросы:

Как magento 2 решает, когда использовать html-файл и phtml-файл?

Это связано с режимом 3 в Magento 2: по умолчанию, разработчик и производство?

thienphucvx
источник

Ответы:

10

И файлы, .phtmlи .htmlфайлы являются частью слоя представления в Magento 2, поскольку phtmlфайлы работают с Block, который, согласно Magento Docs, является специальным классом PHP, который обычно (но не всегда) тесно связан с шаблоном. Блоки обычно работают со слоем модели (ядро Magento), чтобы манипулировать данными и возвращать результаты / ответы на шаблоны (файлы .phtml или .html). Эти файлы используются файлами макетов при настройке шаблонов для определенных блоков и так далее.

htmlфайлы на другом конце используются исключительно для отображения контента во внешнем интерфейсе, и библиотеки Javascript, такие как knockout JS, используют их соответственно. Эти файлы также используются для загрузки содержимого AJAX.

DEVTYPE
источник
6

phtml файлы, используемые в качестве шаблонов php бэкэнда. HTML-файлы, используемые в качестве шаблонов Javascript внешнего интерфейса.

Это не связано с режимом Magento.

Канди
источник
Я так не думаю, вы проверяли каждый модуль phtml файла в frontend / templates. Все ли эти файлы используются только для внутреннего PHP-шаблона? Почему папка просмотра каждого модуля имеет две папки: внешнюю и внутреннюю?
thienphucvx
когда я говорю frontend / backend, я имею в виду на сервере / на стороне клиента. Папка adminhtml - это панель администратора, а внешний интерфейс - это часть Front Store (может иметь часть frontend / backend)
KAndy
Я думаю, что вы поняли, что html визуализируется с помощью javascript. Но мне не понятно, зачем они это используют. Например, мы настраиваем содержимое миникарты на content.html . Но для настройки формы в обзоре мы редактируем ее в form.phtml ( devdocs.magento.com/guides/v2.0/frontend-dev-guide/templates/… )
thienphucvx
m2 имеет много устаревших (m1) кодов. не все части реорганизованы, но процесс перемещения рендеринга контента на стороне клиента будет продолжен. и вы можете использовать рендеринг на стороне клиента
KAndy
Значит, в будущем существует только HTML-файл для клиентской части?
thienphucvx
2

@thienphucvx Документация на http://devdocs.magento.com/guides/v2.0/frontend-dev-guide/themes/theme-inherit.html неверна.

Правильный ответ: http://devdocs.magento.com/guides/v2.0/frontend-dev-guide/templates/template-sample.html .

Если вы посмотрите на файл, указанный в первой ссылке, vendor/magento/module-checkout/view/frontend/templates/cart/minicart.phtmlвы увидите, что вы не можете изменить расположение элементов в мини-карте с помощью кнопки оформления заказа.

Это потому, что эта часть миникарты находится здесь: vendor/magento/module-checkout/view/frontend/web/template/minicart/content.html

Когда я нахожу несоответствия в документах, как у вас здесь, я открываю запрос на извлечение в GitHub. Слишком много документов для команды документации, чтобы все время быть на 100% правильными. Откройте PR, они рассмотрят ваше обновление ... и, если они сами не уверены, они обратятся к внутреннему органу по этому вопросу и ответят вам, что вы правы или нет. Они дружелюбны. Действуй!

ryanF
источник