# Class Mandrill_Templates

Located at Mandrill/Templates.php

Methods summary
`public` | # `__construct( `Mandrill` $master )`

`public struct`

# `add( string $name, string $from_email = null, string $from_name = null, string $subject = null, string $code = null, string $text = null, boolean $publish = true, array $labels = array() )`

Add a new template

Add a new template

#### Parameters

$name
  `string`
  $name the name for the new template - must be unique
$from_email
  `string`
  $from_email a default sending address for emails sent using this template
$from_name
  `string`
  $from_name a default from name to be used
$subject
  `string`
  $subject a default subject line to be used
$code
  `string`
  $code the HTML code for the template with mc:edit attributes for the editable elements
$text
  `string`
  $text a default text part to be used when sending with this template
$publish
  `boolean`
  $publish set to false to add a draft template without publishing
$labels
  `array`
  $labels an optional array of up to 10 labels to use for filtering templates - labels[] string a single label

#### Returns

`struct`
the information saved about the new template - slug string the immutable unique code name of the template - name string the name of the template - labels array the list of labels applied to the template - labels[] string a single label - code string the full HTML code of the template, with mc:edit attributes marking the editable elements - draft version - subject string the subject line of the template, if provided - draft version - from_email string the default sender address for the template, if provided - draft version - from_name string the default sender from name for the template, if provided - draft version - text string the default text part of messages sent with the template, if provided - draft version - publish_name string the same as the template name - kept as a separate field for backwards compatibility - publish_code string the full HTML code of the template, with mc:edit attributes marking the editable elements that are available as published, if it has been published - publish_subject string the subject line of the template, if provided - publish_from_email string the default sender address for the template, if provided - publish_from_name string the default sender from name for the template, if provided - publish_text string the default text part of messages sent with the template, if provided - published_at string the date and time the template was last published as a UTC string in YYYY-MM-DD HH:MM:SS format, or null if it has not been published - created_at string the date and time the template was first created as a UTC string in YYYY-MM-DD HH:MM:SS format - updated_at string the date and time the template was last modified as a UTC string in YYYY-MM-DD HH:MM:SS format

`public struct`

# `info( string $name )`

Get the information for an existing template

Get the information for an existing template

#### Parameters

$name
  `string`
  $name the immutable name of an existing template

#### Returns

`struct`
the requested template information - slug string the immutable unique code name of the template - name string the name of the template - labels array the list of labels applied to the template - labels[] string a single label - code string the full HTML code of the template, with mc:edit attributes marking the editable elements - draft version - subject string the subject line of the template, if provided - draft version - from_email string the default sender address for the template, if provided - draft version - from_name string the default sender from name for the template, if provided - draft version - text string the default text part of messages sent with the template, if provided - draft version - publish_name string the same as the template name - kept as a separate field for backwards compatibility - publish_code string the full HTML code of the template, with mc:edit attributes marking the editable elements that are available as published, if it has been published - publish_subject string the subject line of the template, if provided - publish_from_email string the default sender address for the template, if provided - publish_from_name string the default sender from name for the template, if provided - publish_text string the default text part of messages sent with the template, if provided - published_at string the date and time the template was last published as a UTC string in YYYY-MM-DD HH:MM:SS format, or null if it has not been published - created_at string the date and time the template was first created as a UTC string in YYYY-MM-DD HH:MM:SS format - updated_at string the date and time the template was last modified as a UTC string in YYYY-MM-DD HH:MM:SS format

`public struct`

# `update( string $name, string $from_email = null, string $from_name = null, string $subject = null, string $code = null, string $text = null, boolean $publish = true, array $labels = null )`

Update the code for an existing template. If null is provided for any fields, the values will remain unchanged.

Update the code for an existing template. If null is provided for any fields, the values will remain unchanged.

#### Parameters

$name
  `string`
  $name the immutable name of an existing template
$from_email
  `string`
  $from_email the new default sending address
$from_name
  `string`
  $from_name the new default from name
$subject
  `string`
  $subject the new default subject line
$code
  `string`
  $code the new code for the template
$text
  `string`
  $text the new default text part to be used
$publish
  `boolean`
  $publish set to false to update the draft version of the template without publishing
$labels
  `array`
  $labels an optional array of up to 10 labels to use for filtering templates - labels[] string a single label

#### Returns

`struct`
the template that was updated - slug string the immutable unique code name of the template - name string the name of the template - labels array the list of labels applied to the template - labels[] string a single label - code string the full HTML code of the template, with mc:edit attributes marking the editable elements - draft version - subject string the subject line of the template, if provided - draft version - from_email string the default sender address for the template, if provided - draft version - from_name string the default sender from name for the template, if provided - draft version - text string the default text part of messages sent with the template, if provided - draft version - publish_name string the same as the template name - kept as a separate field for backwards compatibility - publish_code string the full HTML code of the template, with mc:edit attributes marking the editable elements that are available as published, if it has been published - publish_subject string the subject line of the template, if provided - publish_from_email string the default sender address for the template, if provided - publish_from_name string the default sender from name for the template, if provided - publish_text string the default text part of messages sent with the template, if provided - published_at string the date and time the template was last published as a UTC string in YYYY-MM-DD HH:MM:SS format, or null if it has not been published - created_at string the date and time the template was first created as a UTC string in YYYY-MM-DD HH:MM:SS format - updated_at string the date and time the template was last modified as a UTC string in YYYY-MM-DD HH:MM:SS format

`public struct`

# `publish( string $name )`

Publish the content for the template. Any new messages sent using this template will start using the content that was previously in draft.

Publish the content for the template. Any new messages sent using this template will start using the content that was previously in draft.

#### Parameters

$name
  `string`
  $name the immutable name of an existing template

#### Returns

`struct`
the template that was published - slug string the immutable unique code name of the template - name string the name of the template - labels array the list of labels applied to the template - labels[] string a single label - code string the full HTML code of the template, with mc:edit attributes marking the editable elements - draft version - subject string the subject line of the template, if provided - draft version - from_email string the default sender address for the template, if provided - draft version - from_name string the default sender from name for the template, if provided - draft version - text string the default text part of messages sent with the template, if provided - draft version - publish_name string the same as the template name - kept as a separate field for backwards compatibility - publish_code string the full HTML code of the template, with mc:edit attributes marking the editable elements that are available as published, if it has been published - publish_subject string the subject line of the template, if provided - publish_from_email string the default sender address for the template, if provided - publish_from_name string the default sender from name for the template, if provided - publish_text string the default text part of messages sent with the template, if provided - published_at string the date and time the template was last published as a UTC string in YYYY-MM-DD HH:MM:SS format, or null if it has not been published - created_at string the date and time the template was first created as a UTC string in YYYY-MM-DD HH:MM:SS format - updated_at string the date and time the template was last modified as a UTC string in YYYY-MM-DD HH:MM:SS format

`public struct`

# `delete( string $name )`

Delete a template

Delete a template

#### Parameters

$name
  `string`
  $name the immutable name of an existing template

#### Returns

`struct`
the template that was deleted - slug string the immutable unique code name of the template - name string the name of the template - labels array the list of labels applied to the template - labels[] string a single label - code string the full HTML code of the template, with mc:edit attributes marking the editable elements - draft version - subject string the subject line of the template, if provided - draft version - from_email string the default sender address for the template, if provided - draft version - from_name string the default sender from name for the template, if provided - draft version - text string the default text part of messages sent with the template, if provided - draft version - publish_name string the same as the template name - kept as a separate field for backwards compatibility - publish_code string the full HTML code of the template, with mc:edit attributes marking the editable elements that are available as published, if it has been published - publish_subject string the subject line of the template, if provided - publish_from_email string the default sender address for the template, if provided - publish_from_name string the default sender from name for the template, if provided - publish_text string the default text part of messages sent with the template, if provided - published_at string the date and time the template was last published as a UTC string in YYYY-MM-DD HH:MM:SS format, or null if it has not been published - created_at string the date and time the template was first created as a UTC string in YYYY-MM-DD HH:MM:SS format - updated_at string the date and time the template was last modified as a UTC string in YYYY-MM-DD HH:MM:SS format

`public array`

# `getList( string $label = null )`

Return a list of all the templates available to this user

Return a list of all the templates available to this user

#### Parameters

$label
  `string`
  $label an optional label to filter the templates

#### Returns

`array`
an array of structs with information about each template - return[] struct the information on each template in the account - slug string the immutable unique code name of the template - name string the name of the template - labels array the list of labels applied to the template - labels[] string a single label - code string the full HTML code of the template, with mc:edit attributes marking the editable elements - draft version - subject string the subject line of the template, if provided - draft version - from_email string the default sender address for the template, if provided - draft version - from_name string the default sender from name for the template, if provided - draft version - text string the default text part of messages sent with the template, if provided - draft version - publish_name string the same as the template name - kept as a separate field for backwards compatibility - publish_code string the full HTML code of the template, with mc:edit attributes marking the editable elements that are available as published, if it has been published - publish_subject string the subject line of the template, if provided - publish_from_email string the default sender address for the template, if provided - publish_from_name string the default sender from name for the template, if provided - publish_text string the default text part of messages sent with the template, if provided - published_at string the date and time the template was last published as a UTC string in YYYY-MM-DD HH:MM:SS format, or null if it has not been published - created_at string the date and time the template was first created as a UTC string in YYYY-MM-DD HH:MM:SS format - updated_at string the date and time the template was last modified as a UTC string in YYYY-MM-DD HH:MM:SS format

`public array`

# `timeSeries( string $name )`

Return the recent history (hourly stats for the last 30 days) for a template

Return the recent history (hourly stats for the last 30 days) for a template

#### Parameters

$name
  `string`
  $name the name of an existing template

#### Returns

`array`
the array of history information - return[] struct the stats for a single hour - time string the hour as a UTC date string in YYYY-MM-DD HH:MM:SS format - sent integer the number of emails that were sent during the hour - hard_bounces integer the number of emails that hard bounced during the hour - soft_bounces integer the number of emails that soft bounced during the hour - rejects integer the number of emails that were rejected during the hour - complaints integer the number of spam complaints received during the hour - opens integer the number of emails opened during the hour - unique_opens integer the number of unique opens generated by messages sent during the hour - clicks integer the number of tracked URLs clicked during the hour - unique_clicks integer the number of unique clicks generated by messages sent during the hour

`public struct`

# `render( string $template_name, array $template_content, array $merge_vars = null )`

Inject content and optionally merge fields into a template, returning the HTML that results

Inject content and optionally merge fields into a template, returning the HTML that results

#### Parameters

$template_name
  `string`
  $template_name the immutable name of a template that exists in the user's account
$template_content
  `array`
  $template_content an array of template content to render. Each item in the array should be a struct with two keys - name: the name of the content block to set the content for, and content: the actual content to put into the block - template_content[] struct the injection of a single piece of content into a single editable region - name string the name of the mc:edit editable region to inject into - content string the content to inject
$merge_vars
  `array`
  $merge_vars optional merge variables to use for injecting merge field content. If this is not provided, no merge fields will be replaced. - merge_vars[] struct a single merge variable - name string the merge variable's name. Merge variable names are case-insensitive and may not start with _ - content string the merge variable's content

#### Returns

`struct`
the result of rendering the given template with the content and merge field values injected - html string the rendered HTML as a string