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   1311 Views

Avatar
Andrew Houle

Community Member, 132 Posts

11 November 2008 at 4:54am

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

Community Member, 470 Posts

11 November 2008 at 6:05am

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 %>