Magento 2 arquivo html e arquivo phtml no processo de modelo personalizado?


10

Como verifiquei na documentação do magento 2 sobre a alteração do conteúdo do minicart.

Existem duas maneiras:

  1. Nesta página: http://devdocs.magento.com/guides/v2.0/frontend-dev-guide/themes/theme-inherit.html

Nós o alteramos personalizando minicart.phml e colocando-o em: app/design/frontend/OrangeCo/orange/Magento_Checkout/templates/cart/minicart.phtml

  1. Mas na outra página: http://devdocs.magento.com/guides/v2.0/frontend-dev-guide/templates/template-sample.html

Nós o personalizamos em content.html e o colocamos em:

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

Então, essas perguntas são:

Como o magento 2 decide quando usar os arquivos html e phtml?

Isso está relacionado ao modo 3 no Magento 2: Padrão, Desenvolvedor e Produção?

Respostas:


10

Ambos os arquivos .phtmle .htmlfazem parte da camada de visualização na diferença do Magento 2, já que os phtmlarquivos funcionam com o Block, que de acordo com o Magento Docs é uma classe PHP especial que geralmente (mas nem sempre) está intimamente ligada a um modelo. Os blocos geralmente trabalham com a camada de modelo (Magento principal) para manipular dados e retornar resultados / resposta aos modelos (arquivos .phtml ou .html). Esses arquivos são usados ​​pelos arquivos de layout na configuração de modelos para determinados blocos e assim por diante.

htmlos arquivos na outra extremidade são usados ​​apenas para exibir conteúdo nas bibliotecas front-end e javascript, como JS knockout, os usam de acordo. Esses arquivos também são usados ​​para carregamento de conteúdo AJAX.


6

arquivos phtml usados ​​como modelos de back-end php. arquivos html usados ​​como modelos javascript de front-end.

Isso não está relacionado ao modo Magento.


Acho que não, você já conferiu todos os arquivos phtml de módulos no frontend / templates. Todos esses arquivos são usados ​​apenas para o modelo php de back-end? Por que a pasta view de cada módulo possui duas pastas: frontend e backend?
thienphucvx

quando digo frontend / backend, quero dizer no servidor / no lado do cliente. O adminhtml pasta é Painel de Administração e frontend é Store Front parte (pode ter frontend / backend parte)
Kandy

Acho que entendi seu ponto de vista sobre html é processado por javascript. Mas não estou claro por que eles estão usando. Por exemplo, personalizamos o conteúdo do minicart em content.html . Mas para personalizar forma na revisão, editá-lo em form.phtml ( devdocs.magento.com/guides/v2.0/frontend-dev-guide/templates/... )
thienphucvx

m2 possui muitos códigos herdados (m1). nem todas as partes são refatoradas, mas o processo de mover a renderização do conteúdo no lado do cliente continuará. e você pode utilizar o processamento do lado do cliente
Kandy

Então isso significa que, no futuro, existe apenas arquivo html para o lado do cliente?
thienphucvx

2

@thienphucvx A documentação em http://devdocs.magento.com/guides/v2.0/frontend-dev-guide/themes/theme-inherit.html está incorreta.

A resposta correta está em: http://devdocs.magento.com/guides/v2.0/frontend-dev-guide/templates/template-sample.html .

Se você olhar o arquivo mencionado no primeiro link, vendor/magento/module-checkout/view/frontend/templates/cart/minicart.phtmlverá que não pode modificar o posicionamento dos itens no minicart com o botão de checkout.

Isso ocorre porque essa parte do minicart está aqui: vendor/magento/module-checkout/view/frontend/web/template/minicart/content.html

Quando encontro inconsistências nos documentos, como você tem aqui, abro uma solicitação de recebimento no GitHub. Há muitos documentos para a equipe de documentação estar 100% correta o tempo todo. Abra um PR, eles revisarão sua atualização ... e, se não tiverem certeza, entrarão em contato com uma autoridade interna sobre o assunto e responderão com um feedback sobre a sua correção ou não. Eles são amigáveis. Vá em frente!

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.