Join GitHub today
GitHub is home to over 20 million developers working together to host and review code, manage projects, and build software together.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
|Failed to load latest commit information.|
= Mailer Extension for Radiant WARNING TO DEVELOPERS: This code forked from github.com/radiant/radiant-mailer-extension before a major refactoring of that code. Contributions to this code are extremely unlikely to be pulled into the main repo. Your coding efforts would probably be better spent on extending and improving the main repo (or porting our feature extensions to the main repo). WARNING TO USERS: This code is in production for us on several sites, but is not as well supported as the code at github.com/radiant/radiant-mailer-extension (though as at 2009-02-02 ours has some extra features). If you don't need something we have that they don't, you should probably use their code. Created by: M@ McCray - mattmccray.com Version: 0.2.1 Contact: firstname.lastname@example.org Ported to 'mental' by: Sean Cribbs - seancribbs.com Version: 0.1 Contact: email@example.com File upload facility and submit placeholder by: Tobin Richard, Tricycle Developments - tricycledevelopments.com Version: 0.2 Contact: firstname.lastname@example.org The Mailer extension enables form mail on a page. You can define email templates using pages parts (email, and/or email_html). You configure the recipients and other Mailer settings in a config part. Following is an example of a properly formed config part that defines a 'contact' mailer: mailers: contact: subject: From the website of Whatever from: email@example.com redirect_to: /contact/thank-you recipients: - firstname.lastname@example.org - email@example.com Required fields: You can specify fields which must be populated or the form will be invalid and will redisplay the page with an error informing the user to populate those fields. You can also specify fields which must be validated 'as_email' (i.e. firstname.lastname@example.org). These settings are put in the config part. eg: mailers: contact: [...] required_fields: - email: as_email - firstname - surname The following tags are available to help you build the form: <r:mailer:form name=""> ... </r:mailer:form> <r:mailer:text name="" /> <r:mailer:password name="" /> <r:mailer:file name="" /> <r:mailer:checkbox name="" /> <r:mailer:radio name="" /> <r:mailer:radiogroup name=""> ... </r:mailer:radiogroup> <r:mailer:select name=""> ... </r:mailer:select> <r:mailer:textarea name=""> ... </r:mailer:textarea> <r:mailer:option name="" /> <r:mailer:submit /> <r:mailer:reset /> <r:mailer:submit_placeholder /> ... and the following to help you build the email or email_html templates. <r:mailer:get name="" /> Simple example of a form: <r:mailer:form name="contact"> <r:mailer:hidden name="subject" value="Email from my Radiant site!" /> <br/> Name:<br/> <r:mailer:text name="name" /> <br/> Message:<br/> <r:mailer:textarea name="message" /> <br/> <r:mailer:submit value="Send" /> </r:mailer:form> Forms with file attachments: In many cases it is desirable to limit the maximum size of a file that may be uploaded. This is set as the max_filesize attribute for mailers in the config page part. Any file included in the form will have the limit imposed. Following is a simple example config part that includes a file size limit of 100,000 bytes: mailers: contact: subject: From the website of Whatever from: email@example.com redirect_to: /contact/thank-you max_filesize: 100000 recipients: - firstname.lastname@example.org - email@example.com The following is a simple form that might be used to submit a file for the above configuration: <r:mailer:form name="contact"> Type your message: <r:mailer:text name="themessage" /> <br/> Select a file: <r:mailer:file name="thefile" /> <br/> <r:mailer:submit value="submit"/> </r:mailer:form> If a user does not select a file the other form contents will still be e-mailed. The <r:mailer:get name="foo" /> (with <r:mailer:file name="foo" />) will provide the uploaded file name. If you are using email or email_html parts then the <r:mailer:get name="" /> tag can be used to retrieve the name of the uploaded file. If no file was uploaded "" will be returned. If you wish to show show that activity is taking place during submission you may use the <r:mailer:submit_placeholder /> tag in your form. This will insert a hidden div with the contents of the submit_placeholder page part. The div will be displayed when the user clicks any submit button. Todo: * Abstract tag naming, doesn't need to mimick HTML input types * Validate recipient emails addresses -- at least the format * Better Error handling * Status indicator during file uploads * Check _all_ file attachment sizes before displaying any file size errors rather than stopping at the first.