Jak zastąpić pliki .phtml w Magento 2


15

Chcę dostosować stronę szczegółów produktu, więc wymagało to zastąpienia niektórych plików .phtml w następujących lokalizacjach.

Więc chcę wiedzieć, jak zastąpić pliki .phtml w vendor\magento\module-catalog\view\frontend\templates\productlubvendor\magento\module-theme\view

Odpowiedzi:


23

Czasami musimy modyfikować istniejące szablony. Zamiast dokonywać zmian bezpośrednio w istniejących plikach szablonów, powinniśmy nadpisać je w naszym własnym motywie. Załóżmy, że chcemy zaktualizować stronę z listą kategorii ( list.phtml). W tym celu utwórz następującą strukturę katalogów:

app/design/frontend/Mycompany/Basic/Magento_Catalog/templates/product

Tutaj zakładam, że nasz obecny motyw to Basic. Teraz skopiuj plik list.phtml do katalogu produktu z następującej lokalizacji:

app/vendor/magento/module-catalog/view/frontend/templates/product/list.phtml

Teraz możesz wprowadzić dowolne zmiany w przesłoniętym pliku.

Aby uzyskać szczegółowe informacje, przeczytaj ten samouczek, który bardzo ci pomoże.


2
Cześć, właśnie zastąpiłem plik list.phtml w następującej ścieżce: \ app \ design \ frontend \ Magento \ luma \ Magento_Catalog \ templates \ product \ list.phtml. Ale to nie zadziałało. Czy mogę wiedzieć, gdzie zrobiłem źle?
Vigna S

Ten sam problem, bez względu na to, ile razy uderzyłem w odświeżenie, domyślny jest ładowany nad moim niestandardowym. I TAK, mam prawidłową ścieżkę, zanim ktokolwiek zapyta, ale używam kompozytora do zainstalowania Magento, więc ustawienia domyślne znajdują się w różnych lokalizacjach, jeśli to ma znaczenie.
Dustin Poissant

Musiałem wyczyścić pamięć podręczną bloków HTML, a potem zadziałało to idealnie! ( Wyczyszczam pamięć podręczną jak ten blog.gardenhouse.io/2018/05/29/… )
Paul

Jak jednak zastąpić szablon z modułu?
Czarny,

8

Odpowiadam na własne pytanie

Dowiedziałem się, jak zastąpić pliki .phtml w lokalizacjach wymienionych w moim pytaniu,

Musisz umieścić je w następujących lokalizacjach, aby zastąpić oryginalne pliki

app\design\frontend\<VENDOR_NAME>\<THEME_NAME>\Magento_Catalog\templates\product\view

I wierzę, że teoria jest taka sama w przypadku przesłonięcia innych plików .phtml w Magento 2


Czy mógłbyś prosić o więcej ... Jakbym musiał skopiować mój niestandardowy plik phtml do folderu motywu isit? jak w app \ design \ frontend \ <VENDOR_NAME> \ luma \ Magento_Catalog \ Czy powinienem utworzyć folder Vendor i skopiować do niego podstawowy plik phtml? Jeśli w ten sposób nie potrzebujesz szablonów w folderze widoku?
Sushivam,

Cześć, próbuję zastąpić plik phtml widżetu i nie jestem pewien, czy użyta ścieżka jest poprawna. Czy część Magento_Catalog Twojej ścieżki jest specyficzna dla nadpisanego folderu modułu? Więc jeśli przesłonię dostawcę \ magento \ moduł-katalog-widget \ widok \ frontend \ szablony \ produkt \ widget \ zawartość, czy zastąpiłbym Magento_Catalog w twoim wystąpieniu Magento_Catalog_Widget w moim przypadku? Trochę zdezorientowany, ponieważ nie jest jeszcze dla mnie jasne.
robgt

6

Aby zastąpić pliki phtml, layout i web, aby utworzyć własny motyw

1) Aby zastąpić plik szablonu:

vendor / magento / module-catalogue / view / frontend / templates / product / list.phtml

Podążaj tą ścieżką

app / design / frontend / Vendor / theme / Magento_Catalog / templates / product / list.phtml

2) Aby zastąpić plik układu:

vendor / magento / module-catalogue / view / frontend / layout / catalog_product_view.xml

Podążaj tą ścieżką

app / design / frontend / Vendor / theme / Magento_Catalog / layout / catalog_product_view.xml


Jak zastąpić / dostosować inne pliki modułów, takie jak Observer, Kontroler itp?
Tahir Yasin

6

Aby zastąpić pliki pthml i układów z

vendor/magento/module-catalog/view/frontend/templates/product/list.phtml

w

app/Mycompany/OverideCatalog/view/frontend/templates/product/list.phtml

Układ:

vendor/magento/module-catalog/view/frontend/layout/catalog_category_view.xml

w

app/Mycompany/OverideCatalog/view/frontend/layout/catalog_category_view.xml

<block class="Magento\Catalog\Block\Product\ListProduct" name="category.products.list" as="product_list" template="Mycompnay_OverideCatalog::product/list.phtml">

3

zastępuj szablony (phtml) według niestandardowych motywów

jeśli chcesz przesłonić vendor\magento\module-catalog\view\frontend\templates\product\some.phtmlnajpierw, musisz utworzyć motyw niestandardowy, zapoznaj się z tym linkiem, aby dowiedzieć się, jak utworzyć motyw niestandardowy.

następnie utwórz plik phtml w niestandardowym motywie, aby zastąpić domyślny

 app/design/frontend/vendor-name/theme-name/Magento_Catalog/templates/product/some.phtml

to w końcu wyczyść pamięć podręczną Magento oraz przeglądarkę, a następnie sprawdź swoją stronę, tylko nowy plik phtml został odzwierciedlony.

w ten sam sposób można zastąpić wszystkie szablony.

powodzenia


Dzięki, właśnie to rozgryzłem i odpowiedziałem na ustalenia w moich własnych pytaniach, twoja odpowiedź jest bardzo podobna do moich ustaleń.
nuwaus

2

Otwórz folder: /vendor/magento/theme-frontend-luma/i skopiuj szablony modułów i pliki układu z folderu widoku.

Następnie utwórz foldery: /app/design/frontend/spacename/Theme/

Następnie utwórz folder modułu, a następnie utwórz szablony i folder układu.

Wstaw szablony i pliki układu z folderu widoku modułu.


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.