@ -33,7 +33,7 @@
* the administrator
* the administrator
* @package dokeos.exercise
* @package dokeos.exercise
* @author Olivier Brouckaert
* @author Olivier Brouckaert
* @version $Id: exercice_submit.php 14930 2008-04-16 21:41:35Z juliomontoya $
* @version $Id: exercice_submit.php 15251 2008-05-08 20:28:28Z yannoo $
*/
*/
@ -100,7 +100,7 @@ if ( empty ( $exerciseType ) ) {
$exerciseType = $_REQUEST['exerciseType'];
$exerciseType = $_REQUEST['exerciseType'];
}
}
if ( empty ( $exerciseId ) ) {
if ( empty ( $exerciseId ) ) {
$exerciseId = $_REQUEST['exerciseId'];
$exerciseId = intval( $_REQUEST['exerciseId']) ;
}
}
if ( empty ( $choice ) ) {
if ( empty ( $choice ) ) {
$choice = $_REQUEST['choice'];
$choice = $_REQUEST['choice'];
@ -114,6 +114,7 @@ if ( empty ( $nbrQuestions ) ) {
if ( empty ($buttonCancel) ) {
if ( empty ($buttonCancel) ) {
$buttonCancel = $_REQUEST['buttonCancel'];
$buttonCancel = $_REQUEST['buttonCancel'];
}
}
$error = '';
// if the user has clicked on the "Cancel" button
// if the user has clicked on the "Cancel" button
if($buttonCancel)
if($buttonCancel)
@ -199,24 +200,26 @@ if($formSent)
}
}
// if the object is not in the session
// if the object is not in the session
if(!isset($_SESSION['objExercise']) || $origin == 'learnpath')
if(!isset($_SESSION['objExercise']) || $origin == 'learnpath' || $_SESSION['objExercise']->id != $_REQUEST['exerciseId'] )
{
{
if($debug>0){echo str_repeat(' ',0).'$_SESSION[objExercise] was unset'."< br / > \n";}
if($debug>0){echo str_repeat(' ',0).'$_SESSION[objExercise] was unset'."< br / > \n";}
// construction of Exercise
// construction of Exercise
$objExercise=new Exercise();
$objExercise=new Exercise();
unset($_SESSION['questionList']);
#$sql="SELECT title,description,sound,type,random,active FROM `$TBL_EXERCICES` WHERE id='$exerciseId'";
// if the specified exercise doesn't exist or is disabled
// if the specified exercise doesn't exist or is disabled
if(!$objExercise->read($exerciseId) || (!$objExercise->selectStatus() & & !$is_allowedToEdit & & ($origin != 'learnpath') ))
if(!$objExercise->read($exerciseId) || (!$objExercise->selectStatus() & & !$is_allowedToEdit & & ($origin != 'learnpath') ))
{
{
die(get_lang('ExerciseNotFound'));
unset($objExercise);
$error = get_lang('ExerciseNotFound');
//die(get_lang('ExerciseNotFound'));
}
}
else
{
// saves the object into the session
// saves the object into the session
api_session_register('objExercise');
api_session_register('objExercise');
if($debug>0){echo str_repeat(' ',0).'$_SESSION[objExercise] was unset - set now - end'."< br / > \n";}
if($debug>0){echo str_repeat(' ',0).'$_SESSION[objExercise] was unset - set now - end'."< br / > \n";}
}
}
}
if(!isset($objExcercise) & & isset($_SESSION['objExercise'])){
if(!isset($objExcercise) & & isset($_SESSION['objExercise'])){
@ -410,7 +413,7 @@ else
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
< html xmlns = "http://www.w3.org/1999/xhtml" xml:lang = " <?php echo $document_language ; ?> " lang = " <?php echo $document_language ; ?> " >
< html xmlns = "http://www.w3.org/1999/xhtml" xml:lang = " <?php echo $document_language ; ?> " lang = " <?php echo $document_language ; ?> " >
< head >
< head >
< meta http-equiv = "Content-Type" content = "text/html; charset=ISO-8859-1" / >
< meta http-equiv = "Content-Type" content = "text/html; charset= <?php echo $charset ; ?> " />
< / head >
< / head >
< body >
< body >
@ -423,20 +426,27 @@ else
echo "< h3 > ".$exerciseTitle."< / h3 > ";
echo "< h3 > ".$exerciseTitle."< / h3 > ";
if(!empty($exerciseSound))
if(!empty($error))
{
Display::display_error_message($error,false);
}
else
{
{
if(!empty($exerciseSound))
{
echo "< a href = \"../document/download.php?doc_url=%2Faudio%2F".$exerciseSound."\" target = \"_blank\" > ",
echo "< a href = \"../document/download.php?doc_url=%2Faudio%2F".$exerciseSound."\" target = \"_blank\" > ",
"< img src = \"../img/sound.gif\" border = \"0\" align = \"absmiddle\" alt = ",get_lang('Sound')." \ " / > < / a > ";
"< img src = \"../img/sound.gif\" border = \"0\" align = \"absmiddle\" alt = ",get_lang('Sound')." \ " / > < / a > ";
}
}
// Get number of hotspot questions for javascript validation
// Get number of hotspot questions for javascript validation
$number_of_hotspot_questions = 0;
$number_of_hotspot_questions = 0;
$onsubmit = '';
$onsubmit = '';
$i=0;
$i=0;
foreach($questionList as $questionId)
foreach($questionList as $questionId)
{
{
$i++;
$i++;
$objQuestionTmp = Question :: read($questionId);
$objQuestionTmp = Question :: read($questionId);
@ -464,18 +474,18 @@ foreach($questionList as $questionId)
$number_of_hotspot_questions++;
$number_of_hotspot_questions++;
}
}
}
}
}
}
if($number_of_hotspot_questions > 0)
if($number_of_hotspot_questions > 0)
{
{
$onsubmit = "onsubmit=\"return validateFlashVar('".$number_of_hotspot_questions."', '".get_lang('HotspotValidateError1')."', '".get_lang('HotspotValidateError2')."');\"";
$onsubmit = "onsubmit=\"return validateFlashVar('".$number_of_hotspot_questions."', '".get_lang('HotspotValidateError1')."', '".get_lang('HotspotValidateError2')."');\"";
}
}
$s="< p > $exerciseDescription< / p > ";
$s="< p > $exerciseDescription< / p > ";
if($origin == 'learnpath' & & $exerciseType==2){
if($origin == 'learnpath' & & $exerciseType==2){
$s2 = "&exerciseId=".$exerciseId;
$s2 = "&exerciseId=".$exerciseId;
}
}
$s.=" < form method = 'post' action = '".api_get_self()."?autocomplete=off".$s2."' name = 'frm_exercise' $ onsubmit >
$s.=" < form method = 'post' action = '".api_get_self()."?autocomplete=off".$s2."' name = 'frm_exercise' $ onsubmit >
< input type = 'hidden' name = 'formSent' value = '1' / >
< input type = 'hidden' name = 'formSent' value = '1' / >
< input type = 'hidden' name = 'exerciseType' value = '".$exerciseType."' / >
< input type = 'hidden' name = 'exerciseType' value = '".$exerciseType."' / >
< input type = 'hidden' name = 'questionNum' value = '".$questionNum."' / >
< input type = 'hidden' name = 'questionNum' value = '".$questionNum."' / >
@ -483,16 +493,16 @@ $s.=" <form method='post' action='".api_get_self()."?autocomplete=off".$s2."' na
< input type = 'hidden' name = 'origin' value = '".$origin."' / >
< input type = 'hidden' name = 'origin' value = '".$origin."' / >
< input type = 'hidden' name = 'learnpath_id' value = '".$learnpath_id."' / >
< input type = 'hidden' name = 'learnpath_id' value = '".$learnpath_id."' / >
< input type = 'hidden' name = 'learnpath_item_id' value = '".$learnpath_item_id."' / >
< input type = 'hidden' name = 'learnpath_item_id' value = '".$learnpath_item_id."' / >
< table width = '100%' border = '0' cellpadding = '1' cellspacing = '0' >
< table width = '100%' border = '0' cellpadding = '1' cellspacing = '0' >
< tr >
< tr >
< td >
< td >
< table width = '100%' cellpadding = '3' cellspacing = '0' border = '0' > ";
< table width = '100%' cellpadding = '3' cellspacing = '0' border = '0' > ";
echo $s;
echo $s;
$i=0;
$i=0;
foreach($questionList as $questionId)
foreach($questionList as $questionId)
{
{
$i++;
$i++;
// for sequential exercises
// for sequential exercises
@ -542,9 +552,9 @@ foreach($questionList as $questionId)
// quits the loop
// quits the loop
break;
break;
}
}
} // end foreach()
} // end foreach()
$s="< / table >
$s="< / table >
< / td >
< / td >
< / tr >
< / tr >
< tr >
< tr >
@ -565,8 +575,9 @@ $s="</table>
$s.= '\' />';
$s.= '\' />';
$s.="< / td > < / tr > < / form > < / table > ";
$s.="< / td > < / tr > < / form > < / table > ";
$b=2;
$b=2;
echo $s;
echo $s;
}
if ($origin != 'learnpath') { //so we are not in learnpath tool
if ($origin != 'learnpath') { //so we are not in learnpath tool
Display::display_footer();
Display::display_footer();