You are here

language_selection_page.install in Language Selection Page 6

The install page.

File

language_selection_page.install
View source
<?php

/**
 * @file
 * The install page.
 */

/*
 * Implementation of hook_requirements().
 */
function language_selection_page_requirements($phase) {
  module_load_include('inc', 'language_selection_page', 'includes/language_selection_page.helpers');
  $requirements = array();
  $lang_list = language_list('enabled');
  $language_count = _language_selection_page_check_language_count();
  if (variable_get('language_negotiation', LANGUAGE_NEGOTIATION_NONE) != 2) {
    $requirements['language_selection_page'] = array(
      'title' => 'Language Selection Page',
      'value' => _language_selection_page_get_error_messages('language_negotiation', 'Language negotiation', 'Path prefix with language fallback.', 'admin/settings/language/configure'),
      'severity' => REQUIREMENT_ERROR,
    );
    return $requirements;
  }
  if ($language_count['db'] != $language_count['vars']) {
    $requirements['language_selection_page'] = array(
      'title' => 'Language Selection Page',
      'value' => _language_selection_page_get_error_messages('language_count', $language_count['db'], $language_count['vars']),
      'severity' => REQUIREMENT_ERROR,
    );
    return $requirements;
  }
  if ($language_count['db'] > 1) {
    $lang_list_without_prefix = array();
    foreach ($lang_list[1] as $lang) {
      if (empty($lang->prefix)) {
        $lang_list_without_prefix[$lang->language] = _language_selection_page_get_error_messages('language_prefix', url('admin/settings/language/edit/' . $lang->language), $lang->name);
      }
    }
    if (count($lang_list_without_prefix) >= 1) {
      $requirements['language_selection_page'] = array(
        'title' => 'Language Selection Page',
        'value' => implode('<br/>', $lang_list_without_prefix),
        'severity' => REQUIREMENT_WARNING,
      );
    }
    else {
      $requirements['language_selection_page'] = array(
        'title' => 'Language Selection Page',
        'value' => _language_selection_page_get_error_messages('language_all_good'),
        'severity' => REQUIREMENT_OK,
      );
    }
  }
  else {
    $link = url('admin/settings/language');
    $requirements['language_selection_page'] = array(
      'title' => 'Language Selection Page',
      'value' => _language_selection_page_get_error_messages('language_only_one', $link),
      'severity' => REQUIREMENT_WARNING,
    );
  }
  return $requirements;
}

/**
 * Implementation of hook_uninstall().
 *
 */
function language_selection_page_uninstall() {
  variable_del('language_selection_page_use_language_cookie');
  variable_del('language_selection_page_enable');
  variable_del('language_selection_page_redirect_type');
  variable_del('language_selection_page_blacklisted_paths');
  variable_del('language_selection_page_cookie_lifetime');
  setcookie(LANGUAGE_SELECTION_PAGE_LANGUAGE_COOKIE_KEY, NULL, 0, '/');
  drupal_set_message(t('The Language Selection Page variables and cookie has been removed successfully.'));
}

/**
 * Update settings according to the code.
 * We do no need hook_boot() anymore so we remove the code
 * who updates the system table each time.
 *
 * @return array
 *   It will return an empty array.
 */
function language_selection_page_update_6001() {
  if (variable_get('language_selection_page_use_language_cookie', 0) == 2) {
    variable_set('language_selection_page_enable', 0);
    variable_set('language_selection_page_use_language_cookie', 1);
  }
  update_sql("UPDATE {system} SET bootstrap=0 WHERE name = 'language_selection_page'");
  return array();
}

/**
 * Users MUST configure the module again after this update.
 *
 * @return array
 *   It will return an empty array.
 */
function language_selection_page_update_6002() {
  drupal_set_message(t("You must re configure the <a href='@setting_url'>language selection page settings</a>.", array(
    '@setting_url' => url('admin/settings/language/i18n/selection_page'),
  )), "warning");
  return array();
}

Functions

Namesort descending Description
language_selection_page_requirements
language_selection_page_uninstall Implementation of hook_uninstall().
language_selection_page_update_6001 Update settings according to the code. We do no need hook_boot() anymore so we remove the code who updates the system table each time.
language_selection_page_update_6002 Users MUST configure the module again after this update.