You are here

language_selection_page.install in Language Selection Page 7.2

Module installation code.

File

language_selection_page.install
View source
<?php

/**
 * @file
 * Module installation code.
 */

/**
 * Implements hook_requirements().
 */
function language_selection_page_requirements($phase) {
  $t = get_t();
  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 ($language_count['db'] != $language_count['vars']) {
    $requirements['language_selection_page'] = array(
      'title' => 'Language Selection Page',
      'value' => $t('There is a problem with the <b>language_count</b> variable.<br/>There are @language_count_db languages enabled in the database and @language_count_vars in the variable table (or from Features/Strongarm).<br/>This can lead to problems in your Drupal website.<br/>Please fix this problem before going further.', array(
        '@language_count_db' => $language_count['db'],
        '@language_count_vars' => $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] = $t('You should add a path prefix to <a href="@language_url">language @language_name</a> if you want to have it enabled in the <b>Language Selection Page</b>.', array(
          '@language_url' => url('admin/config/regional/language/edit/' . $lang->language),
          '@language_name' => $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 {
      $link = url('admin/config/regional/language');
      $requirements['language_selection_page'] = array(
        'title' => 'Language Selection Page',
        'value' => $t('All your <a href="@link">enabled languages</a> have language prefixes.', array(
          '@link' => $link,
        )),
        'severity' => REQUIREMENT_OK,
      );
    }
  }
  else {
    $link = url('admin/config/regional/language');
    $requirements['language_selection_page'] = array(
      'title' => 'Language Selection Page',
      'value' => $t('There is only <a href="@link">one language enabled</a>. This module is useless and should not be enabled.', array(
        '@link' => $link,
      )),
      'severity' => REQUIREMENT_WARNING,
    );
  }
  return $requirements;
}

/**
 * Implements hook_install().
 */
function language_selection_page_install() {
  $default_blacklist_paths = array(
    'admin',
    'user',
    'admin/*',
    'admin*',
    'node/add/*',
    'node/*/edit',
  );
  variable_set('language_selection_page_blacklisted_paths', implode(PHP_EOL, $default_blacklist_paths));
  variable_set('language_selection_page_redirect_type', LANGUAGE_SELECTION_PAGE_TEMPLATE_ONLY);
  variable_set('language_selection_page_path', 'language_selection');
}

/**
 * Implements hook_uninstall().
 */
function language_selection_page_uninstall() {
  variable_del('language_selection_page_blacklisted_paths');
  variable_del('language_selection_page_redirect_type');
  variable_del('language_selection_page_path');
  variable_del('language_selection_page_ignore_language_neutral');
  variable_del('language_selection_page_js_cookie_redirect');
  drupal_set_message(t('The Language Selection Page variables has been removed successfully.'));
}