| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231 | 
							- <?php
 
- /**
 
-  * @file
 
-  * Contains install, update, and uninstall functions for Skinr.
 
-  */
 
- /**
 
-  * Implementats hook_schema().
 
-  */
 
- function delta_schema() {
 
-   $schema['delta'] = array(
 
-     'description' => t('Stores theme-settings templates that allow overriding the theme settings used based on various contexts.'),
 
-     'export' => array(
 
-       'key' => 'machine_name',
 
-       'key name' => 'name',
 
-       'primary key' => 'machine_name',
 
-       'identifier' => 'delta',
 
-       'default hook' => 'delta_default_templates',
 
-       'status' => 'delta_status',
 
-       'api' => array(
 
-         'owner' => 'delta',
 
-         'api' => 'delta',
 
-         'minimum_version' => 3,
 
-         'current_version' => 3,
 
-       ),
 
-       'export callback' => 'delta_export',
 
-     ),
 
-     'fields' => array(
 
-       'machine_name' => array(
 
-         'description' => 'The system name of this theme settings template.',
 
-         'type' => 'varchar',
 
-         'length' => 32,
 
-         'not null' => TRUE,
 
-       ),
 
-       'name' => array(
 
-         'description' => 'The friendly name of this theme settings template.',
 
-         'type' => 'varchar',
 
-         'length' => 128,
 
-         'not null' => TRUE,
 
-       ),
 
-       'description' => array(
 
-         'description' => 'A brief description of this theme settings template.',
 
-         'type' => 'text',
 
-         'size' => 'medium',
 
-         'not null' => TRUE,
 
-       ),
 
-       'theme' => array(
 
-         'description' => 'The theme for which this theme settings template is relevant.',
 
-         'type' => 'varchar',
 
-         'length' => 128,
 
-         'not null' => TRUE,
 
-       ),
 
-       'mode' => array(
 
-         'description' => 'The mode that this template operrates in.',
 
-         'type' => 'varchar',
 
-         'length' => 32,
 
-         'not null' => TRUE,
 
-       ),
 
-       'parent' => array(
 
-         'description' => 'The system name of the parent of this theme settings template.',
 
-         'type' => 'varchar',
 
-         'length' => 32,
 
-         'not null' => TRUE,
 
-       ),
 
-       'settings' => array(
 
-         'description' => 'Serialized data which is a copy of the theme settings array stored in the system table based on these overrides',
 
-         'type' => 'blob',
 
-         'size' => 'big',
 
-         'not null' => FALSE,
 
-         'serialize' => TRUE,
 
-       ),
 
-     ),
 
-     'primary key' => array('machine_name'),
 
-   );
 
-   return $schema;
 
- }
 
- /**
 
-  * Rename the delta_theme_settings table to delta only and adjust it to be compatible with Delta 3.x.
 
-  */
 
- function delta_update_7301(&$sandbox) { 
 
-   if (!isset($sandbox['progress'])) {
 
-     $sandbox['#finished'] = 0;
 
-     $sandbox['progress'] = 0;    
 
-     $sandbox['max'] = db_select('delta_theme_settings', 'dt')->countQuery()->execute()->fetchField();
 
-     foreach (array('tid', 'theme', 'system_name') as $item) {
 
-       db_drop_index('delta_theme_settings', $item);
 
-     }
 
-     
 
-     db_drop_field('delta_theme_settings', 'tid');
 
-     
 
-     db_change_field('delta_theme_settings', 'data', 'settings', array(
 
-   	'description' => 'Serialized data which is a copy of the theme settings array stored in the system table based on these overrides',
 
-       'type' => 'blob',
 
-       'size' => 'big',
 
-       'not null' => FALSE,
 
-       'serialize' => TRUE,
 
-     ));
 
-     
 
-     db_change_field('delta_theme_settings', 'system_name', 'machine_name', array(
 
-       'description' => 'The system name of this theme settings template.',
 
-       'type' => 'varchar',
 
-       'length' => 32,
 
-       'not null' => TRUE,
 
-     ), array(
 
-       'primary key' => array('machine_name'),
 
-     ));
 
-     
 
-     db_change_field('delta_theme_settings', 'theme', 'theme', array(
 
-       'description' => 'The theme for which this theme settings template is relevant.',
 
-       'type' => 'varchar',
 
-       'length' => 128,
 
-       'not null' => TRUE,
 
-     ));
 
-     
 
-     db_change_field('delta_theme_settings', 'name', 'name', array(
 
-       'description' => 'The friendly name of this theme settings template.',
 
-       'type' => 'varchar',
 
-       'length' => 128,
 
-       'not null' => TRUE,
 
-     ));
 
-     
 
-     db_add_field('delta_theme_settings', 'mode', array(
 
-       'description' => 'The mode that this template operrates in.',
 
-       'type' => 'varchar',
 
-       'length' => 32,
 
-       'not null' => TRUE,
 
-       'initial' => 'override',
 
-     ));
 
-     db_rename_table('delta_theme_settings', 'delta');
 
-   }
 
-   $templates = db_select('delta', 'd')
 
-     ->fields('d', array('machine_name'))
 
-     ->orderBy('machine_name')
 
-     ->range($sandbox['progress'], 10)    
 
-     ->execute()
 
-     ->fetchCol();
 
-   
 
-   foreach ($templates as $name) {
 
-     $key = 'theme_delta_' . $name . '_settings';
 
-     $settings = variable_get($key, array());
 
-     
 
-     variable_del($key);
 
-         
 
-     unset($settings['delta_template']);
 
-     
 
-     db_update('delta')
 
-       ->fields(array('settings' => serialize($settings)))
 
-       ->condition('machine_name', $name)
 
-       ->execute();
 
-     $sandbox['progress']++;
 
-   }
 
-   $sandbox['#finished'] = empty($sandbox['max']) ? 1 : ($sandbox['progress'] / $sandbox['max']);
 
-   
 
-   if ($sandbox['#finished'] >= 1) {
 
-     return t("The Delta module's database table has been updated successfully and can now be used with Delta 3.x.");
 
-   }  
 
- }
 
- /**
 
-  * Add a description field to the Delta database table.
 
-  */
 
- function delta_update_7302(&$sandbox) {
 
-   db_add_field('delta', 'description', array(
 
-     'description' => 'A brief description of this theme settings template.',
 
-     'type' => 'text',
 
-     'size' => 'medium',
 
-     'not null' => TRUE,
 
-     'initial' => '',
 
-   ));
 
-   return t("Successfully added a description field to the Delta database table.");
 
- }
 
- /**
 
-  * Add a parent field to the Delta database table.
 
-  */
 
- function delta_update_7303(&$sandbox) {
 
-   db_add_field('delta', 'parent', array(
 
-     'description' => 'The system name of the parent of this theme settings template.',
 
-     'type' => 'varchar',
 
-     'length' => 32,
 
-     'not null' => TRUE,
 
-     'initial' => '',
 
-   ));
 
-   return t("Successfully added a parent field to the Delta database table.");
 
- }
 
- /**
 
-  * Add keys to the settings arrays.
 
-  */
 
- function delta_update_7304(&$sandbox) {
 
-   if (!isset($sandbox['progress'])) {
 
-     $sandbox['#finished'] = 0;
 
-     $sandbox['progress'] = 0;    
 
-     $sandbox['max'] = db_select('delta', 'dt')->countQuery()->execute()->fetchField();
 
-   }
 
-   
 
-   $templates = db_select('delta', 'd')
 
-     ->fields('d', array('machine_name', 'settings', 'theme'))
 
-     ->orderBy('machine_name')
 
-     ->range($sandbox['progress'], 10)    
 
-     ->execute();
 
-   
 
-   foreach ($templates as $item) {
 
-     $settings = array('theme_' . $item->theme . '_settings' => unserialize($item->settings));
 
-     db_update('delta')
 
-       ->fields(array('settings' => serialize($settings)))
 
-       ->condition('machine_name', $item->machine_name)
 
-       ->execute();
 
-     $sandbox['progress']++;
 
-   }
 
-   $sandbox['#finished'] = empty($sandbox['max']) ? 1 : ($sandbox['progress'] / $sandbox['max']);
 
-   
 
-   if ($sandbox['#finished'] >= 1) {
 
-     cache_clear_all();
 
-     
 
-     return t("The Delta template settings have been successfully updated.");
 
-   }
 
- }
 
 
  |