Add course URL in lp ajax calls see BT#13168

pull/2487/head
jmontoyaa 8 years ago
parent a43e0c9698
commit 4f34e09b7b
  1. 11
      main/lp/lp_ajax_save_item.php
  2. 41
      main/lp/scorm_api.php
  3. 155
      main/template/default/glossary/glossary_auto.js.tpl
  4. 31
      main/template/default/glossary/glossary_manual.js.tpl
  5. 212
      main/template/default/learnpath/view.tpl

@ -69,7 +69,15 @@ function save_item(
error_log("finish: $lmsFinish - navigatesAway: $userNavigatesAway");
}
$myLP = learnpath::getLpFromSession(api_get_course_id(), $lp_id, $user_id);
$courseCode = api_get_course_id();
if (!empty($courseId)) {
$courseInfo = api_get_course_info_by_id($courseId);
if ($courseInfo) {
$courseCode = $courseInfo['code'];
}
}
$myLP = learnpath::getLpFromSession($courseCode, $lp_id, $user_id);
if (!is_a($myLP, 'learnpath')) {
if ($debug) {
@ -78,7 +86,6 @@ function save_item(
return null;
}
$prerequisitesCheck = $myLP->prerequisites_match($item_id);
/** @var learnpathItem $myLPI */

@ -205,9 +205,10 @@ if (olms.score == 0 && olms.lms_item_type == 'sco' && olms.lesson_status == 'not
olms.asset_timer = 0;
olms.userfname = '<?php echo str_replace("'", "\\'", $user['firstname']); ?>';
olms.userlname = '<?php echo str_replace("'", "\\'", $user['lastname']); ?>';
olms.execute_stats = false;
var courseUrl = '?cidReq='+olms.lms_course_code+'&id_session='+olms.lms_session_id;
/**
* Add the "addListeners" function to the "onload" event of the window and
* start the timer if necessary (asset)
@ -293,7 +294,7 @@ function LMSInitialize() {
$.ajax({
type: "POST",
url: "lp_ajax_initialize.php",
url: "lp_ajax_initialize.php" + courseUrl,
data: params,
dataType: 'script',
async: false,
@ -1363,8 +1364,11 @@ function update_progress_bar(nbr_complete, nbr_total, mode) {
/**
* Update the gamification values (number of stars and score)
*/
function updateGamificationValues() {
var fetchValues = $.ajax('<?php echo api_get_path(WEB_AJAX_PATH) ?>lp.ajax.php', {
function updateGamificationValues()
{
var fetchValues = $.ajax(
'<?php echo api_get_path(WEB_AJAX_PATH) ?>lp.ajax.php?' + courseUrl,
{
dataType: 'json',
data: {
a: 'update_gamification'
@ -1648,7 +1652,7 @@ function switch_item(current_item, next_item){
//(4) refresh the audio player if needed
$.ajax({
type: "POST",
url: "lp_nav.php",
url: "lp_nav.php"+courseUrl,
data: {
lp_item: next_item
},
@ -1676,10 +1680,12 @@ function switch_item(current_item, next_item){
* Hide or show the navigation buttons if the current item is the First or Last
*/
var checkCurrentItemPosition = function(lpItemId) {
var currentItem = $.getJSON('<?php echo api_get_path(WEB_AJAX_PATH) ?>lp.ajax.php', {
a: 'check_item_position',
lp_item: lpItemId
}
var currentItem = $.getJSON(
'<?php echo api_get_path(WEB_AJAX_PATH) ?>lp.ajax.php' + courseUrl,
{
a: 'check_item_position',
lp_item: lpItemId
}
).done(function(parsedResponse,statusText,jqXhr) {
var position = jqXhr.responseJSON;
if (position == 'first') {
@ -1703,7 +1709,8 @@ var checkCurrentItemPosition = function(lpItemId) {
* Get a forum info when the learning path item has a associated forum
*/
var loadForumThread = function(lpId, lpItemId) {
var loadForum = $.getJSON('<?php echo api_get_path(WEB_AJAX_PATH) ?>lp.ajax.php', {
var loadForum = $.getJSON(
'<?php echo api_get_path(WEB_AJAX_PATH) ?>lp.ajax.php' + courseUrl, {
a: 'get_forum_thread',
lp: lpId,
lp_item: lpItemId
@ -1821,7 +1828,7 @@ function xajax_save_item(
$.ajax({
type:"POST",
data: params,
url: "lp_ajax_save_item.php",
url: "lp_ajax_save_item.php" + courseUrl,
dataType: "script",
async: false
});
@ -1935,7 +1942,7 @@ function xajax_save_item_scorm(
$.ajax({
type:"POST",
data: params,
url: "lp_ajax_save_item.php",
url: "lp_ajax_save_item.php" + courseUrl,
dataType: "script",
async: false
});
@ -1953,7 +1960,7 @@ function xajax_start_timer() {
logit_lms('xajax_start_timer() called',3);
$.ajax({
type: "GET",
url: "lp_ajax_start_timer.php",
url: "lp_ajax_start_timer.php" + courseUrl,
dataType: "script",
async: false,
success: function(time) {
@ -1997,7 +2004,7 @@ function xajax_save_objectives(lms_lp_id,lms_user_id,lms_view_id,lms_item_id,ite
$.ajax({
type: "POST",
data: params,
url: "lp_ajax_save_objectives.php",
url: "lp_ajax_save_objectives.php" + courseUrl,
dataType: "script",
async: false
});
@ -2027,7 +2034,7 @@ function xajax_switch_item_details(lms_lp_id,lms_user_id,lms_view_id,lms_item_id
$.ajax({
type: "POST",
data: params,
url: "lp_ajax_switch_item.php",
url: "lp_ajax_switch_item.php" + courseUrl,
dataType: "script",
async: false
});
@ -2056,7 +2063,7 @@ function xajax_switch_item_toc(lms_lp_id, lms_user_id, lms_view_id, lms_item_id,
$.ajax({
type: "POST",
data: params,
url: "lp_ajax_switch_item_toc.php",
url: "lp_ajax_switch_item_toc.php" + courseUrl,
dataType: "script",
async: false
});
@ -2086,7 +2093,7 @@ function attach_glossary_into_scorm(type) {
my_protocol = location.protocol;
my_pathname=location.pathname;
work_path = my_pathname.substr(0,my_pathname.indexOf('<?php echo api_get_path(REL_COURSE_PATH) ?>'));
var ajaxRequestUrl = '<?php echo api_get_path(WEB_CODE_PATH).'glossary/glossary_ajax_request.php'; ?>';
var ajaxRequestUrl = '<?php echo api_get_path(WEB_CODE_PATH).'glossary/glossary_ajax_request.php'; ?>' + courseUrl;
if (type == 'automatic') {
$.ajax({

@ -2,97 +2,96 @@
$(document).ready(function() {
$(window).load(function () {
{% endif %}
var my_text = $(".glossary-content").html();
var ajaxRequestUrl = "{{ _p.web }}main/glossary/glossary_ajax_request.php?{{ _p.web_cid_query }}";
var imageSource = "{{ _p.web }}main/inc/lib/javascript/indicator.gif";
var indicatorImage ='<img src="' + imageSource + '" />';
var my_text = $(".glossary-content").html();
var ajaxRequestUrl = "{{ _p.web }}main/glossary/glossary_ajax_request.php";
var imageSource = "{{ _p.web }}main/inc/lib/javascript/indicator.gif";
var indicatorImage ='<img src="' + imageSource + '" />';
$.ajax({
contentType: "application/x-www-form-urlencoded",
beforeSend: function(content_object) {},
type: "POST",
url: ajaxRequestUrl,
data: "glossary_data=true",
success: function(datas) {
if (datas.length==0) {
return false;
}
// glossary terms
data_terms=datas.split("[|.|_|.|-|.|]");
var complex_array = new Array();
var cp_complex_array = new Array();
for(i=0;i<data_terms.length;i++) {
specific_terms=data_terms[i].split("__|__|");
var real_term = specific_terms[1]; // glossary term
var real_code = specific_terms[0]; // glossary id
complex_array[real_code] = real_term;
cp_complex_array[real_code] = real_term;
}
$.ajax({
contentType: "application/x-www-form-urlencoded",
beforeSend: function(content_object) {},
type: "POST",
url: ajaxRequestUrl,
data: "glossary_data=true",
success: function(datas) {
if (datas.length==0) {
return false;
}
// glossary terms
data_terms=datas.split("[|.|_|.|-|.|]");
var complex_array = new Array();
var cp_complex_array = new Array();
for(i=0;i<data_terms.length;i++) {
specific_terms=data_terms[i].split("__|__|");
var real_term = specific_terms[1]; // glossary term
var real_code = specific_terms[0]; // glossary id
complex_array[real_code] = real_term;
cp_complex_array[real_code] = real_term;
}
complex_array.reverse();
complex_array.reverse();
for (var my_index in complex_array) {
n = complex_array[my_index];
if (n == null) {
n = '';
} else {
for (var cp_my_index in cp_complex_array) {
cp_data = cp_complex_array[cp_my_index];
if (cp_data == null) {
cp_data = '';
} else {
if (cp_data == n) {
my_index = cp_my_index;
}
for (var my_index in complex_array) {
n = complex_array[my_index];
if (n == null) {
n = '';
} else {
for (var cp_my_index in cp_complex_array) {
cp_data = cp_complex_array[cp_my_index];
if (cp_data == null) {
cp_data = '';
} else {
if (cp_data == n) {
my_index = cp_my_index;
}
}
$('body').removeHighlight().highlight(n, my_index);
}
$('body').removeHighlight().highlight(n, my_index);
}
}
var complex_array = new Array();
//mouse on click
$("body").on("click", ".glossary-ajax", function(e) {
random_id = Math.round(Math.random()*100);
div_show_id = "div_show_id";
div_content_id = "div_content_id";
var complex_array = new Array();
//mouse on click
$("body").on("click", ".glossary-ajax", function(e) {
random_id = Math.round(Math.random()*100);
div_show_id = "div_show_id";
div_content_id = "div_content_id";
$(this).append("<div id="+div_show_id+"><div id="+div_content_id+">&nbsp;</div></div>");
var $target = $(this);
$(this).append("<div id="+div_show_id+"><div id="+div_content_id+">&nbsp;</div></div>");
var $target = $(this);
//$("#"+div_show_id).dialog("destroy");
$("#"+div_show_id).dialog({
autoOpen: false,
width: 600,
height: 200,
position: { my: 'left top', at: 'right top', of: $target },
close: function(){
$("div#"+div_show_id).remove();
$("div#"+div_content_id).remove();
}
});
//$("#"+div_show_id).dialog("destroy");
$("#"+div_show_id).dialog({
autoOpen: false,
width: 600,
height: 200,
position: { my: 'left top', at: 'right top', of: $target },
close: function(){
$("div#"+div_show_id).remove();
$("div#"+div_content_id).remove();
}
});
notebook_id = $(this).attr("name");
data_notebook = notebook_id.split("link");
my_glossary_id = data_notebook[1];
notebook_id = $(this).attr("name");
data_notebook = notebook_id.split("link");
my_glossary_id = data_notebook[1];
$.ajax({
contentType: "application/x-www-form-urlencoded",
beforeSend: function(content_object) {
$("div#"+div_content_id).html(indicatorImage);
},
type: "POST",
url: ajaxRequestUrl,
data: "glossary_id="+my_glossary_id,
success: function(datas) {
$("div#"+div_content_id).html(datas);
$("#"+div_show_id).dialog("open");
}
});
$.ajax({
contentType: "application/x-www-form-urlencoded",
beforeSend: function(content_object) {
$("div#"+div_content_id).html(indicatorImage);
},
type: "POST",
url: ajaxRequestUrl,
data: "glossary_id="+my_glossary_id,
success: function(datas) {
$("div#"+div_content_id).html(datas);
$("#"+div_show_id).dialog("open");
}
});
}
});
});
}
});
{% if add_ready %}
});
});

@ -1,11 +1,10 @@
var ajaxRequestUrl = "{{ _p.web }}main/glossary/glossary_ajax_request.php";
var ajaxRequestUrl = "{{ _p.web }}main/glossary/glossary_ajax_request.php?{{ _p.web_cid_query }}";
var imageSource = "{{ _p.web_main }}" + "inc/lib/javascript/indicator.gif";
var indicatorImage ='<img src="' + imageSource + '" />';
{% if add_ready %}
$(document).ready(function() {
{% endif %}
$("body").on("click", ".glossary", function() {
is_glossary_name = $(this).html();
random_id = Math.round(Math.random()*100);
@ -27,20 +26,20 @@ $(document).ready(function() {
$("div#"+div_content_id).remove();
}
});
var indicator =
$.ajax({
contentType: "application/x-www-form-urlencoded",
beforeSend: function(result) {
$("div#"+div_content_id).html(indicatorImage);
},
type: "POST",
url: ajaxRequestUrl,
data: "glossary_name="+is_glossary_name,
success: function(data) {
$("div#"+div_content_id).html(data);
$("#"+div_show_id).dialog("open");
}
});
$.ajax({
contentType: "application/x-www-form-urlencoded",
beforeSend: function(result) {
$("div#"+div_content_id).html(indicatorImage);
},
type: "POST",
url: ajaxRequestUrl,
data: "glossary_name="+is_glossary_name,
success: function(data) {
$("div#"+div_content_id).html(data);
$("#"+div_show_id).dialog("open");
}
});
});
{% if add_ready %}

@ -1,128 +1,128 @@
<div id="learning_path_main" class="{{ is_allowed_to_edit ? 'lp-view-include-breadcrumb' }} {{ lp_mode == 'embedframe' ? 'lp-view-collapsed' }}">
<div id="learning_path_left_zone" class="sidebar-scorm">
<div class="lp-view-zone-container">
<div id="scorm-info">
<div id="panel-scorm" class="panel-body">
<div class="image-avatar">
{% if lp_author == '' %}
<div class="text-center">
<div id="learning_path_left_zone" class="sidebar-scorm">
<div class="lp-view-zone-container">
<div id="scorm-info">
<div id="panel-scorm" class="panel-body">
<div class="image-avatar">
{% if lp_author == '' %}
<div class="text-center">
{{ lp_preview_image }}
</div>
{% else %}
<div class="media">
<div class="media-left">
{{ lp_preview_image }}
</div>
{% else %}
<div class="media">
<div class="media-left">
{{ lp_preview_image }}
</div>
<div class="media-body">
<div class="description-autor"> {{ lp_author }} </div>
</div>
<div class="media-body">
<div class="description-autor"> {{ lp_author }} </div>
</div>
{% endif %}
</div>
{% if show_audio_player %}
<div id="lp_media_file" class="audio-scorm">
{{ media_player }}
</div>
{% endif %}
{% if gamification_mode == 1 %}
<!--- gamification -->
<div id="scorm-gamification">
<div class="row">
<div class="col-xs-6">
{% if gamification_stars > 0 %}
{% for i in 1..gamification_stars %}
<em class="fa fa-star level"></em>
{% endfor %}
{% endif %}
</div>
{% if gamification_stars < 4 %}
{% for i in 1..4 - gamification_stars %}
<em class="fa fa-star"></em>
{% endfor %}
{% endif %}
</div>
<div class="col-xs-6 text-right">
{{ "XPoints"|get_lang|format(gamification_points) }}
</div>
{% if show_audio_player %}
<div id="lp_media_file" class="audio-scorm">
{{ media_player }}
</div>
{% endif %}
{% if gamification_mode == 1 %}
<!--- gamification -->
<div id="scorm-gamification">
<div class="row">
<div class="col-xs-6">
{% if gamification_stars > 0 %}
{% for i in 1..gamification_stars %}
<em class="fa fa-star level"></em>
{% endfor %}
{% endif %}
{% if gamification_stars < 4 %}
{% for i in 1..4 - gamification_stars %}
<em class="fa fa-star"></em>
{% endfor %}
{% endif %}
</div>
<div class="row">
<div class="col-xs-12 navegation-bar">
<div id="progress_bar">
{{ progress_bar }}
</div>
</div>
<div class="col-xs-6 text-right">
{{ "XPoints"|get_lang|format(gamification_points) }}
</div>
</div>
<!--- end gamification -->
{% else %}
<div id="progress_bar">
{{ progress_bar }}
<div class="row">
<div class="col-xs-12 navegation-bar">
<div id="progress_bar">
{{ progress_bar }}
</div>
</div>
</div>
{% endif %}
{{ teacher_toc_buttons }}
</div>
</div>
{# TOC layout #}
<div id="toc_id" class="scorm-body" name="toc_name">
{% include template ~ '/learnpath/scorm_list.tpl' %}
</div>
<!--- end gamification -->
{% else %}
<div id="progress_bar">
{{ progress_bar }}
</div>
{% endif %}
{{ teacher_toc_buttons }}
</div>
{# end TOC layout #}
</div>
{# TOC layout #}
<div id="toc_id" class="scorm-body" name="toc_name">
{% include template ~ '/learnpath/scorm_list.tpl' %}
</div>
{# end TOC layout #}
</div>
{# end left zone #}
<div id="lp_navigation_elem" class="navegation-bar">
<a href="#" title = "{{ 'Expand'|get_lang }}" id="lp-view-expand-toggle" class="icon-toolbar expand" role="button">
{% if lp_mode == 'embedframe' %}
<span class="fa fa-compress" aria-hidden="true"></span>
<span class="sr-only">{{ 'Expand'|get_lang }}</span>
{% else %}
<span class="fa fa-expand" aria-hidden="true"></span>
<span class="sr-only">{{ 'Expand'|get_lang }}</span>
{% endif %}
</a>
<a id="home-course" title = "{{ 'Home'|get_lang }}" href="{{ button_home_url }}" class="icon-toolbar" target="_self" onclick="javascript: window.parent.API.save_asset();">
<em class="fa fa-home"></em> <span class="hidden-xs hidden-sm"></span>
</a>
{{ navigation_bar }}
</div>
{# <div id="hide_bar" class="scorm-toggle" style="display:inline-block; width: 25px; height: 1000px;"></div> #}
{# right zone #}
<div id="learning_path_right_zone" class="content-scorm">
<div class="lp-view-zone-container">
<div class="lp-view-tabs">
<div id="navTabsbar" class="nav-tabs-bar">
<ul id="navTabs" class="nav nav-tabs" role="tablist">
<li role="presentation" class="active">
<a href="#lp-view-content" title="{{ 'Lesson'|get_lang }}" aria-controls="lp-view-content" role="tab" data-toggle="tab">
<span class="fa fa-book fa-2x fa-fw" aria-hidden="true"></span><span class="sr-only">{{ 'Lesson'|get_lang }}</span>
</a>
</li>
<li role="presentation">
<a href="#lp-view-forum" title="{{ 'Forum'|get_lang }}" aria-controls="lp-view-forum" role="tab" data-toggle="tab">
<span class="fa fa-commenting-o fa-2x fa-fw" aria-hidden="true"></span><span class="sr-only">{{ 'Forum'|get_lang }}</span>
</a>
</li>
</ul>
</div>
<div class="tab-content">
<div role="tabpanel" class="tab-pane active" id="lp-view-content">
<div id="wrapper-iframe" style="width:100%; height:100%">
{% if lp_mode == 'fullscreen' %}
<iframe id="content_id_blank" name="content_name_blank" src="blank.php" style="width:100%; height:100%" border="0" frameborder="0" allowfullscreen="true" webkitallowfullscreen="true" mozallowfullscreen="true"></iframe>
{% else %}
<iframe id="content_id" name="content_name" src="{{ iframe_src }}" style="width:100%; height:100%" border="0" frameborder="0" allowfullscreen="true" webkitallowfullscreen="true" mozallowfullscreen="true"></iframe>
{% endif %}
</div>
</div>
{# end left zone #}
<div id="lp_navigation_elem" class="navegation-bar">
<a href="#" title = "{{ 'Expand'|get_lang }}" id="lp-view-expand-toggle" class="icon-toolbar expand" role="button">
{% if lp_mode == 'embedframe' %}
<span class="fa fa-compress" aria-hidden="true"></span>
<span class="sr-only">{{ 'Expand'|get_lang }}</span>
{% else %}
<span class="fa fa-expand" aria-hidden="true"></span>
<span class="sr-only">{{ 'Expand'|get_lang }}</span>
{% endif %}
</a>
<a id="home-course" title = "{{ 'Home'|get_lang }}" href="{{ button_home_url }}" class="icon-toolbar" target="_self" onclick="javascript: window.parent.API.save_asset();">
<em class="fa fa-home"></em> <span class="hidden-xs hidden-sm"></span>
</a>
{{ navigation_bar }}
</div>
{# <div id="hide_bar" class="scorm-toggle" style="display:inline-block; width: 25px; height: 1000px;"></div> #}
{# right zone #}
<div id="learning_path_right_zone" class="content-scorm">
<div class="lp-view-zone-container">
<div class="lp-view-tabs">
<div id="navTabsbar" class="nav-tabs-bar">
<ul id="navTabs" class="nav nav-tabs" role="tablist">
<li role="presentation" class="active">
<a href="#lp-view-content" title="{{ 'Lesson'|get_lang }}" aria-controls="lp-view-content" role="tab" data-toggle="tab">
<span class="fa fa-book fa-2x fa-fw" aria-hidden="true"></span><span class="sr-only">{{ 'Lesson'|get_lang }}</span>
</a>
</li>
<li role="presentation">
<a href="#lp-view-forum" title="{{ 'Forum'|get_lang }}" aria-controls="lp-view-forum" role="tab" data-toggle="tab">
<span class="fa fa-commenting-o fa-2x fa-fw" aria-hidden="true"></span><span class="sr-only">{{ 'Forum'|get_lang }}</span>
</a>
</li>
</ul>
</div>
<div class="tab-content">
<div role="tabpanel" class="tab-pane active" id="lp-view-content">
<div id="wrapper-iframe" style="width:100%; height:100%">
{% if lp_mode == 'fullscreen' %}
<iframe id="content_id_blank" name="content_name_blank" src="blank.php" style="width:100%; height:100%" border="0" frameborder="0" allowfullscreen="true" webkitallowfullscreen="true" mozallowfullscreen="true"></iframe>
{% else %}
<iframe id="content_id" name="content_name" src="{{ iframe_src }}" style="width:100%; height:100%" border="0" frameborder="0" allowfullscreen="true" webkitallowfullscreen="true" mozallowfullscreen="true"></iframe>
{% endif %}
</div>
<div role="tabpanel" class="tab-pane" id="lp-view-forum">
</div>
<div role="tabpanel" class="tab-pane" id="lp-view-forum">
</div>
</div>
</div>
</div>
</div>
{# end right Zone #}
</div>
{# end right Zone #}
</div>
<script>
@ -292,7 +292,7 @@
{type: 'stylesheet', id: '_fr5', src: '{{ _p.web }}web/assets/jquery-ui/themes/smoothness/jquery-ui.min.css'},
{type: 'stylesheet', id: '_fr6', src: '{{ _p.web }}web/assets/jquery-ui/themes/smoothness/theme.css'},
{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_req }}'}
]
});
});

Loading…
Cancel
Save