function mailchimp_campaign_stats_page in Mailchimp 7.2
Same name and namespace in other branches
- 7.5 modules/mailchimp_campaign/mailchimp_campaign.module \mailchimp_campaign_stats_page()
- 7.3 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:
Return value
array
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 474
Code
function mailchimp_campaign_stats_page(MailChimpCampaign $campaign) {
$mcapi = mailchimp_get_api_object();
$response = $mcapi
->campaignStats($campaign->mc_campaign_id);
if (empty($response)) {
return t('The campaign stats are unavailable at this time.');
}
// tabular summary
foreach ($response as $key => $stat) {
if (is_array($stat)) {
break;
}
$rows[] = array(
drupal_ucfirst(str_replace('_', ' ', $key)),
$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') . '/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;
}