You are here

i18n_variable.install in Internationalization 7

Installation file for Internationalization (i18n) module.

File

i18n_variable/i18n_variable.install
View source
<?php

/**
 * @file
 * Installation file for Internationalization (i18n) module.
 */

/**
 * Implements hook_install().
 */
function i18n_variable_install() {

  // Set module weight for it to run before most modules, but after variable_realm
  db_query("UPDATE {system} SET weight = -900 WHERE name = 'i18n_variable' AND type = 'module'");

  // Update from d6, module changed name
  if (variable_get('i18n_drupal6_update')) {
    i18n_variable_update_7000();
    i18n_variable_update_7001();
    i18n_variable_update_7002();
  }

  // Set some minimum variables to be translated.
  variable_set('variable_realm_list_language', array(
    'site_name',
    'site_slogan',
  ));
}

/**
 * Implements hook_install().
 */
function i18n_variable_uninstall() {
  if (drupal_load('module', 'variable_store')) {

    // Delete all our variables from store.
    variable_store_delete_all('language', NULL);
  }
}

/**
 * Update multilingual variables variable name
 */
function i18n_variable_update_7000() {
  variable_set('i18n_variable_list', variable_get('i18n_variables', array()));
  variable_set('i18n_variable_conf', variable_get('i18n_variables', array()));
  variable_del('i18n_variables');
}

/**
 * Move variables from old storage to new table
 */
function i18n_variable_update_7001() {
  drupal_load('module', 'variable_store');
  foreach (db_select('i18n_variable', 'v')
    ->fields('v')
    ->execute()
    ->fetchAll() as $variable) {
    variable_store_set('language', $variable->language, $variable->name, unserialize($variable->value));
  }
}

/**
 * Drop i18n_variable table if exists
 */
function i18n_variable_update_7002() {
  if (db_table_exists('i18n_variable')) {
    db_drop_table('i18n_variable');
  }
}

/**
 * Update list of realm variables.
 */
function i18n_variable_update_7003() {
  drupal_load('module', 'variable_store');
  $variable_list = variable_get('i18n_variable_conf', array());
  variable_set('variable_realm_list_language', $variable_list);

  // Delete old variables from store that are not in the list.
  $old_variables = array_diff(variable_store_list_all('language'), variable_children($variable_list));
  foreach ($old_variables as $name) {
    variable_store_delete_all('language', NULL, $name);
  }
}

/**
 * Delete obsoleted variable realm variables.
 */
function i18n_variable_update_7004() {
  variable_del('i18n_variable_conf');
  variable_del('i18n_variable_list');
}

Functions

Namesort descending Description
i18n_variable_install Implements hook_install().
i18n_variable_uninstall Implements hook_install().
i18n_variable_update_7000 Update multilingual variables variable name
i18n_variable_update_7001 Move variables from old storage to new table
i18n_variable_update_7002 Drop i18n_variable table if exists
i18n_variable_update_7003 Update list of realm variables.
i18n_variable_update_7004 Delete obsoleted variable realm variables.