L'insertion de blocs dans des endroits Magento2
Dans Magento 1
Je peux le modifier local.xml
comme suit:
<default>
<reference name="root">
<block type="core/template" name="above_main" template="page/html/banner.phtml" />
</reference>
</default>
Je peux modifier un fichier de modèle comme suit:
<body<?php echo $this->getBodyClass()?' class="'.$this->getBodyClass().'"':'' ?>>
<?php echo $this->getChildHtml('after_body_start') ?>
<div class="wrapper">
<?php echo $this->getChildHtml('global_notices') ?>
<div class="page">
<?php echo $this->getChildHtml('header') ?>
<?php //MY EDIT: ?>
<?php echo $this->getChildHtml('above_main');
<div class="main-container col2-left-layout">
<div class="main">
<?php echo $this->getChildHtml('breadcrumbs') ?>
<!-- rest of page... -->
Ce sera à la fin avec le fichier à page/html/banner.phtml
être insérés dans le modèle à ma propre position, above_main
.
OK, donc ma question est:
Comment puis-je faire dans Magento 2?
- Vous pouvez utiliser default.xml pour atteindre cet objectif.
- montrez-moi comment faire et je vais vous donner une tique
Vous devez vous connecter pour publier un commentaire.
Il n'y a plus local.xml dans Magento 2. Magento a plutôt choisi d'avoir l'ensemble de l'XML dans le module. Si vous souhaitez modifier le XML pour un module, vous aurez à faire un nouveau fichier XML avec le même nom dans votre équivalent répertoire de thème et de faire les modifications de là.
Il existe de nombreuses façons d'insérer votre modèle dans une page en particulier.
Alternative 1
Supposons que vous voulez ajouter un modèle de page de détails du produit. Vous devez créer un nouveau fichier xml
catalog_product_view.xml
dans votre module. Vous xml code pourrait ressembler à ceci:Ici, je suis l'insertion d'un modèle personnalisé sur la page produit. Vous pouvez utiliser
before/after
balise pour organiser votre conteneur en fonction de votre besoin de l'endroit où vous voulez placer votre modèle. Même manière, vous pouvez créer des fichiers de mise en page dans le module de compte à la poignée de la page. Ex: vous pouvez utilisercms_index_index.xml
pour la page d'accueil.La variante 2
Vous pouvez appeler votre fichier template personnalisé dans tout autre modèle de fichier à l'aide du code suivant:
La variante 3
Jetez un oeil à ce tutoriel qui montre comment vous pouvez utiliser default.xml pour apporter des changements structurels https://gielberkers.com/creating-blocks-in-magento-2/