Example #1
0
 /**
  * Removes languages
  *
  * @param  array  $lang_ids     List of language ids
  * @param  string $default_lang Default language code
  * @return array  Deleted lang codes
  */
 public static function deleteLanguages($lang_ids, $default_lang = DEFAULT_LANGUAGE)
 {
     /**
      * Adds additional actions before languages deleting
      *
      * @param array $lang_ids List of language ids
      */
     fn_set_hook('delete_languages_pre', $lang_ids);
     $db_descr_tables = fn_get_description_tables();
     $lang_codes = db_get_hash_single_array("SELECT lang_id, lang_code FROM ?:languages WHERE lang_id IN (?n)", array('lang_id', 'lang_code'), (array) $lang_ids);
     $deleted_lang_codes = array();
     foreach ($lang_codes as $lang_code) {
         if ($lang_code == $default_lang) {
             fn_set_notification('W', __('warning'), __('warning_not_deleted_default_language', array('[lang_name]' => db_get_field("SELECT name FROM ?:languages WHERE lang_code = ?s", $lang_code))), '', 'language_is_default');
             continue;
         }
         $res = db_query("DELETE FROM ?:languages WHERE lang_code = ?s", $lang_code);
         if ($res) {
             $deleted_lang_codes[] = $lang_code;
         }
         if (!fn_allowed_for('ULTIMATE:FREE')) {
             db_query("DELETE FROM ?:localization_elements WHERE element_type = 'L' AND element = ?s", $lang_code);
         }
         foreach ($db_descr_tables as $table) {
             db_query("DELETE FROM ?:{$table} WHERE lang_code = ?s", $lang_code);
         }
     }
     self::saveLanguagesIntegrity();
     /**
      * Adds additional actions after languages deleting
      *
      * @param array $lang_ids   List of language ids
      * @param array $lang_codes List of language codes
      * @param array $deleted_lang_codes List of deleted language codes
      */
     fn_set_hook('delete_languages_post', $lang_ids, $lang_codes, $deleted_lang_codes);
     return $deleted_lang_codes;
 }
Example #2
0
 /**
  * Clones language depended data from one language to other for all tables in cart
  *
  * @param  string $to_lang   2 letters destination language code
  * @param  string $from_lang 2 letters source language code
  * @return bool   Always true
  */
 public static function cloneLanguage($to_lang, $from_lang = CART_LANGUAGE)
 {
     $description_tables = fn_get_description_tables();
     foreach ($description_tables as $table) {
         self::cloneLanguageValues($table, $to_lang, $from_lang);
     }
 }