function nodequeue_get_queues in Nodequeue 7.3
Get an array of queues applicable to this node type.
Parameters
$type: The node type.
$account: The account to test against. Defaults to the currently logged in user.
$bypass_cache: Boolean value indicating whether to bypass the cache or not.
Return value
$queues An array in the format: @code { array($name => array('name' => $name, 'show_in_tab' ' => true/false, 'show_in_links' => true/false }
2 calls to nodequeue_get_queues()
- nodequeue_load_queues_by_type in ./
nodequeue.module - Fetch a list of available queues for a given location. These queues will be fully loaded and ready to go.
- nodequeue_nodequeue_access in ./
nodequeue.module - Return TRUE if $user can queue(s) for this node.
File
- ./
nodequeue.module, line 519 - Maintains queues of nodes in arbitrary order.
Code
function nodequeue_get_queues($type, $account = NULL, $bypass_cache = FALSE) {
if (!isset($account)) {
global $user;
$account = $user;
}
static $cache = array();
if ($bypass_cache || !isset($cache[$type])) {
$roles_join = $roles_where = '';
$roles = array();
// superuser always has access.
if (!user_access('manipulate all queues', $account)) {
$roles_join = "INNER JOIN {nodequeue_roles} nr ON nr.name = nq.name ";
$roles = array_keys((array) $account->roles) + array(
DRUPAL_AUTHENTICATED_RID,
);
$roles_where .= "AND nr.rid IN (:roles)";
}
$sql = 'SELECT nq.name, nq.show_in_tab, nq.show_in_links, nq.show_in_ui, nq.i18n ' . 'FROM {nodequeue_queue} nq ' . 'INNER JOIN {nodequeue_types} nt ON nt.name = nq.name ' . $roles_join . "WHERE nt.type = :type " . $roles_where;
$result = db_query($sql, array(
':type' => $type,
':roles' => $roles,
));
$queues = array();
foreach ($result as $queue) {
$queues[$queue->name] = $queue;
}
$cache[$type] = $queues;
}
return $cache[$type];
}