Como substituir arquivos .phtml no Magento 2

15

Quero personalizar a página de detalhes do produto, portanto, é necessário substituir alguns arquivos .phtml nos seguintes locais.

Então, eu quero saber como substituir arquivos .phtmlvendor\magento\module-catalog\view\frontend\templates\product ouvendor\magento\module-theme\view

nuwaus
fonte

Respostas:

23

Às vezes, precisamos fazer modificações nos modelos existentes. Em vez de fazer alterações diretamente nos arquivos de modelo existentes, devemos substituí-los em nosso próprio tema. Suponhamos que desejamos atualizar a página de listagem de categorias ( list.phtml). Para fazer isso, crie a seguinte estrutura de diretórios:

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

Aqui presumo que nosso tema atual seja básico. Agora copie o arquivo list.phtml no diretório do produto a partir do seguinte local:

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

Agora você pode fazer as modificações que desejar no seu arquivo substituído.

Para mais detalhes, leia este tutorial, é muito útil.

Arunendra
fonte
2
Olá, Acabei de substituir o arquivo list.phtml no caminho a seguir, \ app \ design \ frontend \ Magento \ luma \ Magento_Catalog \ templates \ product \ list.phtml. Mas não deu certo. Posso saber onde errei?
Vigna S
Mesmo problema, não importa quantas vezes eu pressione Atualizar, o padrão é carregado sobre o meu personalizado. E sim, eu tenho o caminho correto antes que alguém pergunte, mas estou usando o compositor para instalar o magento, para que os padrões estejam em locais diferentes, se isso for importante.
Dustin Poissant
Eu tive que limpar o cache do bloco html e isso funcionou perfeitamente para mim! (I limpar a cache como esta blog.gardenhouse.io/2018/05/29/... )
paul
Como substituir o modelo do seu módulo?
Preto
8

Eu estou respondendo minha própria pergunta,

Descobri como substituir os arquivos .phtml nos locais mencionados na minha pergunta,

Você precisa colocá-los nos seguintes locais para substituir os arquivos originais

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

E acredito que a teoria é a mesma para substituir qualquer outro arquivo .phtml no Magento 2

nuwaus
fonte
Poderia, por favor, informar mais ... Como eu tenho que copiar meu arquivo phtml personalizado para a pasta de temas isit? como em app \ design \ frontend \ <VENDOR_NAME> \ luma \ Magento_Catalog \ Devo ter que criar minha pasta Vendor e copiar o arquivo phtml principal nela? Se, ao fazer isso, não há necessidade de modelos na pasta view?
Sushivam 18/08/16
Oi, Estou tentando substituir um arquivo phtml para um widget e não tenho certeza se o caminho que usei está correto. O Magento_Catalog faz parte do seu caminho específico para a pasta do módulo que você está substituindo? Portanto, se eu estiver substituindo o fornecedor \ magento \ módulo-catálogo-widget \ visualização \ front-end \ modelos \ produto \ widget \ conteúdo, eu substituirei o Magento_Catalog na sua instância por Magento_Catalog_Widget na minha instância? Um pouco confuso, pois ainda não está claro para mim.
robgt
6

Para substituir phtml, layout e arquivos da web para possuir tema personalizado

1) Para substituir o arquivo de modelo:

fornecedor / magento / catálogo de módulos / view / frontend / templates / product / list.phtml

Siga este caminho

app / design / frontend / fornecedor / tema / Magento_Catalog / templates / produto / list.phtml

2) Para substituir o arquivo de layout:

fornecedor / magento / catalog-module / view / frontend / layout / catalog_product_view.xml

Siga este caminho

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

Prince Patel
fonte
Como substituir / personalizar outros arquivos de módulo como Observer, Controller etc?
Tahir Yasin
6

Para substituir os arquivos pthml e layout de

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

para dentro

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

Layout:

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

para dentro

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">
Pramod Kharade
fonte
3

substituir modelos (phtml) por tema personalizado

Se você deseja substituir vendor\magento\module-catalog\view\frontend\templates\product\some.phtmlprimeiro, precisa criar seu tema personalizado, consulte este link para saber como criar um tema personalizado.

depois disso, crie um arquivo phtml no seu tema personalizado para substituir o padrão

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

finalmente, limpe o cache do magento e do navegador e verifique a sua página, apenas o novo arquivo phtml refletido.

Da mesma forma que você pode fazer para a substituição de todos os modelos.

boa sorte

Bilal Usean
fonte
Obrigado, acabei de descobrir e respondi à conclusão em minhas próprias perguntas, sua resposta é muito semelhante à minha.
nuwaus 21/05
2

Abrir pasta: /vendor/magento/theme-frontend-luma/e copie os modelos de módulo e os arquivos de layout da pasta de exibição.

Em seguida, crie pastas: /app/design/frontend/spacename/Theme/

Em seguida, crie a pasta do módulo e, em seguida, crie a pasta de modelos e layout.

Insira os modelos e os arquivos de layout da pasta de exibição do módulo.

Abhinav Singh
fonte