/** * Delete a set of translation in the database * * @access static * @param string language key * @param array module.separator.topic => value */ public static function _deleteValues($a_lang_key, $a_values = array()) { global $ilDB, $lng; if (!is_array($a_values)) { return; } $delete_array = array(); // save the single translations in lng_data foreach ($a_values as $key => $value) { $keys = explode($lng->separator, $key); if (count($keys) == 2) { $module = $keys[0]; $topic = $keys[1]; $delete_array[$module][$topic] = $value; ilObjLanguage::deleteLangEntry($module, $topic, $a_lang_key); } } // save the serialized module entries in lng_modules foreach ($delete_array as $module => $entries) { $set = $ilDB->query(sprintf("SELECT * FROM lng_modules " . "WHERE lang_key = %s AND module = %s", $ilDB->quote($a_lang_key, "text"), $ilDB->quote($module, "text"))); $row = $ilDB->fetchAssoc($set); $arr = unserialize($row["lang_array"]); if (is_array($arr)) { $entries = array_diff_key($arr, $entries); } ilObjLanguage::replaceLangModule($a_lang_key, $module, $entries); } }