Bei einer Neuinstallation von Magento sind mehrere Standard-CMS-Seiten enthalten, auf denen Sie Änderungen vornehmen können CMS > Pages
. Es enthält jedoch auch ein paar "nicht bearbeitbare" CMS-Seiten: Orders and Returns
und Contact Us
... beide sind Seiten mit Formularen und heben einen Nachteil in Magento CE hervor: das Erstellen und Bearbeiten von Formularen.
Ich habe es geschafft, das Standardformular "Kontakt" mit meinem eigenen Formular zu überschreiben, möchte jedoch ein anderes Formular hinzufügen und muss möglicherweise in Zukunft weitere Formulare hinzufügen. Ich bin einigermaßen vertraut mit der Erstellung von Magento-Modulen, um vorhandene Funktionen und Seiten zu überschreiben, wie ich es bisher getan habe.
Ich habe begonnen, an einem Modul zu arbeiten, mit dem Formularseiten in Magento erstellt werden können, sie müssen jedoch für die CMS-Verwaltung unsichtbar sein, wie dies bei den Standardformularen der Fall ist. Ich habe Antworten zum programmgesteuerten Erstellen einer CMS-Seite gefunden, aber das fügt sie Magento hinzu CMS > Pages
.
Wie erstelle ich eine CMS-Seite, die nur von einem Magento-Modul bearbeitet werden kann?
quelle
Antworten:
Tatsächlich handelt es sich bei "Kontakt" und "Bestellungen und Rücksendungen" nicht um CMS-Seiten. Sie sind eigentlich Seiten aus einem separaten Modul. Sie ähneln eher der "Login" - oder "Register" -Seite als den CMS-Seiten. Um eine solche Seite zu erstellen, können Sie ein einfaches Modul mit einem Controller, einem Block und einer Vorlage erstellen. Nennen wir die Erweiterung Easylife_Customform. Dazu benötigen Sie folgende Dateien.
app/etc/modules/Easylife_Customform.xml
- Moduldeklarationsdateiapp/code/local/Easylife/Customform/etc/config.xml
- Konfigurationsdateiapp/design/frontend/base/default/layout/easylife_customform.xml
- Frontend-Layout-Dateiapp/code/local/Easylife/Customform/Helper/Data.php
- Standardmodulhilfeapp/design/frontend/base/default/template/easylife_customform/form.phtml
- das eigentliche HTML für das Formular - lassen Sie es so aussehen, wie Sie es brauchenapp/code/local/Easylife/Customform/controllers/IndexController.php
- die ModulsteuerungDas sollte es sein. Leeren Sie den Cache und Sie sollten in der Lage sein, auf das Formular zuzugreifen.
mysite.com/customform
Ich hoffe, dass ich den Code richtig geschrieben habe und nichts verpasst habe
quelle
<reference name="head"> <action method="setTitle" translate="title"><title>Subscribe to our Newsletter</title></action> </reference>
funktioniert nicht.Mage::getSingleton('core/session')->addError("Error");
aber kein Glück hinzuzufügen . Es wird nur die Erfolgsmeldung angezeigt. Irgendeine Hilfe?