You are here

function nodequeue_arrange_subqueue_form in Nodequeue 6.2

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

Form definition for nodequeue drag'n'drop form.

1 string reference to 'nodequeue_arrange_subqueue_form'
nodequeue_forms in ./nodequeue.module
Implementation of hook_forms().

File

includes/nodequeue.admin.inc, line 751
Admin page callbacks for the nodequeue module.

Code

function nodequeue_arrange_subqueue_form($form_state, $queue, $nodes, $subqueue) {
  $form = array(
    '#tree' => TRUE,
  );

  // Prepare the main part of the form which will be themed as a table.
  $form['#theme'] = 'nodequeue_arrange_subqueue_form';

  // Save queue and subqueue objects for later use.
  $form['#queue'] = (array) $queue;
  $form['#subqueue'] = (array) $subqueue;

  // Prepare the main part of the form which will be themed as a table.
  $count = count($nodes);
  foreach ($nodes as $node) {
    $form[$node->nid]['#node'] = (array) $node;
    if ($node->visible) {
      $form[$node->nid]['#node'] = (array) $node;
      $form[$node->nid]['title'] = array(
        '#value' => l($node->title, 'node/' . $node->nid),
      );
      $form[$node->nid]['author'] = array(
        '#value' => theme('username', $node),
      );
      $form[$node->nid]['date'] = array(
        '#value' => format_date($node->created, 'small'),
      );
    }
    else {
      $form[$node->nid]['title'] = array(
        '#value' => t('Restricted node, NID: @nid', array(
          '@nid' => $node->nid,
        )),
      );
      $form[$node->nid]['author'] = array(
        '#value' => '',
      );
      $form[$node->nid]['date'] = array(
        '#value' => '',
      );
    }
    if (node_access('update', $node)) {
      $form[$node->nid]['edit'] = array(
        '#value' => l(t('edit'), 'node/' . $node->nid . '/edit', array(
          'attributes' => array(
            'title' => t('Edit this node'),
          ),
          'query' => drupal_get_destination(),
        )),
      );
    }
    $form[$node->nid]['position'] = array(
      '#type' => 'position',
      '#delta' => $count,
      '#default_value' => $node->position,
      '#attributes' => array(
        'class' => 'node-position',
      ),
    );
    $attr = array(
      'attributes' => array(
        'title' => t('Remove from queue'),
        'style' => 'display: none;',
        'class' => 'nodequeue-remove',
        'id' => 'nodequeue-remove-' . $node->nid,
      ),
    );
    $form[$node->nid]['remove'] = array(
      '#value' => l(t('remove'), '', $attr),
    );
  }

  // Textfield for adding nodes to the queue.
  $form['add'] = array(
    '#type' => 'markup',
  );
  $form['add']['nid'] = array(
    '#type' => 'textfield',
    '#autocomplete_path' => 'nodequeue/autocomplete/' . $subqueue->sqid,
    '#maxlength' => 1024,
    '#default_value' => t('Enter the title of a node to add it to the queue'),
    '#attributes' => array(
      'class' => 'subqueue-add-nid',
    ),
  );
  $form['add']['submit'] = array(
    '#type' => 'submit',
    '#value' => t('Add node'),
    '#submit' => array(
      'nodequeue_arrange_subqueue_form_add_submit',
    ),
  );

  // Submit, reverse, shuffle, and clear actions.
  $form['submit'] = array(
    '#type' => 'submit',
    '#value' => t('Save'),
    '#submit' => array(
      'nodequeue_arrange_subqueue_form_submit',
    ),
  );
  $form['reverse'] = array(
    '#type' => 'submit',
    '#value' => t('Reverse'),
    '#submit' => array(
      'nodequeue_arrange_subqueue_form_reverse_submit',
    ),
  );
  $form['shuffle'] = array(
    '#type' => 'submit',
    '#value' => t('Shuffle'),
    '#submit' => array(
      'nodequeue_arrange_subqueue_form_shuffle_submit',
    ),
  );
  $form['clear'] = array(
    '#type' => 'submit',
    '#value' => t('Clear'),
    '#submit' => array(
      'nodequeue_arrange_subqueue_form_clear_submit',
    ),
  );
  $form['#validate'][] = 'nodequeue_arrange_subqueue_form_add_validate';

  // Disable all buttons if the queue is empty.
  if ($count == 0) {
    $form['submit']['#disabled'] = TRUE;
    $form['reverse']['#disabled'] = TRUE;
    $form['shuffle']['#disabled'] = TRUE;
    $form['clear']['#disabled'] = TRUE;
  }
  return $form;
}