コード例 #1
0
 /**
  * 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);
     }
 }