/** * 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; }
/** * 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); } }