You are here

function workbench_scheduler_node_form_validate in Workbench Scheduler 7

Same name and namespace in other branches
  1. 7.2 workbench_scheduler.module \workbench_scheduler_node_form_validate()

Validation function for editing a scheduled node.

Parameters

array $form: The form array.

array $form_state: The form state array.

3 string references to 'workbench_scheduler_node_form_validate'
workbench_scheduler_admin_edit_revision_schedule in ./workbench_scheduler.admin.inc
Form to edit the schedule for an existing node revision.
workbench_scheduler_form_node_form_alter in ./workbench_scheduler.module
Implements hook_form_FORM_ID_alter().
workbench_scheduler_schedules_action_form in actions/workbench_scheduler.action.inc
Workbench scheduler actions form.

File

./workbench_scheduler.module, line 401
Content scheduling for Workbench.

Code

function workbench_scheduler_node_form_validate($form, &$form_state) {
  if (!empty($form_state['values']['workbench_scheduler_start_date'])) {
    $start_date = $form_state['values']['workbench_scheduler_start_date'];
  }
  else {
    $start_date = '';
  }
  if (!empty($form_state['values']['workbench_scheduler_end_date'])) {
    $end_date = $form_state['values']['workbench_scheduler_end_date'];
  }
  else {
    $end_date = '';
  }

  // Retrieve schedule data.
  $sid = $form_state['values']['workbench_scheduler_sid'];

  // Was a schedule selected?
  if ($sid && $sid > 0) {

    // Both a start date and an end date, start should be before end.
    if ($start_date && $end_date && $start_date >= $end_date) {
      form_set_error('workbench_scheduler_end_date', t('End date must be after start date.'));
    }
    elseif ($start_date || $end_date) {

      // All good.
    }
    else {

      // Only other option, are no dates. throw an error.
      form_set_error('workbench_scheduler_start_date', t('Must provide either a start date or end date for workbench schedule'));
    }
  }
  elseif ($start_date || $end_date) {
    if ($form_state['values']['workbench_scheduler_sid'] != 0) {

      // Need to select a schedule for the dates unless none were selected.
      form_set_error('workbench_scheduler_sid', t('Must select a workbench schedule to apply to the provided date(s)'));
    }
  }
}