You are here

function mailchimp_activity_page in Mailchimp 7.2

Same name and namespace in other branches
  1. 7.5 modules/mailchimp_activity/mailchimp_activity.module \mailchimp_activity_page()
  2. 7.3 modules/mailchimp_activity/mailchimp_activity.module \mailchimp_activity_page()
  3. 7.4 modules/mailchimp_activity/mailchimp_activity.module \mailchimp_activity_page()

Content for the mailchimp log tab on entity instance pages.

Parameters

$entity:

$mailchimp_activity_entity:

Return value

array (renderable)

1 string reference to 'mailchimp_activity_page'
mailchimp_activity_menu in modules/mailchimp_activity/mailchimp_activity.module
Implements hook_menu().

File

modules/mailchimp_activity/mailchimp_activity.module, line 143

Code

function mailchimp_activity_page($entity, MailchimpActivityEntity $mailchimp_activity_entity) {
  $entity_wrapper = entity_metadata_wrapper($mailchimp_activity_entity->entity_type, $entity);
  $email_property = $mailchimp_activity_entity->email_property;
  $email_property_array = explode(':', $email_property);
  $parent = $entity_wrapper;
  foreach ($email_property_array as $drupal_field) {
    if ($parent instanceof EntityListWrapper) {
      $child_wrapper = $parent
        ->get(0)->{$drupal_field};
    }
    else {
      $child_wrapper = $parent->{$drupal_field};
    }
    $parent = $child_wrapper;
  }
  $email = $parent
    ->value();

  // Validate email address.
  if (!valid_email_address($email)) {
    return array(
      'error_notice' => array(
        '#markup' => t('%email does not contain a valid email address. Unable to lookup MailChimp activity history without a valid email.', array(
          '%email' => $email_property,
        )),
      ),
    );
  }
  $header = array(
    t('Campaign'),
    t('Action'),
    t('Date & Time'),
  );
  $rows = array();

  //Loop through all activities, creating rows for each
  $user_activity = mailchimp_activity_get_all_activity($email);
  if (isset($user_activity['lists'])) {
    foreach ($user_activity['lists'] as $list_activity) {
      $rows[] = array(
        'no_striping' => TRUE,
        'data' => array(
          array(
            'data' => '<strong>List: ' . $list_activity['list']['name'] . '</strong>',
            'colspan' => count($header),
            'style' => 'text-align:center',
          ),
        ),
      );
      foreach ($list_activity['activity'] as $activity) {
        $rows[] = array(
          array(
            'data' => array(
              '#type' => 'link',
              '#title' => $user_activity['campaigns'][$activity['campaign_id']]['title'],
              '#href' => $user_activity['campaigns'][$activity['campaign_id']]['archive_url'],
            ),
          ),
          $activity['action'],
          $activity['timestamp'],
        );
      }
    }
  }
  $display['mailchimp_activity'] = array(
    '#theme' => 'table',
    '#header' => $header,
    '#rows' => $rows,
  );
  return $display;
}