total control - admin dashboard
[indybay:drupal.git] / docs / sites / all / modules / contrib / total_control / plugins / content_types / overview.inc
1 <?php
2
3 /**
4  * @file
5  *
6  * "Site overview" panel pane. Displays a summary of both content and user 
7  * statistics.
8  *
9  */
10
11 $plugin = array(
12   'single' => TRUE,
13   'title' => t('Overview - Content & User accounts'),
14   'defaults' => array('types' => NULL, 'comments' => NULL, 'spam' => 1, 'user' => NULL, 'roles' => NULL),
15   'icon' => 'cog.png',
16   'description' => t('An overview of both content and users in one pane'),
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_overview_content_type_admin_title($subtype = NULL, $conf = NULL, $context = NULL) {
25   return t('Content and User overview');
26 }
27
28 /**
29  * 'Admin info' callback for the content type.
30  */
31 function total_control_overview_content_type_admin_info($subtype = NULL, $conf = NULL, $context = NULL) {
32   $block = new stdClass();
33   $block->title = t('An overview of both content and users in one pane');
34
35   return $block;
36 }
37
38 /**
39  * Run-time rendering of the body of the block.
40  */
41 function total_control_overview_content_type_render($subtype, $conf, $panel_args, &$context) {
42   // Content Overview.
43   $overview_cnt = total_control_get_content_overview($conf);
44
45   // User Overview.  
46   $overview_usr = array();
47   $user_data = total_control_get_user_overview($conf);
48   $users_all = format_plural($user_data['all'], '1 total user', '@count total users');
49   $users_active = format_plural($user_data['active'], '1 active', '@count active');
50   $users_blocked = format_plural($user_data['blocked'], '1 blocked', '@count blocked');
51   $overview_usr[] = $users_all . ' | ' . $users_active . ' | ' . $users_blocked;
52
53   // Roles Overview.
54   foreach ($user_data['roles'] as $rid => $data) {
55     $overview_usr['role_' . $rid] = format_plural($user_data['roles'][$rid]['count'], '1 user account', '@count user accounts');
56     $overview_usr['role_' . $rid] .= ' with the role: ' . $user_data['roles'][$rid]['name'];
57   } 
58
59   $block = new stdClass();
60   $block->module = t('total_control');
61   $block->title = t('Content and User overview');
62   $block->content = theme('total_control_overview', array('content' => $overview_cnt, 'users' => $overview_usr));
63
64   return $block;
65 }
66
67 /**
68  * 'Edit form' callback for the content type.
69  */
70 function total_control_overview_content_type_edit_form($form, &$form_state) {
71   $conf = $form_state['conf'];  
72   // Add content settings to form.
73   total_control_add_content_pane_settings($form, $conf);
74   // Add user settings to form.
75   total_control_add_user_pane_settings($form, $conf);
76
77   return $form;
78 }
79
80 /**
81  * 'Edit form' submit callback for the content type.
82  */
83 function total_control_overview_content_type_edit_form_submit($form, &$form_state) {
84   foreach (array_keys($form_state['plugin']['defaults']) as $key) {
85     $form_state['conf'][$key] = $form_state['values'][$key];
86   }
87 }