You are here

function nodequeue_page in Nodequeue 5

Display the queue page for a node, allowing the user to control how the node exists in various queues. This controls a couple of different paths.

1 string reference to 'nodequeue_page'
nodequeue_menu in ./nodequeue.module
Implementation of hook_menu

File

./nodequeue.module, line 135

Code

function nodequeue_page($nid, $op = NULL, $qid = NULL) {
  $node = node_load($nid);
  drupal_set_title(check_plain($node->title));
  if (!nodequeue_node_access($node->type)) {
    return t('No node queue defined for this node type.');
  }
  else {
    if ($op && $qid) {
      $queue = nodequeue_load($qid);
      $js = !empty($_POST['js']);
      if ($queue) {
        if ($op == 'add') {
          _nodequeue_queue_add($queue, $nid);
          if ($js) {
            $return = new stdClass();
            $return->status = 1;
            $return->label = $queue->link_remove;
            $return->href = "node/{$nid}/nodequeue/remove/{$queue->qid}";
          }
        }
        elseif ($op == 'remove') {
          if ($pos = nodequeue_queue_position($qid, $nid)) {
            _nodequeue_queue_remove($queue, $pos);
          }
          if ($js) {
            $return = new stdClass();
            $return->status = 1;
            $return->label = $queue->link;
            $return->href = "node/{$nid}/nodequeue/add/{$queue->qid}";
          }
        }
        if (isset($return)) {
          print drupal_to_js($return);
          exit;
          return;
        }
        drupal_goto("node/{$nid}/nodequeue");
      }
    }
    return drupal_get_form('nodequeue_page_form', $node);
  }
}