Plik html Magento i plik phtml w procesie niestandardowego szablonu?

10

Jak sprawdziłem z dokumentacji magento 2 na temat zmiany zawartości minicart.

Istnieją dwa sposoby:

  1. Na tej stronie: http://devdocs.magento.com/guides/v2.0/frontend-dev-guide/themes/theme-inherit.html

Zmieniamy go, dostosowując minicart.phml i umieszczając go w: app/design/frontend/OrangeCo/orange/Magento_Checkout/templates/cart/minicart.phtml

  1. Ale na drugiej stronie: http://devdocs.magento.com/guides/v2.0/frontend-dev-guide/templates/template-sample.html

Dostosowujemy go w content.html i umieszczamy w:

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

Więc te pytania to:

Jak Magento 2 decyduje, kiedy użyć pliku HTML i phtml?

Czy ma to związek z trybem 3 w Magento 2: Default, Developer i Production?

Thienphucvx
źródło

Odpowiedzi:

10

Zarówno .phtmli .htmlpliki są częścią warstwy widoku w Magento 2 różnica polega phtmlplików pracy z bloku , który według Magento Docs jest specjalna klasa PHP, który jest zwykle (ale nie zawsze) podłączony do szablonu uważnie. Bloki zwykle działają z warstwą modelu (rdzeń Magento) w celu manipulowania danymi i zwracania wyników / odpowiedzi do szablonów (plików .phtml lub .html). Pliki te są używane przez pliki układu podczas konfigurowania szablonów dla niektórych bloków i tak dalej.

htmlpliki na drugim końcu służą wyłącznie do wyświetlania treści w interfejsie, a biblioteki javascript, takie jak knockout JS, używają ich odpowiednio. Pliki te są także używane do ładowania treści AJAX.

Devtype
źródło
6

pliki phtml używane jako backendowe szablony php. pliki HTML używane jako szablony javascript dla interfejsu użytkownika.

Nie jest to związane z trybem Magento.

KAndy
źródło
Nie sądzę, czy sprawdziłeś każdy plik phtml modułu w interfejsie / szablonach. Czy wszystkie te pliki są używane tylko dla szablonu php zaplecza? Dlaczego folder widoku każdego modułu ma dwa foldery: frontend i backend?
thienphucvx
kiedy mówię frontend / backend mam na myśli po stronie serwera / po stronie klienta. Folder adminhtml to Panel administracyjny, a frontend to Store Front part (może mieć frontend / backend)
KAndy
Myślę, że rozumiem, że HTML jest renderowany przez javascript. Ale nie jestem jasne, dlaczego go używają. Na przykład dostosowujemy zawartość minicart na content.html . Ale w celu dostosowania formularza w recenzji, edytujemy go na form.phtml ( devdocs.magento.com/guides/v2.0/frontend-dev-guide/templates/… )
thienphucvx 25.01.2016
m2 ma wiele starszych kodów (m1). nie wszystkie części są refaktoryzowane, ale proces przenoszenia renderowania treści po stronie klienta będzie kontynuowany. i możesz użyć renderowania po stronie klienta
KAndy,
Oznacza to, że w przyszłości będzie tylko plik HTML dla klienta?
thienphucvx
2

@thienphucvx Dokumentacja na stronie http://devdocs.magento.com/guides/v2.0/frontend-dev-guide/themes/theme-inherit.html jest nieprawidłowa.

Prawidłowa odpowiedź znajduje się w: http://devdocs.magento.com/guides/v2.0/frontend-dev-guide/templates/template-sample.html .

Jeśli spojrzysz na plik, do którego odwołuje się pierwszy link vendor/magento/module-checkout/view/frontend/templates/cart/minicart.phtml, zobaczysz, że nie możesz zmodyfikować rozmieszczenia przedmiotów w minicart za pomocą przycisku kasy.

Jest tak, ponieważ ta część minikartki jest tutaj: vendor/magento/module-checkout/view/frontend/web/template/minicart/content.html

Kiedy znajdę niespójności w dokumentach, tak jak tutaj, otwieram żądanie ściągnięcia w GitHub. Jest zbyt wiele dokumentów, aby zespół dokumentacji cały czas miał 100% poprawność. Otwórz PR, przejrzą twoją aktualizację ... a jeśli sami nie będą pewni, skontaktują się z wewnętrznym organem w tej sprawie i skontaktują się z Tobą z informacją o tym, czy masz rację, czy nie. Są przyjaźni. Idź po to!

ryanF
źródło