You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
81 lines
3.2 KiB
81 lines
3.2 KiB
<?php
|
|
/* For licensing terms, see /license.txt */
|
|
|
|
/**
|
|
* Responses to AJAX calls.
|
|
*/
|
|
require_once __DIR__.'/../global.inc.php';
|
|
|
|
api_protect_course_script(true);
|
|
|
|
$action = $_REQUEST['a'];
|
|
|
|
switch ($action) {
|
|
case 'translate_html':
|
|
header('Content-type: application/x-javascript');
|
|
|
|
echo api_get_language_translate_html();
|
|
break;
|
|
case 'translate_portfolio_category':
|
|
if (false === Security::check_token('get')) {
|
|
exit;
|
|
}
|
|
Security::clear_token();
|
|
if (isset($_REQUEST['new_language']) && isset($_REQUEST['variable_language']) && isset($_REQUEST['category_id'])) {
|
|
$newLanguage = Security::remove_XSS($_REQUEST['new_language']);
|
|
$langVariable = Security::remove_XSS($_REQUEST['variable_language']);
|
|
$categoryId = (int) $_REQUEST['category_id'];
|
|
$languageId = (int) $_REQUEST['id'];
|
|
$subLanguageId = (int) $_REQUEST['sub'];
|
|
|
|
$langFilesToLoad = SubLanguageManager::get_lang_folder_files_list(
|
|
api_get_path(SYS_LANG_PATH).'english',
|
|
true
|
|
);
|
|
|
|
$fileLanguage = $langFilesToLoad[0].'.inc.php';
|
|
$allDataOfLanguage = SubLanguageManager::get_all_information_of_sub_language($languageId, $subLanguageId);
|
|
|
|
$pathFolder = api_get_path(SYS_LANG_PATH).$allDataOfLanguage['dokeos_folder'].'/'.$fileLanguage;
|
|
$allFileOfDirectory = SubLanguageManager::get_all_language_variable_in_file($pathFolder);
|
|
$returnValue = SubLanguageManager::add_file_in_language_directory($pathFolder);
|
|
|
|
//update variable language
|
|
// Replace double quotes to avoid parse errors
|
|
$newLanguage = str_replace('"', '\"', $newLanguage);
|
|
$newLanguage = str_replace("\n", "\\n", $newLanguage);
|
|
$allFileOfDirectory[$langVariable] = "\"".$newLanguage."\";";
|
|
|
|
$resultArray = [];
|
|
foreach ($allFileOfDirectory as $key => $value) {
|
|
$resultArray[$key] = SubLanguageManager::write_data_in_file($pathFolder, $value, $key);
|
|
}
|
|
|
|
$variablesWithProblems = '';
|
|
if (!empty($resultArray)) {
|
|
foreach ($resultArray as $key => $result) {
|
|
if ($result == false) {
|
|
$variablesWithProblems .= $key.' <br />';
|
|
}
|
|
}
|
|
}
|
|
|
|
if (isset($_REQUEST['redirect'])) {
|
|
$message = Display::return_message(get_lang('TheNewWordHasBeenAdded'), 'success');
|
|
if (!empty($variablesWithProblems)) {
|
|
$message = Display::return_message(
|
|
$pathFolder.' '.get_lang('IsNotWritable').'<br /> '.api_ucwords(get_lang('ErrorsFound'))
|
|
.': <br />'.$variablesWithProblems,
|
|
'error'
|
|
);
|
|
}
|
|
Display::addFlash($message);
|
|
header('Location: '.api_get_path(WEB_CODE_PATH).'portfolio/index.php?'.api_get_cidreq().'&action=translate_category&id='.$categoryId.'&sub_language='.$subLanguageId);
|
|
exit;
|
|
}
|
|
}
|
|
break;
|
|
default:
|
|
echo '';
|
|
}
|
|
exit;
|
|
|