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
This commit is contained in:
@@ -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"));
|
||||
|
||||
|
||||
|
||||
|
||||
?>
|
||||
|
||||
@@ -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) {
|
||||
|
||||
+5
-4
@@ -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');
|
||||
|
||||
|
||||
Reference in New Issue
Block a user