You are here

function nodequeue_arrange_subqueue_form_validate in Nodequeue 5.2

Same name and namespace in other branches
  1. 6.2 includes/nodequeue.admin.inc \nodequeue_arrange_subqueue_form_validate()
  2. 7.3 includes/nodequeue.admin.inc \nodequeue_arrange_subqueue_form_validate()
  3. 7.2 includes/nodequeue.admin.inc \nodequeue_arrange_subqueue_form_validate()

Validate handler for nodequeue_arrange_subqueue_form

File

./nodequeue.module, line 1038

Code

function nodequeue_arrange_subqueue_form_validate($form_id, $form_values, $form) {
  if ($form_values['op'] == t('Add')) {
    $queue = nodequeue_load($form_values['qid']);
    $subqueue = nodequeue_load($form_values['sqid']);
    $nodes = nodequeue_api_autocomplete($queue, $subqueue, $form_values['add']);
    if (empty($nodes) || !is_array($nodes)) {
      form_error($form['add'], t('Invalid node'));
      return;
    }
    if (count($nodes) > 1) {
      form_error($form['add'], t('That matches too many nodes'));
      return;
    }
    $keys = array_keys($nodes);
    $nid = array_pop($keys);
    form_set_value($form['nid'], $nid);
    return;
  }
  if ($form_values['op'] == t('Save')) {
    $nids = $form_values['nids'];

    // We can't use array_merge because it'll reset our keys and we can't
    // use + because it will overwrite.
    if ($form_values['added_nids']) {
      foreach (explode(',', $form_values['added_nids']) as $nid) {
        if (empty($nids)) {
          $nids[1] = $nid;
        }
        else {
          $nids[max(array_keys($nids)) + 1] = $nid;
        }
      }
    }
    form_set_value($form['nids'], $nids);
  }
}