[svn r19487] Logic changes - improve remove frames when you display items into learning path - partial FS#3909

skala
Cristian Fasanando 17 years ago
parent a01116af0e
commit 914d49bfb4
  1. 16
      main/newscorm/learnpath.class.php
  2. 15
      main/newscorm/lp_nav.php
  3. 156
      main/newscorm/lp_view.php
  4. 157
      main/newscorm/scorm_api.php

@ -2731,21 +2731,7 @@ class learnpath {
//$html .= '<a href="" onclick="top.load_item('.$item['id'].',\''.$url.'\');return false;">'.$title.'</a>' ; //$html .= '<a href="" onclick="top.load_item('.$item['id'].',\''.$url.'\');return false;">'.$title.'</a>' ;
//<img align="absbottom" width="13" height="13" src="../img/lp_document.png">&nbsp;background:#aaa; //<img align="absbottom" width="13" height="13" src="../img/lp_document.png">&nbsp;background:#aaa;
$html .= '<a href="" onclick="'; $html .= '<a href="" onclick="dokeos_xajax_handler.switch_item(' .
$count_items = 0;
foreach($list as $item2)
{
//$html .= 'alert('.$count_items.');';
if ($count_items%2==0) {
$html .= 'document.getElementById(\'toc_'.$item2['id'].'\').style.backgroundColor=\'#ddd\';';
} else {
$html .= 'document.getElementById(\'toc_'.$item2['id'].'\').style.backgroundColor=\'#eee\';';
}
$count_items++;
}
$html .= 'document.getElementById(\'toc_'.$item['id'].'\').style.backgroundColor=\'#aaa\';';
$html .='dokeos_xajax_handler.switch_item(' .
$mycurrentitemid.',' . $mycurrentitemid.',' .
$item['id'].');' . $item['id'].');' .
'return false;" >'.stripslashes($title).'</a>' ; 'return false;" >'.stripslashes($title).'</a>' ;

@ -54,17 +54,4 @@ if(isset($_SESSION['lpobject'])) {
} }
session_write_close(); session_write_close();
?> ?>
<body> <span><?php echo (!empty($mediaplayer))?$mediaplayer:'&nbsp;' ?></span>
<div class="lp_navigation_elem">
<table>
<tr>
<td colspan="2"><?php echo $mediaplayer; ?></td>
</tr>
<tr valign="middle">
<td><?php echo $progress_bar; ?></td>
<td><?php echo $navigation_bar; ?></td>
</tr>
</table>
</div>
</body>
</html>

@ -161,11 +161,7 @@ $save_setting = get_setting("show_navigation_menu");
global $_setting; global $_setting;
$_setting['show_navigation_menu'] = 'false'; $_setting['show_navigation_menu'] = 'false';
$interbreadcrumb[]= array ("url"=>"lp_controller.php?action=list", "name"=> get_lang("_learning_path")); $scorm_css_header=true;
$interbreadcrumb[]= array ("url"=>api_get_self()."?action=view&lp_id=$learnpath_id", "name" => stripslashes($_SESSION['_course']['name']));
$scorm_css_header=true;
$lp_theme_css=$_SESSION['oLP']->get_theme(); //sets the css theme of the LP this call is also use at the frames (toc, nav, message) $lp_theme_css=$_SESSION['oLP']->get_theme(); //sets the css theme of the LP this call is also use at the frames (toc, nav, message)
if($_SESSION['oLP']->mode == 'fullscreen') if($_SESSION['oLP']->mode == 'fullscreen')
@ -193,9 +189,8 @@ if($_SESSION['oLP']->mode == 'fullscreen')
<?php <?php
} }
else else
{ {
Display::display_header(null,'Path'); include_once('../inc/reduced_header.inc.php');
$displayAudioRecorder = (api_get_setting('service_visio','active')=='true') ? true : false; $displayAudioRecorder = (api_get_setting('service_visio','active')=='true') ? true : false;
//check if audio recorder needs to be in studentview //check if audio recorder needs to be in studentview
$course_id=$_SESSION["_course"]["id"]; $course_id=$_SESSION["_course"]["id"];
@ -234,73 +229,106 @@ else
<style type="text/css" media="screen, projection"> <style type="text/css" media="screen, projection">
/*<![CDATA[*/ /*<![CDATA[*/
@import "<?php echo api_get_path(WEB_CODE_PATH); ?>css/<?php echo $my_style;?>/scorm.css"; @import "<?php echo api_get_path(WEB_CODE_PATH); ?>css/<?php echo $my_style;?>/scorm.css";
@import "<?php echo api_get_path(WEB_CODE_PATH); ?>css/<?php echo $my_style;?>/scormfs.css";
/*]]>*/ /*]]>*/
</style> </style>
<table border="0"> <table>
<tr><td valign="top"> <tr><td valign="top">
<div id="learningPathLeftZone" style="float: left; width: 300px;"> <div id="learningPathLeftZone" style="float: left; width: 300px;">
<div id="learningPathHeader" style="font-size:14px; padding-left: 17px;">
<table> <div id="header">
<tr> <div id="learningPathHeader" style="font-size:14px; padding-left: 17px;">
<td> <table>
<a href="lp_controller.php?action=return_to_course_homepage" target="_top" onclick="window.parent.API.save_asset();"><img src="../img/lp_arrow.gif" /></a> <tr>
</td> <td>
<td> <a href="lp_controller.php?action=return_to_course_homepage" target="_top" onclick="window.parent.API.save_asset();"><img src="../img/lp_arrow.gif" /></a>
<a class="link" href="lp_controller.php?action=return_to_course_homepage" target="_top" onclick="window.parent.API.save_asset();"><?php echo get_lang('CourseHomepageLink'); ?></a> </td>
</td> <td>
</tr> <a class="link" href="lp_controller.php?action=return_to_course_homepage" target="_top" onclick="window.parent.API.save_asset();"><?php echo get_lang('CourseHomepageLink'); ?></a>
</table> </td>
</tr>
</table>
</div>
</div> </div>
<?php $image = '../img/lp_author_background.gif'; ?>
<div id="image_preview"> <div id="author_image" name="author_image" class="lp_author_image">
<table style="width: 285px; height:110px; background-image: url('../img/lp_author_background.gif');background-repeat:no-repeat"> <?php $image = '../img/lp_author_background.gif'; ?>
<tr> <div id="image_preview">
<td> <table style="width: 285px; height:110px; background-image: url('../img/lp_author_background.gif');background-repeat:no-repeat">
<?php if ($_SESSION['oLP']->get_preview_image()!=''): ?> <tr>
<img alt="" src="<?php echo api_get_path(WEB_COURSE_PATH).api_get_course_path().'/upload/learning_path/images/'.$_SESSION['oLP']->get_preview_image(); ?>"> <td>
<?php else: <?php if ($_SESSION['oLP']->get_preview_image()!=''): ?>
echo Display::display_icon('unknown_250_100.jpg',' '); <img alt="" src="<?php echo api_get_path(WEB_COURSE_PATH).api_get_course_path().'/upload/learning_path/images/'.$_SESSION['oLP']->get_preview_image(); ?>">
endif; ?> <?php else:
</td> echo Display::display_icon('unknown_250_100.jpg',' ');
</tr> endif; ?>
</table> </td>
<div id="author_name" class="lp_author_image"> </tr>
<?php echo $_SESSION['oLP']->get_author(); ?> </table>
</div> <div id="author_name">
<?php echo $_SESSION['oLP']->get_author(); ?>
</div>
</div>
</div> </div>
<div class="lp_navigation_elem" >
<table>
<tr> <div id="nav_id" name="nav_name" class="lp_nav">
<td colspan="2"><?php
<?php
$display_mode = $_SESSION['oLP']->mode; $display_mode = $_SESSION['oLP']->mode;
$scorm_css_header=true; $scorm_css_header=true;
$lp_theme_css=$_SESSION['oLP']->get_theme(); $lp_theme_css=$_SESSION['oLP']->get_theme();
echo $_SESSION['oLP']->get_mediaplayer(); ?></td>
</tr> //Setting up the CSS theme if exists
<tr><td>&nbsp;</td></tr>
<tr valign="middle"> if (!empty($lp_theme_css) && !empty($mycourselptheme) && $mycourselptheme!=-1 && $mycourselptheme== 1 ) {
<td id="progress_text" > global $lp_theme_css;
<?php echo $_SESSION['oLP']->get_progress_bar('',-1,'',true); ?> } else {
</td> $lp_theme_css=$my_style;
<td> }
<?php echo $_SESSION['oLP']->get_navigation_bar(); ?>
</td> $progress_bar = $_SESSION['oLP']->get_progress_bar('',-1,'',true);
</tr> $navigation_bar = $_SESSION['oLP']->get_navigation_bar();
<tr><td>&nbsp;</td></tr> $mediaplayer = $_SESSION['oLP']->get_mediaplayer();
</table>
?>
<div id="lp_navigation_elem" class="lp_navigation_elem">
<table border="0" width="100%">
<tr>
<td colspan="2" style="font-size:11.5pt">
<div id="media" ><span><?php echo (!empty($mediaplayer))?$mediaplayer:'&nbsp;' ?></span></div>
</td>
</tr>
<tr valign="middle">
<td><?php echo $progress_bar; ?></td>
<td><?php echo $navigation_bar; ?></td>
</tr>
</table>
</div>
</div> </div>
<div id="msg_div_id" class="message">
<?php echo $error = $_SESSION['oLP']->error; ?> <div id="message_id" name="message_name" class="message">
<div id="msg_div_id" class="message">
<?php echo $error = $_SESSION['oLP']->error; ?>
</div>
</div> </div>
<div id="learningPathToc" class="lp_toc" style="height: 400px;width:285px;overflow-y:auto;overflow-x:hidden;font-size:8pt;"><?php echo $_SESSION['oLP']->get_html_toc(); ?></div>
<div id="log_content"> <div id="toc_id" name="toc_name" class="lp_toc" style="padding:0;margin:0">
<div id="learningPathToc" style="width:300px;overflow-y:auto;overflow-x:hidden;font-size:8pt;"><?php echo $_SESSION['oLP']->get_html_toc(); ?></div>
</div> </div>
<div style="color: white;" onClick="cleanlog();">.</div>
<div id="lp_log_id" name="lp_log_name" class="lp_log">
<div id="log_content">
</div>
<div style="color: white;" onClick="cleanlog();">.</div>
</div>
</div> </div>
</td><td align="left" width="100%"> </td><td align="left" width="100%" valign="top">
<div id="learningPathRightZone" style="height: 700px;"> <div id="learningPathRightZone">
<iframe id="content_id" name="content_name" src="<?php echo $src; ?>" border="0" frameborder="0" style="overflow: 100%; width: 100%"></iframe> <iframe id="content_id" name="content_name" src="<?php echo $src; ?>" border="0" frameborder="0" style="height:600px;width: 100%"></iframe>
</div> </div>
</td></tr> </td></tr>
</table> </table>
@ -357,7 +385,7 @@ else
FOOTER FOOTER
============================================================================== ==============================================================================
*/ */
Display::display_footer(); //Display::display_footer();
} }
//restore global setting //restore global setting
$_setting['show_navigation_menu'] = $save_setting; $_setting['show_navigation_menu'] = $save_setting;

@ -1,4 +1,4 @@
<?php // $Id: scorm_api.php 19463 2009-03-31 17:33:09Z cfasanando $ <?php // $Id: scorm_api.php 19487 2009-04-01 22:07:02Z cfasanando $
/* /*
============================================================================== ==============================================================================
Dokeos - elearning and course management software Dokeos - elearning and course management software
@ -836,10 +836,13 @@ function logit_lms(message,priority){
function update_toc(update_action,update_id) function update_toc(update_action,update_id)
{ {
<?php //if($oLP->mode != 'fullscreen'){ ?> <?php //if($oLP->mode != 'fullscreen'){ ?>
var myframe = frames["toc_name"]; //var myframe = frames["toc_name"];
var myelem = myframe.document.getElementById("toc_"+update_id); //var myelem = myframe.document.getElementById("toc_"+update_id);
var myelemimg = myframe.document.getElementById("toc_img_"+update_id); //var myelemimg = myframe.document.getElementById("toc_img_"+update_id);
logit_lms('update_toc("'+update_action+'",'+update_id+')',2);
var myelem = $("#toc_"+update_id);
var myelemimg = $("#toc_img_"+update_id);
logit_lms('update_toc("'+update_action+'",'+update_id+')',2);
if(update_id != 0) if(update_id != 0)
{ {
@ -847,51 +850,51 @@ function update_toc(update_action,update_id)
{ {
case 'unhighlight': case 'unhighlight':
if (update_id%2==0) if (update_id%2==0)
{ {
myelem.className = "scorm_item_2"; myelem.attr('class',"scorm_item_2");
} }
else else
{ {
myelem.className = "scorm_item_1"; myelem.attr('class',"scorm_item_1");
} }
break; break;
case 'highlight': case 'highlight':
myelem.className = "scorm_item_highlight"; myelem.attr('class',"scorm_item_highlight");
break; break;
case 'not attempted': case 'not attempted':
if(myelemimg.src != '../img/notattempted.gif'){ if( myelemimg.attr('src') != '../img/notattempted.gif') {
myelemimg.src = "../img/notattempted.gif"; myelemimg.attr('src','../img/notattempted.gif');
myelemimg.alt = "n"; myelemimg.attr('alt','n');
} }
break; break;
case 'incomplete': case 'incomplete':
if(myelemimg.src != '../img/incomplete.gif'){ if( myelemimg.attr('src') != '../img/incomplete.gif') {
myelemimg.src = "../img/incomplete.gif"; myelemimg.attr('src','../img/incomplete.gif');
myelemimg.alt = "i"; myelemimg.attr('alt','i');
} }
break; break;
case 'completed': case 'completed':
if(myelemimg.src != '../img/completed.gif'){ if( myelemimg.attr('src') != '../img/completed.gif') {
myelemimg.src = "../img/completed.gif"; myelemimg.attr('src','../img/completed.gif');
myelemimg.alt = "c"; myelemimg.attr('alt','c');
} }
break; break;
case 'failed': case 'failed':
if(myelemimg.src != '../img/failed.gif'){ if( myelemimg.attr('src') != '../img/failed.gif') {
myelemimg.src = "../img/failed.gif"; myelemimg.attr('src','../img/failed.gif');
myelemimg.alt = "f"; myelemimg.attr('alt','f');
} }
break; break;
case 'passed': case 'passed':
if(myelemimg.src != '../img/completed.gif' && myelemimg.alt != 'passed'){ if( myelemimg.attr('src') != '../img/completed.gif' && myelemimg.attr('alt') != 'passed') {
myelemimg.src = "../img/completed.gif"; myelemimg.attr('src','../img/completed.gif');
myelemimg.alt = "p"; myelemimg.attr('alt','p');
} }
break; break;
case 'browsed': case 'browsed':
if(myelemimg.src != '../img/completed.gif' && myelemimg.alt != 'browsed'){ if( myelemimg.attr('src') != '../img/completed.gif' && myelemimg.attr('alt') != 'browsed') {
myelemimg.src = "../img/completed.gif"; myelemimg.attr('src','../img/completed.gif');
myelemimg.alt = "b"; myelemimg.attr('alt','b');
} }
break; break;
default: default:
@ -913,32 +916,34 @@ function update_progress_bar(nbr_complete, nbr_total, mode)
{ {
logit_lms('update_progress_bar('+nbr_complete+','+nbr_total+','+mode+')',2); logit_lms('update_progress_bar('+nbr_complete+','+nbr_total+','+mode+')',2);
logit_lms('could update with data: '+lms_lp_id+','+lms_view_id+','+lms_user_id,2); logit_lms('could update with data: '+lms_lp_id+','+lms_view_id+','+lms_user_id,2);
var myframe = frames["nav_name"];
if(myframe){ if(mode == ''){mode='%';}
if(mode == ''){mode='%';} if(nbr_total == 0){nbr_total=1;}
if(nbr_total == 0){nbr_total=1;} var percentage = (nbr_complete/nbr_total)*100;
var percentage = (nbr_complete/nbr_total)*100; percentage = Math.round(percentage);
percentage = Math.round(percentage);
var pr_text = myframe.document.getElementById('progress_text'); var pr_text = $("#progress_text");
var pr_full = myframe.document.getElementById('progress_img_full'); var pr_full = $("#progress_img_full");
var pr_empty = $("#progress_img_empty");
var pr_empty = myframe.document.getElementById('progress_img_empty'); pr_full.attr('width',percentage*1.2);
pr_full.width = percentage*1.2; pr_empty.attr('width',(100-percentage)*1.2);
pr_empty.width = (100-percentage)*1.2;
var mytext = ''; var mytext = '';
switch(mode){ switch(mode){
case 'abs': case 'abs':
mytext = nbr_complete + '/' + nbr_total; mytext = nbr_complete + '/' + nbr_total;
break; break;
case '%': case '%':
default: default:
mytext = percentage + '%'; mytext = percentage + '%';
break; break;
} }
pr_text.innerHTML = mytext; pr_text.html(mytext);
}
return true; return true;
} }
function update_stats_page() function update_stats_page()
{ {
var myframe = document.getElementById('content_id'); var myframe = document.getElementById('content_id');
@ -957,13 +962,12 @@ function update_stats_page()
*/ */
function update_message_frame(msg_msg) function update_message_frame(msg_msg)
{ {
if(msg_msg==null){msg_msg='';} if(msg_msg==null){msg_msg='';}
var msg_f = frames["message_name"]; if(!($("#msg_div_id"))){
if(!msg_f.document || !msg_f.document.getElementById('msg_div_id')){
logit_lms('In update_message_frame() - message frame has no document property',0); logit_lms('In update_message_frame() - message frame has no document property',0);
}else{ }else{
logit_lms('In update_message_frame() - updating frame',0); logit_lms('In update_message_frame() - updating frame',0);
msg_f.document.getElementById('msg_div_id').innerHTML= msg_msg; $("#msg_div_id").html(msg_msg);
} }
} }
/** /**
@ -1001,9 +1005,9 @@ function switch_item(current_item, next_item){
break; break;
default: default:
break; break;
} }
var mysrc = 'lp_controller.php?action=content&lp_id='+lms_lp_id+'&item_id='+next_item; var mysrc = 'lp_controller.php?action=content&lp_id='+lms_lp_id+'&item_id='+next_item+'#anchor_'+lms_lp_id;
var cont_f = document.getElementById('content_id'); var cont_f = $("#content_id");
if(!cont_f){ if(!cont_f){
logit_lms('In switch - content frame not found',0); logit_lms('In switch - content frame not found',0);
<?php if($oLP->mode == 'fullscreen'){ ?> <?php if($oLP->mode == 'fullscreen'){ ?>
@ -1011,20 +1015,23 @@ function switch_item(current_item, next_item){
<?php } else { ?> <?php } else { ?>
return false; return false;
<?php } ?> <?php } ?>
} else {
cont_f.attr("src",mysrc);
} }
else
{
//cont_f.src = mysrc;
location.href='lp_controller.php?cidReq=<?php echo api_get_course_id() ?>&action=view&lp_id='+lms_lp_id;
}
if(lms_lp_type==1 || lms_item_type=='asset'){ if(lms_lp_type==1 || lms_item_type=='asset'){
xajax_start_timer(); xajax_start_timer();
} }
//(4) refresh the audio player if needed //(4) refresh the audio player if needed
if(frames['nav_name']){ $.ajax({
frames['nav_name'].location.reload(); type: "GET",
} url: "lp_nav.php",
data: "",
success: function(datos) {
$("#media").html(datos);
}
});
return true; return true;
} }

Loading…
Cancel
Save