File html Magento 2 e file phtml nel processo di modello personalizzato?


10

Come ho verificato dalla documentazione di Magento 2 sulla modifica del contenuto delle minicart.

Ci sono due modi:

  1. In questa pagina: http://devdocs.magento.com/guides/v2.0/frontend-dev-guide/themes/theme-inherit.html

Lo cambiamo personalizzando minicart.phml e inserendolo in: app/design/frontend/OrangeCo/orange/Magento_Checkout/templates/cart/minicart.phtml

  1. Ma sull'altra pagina: http://devdocs.magento.com/guides/v2.0/frontend-dev-guide/templates/template-sample.html

Lo personalizziamo in content.html e lo inseriamo in:

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

Quindi queste domande sono:

In che modo magento 2 decide quando utilizzare il file html e il file phtml?

Questo è legato alla modalità 3 in Magento 2: Default, Developer and Production?

Risposte:


10

Entrambi .phtmle .htmlfile fanno parte del livello di visualizzazione nella differenza di Magento 2 in quanto i phtmlfile funzionano con Block, che secondo Magento Docs è una classe PHP speciale che di solito (ma non sempre) è strettamente collegata a un modello. I blocchi di solito funzionano con il livello del modello (core Magento) per manipolare i dati e restituire risultati / risposta ai modelli (file .phtml o .html). Questi file vengono utilizzati dai file di layout nell'impostazione dei modelli per determinati blocchi e così via.

htmli file all'altra estremità vengono utilizzati esclusivamente per visualizzare contenuti sul frontend e le librerie javascript come knockout JS li usano di conseguenza. Questi file vengono utilizzati anche per il caricamento del contenuto AJAX.


6

file phtml usati come template php back-end. file html utilizzati come modelli javascript frontend.

Questo non è correlato alla modalità Magento.


Non credo, hai controllato tutti i file phtml del modulo in frontend / template. Tutti questi file sono utilizzati solo per il modello php back-end? Perché la cartella di visualizzazione di ogni modulo ha due cartelle: frontend e backend?
thienphucvx,

quando dico frontend / backend intendo sul server / sul lato client. La cartella adminhtml è il pannello di amministrazione e il frontend è la parte Store Store (può avere la parte frontend / backend)
KAndy

Penso di avere il tuo punto su HTML è reso da JavaScript. Ma non sono chiaro il motivo per cui lo stanno usando. Ad esempio, personalizziamo il contenuto della minicart su content.html . Ma per personalizzare il modulo in revisione, lo modifichiamo su form.phtml ( devdocs.magento.com/guides/v2.0/frontend-dev-guide/templates/… )
thienphucvx

m2 ha molti codici legacy (m1). non tutte le parti vengono refactored, ma il processo di spostamento del rendering dei contenuti sul lato client continuerà. e puoi usare il rendering lato client
KAndy

Quindi in futuro significa che esiste solo un file html per il lato client?
thienphucvx,

2

@thienphucvx La documentazione su http://devdocs.magento.com/guides/v2.0/frontend-dev-guide/themes/theme-inherit.html non è corretta.

La risposta corretta è all'interno di: http://devdocs.magento.com/guides/v2.0/frontend-dev-guide/templates/template-sample.html .

Se dovessi guardare il file a cui fa riferimento il primo link vendor/magento/module-checkout/view/frontend/templates/cart/minicart.phtmlvedresti che non puoi modificare il posizionamento degli oggetti nella minicart con il pulsante di pagamento.

Questo perché quella parte della minicart è qui: vendor/magento/module-checkout/view/frontend/web/template/minicart/content.html

Quando trovo incoerenze nei documenti, come hai fatto qui, apro una richiesta pull in GitHub. Ci sono troppi documenti per il team di documentazione per essere sempre corretti al 100%. Apri un PR, rivedranno il tuo aggiornamento ... e se non sono sicuri di se stessi, raggiungeranno un'autorità interna in materia e ti risponderanno con un feedback sul fatto che tu sia corretto o meno. Sono amichevoli. Fallo!

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.