function nodequeue_link in Nodequeue 5.2
Same name and namespace in other branches
- 5 nodequeue.module \nodequeue_link()
- 6.2 nodequeue.module \nodequeue_link()
Implementation of hook_link
1 call to nodequeue_link()
- nodequeue_views_ajax_link in ./
nodequeue.views.inc - Views field handler for "NodeQueue: AJAX Add/Remove Link"
File
- ./
nodequeue.module, line 260
Code
function nodequeue_link($type, $node = NULL, $teaser = FALSE) {
if ($type == 'node' && variable_get('nodequeue_links', FALSE) && user_access('manipulate queues')) {
$queues = nodequeue_load_queues_by_type($node->type, 'links');
$subqueues = nodequeue_get_subqueues_by_node($queues, $node);
if (empty($subqueues)) {
return;
}
// resort the subqueues to retain consistent ordering:
ksort($subqueues);
// Due to caching, we can accidentally get positions leftover
// from previous iterations on teaser list pages, so we must
// remove any existing positions here.
foreach ($subqueues as $id => $subqueue) {
unset($subqueues[$id]->position);
}
nodequeue_set_subqueue_positions($subqueues, $node->nid);
foreach ($subqueues as $subqueue) {
$queue = $queues[$subqueue->qid];
$query_string = nodequeue_get_query_string($node->nid, TRUE);
$class = 'nodequeue-ajax-toggle nodequeue-toggle-q-' . $queue->qid . ' nodequeue-toggle-sq-' . $subqueue->sqid . ' nodequeue-toggle-ref-' . $subqueue->reference;
if (!isset($subqueue->position)) {
$links[$class] = array(
'title' => nodequeue_title_substitute($queue->link, $queue, $subqueue),
'href' => "admin/content/nodequeue/{$queue->qid}/add/{$subqueue->sqid}/{$node->nid}",
'attributes' => array(
'class' => 'toggle-add',
),
'query' => $query_string,
);
}
else {
if ($queue->link_remove) {
$links[$class] = array(
'title' => nodequeue_title_substitute($queue->link_remove, $queue, $subqueue),
'href' => "admin/content/nodequeue/{$queue->qid}/remove-node/{$subqueue->sqid}/{$node->nid}",
'attributes' => array(
'class' => 'toggle-remove',
),
'query' => $query_string,
);
}
}
}
drupal_add_js(drupal_get_path('module', 'nodequeue') . '/nodequeue.js');
drupal_add_css(drupal_get_path('module', 'nodequeue') . '/nodequeue.css');
}
return $links;
}