popsu-d7/sites/all/modules/styles/styles.install
Bachir Soussi Chiadmi 1bc61b12ad first import
2015-04-08 11:40:19 +02:00

371 lines
9.4 KiB
Plaintext

<?php
/**
* @file
* Install, update and uninstall functions for the Styles module.
*/
/**
* Implement hook_install().
*/
function styles_install() {
return array();
}
/**
* Implement hook_uninstall().
*/
function styles_uninstall() {
foreach (styles_variable_default() as $variable => $value) {
styles_variable_del($variable);
}
return array(array('success' => TRUE, 'query' => "Deleted all variables in the Styles namespace."));
}
/**
* Implement hook_schema().
*/
function styles_schema() {
$schema = array();
$schema['cache_styles'] = drupal_get_schema_unprocessed('system', 'cache');
$schema['cache_styles']['description'] = 'Cache table used to store information display manipulations that are in-progress.';
$schema['styles'] = array(
'description' => 'Stores configuration options for styles.',
'fields' => array(
'sid' => array(
'description' => 'The primary identifier for a style.',
'type' => 'serial',
'unsigned' => TRUE,
'not null' => TRUE,
),
'field_type' => array(
'description' => 'The field type.',
'type' => 'varchar',
'length' => 128,
'not null' => TRUE,
),
'name' => array(
'description' => 'The style name.',
'type' => 'varchar',
'length' => 255,
'not null' => TRUE,
),
'description' => array(
'description' => 'The style description.',
'type' => 'text',
'not null' => TRUE,
'size' => 'big',
),
),
'primary key' => array('sid'),
'indexes' => array(
'field_type' => array('field_type'),
'name' => array('name'),
),
);
$schema['styles_presets'] = array(
'description' => 'Stores configuration options for styles presets.',
'fields' => array(
'pid' => array(
'description' => 'The primary identifier for a style preset.',
'type' => 'serial',
'unsigned' => TRUE,
'not null' => TRUE,
),
'field_type' => array(
'description' => 'The field type.',
'type' => 'varchar',
'length' => 128,
'not null' => TRUE,
),
'container_name' => array(
'description' => 'The container name',
'type' => 'varchar',
'length' => 128,
'not null' => TRUE,
),
'name' => array(
'description' => 'The preset name.',
'type' => 'varchar',
'length' => 255,
'not null' => TRUE,
),
),
'primary key' => array('pid'),
'indexes' => array(
'field_type' => array('field_type'),
'container_name' => array('container_name'),
'name' => array('name'),
),
);
$schema['styles_preset_instances'] = array(
'description' => 'Stores the settings for each container/style preset.',
'fields' => array(
'sid' => array(
'description' => 'The primary identifier for a style.',
'type' => 'int',
'unsigned' => TRUE,
'not null' => TRUE,
'default' => 0,
),
'pid' => array(
'description' => 'The primary identifier for a style preset.',
'type' => 'int',
'unsigned' => TRUE,
'not null' => TRUE,
'default' => 0,
),
),
'foreign keys' => array(
'sid' => array(
'table' => 'styles',
'columns' => array('sid' => 'sid'),
),
'pid' => array(
'table' => 'styles_presets',
'columns' => array('pid' => 'pid'),
),
),
'indexes' => array(
'sid' => array('sid'),
'pid' => array('pid'),
),
);
return $schema;
}
/**
* Add new theme functions.
*/
function styles_update_7200() {
drupal_theme_rebuild();
return array();
}
/**
* Clear old cache table of any styles data.
*/
function styles_update_7201() {
cache_clear_all('styles_', 'cache', TRUE);
return array();
}
/**
* Add the field_type column to the {styles} table.
*/
function styles_update_7202() {
db_add_field('styles', 'field_type', array(
'description' => 'The field type.',
'type' => 'varchar',
'length' => 128,
'not null' => TRUE,
));
db_add_index('styles', 'field_type', array('field_type'));
}
/**
* Add the label & description columns to the {styles} table.
*/
function styles_update_7204() {
db_add_field('styles', 'label', array(
'description' => 'The human readable label for the style.',
'type' => 'varchar',
'length' => 255,
'not null' => TRUE,
'default' => '',
));
db_add_field('styles', 'description', array(
'description' => 'The style description.',
'type' => 'varchar',
'length' => 255,
'not null' => TRUE,
'default' => '',
));
db_add_index('styles', 'label', array('label'));
}
/**
* Drop the label column from the {styles} table; alter the description column.
*/
function styles_update_7206() {
db_drop_field('styles', 'label');
db_drop_index('styles', 'label');
db_change_field('styles', 'description', 'description',
array(
'description' => 'The style description.',
'type' => 'text',
'not null' => TRUE,
'size' => 'big',
)
);
}
/**
* Clear style and preset caches.
*/
function styles_update_7208() {
return array();
}
/**
* Ensure we catch included file Styles.inc.
*/
function styles_update_7209() {
return array();
}
/**
* Drop style_effects table.
*/
function styles_update_7211() {
db_drop_table('style_effects');
}
/**
* Create the styles_presets and styles_preset_instances tables.
*/
function styles_update_7212() {
$schema = array();
$schema['styles_presets'] = array(
'description' => 'Stores configuration options for styles presets.',
'fields' => array(
'pid' => array(
'description' => 'The primary identifier for a style preset.',
'type' => 'serial',
'unsigned' => TRUE,
'not null' => TRUE,
),
'field_type' => array(
'description' => 'The field type.',
'type' => 'varchar',
'length' => 128,
'not null' => TRUE,
),
'container_name' => array(
'description' => 'The container name',
'type' => 'varchar',
'length' => 128,
'not null' => TRUE,
),
'name' => array(
'description' => 'The preset name.',
'type' => 'varchar',
'length' => 255,
'not null' => TRUE,
),
'description' => array(
'description' => 'The preset description.',
'type' => 'text',
'not null' => TRUE,
'size' => 'big',
),
),
'primary key' => array('pid'),
'indexes' => array(
'field_type' => array('field_type'),
'container_name' => array('container_name'),
'name' => array('name'),
),
);
$schema['styles_preset_instances'] = array(
'description' => 'Stores the settings for each container/style preset.',
'fields' => array(
'sid' => array(
'description' => 'The primary identifier for a style.',
'type' => 'int',
'unsigned' => TRUE,
'not null' => TRUE,
'default' => 0,
),
'pid' => array(
'description' => 'The primary identifier for a style preset.',
'type' => 'int',
'unsigned' => TRUE,
'not null' => TRUE,
'default' => 0,
),
),
'foreign keys' => array(
'sid' => array(
'table' => 'styles',
'columns' => array('sid' => 'sid'),
),
'pid' => array(
'table' => 'styles_presets',
'columns' => array('pid' => 'pid'),
),
),
'indexes' => array(
'sid' => array('sid'),
'pid' => array('pid'),
),
);
if (!db_table_exists('styles_presets')) {
db_create_table('styles_presets', $schema['styles_presets']);
}
if (!db_table_exists('styles_preset_instances')) {
db_create_table('styles_preset_instances', $schema['styles_preset_instances']);
}
}
/**
* Remove the description from styles_presets.
*/
function styles_update_7213() {
db_drop_field('styles_presets', 'description');
}
/**
* Update old File Style formatters on Image fields to the Image formatter.
*/
function styles_update_7214() {
$instances = array();
$fields = field_read_fields(array('type' => 'image'), array('include_inactive' => TRUE));
foreach ($fields as $field) {
$instances = array_merge($instances, field_read_instances(array('field_id' => $field['id']), array('include_inactive' => TRUE)));
}
foreach ($instances as $instance) {
$update_instance = FALSE;
foreach ($instance['display'] as $view_mode => $display) {
if (strpos($display['type'], 'styles_image_') === 0) {
$update_instance = TRUE;
$image_style = substr($display['type'], strlen('styles_image_'));
$instance['display'][$view_mode]['type'] = 'image';
$instance['display'][$view_mode]['settings'] = array('image_style' => $image_style, 'image_link' => FALSE);
}
}
if ($update_instance) {
field_update_instance($instance);
}
}
}
/**
* Delete duplicate entries from the styles table.
*/
function styles_update_7215() {
$names = db_query("SELECT name FROM {styles} GROUP BY name HAVING COUNT(*) > 1")->fetchCol();
foreach ($names as $name) {
$sids = db_select('styles')
->fields('styles', array('sid', 'name'))
->condition('name', $name)
->orderBy('sid', 'DESC')
->execute()
->fetchCol();
array_shift($sids);
foreach ($sids as $sid) {
db_delete('styles')
->condition('sid', $sid)
->execute();
}
}
}