function campaignmonitor_user_form in Campaign Monitor 7
Same name and namespace in other branches
- 5.2 campaignmonitor.module \campaignmonitor_user_form()
- 5 campaignmonitor.module \campaignmonitor_user_form()
- 6 campaignmonitor.module \campaignmonitor_user_form()
- 6.2 campaignmonitor.module \campaignmonitor_user_form()
Builds the selection list for the user profile page.
1 string reference to 'campaignmonitor_user_form'
- campaignmonitor_user_menu in modules/
campaignmonitor_user/ campaignmonitor_user.module - Implements hook_menu().
File
- modules/
campaignmonitor_user/ campaignmonitor_user.module, line 53 - Tab to the profile page to select newsletters to subscribe to.
Code
function campaignmonitor_user_form() {
global $user;
$form = [];
// Get connected to the API and get lists.
$cm = CampaignMonitor::getConnector();
$lists = $cm
->getLists();
// Build options for the form selector.
$options = [];
$default = [];
foreach ($lists as $list_id => $list) {
// Check if the list is selected to be shown.
$list_options = variable_get('campaignmonitor_list_' . $list_id, []);
if (campaignmonitor_is_list_enabled($list_id) && isset($list_options['display']['user']) && $list_options['display']['user']) {
$options[$list_id] = $list['name'];
// Check if the user is subscribed to the current list.
$default[$list_id] = 0;
if ($cm
->isSubscribed($list_id, $user->mail)) {
$default[$list_id] = $list_id;
}
}
}
$defaults = variable_get('campaignmonitor_general', []);
if (!empty($options)) {
$form['lists'] = [
'#type' => 'checkboxes',
'#title' => t('News lists'),
'#description' => !empty($defaults['instructions']) ? t('%instructions', [
'%instructions' => $defaults['instructions'],
]) : t('Select the news lists that you want to subscribe to.'),
'#options' => $options,
'#default_value' => $default,
];
$form['submit'] = [
'#type' => 'submit',
'#value' => t('Update subscriptions'),
];
}
else {
drupal_set_message(t('There are no available lists to subscribe to at the moment.'), 'warning');
}
$form['#submit'][] = 'campaignmonitor_user_form_submit';
return $form;
}