J'essaie de remplacer le register.phtml dans mon module, mais il semble qu'il y ait un problème de configuration qui empêche Magento d'utiliser mon modèle personnalisé pour remplacer celui du module principal. J'ai vérifié le code mais je ne trouve pas le problème. Tout le monde peut aider? Merci d'avance. module.xml:
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
<module name="Namespace_ModuleName" setup_version="0.0.2">
<sequence>
<module name="Magento_Customer"/>
</sequence>
</module>
</config>
customer_account_create.xml sous Namespace \ ModuleName \ view \ frontend \ layout:
<?xml version="1.0"?>
<layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/layout_generic.xsd">
<referenceBlock name="customer_form_register">
<arguments>
<argument name="template" xsi:type="string">Namespace_ModuleName::form/register.phtml</argument>
</arguments>
</referenceBlock>
</layout>
composer.json:
{
"name": "namespace/module-modulename",
"description": "modulename",
"type": "magento2-module",
"version": "0.0.2",
"license": [
"OSL-3.0",
"AFL-3.0"
],
"require": {
"php": "~5.5.0|~5.6.0",
"magento/framework": "~0.42",
"magento/magento-composer-installer": "*",
"magento/module-customer": "*"
},
"extra": {
"map": [
[
"*",
"Namespace/ModuleName"
]
]
}
}
Utilisez plutôt ce code dans votre fichier de mise en page:
Il remplace "layout" par "page" et ajoute la balise body
EDIT: la deuxième alternative consiste à supprimer le bloc d'origine et à en ajouter un nouveau avec le modèle souhaité
la source
setTemplate
méthode, qui trouve ensuite le modèle dans le même module. Solution très sale mais la seule chose qui a fonctionné pour moi!Vous manquez la balise <body> après la balise <page>, veuillez essayer:
la source
Remplacer les méthodes setTemplate fonctionne le mieux pour moi.
la source
Je sais que c'est vieux, mais si ça aide quelqu'un,
ce problème de github magento2 / issues / 3356 indique que la méthode referenceBlock et arguments (mentionnée dans la question) souffre d'un bogue par opposition à la méthode obsolète et de travail:
la documentation (Définir un modèle de bloc) ne reflète pas l'état réel des choses.
la source