Come sovrascrivere i file .phtml in Magento 2


15

Voglio personalizzare la pagina dei dettagli del prodotto, quindi è necessario sovrascrivere alcuni file .phtml nelle seguenti posizioni.

Quindi voglio sapere come sovrascrivere i file .phtml in vendor\magento\module-catalog\view\frontend\templates\productovendor\magento\module-theme\view

Risposte:


23

A volte è necessario apportare modifiche ai modelli esistenti. Invece di apportare modifiche direttamente ai file modello esistenti, dovremmo sostituirli nel nostro tema. Supponiamo di voler aggiornare la pagina di elenco delle categorie ( list.phtml). Per fare ciò, creare la seguente struttura di directory:

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

Qui presumo che il nostro tema attuale sia di base. Ora copia il file list.phtml nella directory del prodotto dal seguente percorso:

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

Ora puoi apportare qualsiasi modifica desideri al tuo file sovrascritto.

Per i dettagli, leggi questo tutorial che ti aiuta molto.


2
Salve, ho appena ignorato il file list.phtml nel seguente percorso, \ app \ design \ frontend \ Magento \ luma \ Magento_Catalog \ templates \ product \ list.phtml. Ma non ha funzionato. Posso sapere dove ho sbagliato?
— Vigna S,

Stesso problema, non importa quante volte premo aggiorna quello predefinito viene caricato su quello personalizzato. E SÌ ho il percorso corretto prima che qualcuno lo chieda, ma sto usando il compositore per installare Magento, quindi le impostazioni predefinite sono in posizioni diverse, se questo è importante.
— Dustin Poissant,

Ho dovuto svuotare la cache dei blocchi html e quindi questo ha funzionato perfettamente per me! ( Svuoto cache come questo blog.gardenhouse.io/2018/05/29/… )
— paul

Come sovrascrivere il modello dal modulo però?
— Nero

8

Sto rispondendo alla mia domanda

Ho scoperto come sovrascrivere i file .phtml nelle posizioni menzionate nella mia domanda,

Devi metterli nelle seguenti posizioni per sovrascrivere i file originali

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

E credo che la teoria sia la stessa per sovrascrivere qualsiasi altro file .phtml in Magento 2


Potresti per favore riassumere di più ... Come se dovessi copiare il mio file phtml personalizzato nella cartella del tema isit? come in app \ design \ frontend \ <VENDOR_NAME> \ luma \ Magento_Catalog \ Dovrei creare la mia cartella Vendor e copiare il file phtml di base in esso? Se così facendo, non hai bisogno di modelli nella cartella di visualizzazione?
— Sushivam,

Ciao, sto cercando di sostituire un file phtml per un widget e non sono sicuro che il percorso che ho usato sia corretto. Magento_Catalog fa parte del tuo percorso specifico della cartella del modulo che stai sostituendo? Quindi, se sovrascrivo il fornitore \ magento \ module-catalog-widget \ view \ frontend \ templates \ product \ widget \ content, sostituirei Magento_Catalog nella tua istanza con Magento_Catalog_Widget nella mia istanza? Leggermente confuso perché non mi è ancora chiaro.
— robgt,

6

Per sovrascrivere i file phtml, layout e web con il proprio tema personalizzato

1) Per sostituire il file modello:

vendor / Magento / module-catalogo / view / frontend / templates / prodotto / list.phtml

Segui questo percorso

app / design / frontend / Venditore / tema / Magento_Catalog / templates / prodotto / list.phtml

2) Per sostituire il file di layout:

vendor / Magento / module-catalogo / view / frontend / layout / catalog_product_view.xml

Segui questo percorso

app / design / frontend / Venditore / tema / Magento_Catalog / layout / catalog_product_view.xml


Come sovrascrivere / personalizzare altri file del modulo come Observer, Controller ecc?
— Tahir Yasin,

6

Per sovrascrivere i file pthml e layout da

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

in

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

Disposizione:

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

in

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

sovrascrive i modelli (phtml) per tema personalizzato

se desideri sostituire vendor\magento\module-catalog\view\frontend\templates\product\some.phtmlprima devi creare il tuo tema personalizzato, fai riferimento a questo link per come creare un tema personalizzato.

successivamente crea il file phtml nel tuo tema personalizzato per sovrascrivere quello predefinito

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

questo finalmente cancella la cache di magento e il browser, quindi controlla la tua pagina, solo il nuovo file phtml si riflette.

allo stesso modo in cui puoi eseguire l'override di tutti i modelli.

in bocca al lupo


Grazie, l'ho appena capito e ho risposto alla scoperta delle mie domande, la tua risposta è molto simile alle mie scoperte.
— Nuwaus,

2

Apri cartella: /vendor/magento/theme-frontend-luma/e copia i modelli di modulo e i file di layout dalla cartella di visualizzazione.

Quindi creare cartelle: /app/design/frontend/spacename/Theme/

Quindi creare la cartella del modulo e quindi creare modelli e cartella di layout.

Inserire i modelli e i file di layout dalla cartella della vista del modulo.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.