You are here

function nodequeue_arrange_subqueue_form in Nodequeue 7.2

Same name and namespace in other branches
  1. 5.2 nodequeue.module \nodequeue_arrange_subqueue_form()
  2. 6.2 includes/nodequeue.admin.inc \nodequeue_arrange_subqueue_form()
  3. 7.3 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
Implementats hook_forms().

File

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

Code

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

  // Prepare the main part of the form which will be themed as a table.
  $count = count($nodes);
  $form['nodes'] = array();
  $form['nodes']['#theme'] = 'nodequeue_arrange_subqueue_form_table';

  // Theme function needs these.
  $form['nodes']['#queue'] = (array) $queue;
  $form['nodes']['#subqueue'] = (array) $subqueue;
  $key = 0;
  foreach ($nodes as $node) {
    $form['nodes'][$key]['#node'] = (array) $node;
    if ($node->visible) {
      $form['nodes'][$key]['#node'] = (array) $node;
      $form['nodes'][$key]['title'] = array(
        '#markup' => l($node->title, 'node/' . $node->nid),
      );
      $form['nodes'][$key]['author'] = array(
        '#markup' => theme('username', array(
          'account' => $node,
        )),
      );
      $form['nodes'][$key]['date'] = array(
        '#markup' => format_date($node->created, 'short'),
      );
    }
    else {
      $form['nodes'][$key]['title'] = array(
        '#markup' => t('Restricted node, NID: @nid', array(
          '@nid' => $node->nid,
        )),
      );
      $form['nodes'][$key]['author'] = array(
        '#markup' => '',
      );
      $form['nodes'][$key]['date'] = array(
        '#markup' => '',
      );
    }
    if (node_access('update', $node)) {
      $options = array(
        'query' => array(
          'destination' => current_path(),
        ),
        'attributes' => array(
          'title' => t('Edit this node'),
        ),
      );
      $link = l(t('Edit content'), 'node/' . $node->nid . '/edit', $options);
      $form['nodes'][$key]['edit'] = array(
        '#markup' => $link,
      );
    }
    $form['nodes'][$key]['position'] = array(
      '#type' => 'position',
      '#delta' => $count,
      '#default_value' => $node->position,
      '#attributes' => array(
        'class' => array(
          'node-position',
        ),
      ),
    );
    $attr = array(
      'attributes' => array(
        'title' => t('Remove from queue'),
        'style' => 'display: none;',
        'class' => array(
          'nodequeue-remove',
        ),
        'id' => 'nodequeue-remove-' . $key,
      ),
      'query' => nodequeue_get_query_string($node->nid, TRUE),
    );
    $form['nodes'][$key]['remove'] = array(
      '#markup' => l(t('Remove'), 'nodequeue/' . $queue->qid . '/remove-node/' . $subqueue->sqid . '/' . $node->nid, $attr),
    );
    $key++;
  }

  // Textfield for adding nodes to the queue.
  $form['add'] = array(
    '#type' => 'container',
    '#attributes' => array(
      'class' => array(
        'container-inline',
      ),
    ),
  );
  $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' => array(
        'subqueue-add-nid',
      ),
    ),
  );
  $form['add']['submit'] = array(
    '#type' => 'submit',
    '#value' => t('Add content'),
    '#submit' => array(
      'nodequeue_arrange_subqueue_form_add_submit',
    ),
  );

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

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