function mailchimp_interest_groups_form_elements in Mailchimp 7.3
Same name and namespace in other branches
- 8 mailchimp.module \mailchimp_interest_groups_form_elements()
- 7.5 mailchimp.module \mailchimp_interest_groups_form_elements()
- 7.4 mailchimp.module \mailchimp_interest_groups_form_elements()
- 2.x mailchimp.module \mailchimp_interest_groups_form_elements()
Helper function to generate form elements for a list's interest groups.
Parameters
array $mc_list: Fully loaded array with mailchimp list settings as returned by mailchimp_get_list()
array $default_values: Array of default values to use if no group subscription values already exist at MailChimp.
string $email: Optional email address to pass to the MCAPI and retrieve existing values for use as defaults.
Return value
array A collection of form elements, one per interest group.
4 calls to mailchimp_interest_groups_form_elements()
- mailchimp_lists_field_get in modules/
mailchimp_lists/ includes/ mailchimp_lists.field.inc - Entity field data callback for MailChimp subscription fields.
- mailchimp_lists_field_widget_form in modules/
mailchimp_lists/ includes/ mailchimp_lists.field.inc - Implements hook_field_widget_form().
- mailchimp_lists_subscribe_form in modules/
mailchimp_lists/ mailchimp_lists.module - Return a form element for a single newsletter.
- mailchimp_signup_subscribe_form in modules/
mailchimp_signup/ mailchimp_signup.module - Returns a subscription form for mailchimp lists.
File
- ./
mailchimp.module, line 1198 - Mailchimp module.
Code
function mailchimp_interest_groups_form_elements($mc_list, $default_values = array(), $email = NULL) {
$return = array();
foreach ($mc_list['intgroups'] as $group) {
if ($group['form_field'] == 'hidden') {
continue;
}
// Set the form field type:
switch ($group['form_field']) {
case 'radio':
$field_type = 'radios';
break;
case 'dropdown':
$field_type = 'select';
break;
default:
$field_type = $group['form_field'];
}
// Extract the field options:
$options = array();
if ($field_type == 'select') {
$options[''] = '-- select --';
}
foreach ($group['groups'] as $option) {
$options[$option['name']] = $option['name'];
}
// Grab the default values for this group:
if ($email) {
$memberinfo = mailchimp_get_memberinfo($mc_list['id'], $email);
if (isset($memberinfo['merges']['GROUPINGS'])) {
$default_values = array();
foreach ($memberinfo['merges']['GROUPINGS'] as $membergroup) {
if ($membergroup['id'] == $group['id']) {
foreach ($membergroup['groups'] as $option) {
if ($option['interested']) {
$default_values[$group['id']][] = $option['name'];
}
}
break;
}
}
}
}
$return[$group['id']] = array(
'#type' => $field_type,
'#title' => $group['name'],
'#options' => $options,
'#default_value' => isset($default_values[$group['id']]) ? $default_values[$group['id']] : array(),
'#attributes' => array(
'class' => array(
'mailchimp-newsletter-interests-' . $mc_list['id'],
),
),
);
}
return $return;
}