You are here

function apachesolr_multiligual_confgen_register_multilingual_variables in Apache Solr Multilingual 7

4 calls to apachesolr_multiligual_confgen_register_multilingual_variables()
apachesolr_multilingual_confgen_enable in apachesolr_multilingual_confgen/apachesolr_multilingual_confgen.install
Implements hook_enable().
apachesolr_multilingual_confgen_modules_enabled in apachesolr_multilingual_confgen/apachesolr_multilingual_confgen.module
Implements hook_modules_enabled().
apachesolr_multilingual_confgen_multilingual_settings_changed in apachesolr_multilingual_confgen/apachesolr_multilingual_confgen.module
Implements hook_multilingual_settings_changed().
apachesolr_multilingual_confgen_update_7101 in apachesolr_multilingual_confgen/apachesolr_multilingual_confgen.install
Register lowerCase variables

File

apachesolr_multilingual_confgen/apachesolr_multilingual_confgen.module, line 181
Multilingual search using Apache Solr.

Code

function apachesolr_multiligual_confgen_register_multilingual_variables() {
  variable_cache_clear();
  $apachesolr_confgen_textfiles_i18n_variables = apachesolr_multilingual_confgen_get_apachesolr_confgen_textfiles_i18n_variables();

  // register variables as multilingual variables
  $new_variables = array_keys(array_merge($apachesolr_confgen_textfiles_i18n_variables, apachesolr_multilingual_confgen_get_i18n_variables()));
  $controller = variable_realm_controller('language');
  $old_variables = $controller
    ->getEnabledVariables();
  $variables = array_flip(array_merge(array_flip($old_variables), array_flip($new_variables)));
  $controller
    ->setRealmVariable('list', $variables);

  // set default values for multilingual variables if not already modified
  $path = drupal_get_path('module', 'apachesolr_multilingual_confgen') . '/res/';
  foreach ($apachesolr_confgen_textfiles_i18n_variables as $var_name => $var_info) {
    foreach (array_keys(apachesolr_multilingual_language_list()) as $language_id) {
      if (i18n_variable_get($var_name, $language_id) === NULL && file_exists($path . basename($var_info['title'], '.txt') . '_' . $language_id . '.txt')) {
        i18n_variable_set($var_name, file_get_contents($path . basename($var_info['title'], '.txt') . '_' . $language_id . '.txt'), $language_id);
      }
    }
  }
  $available_stemmers = apachesolr_multilingual_confgen_get_stemmer();
  foreach (apachesolr_multilingual_confgen_get_i18n_variables() as $var_name => $var_info) {
    foreach (array_keys(apachesolr_multilingual_language_list()) as $language_id) {
      if (i18n_variable_get($var_name, $language_id) === NULL) {

        // TODO replace that switch by reading defaults from property files
        switch ($var_name) {
          case 'apachesolr_multilingual_stemmer_language':
            if (array_key_exists($language_id, $available_stemmers)) {
              i18n_variable_set($var_name, $available_stemmers[$language_id], $language_id);
            }
            break;
        }
      }
    }
  }
}