You are here

function campaignmonitor_admin_settings_list_edit_validate in Campaign Monitor 8

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

Edit form validation handler which calls the API to save the information that was entered. This is done in the validation function so we can give better feedback to the user and to prevent the user from having to enter the information once more on failure.

_state

Parameters

array $form:

Return value

boolean FALSE on failure, to prevent submission.

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 303
Implements the list administration interface, which can be used to 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);
}