danielebarchiesi@0
|
1 <?php
|
danielebarchiesi@0
|
2
|
danielebarchiesi@0
|
3 /**
|
danielebarchiesi@0
|
4 * @file
|
danielebarchiesi@0
|
5 * Install, update and uninstall functions for the dashboard module.
|
danielebarchiesi@0
|
6 */
|
danielebarchiesi@0
|
7
|
danielebarchiesi@0
|
8 /**
|
danielebarchiesi@0
|
9 * Implements hook_disable().
|
danielebarchiesi@0
|
10 *
|
danielebarchiesi@0
|
11 * Stash a list of blocks enabled on the dashboard, so they can be re-enabled
|
danielebarchiesi@0
|
12 * if the dashboard is re-enabled. Then disable those blocks, since the
|
danielebarchiesi@0
|
13 * dashboard regions will no longer be defined.
|
danielebarchiesi@0
|
14 */
|
danielebarchiesi@0
|
15 function dashboard_disable() {
|
danielebarchiesi@0
|
16 // Stash a list of currently enabled blocks.
|
danielebarchiesi@0
|
17 $stashed_blocks = array();
|
danielebarchiesi@0
|
18
|
danielebarchiesi@0
|
19 $result = db_select('block', 'b')
|
danielebarchiesi@0
|
20 ->fields('b', array('module', 'delta', 'region'))
|
danielebarchiesi@0
|
21 ->condition('b.region', dashboard_regions(), 'IN')
|
danielebarchiesi@0
|
22 ->execute();
|
danielebarchiesi@0
|
23
|
danielebarchiesi@0
|
24 foreach ($result as $block) {
|
danielebarchiesi@0
|
25 $stashed_blocks[] = array(
|
danielebarchiesi@0
|
26 'module' => $block->module,
|
danielebarchiesi@0
|
27 'delta' => $block->delta,
|
danielebarchiesi@0
|
28 'region' => $block->region,
|
danielebarchiesi@0
|
29 );
|
danielebarchiesi@0
|
30 }
|
danielebarchiesi@0
|
31 variable_set('dashboard_stashed_blocks', $stashed_blocks);
|
danielebarchiesi@0
|
32
|
danielebarchiesi@0
|
33 // Disable the dashboard blocks.
|
danielebarchiesi@0
|
34 db_update('block')
|
danielebarchiesi@0
|
35 ->fields(array(
|
danielebarchiesi@0
|
36 'status' => 0,
|
danielebarchiesi@0
|
37 'region' => BLOCK_REGION_NONE,
|
danielebarchiesi@0
|
38 ))
|
danielebarchiesi@0
|
39 ->condition('region', dashboard_regions(), 'IN')
|
danielebarchiesi@0
|
40 ->execute();
|
danielebarchiesi@0
|
41 }
|
danielebarchiesi@0
|
42
|
danielebarchiesi@0
|
43 /**
|
danielebarchiesi@0
|
44 * Implements hook_enable().
|
danielebarchiesi@0
|
45 *
|
danielebarchiesi@0
|
46 * Restores blocks to the dashboard that were there when the dashboard module
|
danielebarchiesi@0
|
47 * was disabled.
|
danielebarchiesi@0
|
48 */
|
danielebarchiesi@0
|
49 function dashboard_enable() {
|
danielebarchiesi@0
|
50 global $theme_key;
|
danielebarchiesi@0
|
51 if (!$stashed_blocks = variable_get('dashboard_stashed_blocks')) {
|
danielebarchiesi@0
|
52 return;
|
danielebarchiesi@0
|
53 }
|
danielebarchiesi@0
|
54 if (!$admin_theme = variable_get('admin_theme')) {
|
danielebarchiesi@0
|
55 drupal_theme_initialize();
|
danielebarchiesi@0
|
56 $admin_theme = $theme_key;
|
danielebarchiesi@0
|
57 }
|
danielebarchiesi@0
|
58 foreach ($stashed_blocks as $block) {
|
danielebarchiesi@0
|
59 db_update('block')
|
danielebarchiesi@0
|
60 ->fields(array(
|
danielebarchiesi@0
|
61 'status' => 1,
|
danielebarchiesi@0
|
62 'region' => $block['region']
|
danielebarchiesi@0
|
63 ))
|
danielebarchiesi@0
|
64 ->condition('module', $block['module'])
|
danielebarchiesi@0
|
65 ->condition('delta', $block['delta'])
|
danielebarchiesi@0
|
66 ->condition('theme', $admin_theme)
|
danielebarchiesi@0
|
67 ->condition('status', 0)
|
danielebarchiesi@0
|
68 ->execute();
|
danielebarchiesi@0
|
69 }
|
danielebarchiesi@0
|
70 variable_del('dashboard_stashed_blocks');
|
danielebarchiesi@0
|
71 }
|
danielebarchiesi@0
|
72
|
danielebarchiesi@0
|
73 /**
|
danielebarchiesi@0
|
74 * Implements hook_uninstall().
|
danielebarchiesi@0
|
75 */
|
danielebarchiesi@0
|
76 function dashboard_uninstall() {
|
danielebarchiesi@0
|
77 variable_del('dashboard_stashed_blocks');
|
danielebarchiesi@0
|
78 }
|