From: skodak Date: Tue, 24 Apr 2007 16:33:06 +0000 (+0000) Subject: MDL-9561 Langimport does not ignore langlist when langcache used X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=4642650fa28c6f3ff353d31a52d428bd492fb7f5;p=moodle.git MDL-9561 Langimport does not ignore langlist when langcache used MDL-9563 Improve refreshing of langcache, detect permission problems part2 merged from MOODLE_18_STABLE --- diff --git a/admin/settings/language.php b/admin/settings/language.php index adfc153052..ea155e2c93 100644 --- a/admin/settings/language.php +++ b/admin/settings/language.php @@ -6,7 +6,7 @@ $temp = new admin_settingpage('langsettings', get_string('languagesettings', 'admin')); $temp->add(new admin_setting_configselect('lang', get_string('lang', 'admin'), get_string('configlang', 'admin'), current_language(), get_list_of_languages())); // $CFG->lang might be set in installer already, default en or en_utf8 is in setup.php $temp->add(new admin_setting_configcheckbox('langmenu', get_string('langmenu', 'admin'), get_string('configlangmenu', 'admin'), 1)); -$temp->add(new admin_setting_configtext('langlist', get_string('langlist', 'admin'), get_string('configlanglist', 'admin'), '', PARAM_NOTAGS)); +$temp->add(new admin_setting_langlist()); $temp->add(new admin_setting_configcheckbox('langcache', get_string('langcache', 'admin'), get_string('configlangcache', 'admin'), 1)); $temp->add(new admin_setting_configtext('locale', get_string('localetext', 'admin'), get_string('configlocale', 'admin'), '', PARAM_FILE)); @@ -19,7 +19,4 @@ $ADMIN->add('language', $temp); $ADMIN->add('language', new admin_externalpage('langedit', get_string('langedit', 'admin'), "$CFG->wwwroot/$CFG->admin/lang.php")); $ADMIN->add('language', new admin_externalpage('langimport', get_string('langpacks', 'admin'), "$CFG->wwwroot/$CFG->admin/langimport.php")); - - - ?> diff --git a/lib/adminlib.php b/lib/adminlib.php index c627124417..fda804a949 100644 --- a/lib/adminlib.php +++ b/lib/adminlib.php @@ -2131,6 +2131,18 @@ class admin_setting_special_editorhidebuttons extends admin_setting { } +class admin_setting_langlist extends admin_setting_configtext { + function admin_setting_langlist() { + parent::admin_setting_configtext('langlist', get_string('langlist', 'admin'), get_string('configlanglist', 'admin'), '', PARAM_NOTAGS); + } + + function write_setting($data) { + $return = parent::write_setting($data); + get_list_of_languages(true);//refresh the list + return $return; + } +} + class admin_setting_backupselect extends admin_setting_configselect { function admin_setting_backupselect($name, $visiblename, $description, $default, $choices) { diff --git a/lib/moodlelib.php b/lib/moodlelib.php index 4c1d0428bb..c66c250d1f 100644 --- a/lib/moodlelib.php +++ b/lib/moodlelib.php @@ -4532,9 +4532,10 @@ function get_strings($array, $module='') { * Returns a list of language codes and their full names * hides the _local files from everyone. * @param bool refreshcache force refreshing of lang cache + * @param bool returnall ignore langlist, return all languages available * @return array An associative array with contents in the form of LanguageCode => LanguageName */ -function get_list_of_languages($refreshcache=false, $forceall=false) { +function get_list_of_languages($refreshcache=false, $returnall=false) { global $CFG; @@ -4542,7 +4543,7 @@ function get_list_of_languages($refreshcache=false, $forceall=false) { $filetocheck = 'langconfig.php'; - if (!$refreshcache && !$forceall && !empty($CFG->langcache) && file_exists($CFG->dataroot .'/cache/languages')) { + if (!$refreshcache && !$returnall && !empty($CFG->langcache) && file_exists($CFG->dataroot .'/cache/languages')) { /// read available langs from cache $lines = file($CFG->dataroot .'/cache/languages'); @@ -4556,7 +4557,7 @@ function get_list_of_languages($refreshcache=false, $forceall=false) { return $languages; } - if (!$forceall && !empty($CFG->langlist)) { + if (!$returnall && !empty($CFG->langlist)) { /// return only languages allowed in langlist admin setting $langlist = explode(',', $CFG->langlist); @@ -4635,7 +4636,7 @@ function get_list_of_languages($refreshcache=false, $forceall=false) { } if ($refreshcache && !empty($CFG->langcache)) { - if ($forceall) { + if ($returnall) { // we have a list of all langs only, just delete old cache @unlink($CFG->dataroot.'/cache/languages');