function nodequeue_page_form in Nodequeue 5
Display the queue controls for a node.
1 string reference to 'nodequeue_page_form'
- nodequeue_page in ./
nodequeue.module - 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.
File
- ./
nodequeue.module, line 183
Code
function nodequeue_page_form($node) {
// Determine which queues are appropriate for this nodetype.
global $user;
$roles_where = $roles_join = '';
$roles = array();
if (!user_access('manipulate all queues')) {
$roles = array_keys((array) $user->roles) + array(
DRUPAL_AUTHENTICATED_RID,
);
$role_args = array_fill(0, count($roles), '%d');
$roles_join = "INNER JOIN {nodequeue_roles} nr ON nr.qid = nq.qid ";
$roles_where = "AND nr.rid IN (" . implode(',', $role_args) . ") ";
}
// db_rewrite_sql should not be used here because the queue info needs
// to always be correct here.
$result = db_query("SELECT nq.qid, nq.title, nq.size, MAX(nqn.position) AS num_nodes " . "FROM {nodequeue_queue} nq " . "INNER JOIN {nodequeue_types} nt ON nt.qid = nq.qid " . "LEFT JOIN {nodequeue_nodes} nqn ON nqn.qid = nq.qid " . $roles_join . "WHERE nt.type = '%s' " . $roles_where . "GROUP BY nq.qid, nq.title, nq.size, nqn.position ORDER BY nq.title", array_merge(array(
$node->type,
), $roles));
$form = array();
while ($queue = db_fetch_object($result)) {
$form['title'][$queue->qid] = array(
'#type' => 'markup',
'#value' => $queue->title,
);
$form['size'][$queue->qid] = array(
'#type' => 'markup',
'#value' => $queue->size,
);
$form['num_nodes'][$queue->qid] = array(
'#type' => 'markup',
'#value' => $queue->num_nodes . ($queue->size && $queue->size == $queue->num_nodes ? ' ' . t('QUEUE FULL') : ''),
);
$ops = array(
l(t('View queue'), "admin/content/nodequeue/{$queue->qid}/view"),
);
if (is_numeric($pos = db_result(db_query("SELECT position FROM {nodequeue_nodes} WHERE nid = %d AND qid = %d", $node->nid, $queue->qid)))) {
$ops[] = l(t("Remove from queue"), "node/{$node->nid}/nodequeue/remove/{$queue->qid}/{$pos}");
}
else {
$ops[] = l(t("Add to queue"), "node/{$node->nid}/nodequeue/add/{$queue->qid}");
}
$form['operations'][$queue->qid] = array(
'#type' => 'markup',
'#value' => implode(' | ', $ops),
);
}
return $form;
}