Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

Archive

Our old forums are still available as a read-only archive.

Moderators: martimiz, Sean, biapar, Willr, Ingo, simon_w

Getting a contact form to email properly


Reply

2 Posts   1284 Views

Avatar
Andrew Houle

11 November 2008 at 4:54am Community Member, 132 Posts

I've been studying how to create a customized contact form using these forum discussions: http://www.silverstripe.com/site-builders-forum/flat/53148 and http://www.silverstripe.com/site-builders-forum/flat/113907?showPost=164944. My simple form works to save the data in a database, but I'm struggling to send the data to the site owner. I'm not sure where to put my template file MyEmail.ss, and what exactly goes in it? And, do I need a MyEmail.php class file that extends Email.php. If so, what goes in that and where would I place that? Here is my code so far:

<?php

class ContactUsPage extends Page {

}

class ContactUsPage_Controller extends Page_Controller {

   function ContactUsForm() {
      return new Form($this, "ContactUsForm", new FieldSet(

         // List your fields here
         new TextField("Name", "Name"),
         new EmailField("Email", "Email Address"),
         new TextareaField("Message", "Message")

      ), new FieldSet(

         // List the action buttons here
         new FormAction("SubmitContactUs", "Submit")

      ), new RequiredFields(

         // List the required fields here: "Email", "FirstName"
         Email,
         Name,
         Message

      ));
   }
   
    function SubmitContactUs( $data, $form ) {
   $submittedForm = new ContactData();
   $form->saveInto($submittedForm);
       $submittedForm->write();
   
      $email = new MyEmail;
   $email->populateTemplate($submittedForm);
   $email->send();

   
       Director::redirect('cp/');

    }

   
   
}

?>

Avatar
Liam

11 November 2008 at 6:05am Community Member, 470 Posts

The email templates go in mysite/templates/email/MyEmail.ss

Setup this up as an html document type and loop through the data with something like <% control FormData %>variables here <% end_control %>