Source of file ContactFormController.php
Size: 3,013 Bytes - Last Modified: 2021-12-24T06:45:21+00:00
/var/www/docs.ssmods.com/process/src/code/ContactFormController.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 | <?php class ContactForm_Controller extends Page_Controller { function init() { parent::init(); Requirements::css("mysite/css/Form.css"); Requirements::javascript("mysite/javascript/thirdparty/jquery.js"); Requirements::javascript("mysite/javascript/thirdparty/jquery-validate/jquery.validate.pack.js"); Requirements::javascript("mysite/javascript/thirdparty/jquery-validate/localization/messages_es.js"); Requirements::customScript(' jQuery(document).ready(function() { jQuery("#Form_ContactForm").validate({ rules: { Name: "required", Email: { required: true, email: true }, Comments: { required: true, minlength: 20 } }, messages: { Name: "'._t("ContactPage.NAME","We need your name").'", Email: "'._t("ContactPage.EMAIL","Without your real email address, we can't reach you").'", Comments: "'._t("ContactPage.COMMENTS","What are you thinking? Tell me").'" } }); }); '); } function ContactForm() { // Create fields $fields = new FieldList( TextField::create('Name')->setTitle(_t('ContactPage.NAMEINPUT',"Name <em>*</em>")), TextField::create("Cellphone")->setTitle(_t('ContactPage.CELLPHONE',"Cellphone")), EmailField::create("Email")->setTitle(_t('ContactPage.EMAIL',"Email address"))->setAttribute('type', 'email'), TextareaField::create("Question")->setTitle(_t('ContactPage.QUESTION',"Question <em>*</em>")) ); $this->extend('updateContactForm', $fields); // Create action $send = new FormAction('SendContactForm', _t('ContactPage.SEND',"Send")); $send->addExtraClass("success btn"); $actions = new FieldList( $send ); // Create action $validator = new RequiredFields('Name', 'Email', 'Question'); return new Form($this, 'ContactForm', $fields, $actions, $validator); } function SendContactForm($data, $form) { //saves the question in the database $CustomerQuestion = new CustomerQuestion(); $form->saveInto($CustomerQuestion); $CustomerQuestion->write(); $cp = DataObject::get_one("ContactPage"); //Sets data $From = $data['Email']; $To = $cp->Mailto; $Subject = _t('ContactPage.WEBSITECONTACTMESSAGE',"Website Contact message"); $email = new Email($From, $To, $Subject); //set template $email->setTemplate('ContactEmail'); //populate template $email->populateTemplate(array( "CustomerQuestionID" => $CustomerQuestion->ID, "Name" => $data["Name"], "Cellphone" => $data["Cellphone"], "Email" => $data["Email"], "Question" => $data["Question"] )); //send mail if ($email->send()) { Controller::curr()->redirect(Director::baseURL(). $this->URLSegment . "/success"); }else{ Controller::curr()->redirect(Director::baseURL(). $this->URLSegment . "/error"); } } public function error(){ return $this->httpError(500); } public function success(){ $renderedContent = $this->renderWith('Page', array('Content' => $this->SubmitText)); return $renderedContent; } } |