113 lines
3.1 KiB
Plaintext
113 lines
3.1 KiB
Plaintext
<?php
|
|
|
|
|
|
/**
|
|
* Implementation of hook_install().
|
|
*/
|
|
function context_install() {
|
|
// Nothing todo...
|
|
}
|
|
|
|
/**
|
|
* Implementation of hook_uninstall().
|
|
*/
|
|
function context_uninstall() {
|
|
drupal_uninstall_schema('context');
|
|
variable_del('context_ui_show_empty_regions');
|
|
variable_del('context_reaction_block_disable_core');
|
|
variable_del('context_reaction_block_all_regions');
|
|
}
|
|
|
|
/**
|
|
* Implementation of hook_schema().
|
|
*/
|
|
function context_schema() {
|
|
$schema = array();
|
|
$schema['context'] = array(
|
|
'description' => 'Storage for normal (user-defined) contexts.',
|
|
'export' => array(
|
|
'key' => 'name',
|
|
'identifier' => 'context',
|
|
'default hook' => 'context_default_contexts', // Function hook name.
|
|
'status' => 'context_status',
|
|
'api' => array(
|
|
'owner' => 'context',
|
|
'api' => 'context', // Base name for api include files.
|
|
'minimum_version' => 3,
|
|
'current_version' => 3,
|
|
),
|
|
'export callback' => 'context_export',
|
|
),
|
|
'fields' => array(
|
|
'name' => array(
|
|
'description' => 'The primary identifier for a context.',
|
|
'type' => 'varchar',
|
|
'length' => 255,
|
|
'not null' => TRUE,
|
|
'default' => '',
|
|
),
|
|
'description' => array(
|
|
'description' => 'Description for this context.',
|
|
'type' => 'varchar',
|
|
'length' => 255,
|
|
'not null' => TRUE,
|
|
'default' => '',
|
|
),
|
|
'tag' => array(
|
|
'description' => 'Tag for this context.',
|
|
'type' => 'varchar',
|
|
'length' => 255,
|
|
'not null' => TRUE,
|
|
'default' => '',
|
|
),
|
|
'conditions' => array(
|
|
'description' => 'Serialized storage of all context condition settings.',
|
|
'type' => 'text',
|
|
'serialize' => TRUE,
|
|
),
|
|
'reactions' => array(
|
|
'description' => 'Serialized storage of all context reaction settings.',
|
|
'type' => 'text',
|
|
'serialize' => TRUE,
|
|
),
|
|
'condition_mode' => array(
|
|
'description' => 'Condition mode for this context.',
|
|
'type' => 'int',
|
|
'default' => 0,
|
|
),
|
|
),
|
|
'primary key' => array('name'),
|
|
);
|
|
return $schema;
|
|
}
|
|
|
|
/**
|
|
* Update 7000: Handle adjustments to split of theme reaction to support D7 preprocess split between _page and _html
|
|
*/
|
|
|
|
function context_update_7000() {
|
|
drupal_load('module', 'ctools');
|
|
drupal_load('module', 'context');
|
|
$updated = array();
|
|
$contexts = context_load(NULL, TRUE);
|
|
foreach ($contexts as $c) {
|
|
// 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
|
|
if (isset($c->reactions['theme']) &&
|
|
isset($c->reactions['theme']['class']) &&
|
|
!empty($c->reactions['theme']['class']) &&
|
|
!isset($c->reactions['theme_html'])
|
|
) {
|
|
$c->reactions['theme_html']['class'] = $c->reactions['theme']['class'];
|
|
context_save($c);
|
|
$updated[] = $c->name;
|
|
}
|
|
}
|
|
if (empty($updated)) {
|
|
$ret = t('No contexts requiring migration detected.');
|
|
}
|
|
else {
|
|
$ret = t('The following contexts had theme reaction data migrated: @names', array('@names' => join(', ', $updated)));
|
|
}
|
|
return $ret;
|
|
}
|