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.