$v) { $keyexp = explode('_',$key); if ($keyexp[0] == "marks") { $sql = "SELECT question from $TBL_QUESTIONS where id = '".Database::escape_string($keyexp[1])."'"; $result =api_sql_query($sql, __FILE__, __LINE__); $ques_name = mysql_result($result,0,"question"); $query = "UPDATE $TBL_TRACK_ATTEMPT SET marks = '".Database::escape_string($v)."' WHERE question_id = '".Database::escape_string($keyexp[1])."' AND exe_id='".Database::escape_string($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 = '".Database::escape_string($tot)."' where exe_Id='".Database::escape_string($id)."'"; api_sql_query($totquery, __FILE__, __LINE__); // if this quiz is integrated in lps, we need to update the score in lp_view_item table // at first we need to get the id of the quiz $sql = 'SELECT exe_exo_id FROM '.$TBL_TRACK_EXERCICES.' WHERE exe_id='.intval($id); $rs = api_sql_query($sql,__FILE__,__LINE__); $exercise_id_to_update = intval(Database::result($rs,0,0)); //then we need to get items where this quiz is integrated $tbl_lp_item = Database::get_course_table(TABLE_LP_ITEM); $sql = 'SELECT * FROM '.$tbl_lp_item.' WHERE item_type="quiz" AND path='.$exercise_id_to_update; $rs_items = api_sql_query($sql,__FILE__,__LINE__); while($lp_item = Database::fetch_array($rs_items)) { $tbl_lp_view = Database::get_course_table(TABLE_LP_VIEW); //we need to get last lp_view id of the user $sql = 'SELECT id FROM '.$tbl_lp_view.' WHERE lp_id='.intval($lp_item['lp_id']).' AND user_id='.api_get_user_id().' ORDER BY view_count DESC LIMIT 1'; $rs_view = api_sql_query($sql,__FILE__,__LINE__); if($view_id = Database::result($rs_view,0,'id')) { // then we can update the score of the lp_view_item row $tbl_lp_item_view = Database::get_course_table(TABLE_LP_ITEM_VIEW); $sql = 'UPDATE '.$tbl_lp_item_view.' SET score='.intval($tot).' WHERE lp_view_id='.intval($view_id).' AND lp_item_id='.intval($lp_item['id']); api_sql_query($sql, __FILE__, __LINE__); } } // select the items where this quiz is integrated } else { $query = "UPDATE $TBL_TRACK_ATTEMPT SET teacher_comment = '".Database::escape_string($v)."' WHERE question_id = '".Database::escape_string($keyexp[1])."' AND exe_id = '".Database::escape_string($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 = '".Database::escape_string($tot)."' WHERE exe_Id='".Database::escape_string($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')); } } // need functions of statsutils lib to display previous exercices scores include_once(api_get_path(LIBRARY_PATH).'statsUtils.lib.inc.php'); 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_xml_file, PCLZIP_OPT_REMOVE_ALL_PATH); $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(!empty($_POST['export_user_fields'])) { switch($_POST['export_user_fields']) { case 'export_user_fields': $_SESSION['export_user_fields'] = true; break; case 'do_not_export_user_fields': default: $_SESSION['export_user_fields'] = false; break; } } if(!empty($_POST['export_report']) && $_POST['export_report'] == 'export_report') { if(api_is_platform_admin() || api_is_course_admin() || api_is_course_tutor() || api_is_course_coach()) { $user_id = null; if(empty($_SESSION['export_user_fields'])) $_SESSION['export_user_fields'] = false; if(!$is_allowedToEdit and !$is_tutor) { $user_id = api_get_user_id(); } require_once('exercise_result.class.php'); switch($_POST['export_format']) { case 'xls': $export = new ExerciseResult(); $export->exportCompleteReportXLS($documentPath, $user_id, $_SESSION['export_user_fields']); exit; break; case 'csv': default: $export = new ExerciseResult(); $export->exportCompleteReportCSV($documentPath, $user_id, $_SESSION['export_user_fields']); exit; break; } } else { api_not_allowed(true); } } 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 ''; } // tracking event_access_tool(TOOL_QUIZ); // display the introduction section Display::display_introduction_section(TOOL_QUIZ,'left'); // Action handling 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; case 'disable_results' : //disable the results for the learners $objExerciseTmp->disable_results(); $objExerciseTmp->save(); Display::display_confirmation_message(get_lang('ResultsDisabled')); break; case 'enable_results' : //disable the results for the learners $objExerciseTmp->enable_results(); $objExerciseTmp->save(); Display::display_confirmation_message(get_lang('ResultsEnabled')); 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='".Database::escape_string($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='".Database::escape_string($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; } } } // the actions echo '
'; // display the next and previous link if needed $from=$page*$limitExPage; $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($show == 'test') { $sql="SELECT id,title,type,active,description, results_disabled FROM $TBL_EXERCICES WHERE active<>'-1' ORDER BY title LIMIT ".(int)$from.",".(int)($limitExPage+1); $result=api_sql_query($sql,__FILE__,__LINE__); } } // only for students elseif($show == 'test') { $sql="SELECT id,title,type,description, results_disabled FROM $TBL_EXERCICES WHERE active='1' ORDER BY title LIMIT ".(int)$from.",".(int)($limitExPage+1); $result=api_sql_query($sql,__FILE__,__LINE__); } if($show == 'test') { $nbrExercises=Database::num_rows($result); //get HotPotatoes files (active and inactive) $res = api_sql_query ("SELECT * FROM $TBL_DOCUMENT WHERE path LIKE '".Database::escape_string($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 '".Database::escape_string($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)); echo ''; //show pages navigation link for previous page if($page) { echo "".Display::return_icon('previous.gif', get_lang("PreviousPage")).get_lang("PreviousPage")." | "; } elseif($nbrExercises+$nbrNextTests > $limitExPage) { echo Display::return_icon('previous.gif', get_lang("PreviousPage")).get_lang('PreviousPage')." | "; } //show pages navigation link for previous page if($nbrExercises+$nbrNextTests > $limitExPage) { echo "".get_lang("NextPage").Display::return_icon('next.gif', get_lang("NextPage")).""; } elseif($page) { echo get_lang("NextPage") . Display::return_icon('next.gif', get_lang("NextPage")); } echo ''; } if (($is_allowedToEdit) and ($origin != 'learnpath')) { echo ''.Display::return_icon('new_test.gif',get_lang('NewEx')).get_lang('NewEx').''; echo ''.Display::return_icon('jqz.jpg',get_lang('ImportHotPotatoesQuiz')).get_lang('ImportHotPotatoesQuiz').''; echo ''.Display::return_icon('show_test_results.gif',get_lang("Results")).get_lang("Results").''; // the actions for the statistics if($show == 'result') { // the form if(api_is_platform_admin() || api_is_course_admin() || api_is_course_tutor() || api_is_course_coach()) { if($_SESSION['export_user_fields']==false) { $alt = get_lang('ExportWithUserFields'); $extra_user_fields = ''; } else { $alt = get_lang('ExportWithoutUserFields'); $extra_user_fields = ''; } echo ''.Display::return_icon('excel.gif',get_lang('ExportAsCSV')).get_lang('ExportAsCSV').''; echo ''.Display::return_icon('excel.gif',get_lang('ExportAsXLS')).get_lang('ExportAsXLS').''; echo ''.Display::return_icon('synthese_view.gif',$alt).$alt.''; echo ''.Display::return_icon('quiz.gif', get_lang('BackToExercisesList')).get_lang('BackToExercisesList').''; echo '
'; echo ''; echo ''; echo '
'; echo '
'; echo ''; echo ''; echo '
'; echo '
'; echo $extra_user_fields; echo '
'; } } } echo '
'; // closing the actions div ?> '."\n"; ?> '; echo ''; ?> "; echo "\n"; } // student only else { ?> '; echo ''; } // skips the last exercise, that is only used to know if we have or not to create a link "Next page" if($i == $limitExPage) { break; } $i++; } // end while() $ind = $i; if (($from+$limitExPage-1)>$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%') AND d.path LIKE '".Database::escape_string($uploadPath)."/%/%' LIMIT ".(int)$from.",".(int)$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%') AND d.path LIKE '".Database::escape_string($uploadPath)."/%/%' AND ip.visibility='1' LIMIT ".(int)$from.",".(int)$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) { /************/ ?>
>
> 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); ?> '.htmlentities(get_lang('EnableResults'),ENT_QUOTES,$charset).''; else echo ''.htmlentities(get_lang('DisableResults'),ENT_QUOTES,$charset).''; */ echo "
1?get_lang('Questions'):get_lang('Question')); ?> 0) { $row = Database::fetch_array($qryres); $percentage = 0; if($row['exe_weighting'] != 0) { $percentage = ($row['exe_result']/$row['exe_weighting'])*100; } echo get_lang('Attempted').' ('.get_lang('Score').':'; printf("%1.2f\n",$percentage); echo " %)"; } else { echo get_lang('NotAttempted'); } echo '
HotPotatoes >
<?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); ?> '; /****************/ ?>
  ">
$_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, UNIX_TIMESTAMP(te.start_date),steps_counter FROM $TBL_EXERCICES AS ce , $TBL_TRACK_EXERCICES AS te, $TBL_USER AS user WHERE te.exe_exo_id = ce.id AND te.status != 'incomplete' AND user_id=te.exe_user_id AND te.exe_cours_id='$_cid' "; switch ($_GET['column']) { case 'username': $sql .= ' order by lastname '.$ordering.', firstname ASC, ce.title ASC, te.exe_date ASC'; break; case 'exercisename': $sql .= ' order by ce.title '.$ordering.', te.exe_date ASC, lastname ASC, firstname ASC'; break; case 'date': $sql .= ' order by te.exe_date '.$ordering.',ce.title ASC, lastname ASC, firstname ASC'; break; case '': $sql .= ' ORDER BY te.exe_cours_id ASC, ce.title ASC, te.exe_date ASC'; break; } $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."'"; switch ($_GET['column']) { case 'username': $hpsql .= ' order by tu.lastname '.$ordering.', tu.firstname ASC,tth.exe_date ASC,tth.exe_name ASC'; break; case 'exercisename': $hpsql .= ' order by tth.exe_name '.$ordering.', tth.exe_date ASC, tu.lastname ASC, tu.firstname ASC'; break; case 'date': $hpsql .= ' order by tth.exe_date '.$ordering.',tth.exe_name ASC, tu.lastname ASC, tu.firstname ASC'; break; case '': $hpsql .= ' ORDER BY tth.exe_cours_id ASC, tth.exe_date ASC'; break; } } else {// get only this user's results $_uid = api_get_user_id(); $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='".$_uid."'AND te.status != 'incomplete' AND te.exe_cours_id='$_cid'"; switch ($_GET['column']) { case 'exercisename': $sql .= " order by ce.title $ordering, te.exe_date ASC"; break; case 'date': $sql .= " order by te.exe_date $ordering,ce.title ASC"; break; case '': $sql .= " ORDER BY te.exe_cours_id ASC, ce.title ASC, te.exe_date ASC"; break; } $hpsql="SELECT '',exe_name, exe_result , exe_weighting, UNIX_TIMESTAMP(exe_date) FROM $TBL_TRACK_HOTPOTATOES WHERE exe_user_id = '".$_uid."' AND exe_cours_id = '".$_cid."'"; switch ($_GET['column']) { case 'exercisename': $hpsql .= " order by exe_name $ordering, exe_date ASC"; break; case 'date': $hpsql .= " order by exe_date $ordering,exe_name ASC"; break; case '': $hpsql .= " ORDER BY exe_cours_id ASC, exe_date ASC"; break; } } $results=getManyResultsXCol($sql,9); $hpresults=getManyResultsXCol($hpsql,5); $NoTestRes = 0; $NoHPTestRes = 0; //Print the results of tests $lang_nostartdate = get_lang('NoStartDate').' / '; if(is_array($results)) { $sizeof = sizeof($results); for($i = 0; $i < $sizeof; $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 ''; $add_start_date = $lang_nostartdate; if($is_allowedToEdit || $is_tutor) { $user = $results[$i][0]; echo ''; echo ''; } echo ''; echo '';//get_lang('dateTimeFormatLong') echo ''; echo ''; echo ''; } } else { $NoTestRes = 1; } // Print the Result of Hotpotatoes Tests if(is_array($hpresults)) { $sizeof = sizeof($hpresults); for($i = 0; $i < $sizeof; $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.' '.$duration.''; if($results[$i][7] > 1){ echo ceil((($results[$i][4] - $results[$i][7])/60)).' '.get_lang('Min'); if($results[$i][8] > 1)echo ' ( '.$results[$i][8].' '.get_lang('Steps').' )'; $add_start_date = format_locale_date('%b %d, %Y %H:%M',$results[$i][7]).' / '; } else { echo get_lang('NoLogOfDuration'); } echo ''.$test.''.$add_start_date.format_locale_date('%b %d, %Y %H:%M',$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('Delete').'' .' - '.get_lang('ViewScoreChangeHistory').'' : "".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].')