En una nueva instalación de Magento, viene con varias páginas CMS predeterminadas en las que puede editar CMS > Pages
. Sin embargo, también viene con un par de páginas CMS "no editables": Orders and Returns
y Contact Us
... ambas son páginas con formularios, y resalta una deficiencia en Magento CE: crear y editar formularios.
Me las arreglé para anular el contacto predeterminado con mi propio formulario, pero me gustaría agregar otro formulario y es posible que necesite agregar más formularios en el futuro. Estoy algo familiarizado con la creación de módulos de Magento para anular las funciones y páginas existentes, como lo he hecho hasta ahora.
He comenzado a trabajar en un módulo que permitiría la capacidad de crear páginas de formulario en Magento, pero tienen que ser invisibles para la administración del CMS, como lo son los formularios predeterminados. He encontrado respuestas para crear mediante programación una página de CMS, pero eso la agrega a la de Magento CMS > Pages
.
¿Cómo creo una página CMS que solo es editable por un módulo de Magento?
fuente
Respuestas:
En realidad, 'Contáctenos' y 'Pedidos y devoluciones' no son páginas de CMS. En realidad son páginas de un módulo separado. Se parecen más a la página 'Iniciar sesión' o 'Registrarse' que a las páginas CMS. Para crear una página como esta, puede crear un módulo simple con un controlador, un bloque y una plantilla. Llamemos a la extensión Easylife_Customform. Para esto necesitará los siguientes archivos.
app/etc/modules/Easylife_Customform.xml
- archivo de declaración del móduloapp/code/local/Easylife/Customform/etc/config.xml
- archivo de configuraciónapp/design/frontend/base/default/layout/easylife_customform.xml
- archivo de diseño de interfazapp/code/local/Easylife/Customform/Helper/Data.php
- ayudante de módulo predeterminadoapp/design/frontend/base/default/template/easylife_customform/form.phtml
- el html real para el formulario - haga que parezca que necesitaapp/code/local/Easylife/Customform/controllers/IndexController.php
- el controlador del móduloEsto debería ser. Borre el caché y debería poder acceder al formulario en
mysite.com/customform
Espero haber escrito el código correctamente y no me haya perdido algo
fuente
<reference name="head"> <action method="setTitle" translate="title"><title>Subscribe to our Newsletter</title></action> </reference>
no funcionará.Mage::getSingleton('core/session')->addError("Error");
pero no tuve suerte. Solo muestra un mensaje de éxito. ¿Alguna ayuda?