function mailchimp_lists_field_formatter_view in Mailchimp 7.3
Same name and namespace in other branches
- 7.5 modules/mailchimp_lists/includes/mailchimp_lists.field.inc \mailchimp_lists_field_formatter_view()
- 7.4 modules/mailchimp_lists/includes/mailchimp_lists.field.inc \mailchimp_lists_field_formatter_view()
Implements hook_field_formatter_view().
File
- modules/
mailchimp_lists/ includes/ mailchimp_lists.field.inc, line 468 - Field hooks.
Code
function mailchimp_lists_field_formatter_view($entity_type, $entity, $field, $instance, $langcode, $items, $display) {
$element = array();
$mc_list = mailchimp_get_list($field['settings']['mc_list_id']);
$email = mailchimp_lists_load_email($instance, $entity, FALSE);
// Display subscription form if accessible.
if ($display['type'] == 'mailchimp_lists_field_subscribe' && $email && entity_access('edit', $entity_type, $entity)) {
$field_form_id = 'mailchimp_lists_' . $field['field_name'] . '_form';
$element = drupal_get_form($field_form_id, $instance, $display['settings'], $entity, $field);
}
else {
if ($email) {
$member_info = mailchimp_get_memberinfo($field['settings']['mc_list_id'], $email);
$member_status = isset($member_info['status']) ? $member_info['status'] : NULL;
switch ($member_status) {
case 'subscribed':
$status = t('Subscribed to %list', array(
'%list' => $mc_list['name'],
));
break;
case 'pending':
$status = t('Pending confirmation for %list', array(
'%list' => $mc_list['name'],
));
break;
default:
$status = t('Not subscribed to %list', array(
'%list' => $mc_list['name'],
));
}
}
else {
$status = t('Invalid email configuration.');
}
$element['status'] = array(
'#markup' => $status,
'#description' => t('@mc_list_description', array(
'@mc_list_description' => $instance['description'],
)),
);
if ($instance['settings']['show_interest_groups'] && $display['settings']['show_interest_groups']) {
$memberinfo = mailchimp_get_memberinfo($field['settings']['mc_list_id'], $email);
if (isset($memberinfo['merges']['GROUPINGS'])) {
$element['interest_groups'] = array(
'#type' => 'fieldset',
'#title' => t('Interest Groups'),
'#weight' => 100,
);
foreach ($memberinfo['merges']['GROUPINGS'] as $grouping) {
$items = array();
foreach ($grouping['groups'] as $interest) {
if ($interest['interested']) {
$items[] = $interest['name'];
}
}
if (count($items)) {
$element['interest_groups'][$grouping['id']] = array(
'#title' => $grouping['name'],
'#theme' => 'item_list',
'#items' => $items,
'#type' => 'ul',
);
}
}
}
}
}
return array(
$element,
);
}