You are here

public function MailChimpCampaign::buildContent in Mailchimp 7.5

Same name and namespace in other branches
  1. 7.2 modules/mailchimp_campaign/mailchimp_campaign.entity.inc \MailChimpCampaign::buildContent()
  2. 7.3 modules/mailchimp_campaign/includes/mailchimp_campaign.entity.inc \MailChimpCampaign::buildContent()
  3. 7.4 modules/mailchimp_campaign/includes/mailchimp_campaign.entity.inc \MailChimpCampaign::buildContent()

Assemble html representation of the Campaign content.

Overrides Entity::buildContent

File

modules/mailchimp_campaign/includes/mailchimp_campaign.entity.inc, line 22
MailChimpCampaign entity class.

Class

MailChimpCampaign
@file MailChimpCampaign entity class.

Code

public function buildContent($view_mode = 'full', $langcode = NULL) {
  $build = parent::buildContent($view_mode, $langcode);

  // Prepare rendered content:
  $content = mailchimp_campaign_render_template($this->template);
  $rendered = '';
  foreach ($content as $key => $section) {
    $rendered .= "<h3>{$key}</h3>" . $section;
  }

  // Get the template name:
  $mc_template = mailchimp_campaign_get_template($this->mc_data->settings->template_id);
  $mc_template_name = isset($mc_template) ? $mc_template->name : '';
  $list_segment_name = 'N/A';
  $list_segments = mailchimp_campaign_get_list_segments($this->list->id, 'saved');
  if (isset($this->mc_data->recipients->segment_opts->saved_segment_id)) {
    foreach ($list_segments as $list_segment) {
      if ($list_segment->id == $this->mc_data->recipients->segment_opts->saved_segment_id) {
        $list_segment_name = $list_segment->name;
      }
    }
  }
  $send_time = 'N/A';
  if (isset($this->mc_data->send_time) && $this->mc_data->send_time) {
    $send_time = format_date(strtotime($this->mc_data->send_time), 'custom', 'F j, Y - g:ia');
  }
  $fields = array(
    'subject' => array(
      'label' => t('Subject'),
      'value' => $this->mc_data->settings->subject_line,
    ),
    'list' => array(
      'label' => t('MailChimp Audience'),
      'value' => l($this->list->name, 'https://admin.mailchimp.com/lists/', array(
        'attributes' => array(
          'target' => '_blank',
        ),
      )),
    ),
    'list_segment' => array(
      'label' => t('Audience Segment'),
      'value' => $list_segment_name,
    ),
    'from_email' => array(
      'label' => t('From Email'),
      'value' => $this->mc_data->settings->reply_to,
    ),
    'from_name' => array(
      'label' => t('From Name'),
      'value' => $this->mc_data->settings->from_name,
    ),
    'template' => array(
      'label' => t('Template'),
      'value' => $mc_template_name,
    ),
    'type' => array(
      'label' => t('Audience type'),
      'value' => $this->mc_data->type,
    ),
    'status' => array(
      'label' => t('Status'),
      'value' => $this->mc_data->status,
    ),
    'emails_sent' => array(
      'label' => t('Emails sent'),
      'value' => $this->mc_data->emails_sent,
    ),
    'send_time' => array(
      'label' => t('Send time'),
      'value' => $send_time,
    ),
    'content' => array(
      'label' => t('Rendered template HTML (!archive)', array(
        '!archive' => l(t('View MailChimp archive'), $this->mc_data->archive_url, array(
          'attributes' => array(
            'target' => '_blank',
          ),
        )),
      )),
      'value' => $rendered,
    ),
  );
  foreach ($fields as $key => $field) {
    $build[$key] = array(
      '#prefix' => "<div class=\"field campaign-{$key}\"><div class=\"field-label\">{$field['label']}</div>",
      '#markup' => $field['value'],
      '#suffix' => '</div>',
    );
  }
  return $build;
}