]> git.mjollnir.org Git - moodle.git/commitdiff
MDL-9561 Langimport does not ignore langlist when langcache used
authorskodak <skodak>
Tue, 24 Apr 2007 16:33:06 +0000 (16:33 +0000)
committerskodak <skodak>
Tue, 24 Apr 2007 16:33:06 +0000 (16:33 +0000)
MDL-9563 Improve refreshing of langcache, detect permission problems
part2
merged from MOODLE_18_STABLE

admin/settings/language.php
lib/adminlib.php
lib/moodlelib.php

index adfc1530520ee875d5cf46b81e7a2527c3564077..ea155e2c93efeeefc11563b7744cd4f41534e0e3 100644 (file)
@@ -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"));
 
-
-
-
 ?>
index c627124417510946cb5cf04b758c9adb7699cb49..fda804a9491912c4546271a8c6d9d23a339d20cb 100644 (file)
@@ -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) {
index 4c1d0428bbd7362dd865bb90ede5dcadf28bc2eb..c66c250d1f4f6e4fa1e801ece008fa09dd6724a0 100644 (file)
@@ -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');