total control - admin dashboard
[indybay:drupal.git] / docs / sites / all / modules / contrib / total_control / plugins / content_types / nodequeue.inc
1 <?php
2
3 /**
4  * @file
5  *
6  * "Nodequeue" content type. It shows users with permissions all of the 
7  * nodequeues and provides links directly manage them.
8  *
9  */
10
11 $plugin = array(
12   'single' => TRUE,
13   'title' => t('Admin - NodeQueues'),
14   'defaults' => array(),
15   'icon' => 'cog.png',
16   'description' => t('Provides links to administer NodeQueues.'),
17   'category' => t('Dashboard'),
18   'edit text' => t('Configure'),
19 );
20
21 /**
22  * 'Admin title' callback for the content type.
23  */
24 function total_control_nodequeue_content_type_admin_title($subtype = NULL, $conf = NULL, $context = NULL) {
25   return t('Administer NodeQueues');
26 }
27
28 /**
29  * 'Admin info' callback for the content type.
30  */
31 function total_control_nodequeue_content_type_admin_info($subtype = NULL, $conf = NULL, $context = NULL) {
32   $block = new stdClass();
33   $block->title = t('Provides links to administer NodeQueues.');
34
35   return $block;
36 }
37
38 /**
39  * Run-time rendering of the body of the block.
40  */
41 function total_control_nodequeue_content_type_render($subtype, $conf, $args, &$context) {  
42   // Check for nodequeue module. 
43   if (module_exists('nodequeue')) {
44     // Get nodequeues.
45     module_load_include('module', 'nodequeue', 'nodequeue');
46     $queues = nodequeue_load_queues(nodequeue_get_all_qids(25));
47     foreach ($queues as $queue) {
48       if (!nodequeue_queue_access($queue)) {
49         unset($queues[$queue->qid]);
50       }
51     }
52
53     $options = array('query' => array('destination' => 'admin/dashboard'));
54     $header = array(
55       array('data' => t('Title'),),
56       array('data' => t('Size')),
57       array('data' => t('Operations'), 'colspan' => 2),
58     );
59     $rows = array();
60     foreach ($queues as $queue) {
61       $rows[] = array(
62         array('class' => 'nodequeue-title', 'data' => check_plain($queue->title)),
63         array('class' => 'nodequeue-max-nodes', 'data' => $queue->size == 0 ? t('Infinite') : $queue->size),
64         array('data' => l(t('Configure'), 'admin/structure/nodequeue/' . $queue->qid . '/edit', $options)),
65         array('data' => l(t('Manage items'), 'admin/structure/nodequeue/' . $queue->qid . '/view', $options)),
66       );
67     }
68     
69     $empty_text = t('There are no nodequeues to display.');
70     $link = '';
71     if (user_access('administer nodequeue')) {
72       $link = l(t('NodeQueue administration'), 'admin/structure/nodequeue');
73     }
74   }
75   else {
76     $header = array();
77     $empty_text = t('Dashboard administration for the <a href="!href">nodequeue</a> module.', array('!href' => 'http://drupal.org/project/nodequeue'));
78     $link = '';
79   }
80   
81   if (empty($rows)) {
82     $rows[] = array(
83       array(
84         'data' => $empty_text,
85         'colspan' => 5,
86       )
87     );
88   }
89
90   $block = new stdClass();
91   $block->module = t('total_control');
92   $block->title = t('Administer NodeQueues');
93   $block->content = $block->content = theme('total_control_admin_table', array('header' => $header, 'rows' => $rows, 'link' => $link));
94
95   return $block;
96
97 }
98