Fix lang selection when using "lang" html attributes BT#15166

pull/3063/head
Julio Montoya 7 years ago
parent a1204fa6d1
commit fb1fcfd6ad
  1. 7
      main/document/showinframes.php
  2. 48
      main/inc/ajax/lang.ajax.php
  3. 8
      main/inc/lib/javascript/ckeditor/config_js.php
  4. 2
      main/template/rainbow/javascript/editor/ckeditor/config_js.tpl
  5. 1
      main/template/rainbow/learnpath/view.tpl

@ -185,7 +185,8 @@ $js_glossary_in_documents = '
{ type:"stylesheet", id:"_fr5", src:"'.api_get_path(WEB_PUBLIC_PATH).'assets/jquery-ui/themes/smoothness/jquery-ui.min.css"},
{ type:"stylesheet", id:"_fr6", src:"'.api_get_path(WEB_PUBLIC_PATH).'assets/jquery-ui/themes/smoothness/theme.css"},
{ type:"script", id:"_fr2", src:"'.api_get_path(WEB_LIBRARY_PATH).'javascript/jquery.highlight.js"},
{ type:"script", id:"_fr3", src:"'.api_get_path(WEB_CODE_PATH).'glossary/glossary.js.php?'.api_get_cidreq().'"}
{ type:"script", id:"_fr3", src:"'.api_get_path(WEB_CODE_PATH).'glossary/glossary.js.php?'.api_get_cidreq().'"},
{ type:"script", id:"_fr4", src:"'.api_get_path(WEB_AJAX_PATH).'lang.ajax.php?a=translate_html&'.api_get_cidreq().'"},
]
});';
@ -207,7 +208,6 @@ if (in_array(strtolower($pathinfo['extension']), $web_odf_supported_files)) {
</script>'
;
}
// Activate code highlight.
$isChatFolder = false;
if (isset($document_data['parents']) && isset($document_data['parents'][0])) {
@ -244,6 +244,9 @@ if ($is_freemind_available) {
$execute_iframe = false;
}
$execute_iframe = true;
if (!$playerSupported && $execute_iframe) {
$htmlHeadXtra[] = '<script>
<!--

@ -0,0 +1,48 @@
<?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':
$languageList = api_get_languages();
$hideAll = '';
foreach ($languageList['all'] as $language) {
$hideAll .= '$("span:lang('.$language['isocode'].')").hide();';
}
$userInfo = api_get_user_info();
$languageId = api_get_language_id($userInfo['language']);
$languageInfo = api_get_language_info($languageId);
echo '
$(document).ready(function() {
'.$hideAll.'
var defaultLanguageFromUser = "'.$languageInfo['isocode'].'";
$("span:lang('.$languageInfo['isocode'].')").show();
var defaultLanguage = "";
$(this).find("span").each(function() {
defaultLanguage = $(this).attr("lang");
if (defaultLanguage != "") {
return false;
}
});
if (defaultLanguageFromUser != defaultLanguage) {
$("span:lang("+defaultLanguage+")").show();
}
});
';
break;
default:
echo '';
}
exit;

@ -31,5 +31,13 @@ if (!empty($courseId)) {
}
$template->assign('course_condition', $courseCondition);
$languageList = api_get_languages();
$list = [];
foreach ($languageList['all'] as $language) {
$list[] = $language['isocode'].':'.$language['original_name'];
}
$template->assign('language_list', implode("','", $list));
header('Content-type: application/x-javascript');
$template->display($template->get_template('javascript/editor/ckeditor/config_js.tpl'));

@ -145,7 +145,7 @@ CKEDITOR.editorConfig = function (config) {
'{{ font_awesome_css }}',
'{{ css_editor }}',
];
config.language_list = [ 'en:English', 'fr:French', 'es:Spanish', 'de:German', 'pl:Polish', 'it:Italian' ];
config.language_list = ['{{ language_list }}'];
};
// Sets default target to "_blank" in link plugin

@ -362,6 +362,7 @@
{type: 'script', id: '_fr2', src: '{{ _p.web_lib }}javascript/jquery.highlight.js'},
{type: 'script', id: '_fr3', src: '{{ _p.web_main }}glossary/glossary.js.php'},
{type: 'script', id: '_fr3', src: '{{ _p.web_main }}glossary/glossary.js.php?{{ _p.web_cid_query }}'},
{type: "script", id:"_fr4", src: '{{ _p.web_main }}inc/ajax/lang.ajax.php?a=translate_html&'},
{type: 'script', id: '_media1', src: '{{ _p.web }}web/assets/mediaelement/build/mediaelement-and-player.min.js'},
{type: 'stylesheet', id: '_media2', src: '{{ _p.web }}web/assets/mediaelement/build/mediaelementplayer.min.css'},
{type: 'stylesheet', id: '_media3', src: '{{ _p.web_css_theme }}mediaelement.css'},

Loading…
Cancel
Save