Em uma nova instalação do Magento, ele vem com várias páginas CMS padrão nas quais você pode editar CMS > Pages
. No entanto, ele também vem com algumas páginas CMS "não editáveis": Orders and Returns
e Contact Us
... ambas são páginas com formulários, e destaca uma falha no Magento CE: criação e edição de formulários.
Consegui substituir o Fale Conosco padrão por meu próprio formulário, mas gostaria de adicionar outro formulário e talvez seja necessário adicionar mais formulários no futuro. Estou familiarizado com a criação de módulos Magento para substituir funções e páginas existentes, como fiz até agora.
Comecei a trabalhar em um módulo que permitiria criar páginas de formulário no Magento, mas elas precisam ser invisíveis para o gerenciamento do CMS, como os formulários padrão. Eu encontrei respostas para criar programaticamente uma página do CMS, mas isso a adiciona ao Magento CMS > Pages
.
Como crio uma página do CMS que só é editável por um módulo Magento?
fonte
Respostas:
Na verdade, 'Fale conosco' e 'Pedidos e devoluções' não são páginas do CMS. Na verdade, são páginas de um módulo separado. Eles são mais parecidos com a página 'Login' ou 'Registrar' do que com páginas do CMS. Para criar uma página como essa, você pode criar um módulo simples com um controlador, um bloco e um modelo. Vamos chamar a extensão Easylife_Customform. Para isso, você precisará dos seguintes arquivos.
app/etc/modules/Easylife_Customform.xml
- arquivo de declaração do móduloapp/code/local/Easylife/Customform/etc/config.xml
- arquivo de configuraçãoapp/design/frontend/base/default/layout/easylife_customform.xml
- arquivo de layout de front-endapp/code/local/Easylife/Customform/Helper/Data.php
- auxiliar de módulo padrãoapp/design/frontend/base/default/template/easylife_customform/form.phtml
- o html real do formulário - faça com que pareça necessárioapp/code/local/Easylife/Customform/controllers/IndexController.php
- o controlador do móduloDeve ser isso. Limpe o cache e você poderá acessar o formulário em
mysite.com/customform
Espero ter escrito o código corretamente e não tenha perdido nada
fonte
<reference name="head"> <action method="setTitle" translate="title"><title>Subscribe to our Newsletter</title></action> </reference>
não funcionará.Mage::getSingleton('core/session')->addError("Error");
mas sem sorte. Está apenas mostrando uma mensagem de sucesso. Qualquer ajuda?