upgrade omega again
[indybay:drupal.git] / docs / sites / all / modules / contrib / context / context.install
1 <?php
2
3 /**
4  * Implementation of hook_install().
5  */
6 function context_install() {
7   // Nothing todo...
8 }
9
10 /**
11  * Implementation of hook_uninstall().
12  */
13 function context_uninstall() {
14   drupal_uninstall_schema('context');
15   variable_del('context_ui_show_empty_regions');
16   variable_del('context_reaction_block_disable_core');
17   variable_del('context_reaction_block_all_regions');
18 }
19
20 /**
21  * Implementation of hook_schema().
22  */
23 function context_schema() {
24   $schema = array();
25   $schema['context'] = array(
26     'description' => 'Storage for normal (user-defined) contexts.',
27     'export' => array(
28       'key' => 'name',
29       'identifier' => 'context',
30       'default hook' => 'context_default_contexts',  // Function hook name.
31       'status' => 'context_status',
32       'api' => array(
33         'owner' => 'context',
34         'api' => 'context',  // Base name for api include files.
35         'minimum_version' => 3,
36         'current_version' => 3,
37       ),
38       'export callback' => 'context_export',
39     ),
40     'fields' => array(
41       'name' => array(
42         'description' => 'The primary identifier for a context.',
43         'type' => 'varchar',
44         'length' => 255,
45         'not null' => TRUE,
46         'default' => '',
47       ),
48       'description' => array(
49         'description' => 'Description for this context.',
50         'type' => 'varchar',
51         'length' => 255,
52         'not null' => TRUE,
53         'default' => '',
54       ),
55       'tag' => array(
56         'description' => 'Tag for this context.',
57         'type' => 'varchar',
58         'length' => 255,
59         'not null' => TRUE,
60         'default' => '',
61       ),
62       'conditions' => array(
63         'description' => 'Serialized storage of all context condition settings.',
64         'type' => 'text',
65         'serialize' => TRUE,
66       ),
67       'reactions' => array(
68         'description' => 'Serialized storage of all context reaction settings.',
69         'type' => 'text',
70         'serialize' => TRUE,
71       ),
72       'condition_mode' => array(
73         'description' => 'Condition mode for this context.',
74         'type' => 'int',
75         'default' => 0,
76       ),
77     ),
78     'primary key' => array('name'),
79   );
80   return $schema;
81 }
82
83 /**
84  * Update 7000: Handle adjustments to split of theme reaction to support D7 preprocess split between _page and _html
85  */
86
87 function context_update_7000() {
88   drupal_load('module', 'ctools');
89   drupal_load('module', 'context');
90   $updated = array();
91   $contexts = context_load(NULL, TRUE);
92   foreach ($contexts as $c) {
93     // if the old data is in the old reaction and the new reaction hasn't been saved, migrate the old data to the new reaction
94     if (isset($c->reactions['theme']) &&
95         isset($c->reactions['theme']['class']) &&
96         !empty($c->reactions['theme']['class']) &&
97         !isset($c->reactions['theme_html'])
98     ) {
99       $c->reactions['theme_html']['class'] = $c->reactions['theme']['class'];
100       context_save($c);
101       $updated[] = $c->name;
102     }
103   }
104   if (empty($updated)) {
105     $ret = t('No contexts requiring migration detected');
106   }
107   else {
108     $ret = t('The following contexts had theme reaction data migrated: @names', array('@names' => join(', ', $updated)));
109   }
110   return $ret;
111 }