You are here

function campaignmonitor_admin_settings_list_edit_validate in Campaign Monitor 7

Same name and namespace in other branches
  1. 8 includes/campaignmonitor_lists.admin.inc \campaignmonitor_admin_settings_list_edit_validate()

Form validation handler for campaignmonitor_admin_settings_list_edit().

1 string reference to 'campaignmonitor_admin_settings_list_edit_validate'
campaignmonitor_admin_settings_list_edit in includes/campaignmonitor_lists.admin.inc
List edit callback that returns a form with information about a given list.

File

includes/campaignmonitor_lists.admin.inc, line 289
Manage the different Campaign Monitor lists.

Code

function campaignmonitor_admin_settings_list_edit_validate($form, &$form_state) {

  // Build array with basic information.
  $values = $form_state['values']['campaignmonitor_list_' . $form_state['values']['listId']];
  $options = [
    'Title' => check_plain($values['options']['listname']),
    'UnsubscribePage' => check_plain($values['options']['UnsubscribePage']),
    'ConfirmedOptIn' => $values['options']['ConfirmedOptIn'] ? TRUE : FALSE,
    'ConfirmationSuccessPage' => check_plain($values['options']['ConfirmationSuccessPage']),
  ];

  // Get connected.
  $cm = CampaignMonitor::getConnector();

  // Update the information.
  if (!$cm
    ->updateList($form_state['values']['listId'], $options)) {
    $error = $cm
      ->getLatestError();
    form_set_error('', $error['message']);
    drupal_set_message(t('The list options were not updated correctly at Campaign Monitor.'), 'error');
    return FALSE;
  }

  // Remove list options.
  unset($form_state['values']['campaignmonitor_list_' . $form_state['values']['listId']]['options']);

  // Redirect to list overview.
  $form_state['redirect'] = 'admin/config/services/campaignmonitor/lists';

  // Save display options and custom field selection.
  system_settings_form_submit($form, $form_state);
}