'; if ($show=='result' && $_REQUEST['comments']=='update' && ($is_allowedToEdit || $is_tutor)) { $id = $_GET['exeid']; $emailid = $_GET['emailid']; $test = $_GET['test']; $from = $_SESSION['_user']['mail']; $from_name = $_SESSION['_user']['firstName']." ".$_SESSION['_user']['lastName']; $url = api_get_path(WEB_CODE_PATH).'exercice/exercice.php?'.api_get_cidreq().'&show=result'; foreach ($_POST as $key=>$v) { $keyexp = explode('_',$key); if ($keyexp[0] == "marks") { $sql = "select question from $TBL_QUESTIONS where id = '$keyexp[1]'"; $result =api_sql_query($sql, __FILE__, __LINE__); $ques_name = mysql_result($result,0,"question"); $query = "update $TBL_TRACK_ATTEMPT set marks = '$v' where question_id = $keyexp[1] and exe_id=$id"; api_sql_query($query, __FILE__, __LINE__); $qry = 'SELECT sum(marks) as tot FROM '.$TBL_TRACK_ATTEMPT.' where exe_id = '.intval($id).' GROUP BY question_id'; $res = api_sql_query($qry,__FILE__,__LINE__); $tot = mysql_result($res,0,'tot'); $totquery = "update $TBL_TRACK_EXERCICES set exe_result = $tot where exe_Id=$id"; api_sql_query($totquery, __FILE__, __LINE__); } else { $query = "update $TBL_TRACK_ATTEMPT set teacher_comment = '$v' where question_id = $keyexp[1] and exe_id = $id "; api_sql_query($query, __FILE__, __LINE__); } } $qry = 'SELECT DISTINCT question_id, marks FROM '.$TBL_TRACK_ATTEMPT.' where exe_id = '.intval($id).' GROUP BY question_id'; $res = api_sql_query($qry,__FILE__,__LINE__); $tot = 0; while($row = Database::fetch_array($res,'ASSOC')) { $tot += $row ['marks']; } $totquery = "update $TBL_TRACK_EXERCICES set exe_result = $tot where exe_Id=$id"; api_sql_query($totquery, __FILE__, __LINE__); $subject = get_lang('ExamSheetVCC'); $htmlmessage = ''. '' . '' . '' . '' . '
' . '

'.get_lang('DearStudentEmailIntroduction').'

' . '

'.get_lang('AttemptVCC').'

' . ' ' . ' ' . ' ' . ' ' . ' ' . ' ' . ' ' . ' ' . ' ' . '
  '.get_lang('Question').'#ques_name#
  '.get_lang('Exercice').'#test#
' . '

'.get_lang('ClickLinkToViewComment').' #url#
' . '
' . ' '.get_lang('Regards').'

' . '
' . ' ' . ' '; $message = '

'.sprintf(get_lang('AttemptVCCLong'),$test).' #url#


'; $mess= str_replace("#test#",$test,$message); //$message= str_replace("#ques_name#",$ques_name,$mess); $message = str_replace("#url#",$url,$mess); $mess = stripslashes($message); $headers = " MIME-Version: 1.0 \r\n"; $headers .= "User-Agent: Dokeos/1.6"; $headers .= "Content-Transfer-Encoding: 7bit"; $headers .= 'From: '.$from_name.' <'.$from.'>' . "\r\n"; $headers="From:$from_name\r\nReply-to: $to\r\nContent-type: text/html; charset=".($charset?$charset:'ISO-8859-15'); //mail($emailid, $subject, $mess,$headers); api_mail_html($emailid, $emailid, $subject, $mess, $from_name, $from); if(in_array($origin, array('tracking_course','user_course'))){ //Redirect to the reporting header('location: ../mySpace/myStudents.php?origin='.$origin.'&student='.$_GET['student'].'&details=true&course='.$_GET['course']); } } if($show!='result') { $nameTools=get_lang('Exercices'); } else { if($is_allowedToEdit || $is_tutor) { $nameTools=get_lang('StudentScore'); $interbreadcrumb[]=array("url" => "exercice.php","name" => get_lang('Exercices')); } else { $nameTools=get_lang('YourScore'); $interbreadcrumb[]=array("url" => "exercice.php","name" => get_lang('Exercices')); } } if($is_allowedToEdit && !empty($choice) && $choice == 'exportqti2') { require_once('export/qti2/qti2_export.php'); $export = export_exercise($exerciseId,true); require_once(api_get_path(LIBRARY_PATH).'pclzip/pclzip.lib.php'); $garbage_path = api_get_path(GARBAGE_PATH); $temp_dir_short = uniqid(); $temp_zip_dir = $garbage_path."/".$temp_dir_short; if(!is_dir($temp_zip_dir)) mkdir($temp_zip_dir); $temp_zip_file = $temp_zip_dir."/".md5(time()).".zip"; $temp_xml_file = $temp_zip_dir."/qti2export_".$exerciseId.'.xml'; file_put_contents($temp_xml_file,$export); $zip_folder=new PclZip($temp_zip_file); $zip_folder->add($temp_zip_dir, PCLZIP_OPT_REMOVE_PATH, $temp_zip_dir); $name = 'qti2_export_'.$exerciseId.'.zip'; //DocumentManager::string_send_for_download($export,true,'qti2export_'.$exerciseId.'.xml'); DocumentManager::file_send_for_download($temp_zip_file,true,$name); unlink($temp_zip_file); unlink($temp_xml_file); rmdir($temp_zip_dir); exit(); //otherwise following clicks may become buggy } if ($origin != 'learnpath') { //so we are not in learnpath tool Display::display_header($nameTools,"Exercise"); if(isset($_GET['message'])) { if (in_array($_GET['message'], array('ExerciseEdited'))) { Display::display_confirmation_message(get_lang($_GET['message'])); } } } else { echo ''; } // used for stats include_once(api_get_path(LIBRARY_PATH).'events.lib.inc.php'); event_access_tool(TOOL_QUIZ); // need functions of statsutils lib to display previous exercices scores include_once(api_get_path(LIBRARY_PATH).'statsUtils.lib.inc.php'); Display::display_introduction_section(TOOL_QUIZ); // selects $limitExPage exercises at the same time $from=$page*$limitExPage; // $sql="SELECT id,title,type,active FROM $TBL_EXERCICES ORDER BY title LIMIT $from,".($limitExPage+1); // $result=api_sql_query($sql,__FILE__,__LINE__); $sql="SELECT count(id) FROM $TBL_EXERCICES"; $res = api_sql_query($sql,__FILE__,__LINE__); list($nbrexerc) = Database::fetch_array($res); HotPotGCt($documentPath,1,$_user['user_id']); // only for administrator if($is_allowedToEdit) { if(!empty($choice)) { // construction of Exercise $objExerciseTmp=new Exercise(); if($objExerciseTmp->read($exerciseId)) { switch($choice) { case 'delete': // deletes an exercise $objExerciseTmp->delete(); Display::display_confirmation_message(get_lang('ExerciseDeleted')); break; case 'enable': // enables an exercise $objExerciseTmp->enable(); $objExerciseTmp->save(); // "WHAT'S NEW" notification: update table item_property (previously last_tooledit) api_item_property_update($_course, TOOL_QUIZ, $exerciseId, "QuizAdded", $_user['user_id']); Display::display_confirmation_message(get_lang('VisibilityChanged')); break; case 'disable': // disables an exercise $objExerciseTmp->disable(); $objExerciseTmp->save(); Display::display_confirmation_message(get_lang('VisibilityChanged')); break; } } // destruction of Exercise unset($objExerciseTmp); } //$sql="SELECT id,title,type,active FROM $TBL_EXERCICES ORDER BY title LIMIT $from,".($limitExPage+1); //$result=api_sql_query($sql,__FILE__,__LINE__); if(!empty($hpchoice)) { switch($hpchoice) { case 'delete': // deletes an exercise $imgparams = array(); $imgcount = 0; GetImgParams($file,$documentPath,$imgparams,$imgcount); $fld = GetFolderName($file); for($i=0;$i < $imgcount;$i++) { my_delete($documentPath.$uploadPath."/".$fld."/".$imgparams[$i]); update_db_info("delete", $uploadPath."/".$fld."/".$imgparams[$i]); } if ( my_delete($documentPath.$file)) { update_db_info("delete", $file); } my_delete($documentPath.$uploadPath."/".$fld."/"); break; case 'enable': // enables an exercise $newVisibilityStatus = "1"; //"visible" $query = "SELECT id FROM $TBL_DOCUMENT WHERE path='$file'"; $res = api_sql_query($query,__FILE__,__LINE__); $row = Database::fetch_array($res, 'ASSOC'); api_item_property_update($_course, TOOL_DOCUMENT, $row['id'], 'visible', $_user['user_id']); //$dialogBox = get_lang('ViMod'); break; case 'disable': // disables an exercise $newVisibilityStatus = "0"; //"invisible" $query = "SELECT id FROM $TBL_DOCUMENT WHERE path='$file'"; $res = api_sql_query($query,__FILE__,__LINE__); $row = Database::fetch_array($res, 'ASSOC'); api_item_property_update($_course, TOOL_DOCUMENT, $row['id'], 'invisible', $_user['user_id']); #$query = "UPDATE $TBL_DOCUMENT SET visibility='$newVisibilityStatus' WHERE path=\"".$file."\""; //added by Toon #api_sql_query($query,__FILE__,__LINE__); //$dialogBox = get_lang('ViMod'); break; default: break; } } if($show == 'test') { $sql="SELECT id,title,type,active,description FROM $TBL_EXERCICES WHERE active<>'-1' ORDER BY title LIMIT $from,".($limitExPage+1); $result=api_sql_query($sql,__FILE__,__LINE__); } } // only for students elseif($show == 'test') { $sql="SELECT id,title,type,description FROM $TBL_EXERCICES WHERE active='1' ORDER BY title LIMIT $from,".($limitExPage+1); $result=api_sql_query($sql,__FILE__,__LINE__); } if($show == 'test'){ $nbrExercises=Database::num_rows($result); echo "", ""; if (($is_allowedToEdit) and ($origin != 'learnpath')) { echo "", "", "", "
", "\"new ".get_lang("NewEx")."", " | \"HotPotatoes\" ".get_lang("ImportHotPotatoesQuiz")."", ""; } else { echo ""; } //get HotPotatoes files (active and inactive) $res = api_sql_query ("SELECT * FROM $TBL_DOCUMENT WHERE path LIKE '".$uploadPath."/%/%'",__FILE__,__LINE__); $nbrTests = Database::num_rows($res); $res = api_sql_query ("SELECT * FROM $TBL_DOCUMENT d, $TBL_ITEM_PROPERTY ip WHERE d.id = ip.ref AND ip.tool = '".TOOL_DOCUMENT."' AND d.path LIKE '".$uploadPath."/%/%' AND ip.visibility='1'", __FILE__,__LINE__); $nbrActiveTests = Database::num_rows($res); if($is_allowedToEdit) {//if user is allowed to edit, also show hidden HP tests $nbrHpTests = $nbrTests; }else { $nbrHpTests = $nbrActiveTests; } $nbrNextTests = $nbrexerc-$nbrHpTests-(($page*$limitExPage)); //show pages navigation link for previous page if($page) { echo "<< ",get_lang("PreviousPage")." | "; } elseif($nbrExercises+$nbrNextTests > $limitExPage) { echo "<< ",get_lang("PreviousPage")." | "; } //show pages navigation link for previous page if($nbrExercises+$nbrNextTests > $limitExPage) { echo ">> ",get_lang("NextPage").""; } elseif($page) { echo get_lang("NextPage") . " >>"; } echo "
"; ?> \n"; // prof only if($is_allowedToEdit) { ?> '; echo ''; ?> \n"; } // student only else { ?> $nbrexerc) { if($from>$nbrexerc) { $from = $from - $nbrexerc; $to = $limitExPage; } else { $to = $limitExPage-($nbrexerc-$from); $from = 0; } } else{ $to = $limitExPage; } if($is_allowedToEdit) { $sql = "SELECT d.path as path, d.comment as comment, ip.visibility as visibility FROM $TBL_DOCUMENT d, $TBL_ITEM_PROPERTY ip WHERE d.id = ip.ref AND ip.tool = '".TOOL_DOCUMENT."' AND (d.path LIKE '%htm%' OR d.path LIKE '%html%') AND d.path LIKE '".$uploadPath."/%/%' LIMIT $from,$to"; // only .htm or .html files listed } else { $sql = "SELECT d.path as path, d.comment as comment, ip.visibility as visibility FROM $TBL_DOCUMENT d, $TBL_ITEM_PROPERTY ip WHERE d.id = ip.ref AND ip.tool = '".TOOL_DOCUMENT."' AND (d.path LIKE '%htm%' OR d.path LIKE '%html%') AND d.path LIKE '".$uploadPath."/%/%' AND ip.visibility='1' LIMIT $from,$to"; } $result = api_sql_query ($sql,__FILE__,__LINE__); while($row = Database::fetch_array($result, 'ASSOC')) { $attribute['path' ][] = $row['path' ]; $attribute['visibility'][] = $row['visibility']; $attribute['comment' ][] = $row['comment' ]; } $nbrActiveTests = 0; if(is_array($attribute['path'])) { while(list($key,$path) = each($attribute['path'])) { list($a,$vis)=each($attribute['visibility']); if (strcmp($vis,"1")==0) { $active=1;} else { $active=0;} echo "\n"; $title = GetQuizName($path,$documentPath); if ($title =='') { $title = GetFileName($path); } // prof only if($is_allowedToEdit) { /************/ ?> '; } } } //end if ($origin != 'learnpath') { ?>
>
>
1?'Questions':'Question'))).' <?php echo htmlentities(get_lang('Modify'),ENT_QUOTES,$charset); ?> <?php echo htmlentities(get_lang('Build'),ENT_QUOTES,$charset); ?> ')) return false;"> <?php echo htmlentities(get_lang('Delete'),ENT_QUOTES,$charset); ?> <?php echo htmlentities(get_lang('Deactivate'),ENT_QUOTES,$charset); ?> <?php echo htmlentities(get_lang('Activate'),ENT_QUOTES,$charset); ?> "; echo "
 
1?get_lang('Questions'):get_lang('Question')); ?> 0) { echo get_lang('Attempted').' ('.get_lang('Score').':'; printf("%1.2f\n",$percentage); echo " %)"; } else { echo get_lang('NotAttempted'); } ?>
HotPotatoes >
<?php echo htmlentities(get_lang('Modify'),ENT_QUOTES,$charset); ?> ')) return false;"><?php echo htmlentities(get_lang('Delete'),ENT_QUOTES,$charset); ?> <?php echo htmlentities(get_lang('Deactivate'),ENT_QUOTES,$charset); ?> <?php echo htmlentities(get_lang('Activate'),ENT_QUOTES,$charset); ?>
  ">

<< '.get_lang('Back').''; } }// end if($show == 'test') /*****************************************/ /* Exercise Results (uses tracking tool) */ /*****************************************/ // if tracking is enabled if($_configuration['tracking_enabled']) { if($show == 'result'){ ?> $_user['user_id'] clause has been removed $sql="SELECT CONCAT(lastname,' ',firstname),ce.title, te.exe_result , te.exe_weighting, UNIX_TIMESTAMP(te.exe_date),te.exe_id,email FROM $TBL_EXERCICES AS ce , $TBL_TRACK_EXERCICES AS te, $TBL_USER AS user WHERE te.exe_exo_id = ce.id AND user_id=te.exe_user_id AND te.exe_cours_id='$_cid' ORDER BY te.exe_cours_id ASC, ce.title ASC, te.exe_date ASC"; $hpsql="SELECT CONCAT(tu.lastname,' ',tu.firstname), tth.exe_name, tth.exe_result , tth.exe_weighting, UNIX_TIMESTAMP(tth.exe_date) FROM $TBL_TRACK_HOTPOTATOES tth, $TBL_USER tu WHERE tu.user_id=tth.exe_user_id AND tth.exe_cours_id = '".$_cid."' ORDER BY tth.exe_cours_id ASC, tth.exe_date ASC"; } else { // get only this user's results $sql="SELECT '',ce.title, te.exe_result , te.exe_weighting, UNIX_TIMESTAMP(te.exe_date),te.exe_id FROM $TBL_EXERCICES AS ce , $TBL_TRACK_EXERCICES AS te WHERE te.exe_exo_id = ce.id AND te.exe_user_id='".$_user['user_id']."' AND te.exe_cours_id='$_cid' ORDER BY te.exe_cours_id ASC, ce.title ASC, te.exe_date ASC"; $hpsql="SELECT '',exe_name, exe_result , exe_weighting, UNIX_TIMESTAMP(exe_date) FROM $TBL_TRACK_HOTPOTATOES WHERE exe_user_id = '".$_user['user_id']."' AND exe_cours_id = '".$_cid."' ORDER BY exe_cours_id ASC, exe_date ASC"; } $results=getManyResultsXCol($sql,7); $hpresults=getManyResultsXCol($hpsql,5); $NoTestRes = 0; $NoHPTestRes = 0; //Print the results of tests if(is_array($results)) { for($i = 0; $i < sizeof($results); $i++) { $id = $results[$i][5]; $mailid = $results[$i][6]; $user = $results[$i][0]; $test = $results[$i][1]; $dt = strftime($dateTimeFormatLong,$results[$i][4]); $res = $results[$i][2]; echo ''; if($is_allowedToEdit || $is_tutor) { $user = $results[$i][0]; echo ''; } echo ''; echo ''; echo ''; echo ''; echo ''; } } else { $NoTestRes = 1; } // Print the Result of Hotpotatoes Tests if(is_array($hpresults)) { for($i = 0; $i < sizeof($hpresults); $i++) { $title = GetQuizName($hpresults[$i][1],$documentPath); if ($title =='') { $title = GetFileName($hpresults[$i][1]); } echo ''; if($is_allowedToEdit) { echo ''; } echo ''; echo ''; echo ''; echo ''; //there is no possibility to edit the results of a Hotpotatoes test echo ''; } } else { $NoHPTestRes = 1; } if ($NoTestRes==1 && $NoHPTestRes==1) { ?>
'.$user.''.$test.''.format_locale_date(get_lang('dateTimeFormatLong'),$results[$i][4]).''.round(($res/($results[$i][3]!=0?$results[$i][3]:1))*100).'% ('.$res.' / '.$results[$i][3].')'.(($is_allowedToEdit||$is_tutor)?"".get_lang("Edit")."":"".get_lang('Show')."").'
'.$hpresults[$i][0].''.$title.''.strftime($dateTimeFormatLong,$hpresults[$i][4]).''.round(($hpresults[$i][2]/($hpresults[$i][3]!=0?$hpresults[$i][3]:1))*100).'% ('.$hpresults[$i][2].' / '.$hpresults[$i][3].')
 '.get_lang("Results").' >>

'; }// end if($show == 'result') }// end if tracking is enabled if ($origin != 'learnpath') { //so we are not in learnpath tool Display::display_footer(); } else { ?>