function mailchimp_campaign_stats_page in Mailchimp 7.3
Same name and namespace in other branches
- 7.5 modules/mailchimp_campaign/mailchimp_campaign.module \mailchimp_campaign_stats_page()
- 7.2 modules/mailchimp_campaign/mailchimp_campaign.module \mailchimp_campaign_stats_page()
- 7.4 modules/mailchimp_campaign/mailchimp_campaign.module \mailchimp_campaign_stats_page()
Page callback for a campaign's statistics.
Parameters
MailChimpCampaign $campaign: The MailChimp campaign instance.
Return value
array A renderable array for the campaign stats page.
1 string reference to 'mailchimp_campaign_stats_page'
- mailchimp_campaign_menu in modules/
mailchimp_campaign/ mailchimp_campaign.module - Implements hook_menu().
File
- modules/
mailchimp_campaign/ mailchimp_campaign.module, line 742 - Module file for mailchimp_campaign.
Code
function mailchimp_campaign_stats_page(MailChimpCampaign $campaign) {
$mcapi = mailchimp_get_api_object();
try {
if (!$mcapi) {
throw new MailchimpException('Cannot get campaign stats without MailChimp API. Check API key has been entered.');
}
$response = $mcapi->reports
->summary($campaign->mc_campaign_id);
} catch (Mailchimp_Error $e) {
drupal_set_message($e
->getMessage(), 'error');
watchdog('mailchimp_campaign', 'An error occurred getting report data from MailChimp: @msg', array(
'@msg' => $e
->getMessage(),
), WATCHDOG_ERROR);
}
if (empty($response)) {
return t('The campaign stats are unavailable at this time.');
}
// Tabular summary:
$rows = array();
foreach ($response as $key => $stat) {
if (is_array($stat)) {
break;
}
$rows[] = array(
$key,
drupal_ucfirst(str_replace('_', ' ', $stat)),
);
}
// Time series chart data:
$settings = array();
foreach ($response['timeseries'] as $series) {
$settings['mailchimp_campaign']['stats'][] = array(
'timestamp' => $series['timestamp'],
'emails_sent' => isset($series['emails_sent']) ? $series['emails_sent'] : 0,
'unique_opens' => $series['unique_opens'],
'recipients_click' => $series['recipients_click'],
);
}
$render = array(
'#attached' => array(
'js' => array(
array(
'data' => 'https://www.google.com/jsapi',
'type' => 'external',
),
drupal_get_path('module', 'mailchimp_campaign') . '/js/mailchimp_campaign.js',
array(
'data' => $settings,
'type' => 'setting',
),
),
),
'charts' => array(
'#prefix' => '<h2>' . t('Hourly stats for the first 24 hours of the campaign') . '</h2>',
'#markup' => '<div id="mailchimp-campaign-chart"></div>',
),
'overview' => array(
'#prefix' => '<h2>' . t('Other campaign metrics') . '</h2>',
'#theme' => 'table',
'#rows' => $rows,
'#header' => array(
t('Key'),
t('Value'),
),
),
);
return $render;
}