Files
Chamilo/main/admin/sub_language_ajax.inc.php
Xes 73154ae174
Behat tests 1.11.x 🐞 / PHP 7.4 Test on ubuntu-latest (push) Canceled after 0s
PHP-CS-Fixer / composer_install (7.4) (push) Canceled after 0s
Chamilo 1.11.40 (ZIP oficial v1.11.40)
Fuente: https://github.com/chamilo/chamilo-lms/releases/download/v1.11.40/chamilo-1.11.40.zip
sha256: 1cf4bf2cc7bae1ef1a1eff643235db1d552f78ddf4b6dd1e2d2dac9868679439
Snapshot independiente (rama huerfana); diffable vs 1.11.38. vendor incluido.
2026-08-06 17:59:45 +02:00

102 lines
3.4 KiB
PHP

<?php
/* For licensing terms, see /license.txt */
use Chamilo\CoreBundle\Entity\ExtraField;
/**
* Sub language AJAX script to update variables.
*
* @package chamilo.admin.sub_language
*/
$this_script = 'sub_language';
require_once __DIR__.'/../inc/global.inc.php';
api_protect_admin_script();
// CSRF protection
if (!isset($_REQUEST['sec_token']) || !Security::check_token('request')) {
exit;
}
$new_language = Security::remove_XSS($_REQUEST['new_language']);
$language_variable = ltrim(
Security::remove_XSS($_REQUEST['variable_language']),
'$'
);
$file_id = intval($_REQUEST['file_id']);
$variableIsValid = SubLanguageManager::isValidLanguageVariable($language_variable);
if (isset($new_language) && $variableIsValid && isset($file_id)) {
$file_language = $language_files_to_load[$file_id].'.inc.php';
$id_language = intval($_REQUEST['id']);
$sub_language_id = intval($_REQUEST['sub']);
$all_data_of_language = SubLanguageManager::get_all_information_of_sub_language($id_language, $sub_language_id);
if (empty($all_data_of_language) ||
!SubLanguageManager::isValidLanguageFolderName($all_data_of_language['dokeos_folder'])
) {
exit;
}
$path_folder = api_get_path(SYS_LANG_PATH).$all_data_of_language['dokeos_folder'].'/'.$file_language;
$all_file_of_directory = SubLanguageManager::get_all_language_variable_in_file($path_folder);
$return_value = SubLanguageManager::add_file_in_language_directory($path_folder);
$all_file_of_directory[$language_variable] = $new_language;
$result_array = [];
foreach ($all_file_of_directory as $key_value => $value_info) {
$result_array[$key_value] = SubLanguageManager::write_data_in_file($path_folder, $value_info, $key_value);
}
$variables_with_problems = '';
if (!empty($result_array)) {
foreach ($result_array as $key => $result) {
if ($result == false) {
$variables_with_problems .= $key.' <br />';
}
}
}
if (isset($_REQUEST['redirect'])) {
$message = Display::return_message(get_lang('TheNewWordHasBeenAdded'), 'success');
if (!empty($variables_with_problems)) {
Display::return_message(
$path_folder.' '.get_lang('IsNotWritable').'<br /> '.api_ucwords(get_lang('ErrorsFound'))
.': <br />'.$variables_with_problems,
'error'
);
}
Display::addFlash($message);
if (isset($_REQUEST['extra_field_type'])) {
$redirectUrl = api_get_path(WEB_CODE_PATH).'admin/extra_fields.php';
switch ($_REQUEST['extra_field_type']) {
case ExtraField::USER_FIELD_TYPE:
header("Location: {$redirectUrl}?type=user");
exit;
case ExtraField::COURSE_FIELD_TYPE:
header("Location: {$redirectUrl}?type=course");
exit;
case ExtraField::SESSION_FIELD_TYPE:
header("Location: {$redirectUrl}?type=session");
exit;
}
}
if (isset($_REQUEST['skill'])) {
header('Location: '.api_get_path(WEB_CODE_PATH).'admin/skill_list.php');
exit;
}
}
if (!empty($variables_with_problems)) {
echo $path_folder.' '.get_lang('IsNotWritable').'<br /> '.api_ucwords(get_lang('ErrorsFound')).': <br />'.$variables_with_problems;
} else {
echo 1;
}
}