W nowej instalacji Magento zawiera kilka domyślnych stron CMS, które można edytować CMS > Pages
. Zawiera jednak także kilka „nieedytowalnych” stron CMS: Orders and Returns
i Contact Us
… obie są stronami zawierającymi formularze, i podkreśla niedociągnięcie Magento CE: tworzenie i edytowanie formularzy.
Udało mi się zastąpić domyślny formularz Kontakt z własnym formularzem, ale chciałbym dodać inny formularz i być może w przyszłości będę musiał dodać więcej formularzy. Jak do tej pory mam dość tworzenia modułów Magento w celu zastąpienia istniejących funkcji i stron.
Zacząłem pracować nad modułem, który umożliwiłby tworzenie stron formularzy w Magento, ale muszą one być niewidoczne dla zarządzania CMS, tak jak formularze domyślne. Znalazłem odpowiedzi na programowe tworzenie strony CMS, ale to dodaje ją do Magento CMS > Pages
.
Jak utworzyć stronę CMS, którą można edytować tylko za pomocą modułu Magento?
źródło
Odpowiedzi:
W rzeczywistości „Kontakt” i „Zamówienia i zwroty” nie są stronami CMS. W rzeczywistości są to strony z oddzielnego modułu. Są bardziej podobne do strony „Zaloguj się” lub „Zarejestruj się” niż do stron CMS. Aby utworzyć taką stronę, możesz utworzyć prosty moduł ze sterownikiem, jednym blokiem i jednym szablonem. Nazwijmy rozszerzenie Easylife_Customform. Do tego potrzebne będą następujące pliki.
app/etc/modules/Easylife_Customform.xml
- plik deklaracji modułuapp/code/local/Easylife/Customform/etc/config.xml
- plik konfiguracyjnyapp/design/frontend/base/default/layout/easylife_customform.xml
- plik układu interfejsuapp/code/local/Easylife/Customform/Helper/Data.php
- domyślny pomocnik modułuapp/design/frontend/base/default/template/easylife_customform/form.phtml
- rzeczywisty HTML dla formularza - spraw, aby wyglądał tak, jak potrzebujeszapp/code/local/Easylife/Customform/controllers/IndexController.php
- kontroler modułuTo powinno być to. Wyczyść pamięć podręczną i powinieneś mieć dostęp do formularza,
mysite.com/customform
mam nadzieję, że poprawnie napisałem kod i niczego nie przeoczyłem
źródło
<reference name="head"> <action method="setTitle" translate="title"><title>Subscribe to our Newsletter</title></action> </reference>
nie zadziała.Mage::getSingleton('core/session')->addError("Error");
ale bez powodzenia. To jedyny komunikat o sukcesie. Jakaś pomoc?