Exemplo n.º 1
0
 /**
  * Delete sub-language.
  * In order to avoid deletion of main laguages, we check the existence of a parent
  * @param Integer The parent id
  * @return bool    True on success, false on error
  */
 public static function remove_sub_language($parent_id, $sub_language_id)
 {
     if (empty($parent_id) or intval($parent_id) != $parent_id or empty($sub_language_id) or intval($sub_language_id) != $sub_language_id) {
         return false;
     }
     $tbl_admin_languages = Database::get_main_table(TABLE_MAIN_LANGUAGE);
     $sql = 'SELECT dokeos_folder FROM ' . $tbl_admin_languages . ' WHERE parent_id = ' . $parent_id . ' and id = ' . $sub_language_id;
     $res = Database::query($sql);
     if ($res === false or Database::num_rows($res) < 1) {
         return false;
     }
     $row = Database::fetch_assoc($res);
     $res = SubLanguageManager::remove_language_directory($row['dokeos_folder']);
     if ($res === false) {
         return false;
     }
     //can't delete dir, so do not delete language record
     $sql = 'DELETE FROM ' . $tbl_admin_languages . ' WHERE id="' . Database::escape_string($sub_language_id) . '" ';
     $res = Database::query($sql);
     return $res;
 }
     if ($index_information == 'execute_add' && $value_information === true) {
         $allow_insert_info = true;
     }
 }
 if (strlen($original_name) > 0 && strlen($english_name) > 0 && strlen($isocode) > 0) {
     if ($allow_insert_info === true && $language_id_exist === true) {
         $english_name = str_replace(' ', '_', $english_name);
         //Fixes BT#1636
         $english_name = api_strtolower($english_name);
         $isocode = str_replace(' ', '_', $isocode);
         $str_info = '<br/>' . get_lang('OriginalName') . ' : ' . $original_name . '<br/>' . get_lang('EnglishName') . ' : ' . $english_name . '<br/>' . get_lang('PlatformCharsetTitle') . ' : ' . $isocode;
         $mkdir_result = SubLanguageManager::add_language_directory($english_name);
         if ($mkdir_result) {
             $sl_id = add_sub_language($original_name, $english_name, $isocode, $sublanguage_available, $parent_id);
             if ($sl_id === false) {
                 SubLanguageManager::remove_language_directory($english_name);
                 $msg .= Display::return_message(get_lang('LanguageDirectoryNotWriteableContactAdmin'), 'error');
             } else {
                 // Here we build the confirmation message and we send the user to the sub language terms definition page, using a little hack - see #3712
                 $_SESSION['msg'] = Display::return_message(get_lang('TheNewSubLanguageHasBeenAdded') . $str_info . $link, 'confirm', false);
                 unset($interbreadcrumb);
                 $_GET['sub_language_id'] = $_REQUEST['sub_language_id'] = $sl_id;
                 require 'sub_language.php';
                 exit;
             }
         } else {
             $msg .= Display::return_message(get_lang('LanguageDirectoryNotWriteableContactAdmin'), 'error');
         }
     } else {
         if ($language_id_exist === false) {
             $msg .= Display::return_message(get_lang('LanguageParentNotExist'), 'error');