Sur une nouvelle installation de Magento, il est livré avec plusieurs pages CMS par défaut que vous pouvez modifier CMS > Pages
. Cependant, il est également livré avec quelques pages CMS "non modifiables": Orders and Returns
et Contact Us
... qui sont toutes deux des pages avec des formulaires, et met en évidence une lacune dans Magento CE: la création et la modification de formulaires.
J'ai réussi à remplacer le formulaire Contactez-nous par défaut avec mon propre formulaire, mais je voudrais ajouter un autre formulaire et je devrais peut-être ajouter d'autres formulaires à l'avenir. Je suis un peu familier avec la création de modules Magento pour remplacer les fonctions et les pages existantes, comme je l'ai fait jusqu'à présent.
J'ai commencé à travailler sur un module qui permettrait de créer des pages de formulaire dans Magento, mais elles doivent être invisibles pour la gestion du CMS comme le sont les formulaires par défaut. J'ai trouvé des réponses à la création par programme d'une page CMS, mais cela l'ajoute à Magento CMS > Pages
.
Comment créer une page CMS qui n'est modifiable que par un module Magento?
la source
Réponses:
En fait, «Contactez-nous» et «Commandes et retours» ne sont pas des pages CMS. Ce sont en fait des pages d'un module distinct. Ils ressemblent plus à la page «Connexion» ou «Inscription» qu'à des pages CMS. Pour créer une page comme celle-ci, vous pouvez créer un module simple avec un contrôleur, un bloc et un modèle. Appelons l'extension Easylife_Customform. Pour cela, vous aurez besoin des fichiers suivants.
app/etc/modules/Easylife_Customform.xml
- fichier de déclaration de moduleapp/code/local/Easylife/Customform/etc/config.xml
- fichier de configurationapp/design/frontend/base/default/layout/easylife_customform.xml
- fichier de mise en page frontendapp/code/local/Easylife/Customform/Helper/Data.php
- assistant de module par défautapp/design/frontend/base/default/template/easylife_customform/form.phtml
- le html réel du formulaire - donnez l'impression que vous avez besoinapp/code/local/Easylife/Customform/controllers/IndexController.php
- le contrôleur de moduleÇa devrait être ça. Videz le cache et vous devriez pouvoir accéder au formulaire sur
mysite.com/customform
J'espère avoir écrit le code correctement et ne rien manquer
la source
<reference name="head"> <action method="setTitle" translate="title"><title>Subscribe to our Newsletter</title></action> </reference>
ne fonctionnera pas.Mage::getSingleton('core/session')->addError("Error");
mais pas de chance. Son seul message de succès. De l'aide?