Estou tentando substituir o register.phtml no meu módulo, mas parece que há algum problema de configuração que torna o Magento incapaz de usar meu modelo personalizado para substituir o do módulo principal. Verifiquei o código, mas não consigo encontrar o problema. Alguém pode ajudar? Desde já, obrigado. 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 em 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>
compositer.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"
]
]
}
}
Use este código no seu arquivo de layout:
Ele substitui "layout" por "página" e adiciona a tag body
EDIT: segunda alternativa é remover o bloco original e adicionar um novo com o modelo desejado
fonte
setTemplate
método, que encontra o modelo no mesmo módulo. Solução muito suja, mas a única coisa que funcionou para mim!Faltou a tag <body> após a tag <page>, tente:
fonte
Substituir os métodos setTemplate funciona melhor para mim.
fonte
Eu sei que isso é antigo, mas se ajudar alguém,
este problema do github magento2 / issues / 3356 afirma que o método referenceBlock e argumentos (mencionado na pergunta) sofre de um bug em oposição ao método obsoleto e de trabalho:
a documentação (Definir um modelo de bloco) não reflete o estado real das coisas.
fonte