class nodequeue_handler_field_all_queues in Nodequeue 6.2
Same name and namespace in other branches
- 7.3 includes/views/nodequeue_handler_field_all_queues.inc \nodequeue_handler_field_all_queues
- 7.2 includes/views/nodequeue_handler_field_all_queues.inc \nodequeue_handler_field_all_queues
@file Field handler for all queues.
Hierarchy
- class \nodequeue_handler_field_all_queues extends \views_handler_field_prerender_list
Expanded class hierarchy of nodequeue_handler_field_all_queues
2 string references to 'nodequeue_handler_field_all_queues'
- nodequeue_views_data_alter in includes/
views/ nodequeue.views.inc - Implementation of hook_views_data_alter().
- nodequeue_views_handlers in includes/
views/ nodequeue.views.inc - Implementation of hook_views_handlers().
File
- includes/
views/ nodequeue_handler_field_all_queues.inc, line 9 - Field handler for all queues.
View source
class nodequeue_handler_field_all_queues extends views_handler_field_prerender_list {
function option_definition() {
$options = parent::option_definition();
$options['link_to_queue'] = array(
'default' => TRUE,
);
$options['limit'] = array(
'default' => FALSE,
);
$options['qids'] = array(
'default' => array(),
);
return $options;
}
/**
* Provide "link to term" option.
*/
function options_form(&$form, &$form_state) {
parent::options_form($form, $form_state);
$form['link_to_queue'] = array(
'#title' => t('Link this field to queue arrange page'),
'#type' => 'checkbox',
'#default_value' => !empty($this->options['link_to_taxonomy']),
);
$form['limit'] = array(
'#type' => 'checkbox',
'#title' => t('Limit to queues'),
'#default_value' => $this->options['limit'],
);
$options = array();
$queues = nodequeue_load_queues(nodequeue_get_all_qids(NULL));
foreach ($queues as $queue) {
$options[$queue->qid] = $queue->title;
}
$form['qids'] = array(
'#prefix' => '<div><div id="edit-options-qids">',
'#suffix' => '</div></div>',
'#type' => 'checkboxes',
'#title' => t('Queues'),
'#options' => $options,
'#default_value' => $this->options['qids'],
'#process' => array(
'expand_checkboxes',
'views_process_dependency',
),
'#dependency' => array(
'edit-options-limit' => array(
TRUE,
),
),
);
}
function pre_render(&$values) {
$nids = array();
foreach ($values as $result) {
$nids[] = $result->{$this->field_alias};
}
if ($nids) {
$queue = '';
if (!empty($this->options['limit']) && !empty($this->options['qids'])) {
$queue = " AND nn.qid IN (" . implode(', ', array_keys(array_filter($this->options['qids']))) . ")";
}
$result = db_query("SELECT nn.nid, nn.qid, nq.title FROM {nodequeue_nodes} nn INNER JOIN {nodequeue_queue} nq ON nq.qid = nn.qid WHERE nn.nid IN (" . implode(', ', $nids) . "){$queue} ORDER BY nq.title");
while ($queue = db_fetch_object($result)) {
if (empty($this->options['link_to_queue'])) {
$this->items[$queue->nid][$queue->qid] = check_plain($queue->title);
}
else {
$this->items[$queue->nid][$queue->qid] = l($queue->title, "admin/content/nodequeue/{$queue->qid}");
}
}
}
}
}
Members
Name![]() |
Modifiers | Type | Description | Overrides |
---|---|---|---|---|
nodequeue_handler_field_all_queues:: |
function | Provide "link to term" option. | ||
nodequeue_handler_field_all_queues:: |
function | |||
nodequeue_handler_field_all_queues:: |
function | 1 |