swoją stronkę chciałbym wzbogacić o prosty formularz kontaktowy pozwalający na wysłanie maila pod zadany adres. Wzoruję się na tym tutorialu: http://old.karolnowicki.pl/zend-framework/...omia-zend_form/. Po przejściu do podstrony z formularzem dostaję: "An error occurred Application error" w części zarezerwowanej dla treści z widoku. Poniżej kod:
/application/forms/Kontakt.php
<?php class Application_Form_Kontakt extends Zend_Form { public function init() { $sender = $this->createElement('text', 'sender'); $sender ->setLabel('Twoje imię i nazwisko:') ->setRequired(TRUE) ->setAttrib('size', 50) new Zend_Filter_StringTrim(), new Zend_Filter_StripNewlines(), new Zend_Filter_StripTags() )) new Zend_Validate_NotEmpty(), new Zend_Validate_StringLength(5, 100) )); $email = $this->createElement('text', 'email'); $email ->setLabel('Twój adres email:') ->setRequired(TRUE) ->setAttrib('size', 50) new Zend_Filter_StringToLower(), new Zend_Filter_StringTrim(), new Zend_Filter_StripNewlines(), new Zend_Filter_StripTags() )) new Zend_Validate_NotEmpty(), new Zend_Validate_StringLength(5, 100), new Zend_Validate_EmailAddress() )); $subject = $this->createElement('text', 'subject'); $subject->setLabel('Temat wiadomości:') new Zend_Filter_StringTrim(), new Zend_Filter_StripNewlines(), new Zend_Filter_StripTags() )) new Zend_Validate_NotEmpty() )) ''=>'Wybierz temat wiadomości', 'kontakt'=>'Prośba o kontakt', 'pomoc'=>'Pomoc', 'blad'=>'Błąd na stronie' )); $text = $this->createElement('textarea', 'text'); $text ->setLabel('Treść wiadomości:') ->setRequired(TRUE) 'cols'=>50, 'rows'=>10 )) new Zend_Filter_StringTrim(), new Zend_Filter_StripTags() )) new Zend_Validate_NotEmpty(), new Zend_Validate_StringLength(5, 100) )); $sender, $email, $subject, $text, } }
/application/controllers/indexController.php
<?php class IndexController extends Zend_Controller_Action { public function kontaktAction() { $form = new Application_Form_Kontakt(); $form->setAction('wyslano')->setMethod('post'); // $this->_forward('wyslano'); // $this->view->form = $form; } public function wyslanoAction() { // Tu chcę przetworzyć formularz i wysłać maila, o ile wcześniej uda mi się poprawnie wyświetlić... } }
/application/wievs/scripts/index/kontakt.phtml
<?php $this->headTitle()->append('kontakt'); ?> <div id="contact-pic"> </div> <div id="contact-form"> </div>
Próba utworzenia obiektu klasy Application_Form_Kontakt wywołuje ten błąd. Mam ustawione pokazywanie błędów w application.ini ale poza wspomnianym komunikatem nic się nie wyświetla.
EDIT:
Problem rozwiązany.
Przeoczyłem, że "resources.frontController.params.displayExceptions" w pliku applicatnion.ini miało ustawione wartość "0" przez co nie widziałem pełnych komunikatów błędu aplikacji. Po przestawieniu okazało się, że w pliku Kontakt.php są dwa błędy:
1. addMultiOptions() - taka metoda nie istnieje - całe pole formularza zastąpiłem nieco inną konstrukcją.
2. metoda setAttrib() przyjmuje dwa argumenty, jeśli chcemy podać ich więcej (np. w tablicy jak w kodzie powyżej) to musimy zastosować metodę setAttribs().