displaygradebook.php 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392
  1. <?php
  2. /*
  3. ==============================================================================
  4. Dokeos - elearning and course management software
  5. Copyright (c) 2008 Dokeos Latinoamerica SAC
  6. Copyright (c) 2006 Dokeos SPRL
  7. Copyright (c) 2006 Ghent University (UGent)
  8. Copyright (c) various contributors
  9. For a full list of contributors, see "credits.txt".
  10. The full license can be read in "license.txt".
  11. This program is free software; you can redistribute it and/or
  12. modify it under the terms of the GNU General Public License
  13. as published by the Free Software Foundation; either version 2
  14. of the License, or (at your option) any later version.
  15. See the GNU General Public License for more details.
  16. Contact address: Dokeos, rue du Corbeau, 108, B-1030 Brussels, Belgium
  17. Mail: info@dokeos.com
  18. ==============================================================================
  19. */
  20. class DisplayGradebook
  21. {
  22. /**
  23. * Displays the header for the result page containing the navigation tree and links
  24. * @param $evalobj
  25. * @param $selectcat
  26. * @param $shownavbar 1=show navigation bar
  27. * @param $forpdf only output for pdf file
  28. */
  29. function display_header_result($evalobj, $selectcat, $shownavbar) {
  30. if ($shownavbar == '1') {
  31. $header= '<table border="0" cellpadding="5"><tr><td>';
  32. $header .= '<a href="'.$_SESSION['gradebook_dest'].'?selectcat=' . $selectcat . '"><img src="../img/lp_leftarrow.gif" alt="' . get_lang('BackToOverview') . '" align="absmiddle"/> ' . get_lang('BackToOverview') . '</a></td>';
  33. if ($evalobj->get_course_code() == null) {
  34. $header .= '<td><a href="gradebook_add_user.php?selecteval=' . $evalobj->get_id() . '"><img src="../img/add_user_big.gif" alt="' . get_lang('AddStudent') . '" align="absmiddle" /> ' . get_lang('AddStudent') . '</a></td>';
  35. }
  36. elseif (!$evalobj->has_results()) {
  37. $header .= '<td><a href="gradebook_add_result.php?selectcat=' . $selectcat . '&selecteval=' . $evalobj->get_id() . '"><img src="../img/filenew.gif" alt="' . get_lang('AddResult') . '" align="absmiddle"/> ' . get_lang('AddResult') . '</a></td>';
  38. }
  39. $header .= '<td><a href="' . api_get_self() . '?&selecteval=' . $evalobj->get_id() . '&import="><img src="../img/calendar_down.gif" border="0" alt="" />' . ' ' . get_lang('ImportResult') . '</a></td>';
  40. if ($evalobj->has_results()) {
  41. $header .= '<td><a href="' . api_get_self() . '?&selecteval=' . $evalobj->get_id() . '&export="><img src="../img/calendar_up.gif" border="0" alt="" />' . ' ' . get_lang('ExportResult') . '</a></td>';
  42. $header .= '<td><a href="gradebook_edit_result.php?selecteval=' . $evalobj->get_id() .'"><img src="../img/works.gif" alt="' . get_lang('EditResult') . '" align="absmiddle" /> ' . get_lang('EditResult') . '</a></td>';
  43. $header .= '<td><a href="' . api_get_self() . '?&selecteval=' . $evalobj->get_id() . '&deleteall=" onclick="return confirmationall();"><img src="../img/delete.gif" border="0" alt="" />' . ' ' . get_lang('DeleteResult') . '</a></td>';
  44. }
  45. $header .= '<td><a href="' . api_get_self() . '?print=&selecteval=' . $evalobj->get_id() . '" target="_blank"><img src="../img/printmgr.gif" alt="' . get_lang('Print') . '" /> ' . get_lang('Print') . '</a>';
  46. $header .= '</td></tr></table>';
  47. }
  48. if ($evalobj->is_visible() == '1') {
  49. $visible= get_lang('Yes');
  50. } else {
  51. $visible= get_lang('No');
  52. }
  53. $scoredisplay = ScoreDisplay :: instance();
  54. if (($evalobj->has_results())){ // TODO this check needed ?
  55. $score= $evalobj->calc_score();
  56. if ($score != null)
  57. $average= get_lang('Average') . ' :<b> ' .$scoredisplay->display_score($score,SCORE_AVERAGE) . '</b>';
  58. }
  59. if (!$evalobj->get_description() == '') {
  60. $description= get_lang('Description') . ' :<b> ' . $evalobj->get_description() . '</b><br>';
  61. }
  62. if ($evalobj->get_course_code() == null) {
  63. $course= get_lang('CourseIndependent');
  64. } else {
  65. $course= get_course_name_from_code($evalobj->get_course_code());
  66. }
  67. $evalinfo= '<table width="100%" border="0"><tr><td>';
  68. $evalinfo .= get_lang('EvaluationName') . ' :<b> ' . $evalobj->get_name() . ' </b>(' . date('j/n/Y g:i', $evalobj->get_date()) . ')<br>' . get_lang('Course') . ' :<b> ' . $course . '</b><br>' . get_lang('Weight') . ' :<b> ' . $evalobj->get_weight() . '</b><br>' . get_lang('Max') . ' :<b> ' . $evalobj->get_max() . '</b><br>' . $description . get_lang('Visible') . ' :<b> ' . $visible . '</b><br>' . $average;
  69. if (!$evalobj->has_results())
  70. $evalinfo .= '<br /><i>' . get_lang('NoResultsInEvaluation') . '</i>';
  71. elseif ($scoredisplay->is_custom() && api_get_self() != '/dokeos/main/gradebook/gradebook_statistics.php')
  72. $evalinfo .= '<br /><br /><a href="gradebook_statistics.php?selecteval='.Security::remove_XSS($_GET['selecteval']).'"> '. get_lang('ViewStatistics') . '</a>';
  73. $evalinfo .= '</td><td align="right"><img src="../img/tutorial.gif"></img></td></table>';
  74. Display :: display_normal_message($evalinfo,false);
  75. echo $header;
  76. }
  77. /**
  78. * Displays the header for the flatview page containing filters
  79. * @param $catobj
  80. * @param $showeval
  81. * @param $showlink
  82. */
  83. function display_header_flatview($catobj, $showeval, $showlink,$simple_search_form) {
  84. $header= '<table border="0" cellpadding="5">';
  85. $header .= '<td style="vertical-align: top;"><a href="'.$_SESSION['gradebook_dest'].'?selectcat=' . Security::remove_XSS($_GET['selectcat']) . '"><< ' . get_lang('BackToOverview') . '</a></td>';
  86. $header .= '<td style="vertical-align: top;">' . get_lang('FilterCategory') . '</td><td style="vertical-align: top;"><form name="selector"><select name="selectcat" onchange="document.selector.submit()">';
  87. $cats= Category :: load();
  88. $tree= $cats[0]->get_tree();
  89. unset ($cats);
  90. foreach ($tree as $cat) {
  91. for ($i= 0; $i < $cat[2]; $i++) {
  92. $line .= '&mdash;';
  93. }
  94. if ($_GET['selectcat'] == $cat[0]) {
  95. $header .= '<option selected="selected" value=' . $cat[0] . '>' . $line . ' ' . $cat[1] . '</option>';
  96. } else {
  97. $header .= '<option value=' . $cat[0] . '>' . $line . ' ' . $cat[1] . '</option>';
  98. }
  99. $line= '';
  100. }
  101. $header .= '</td></select></form>';
  102. if (!$catobj->get_id() == '0') {
  103. $header .= '<td style="vertical-align: top;"><a href="' . api_get_self() . '?selectcat=' . $catobj->get_parent_id() . '"><img src="../img/folder_up.gif" border="0" alt="'.get_lang('Up').'" /></a></td>';
  104. }
  105. $header .= '<td style="vertical-align: top;">'.$simple_search_form->toHtml().'</td>';
  106. $header .= '<td style="vertical-align: top;"><a href="' . api_get_self() . '?exportpdf=&offset='.Security::remove_XSS($_GET['offset']).'&search=' . Security::remove_XSS($_GET['search']).'&selectcat=' . $catobj->get_id() . '"><img src=../img/calendar_up.gif alt=' . get_lang('ExportPDF') . '/> ' . get_lang('ExportPDF') . '</a>';
  107. $header .= '<td style="vertical-align: top;"><a href="' . api_get_self() . '?print=&selectcat=' . $catobj->get_id() . '" target="_blank"><img src="../img/printmgr.gif" alt=' . get_lang('Print') . '/> ' . get_lang('Print') . '</a>';
  108. $header .= '</td></tr></table>';
  109. if (!$catobj->get_id() == '0') {
  110. $header .= '<table border="0" cellpadding="5"><tr><td><form name="itemfilter" method="post" action="' . api_get_self() . '?selectcat=' . $catobj->get_id() . '"><input type="checkbox" name="showeval" onclick="document.itemfilter.submit()" ' . (($showeval == '1') ? 'checked' : '') . '>Show Evaluations &nbsp;';
  111. $header .= '<input type="checkbox" name="showlink" onclick="document.itemfilter.submit()" ' . (($showlink == '1') ? 'checked' : '') . '>'.get_lang('ShowLinks').'</form></td></tr></table>';
  112. }
  113. if (isset ($_GET['search'])) {
  114. $header .= '<b>'.get_lang('SearchResults').' :</b>';
  115. }
  116. echo $header;
  117. }
  118. /**
  119. * Displays the header for the flatview page containing filters
  120. * @param $catobj
  121. * @param $showeval
  122. * @param $showlink
  123. */
  124. function display_header_reduce_flatview($catobj, $showeval, $showlink,$simple_search_form) {
  125. $header= '<table border="0" cellpadding="5">';
  126. $header .= '<td style="vertical-align: top;"><a href="index.php?'.api_get_cidreq().'"><< ' . get_lang('BackToOverview') . '</a></td>';
  127. // $header .= '<td style="vertical-align: top;"><a href="' . api_get_self() . '?exportpdf=&offset='.Security::remove_XSS($_GET['offset']).'&search=' . Security::remove_XSS($_GET['search']).'&selectcat=' . $catobj->get_id() . '"><img src=../img/calendar_up.gif alt=' . get_lang('ExportPDF') . '/> ' . get_lang('ExportPDF') . '</a>';
  128. // this MUST be a GET variable not a POST
  129. if (isset($_GET['show'])) {
  130. $show=Security::remove_XSS($_GET['show']);
  131. } else {
  132. $show='';
  133. }
  134. echo '<form id="form1a" name="form1a" method="post" action="'.api_get_self().'?show='.$show.'">';
  135. echo '<input type="hidden" name="export_report" value="export_report">';
  136. echo '<input type="hidden" name="selectcat" value="'.$catobj->get_id() .'">';
  137. echo '<input type="hidden" name="export_format" value="csv">';
  138. echo '</form>';
  139. echo '<form id="form1b" name="form1b" method="post" action="'.api_get_self().'?show='.$show.'">';
  140. echo '<input type="hidden" name="export_report" value="export_report">';
  141. echo '<input type="hidden" name="selectcat" value="'.$catobj->get_id() .'">';
  142. echo '<input type="hidden" name="export_format" value="xls">';
  143. echo '</form>';
  144. $header .= '<td style="vertical-align: top;"><a class="quiz_export_link" href="#" onclick="document.form1a.submit();"><img align="absbottom" src="'.api_get_path(WEB_IMG_PATH).'excel.gif" alt="'.get_lang('ExportAsCSV').'">&nbsp;'.get_lang('ExportAsCSV').'</a></td>';
  145. $header .= '<td style="vertical-align: top;"><a class="quiz_export_link" href="#" onclick="document.form1b.submit();"><img align="absbottom" src="'.api_get_path(WEB_IMG_PATH).'excel.gif" alt="'.get_lang('ExportAsXLS').'">&nbsp;'.get_lang('ExportAsXLS').'</a></td>';
  146. $header .= '<td style="vertical-align: top;"><a href="' . api_get_self() . '?print=&selectcat=' . $catobj->get_id() . '" target="_blank"><img src="../img/printmgr.gif" alt=' . get_lang('Print') . '/> ' . get_lang('Print') . '</a>';
  147. $header .= '</td></tr></table>';
  148. if (!$catobj->get_id() == '0') {
  149. //this is necessary?
  150. //$header .= '<table border="0" cellpadding="5"><tr><td><form name="itemfilter" method="post" action="' . api_get_self() . '?selectcat=' . $catobj->get_id() . '"><input type="checkbox" name="showeval" onclick="document.itemfilter.submit()" ' . (($showeval == '1') ? 'checked' : '') . '>Show Evaluations &nbsp;';
  151. //$header .= '<input type="checkbox" name="showlink" onclick="document.itemfilter.submit()" ' . (($showlink == '1') ? 'checked' : '') . '>'.get_lang('ShowLinks').'</form></td></tr></table>';
  152. }
  153. if (isset ($_GET['search'])) {
  154. $header .= '<b>'.get_lang('SearchResults').' :</b>';
  155. }
  156. echo $header;
  157. }
  158. /**
  159. * Displays the header for the gradebook containing the navigation tree and links
  160. * @param category_object $currentcat
  161. * @param int $showtree '1' will show the browse tree and naviation buttons
  162. * @param boolean $is_course_admin
  163. * @param boolean $is_platform_admin
  164. * @param boolean Whether to show or not the link to add a new qualification (we hide it in case of the course-embedded tool where we have only one calification per course or session)
  165. * @param boolean Whether to show or not the link to add a new item inside the qualification (we hide it in case of the course-embedded tool where we have only one calification per course or session)
  166. * @return void Everything is printed on screen upon closing
  167. */
  168. function display_header_gradebook($catobj, $showtree, $selectcat, $is_course_admin, $is_platform_admin, $simple_search_form, $show_add_qualification = true, $show_add_link = true) {
  169. //student
  170. $objcat=new Category();
  171. $objdat=new Database();
  172. $course_id=$objdat->get_course_by_category($selectcat);
  173. $message_resource=$objcat->show_message_resource_delete($course_id);
  174. if (!$is_course_admin) {
  175. $user_id = api_get_user_id();
  176. $user= get_user_info_from_id($user_id);
  177. $catcourse= Category :: load($catobj->get_id());
  178. $scoredisplay = ScoreDisplay :: instance();
  179. $scorecourse = $catcourse[0]->calc_score($user_id);
  180. // generating the total score for a course
  181. $allevals= $catcourse[0]->get_evaluations($user_id,true);
  182. $alllinks= $catcourse[0]->get_links($user_id,true);
  183. $evals_links = array_merge($allevals, $alllinks);
  184. $item_value=0;
  185. $item_total=0;
  186. for ($count=0; $count < count($evals_links); $count++) {
  187. $item = $evals_links[$count];
  188. $score = $item->calc_score($user_id);
  189. $my_score_denom=($score[1]==0) ? 1 : $score[1];
  190. $item_value+=$score[0]/$my_score_denom*$item->get_weight();
  191. $item_total+=$item->get_weight();
  192. //$row[] = $scoredisplay->display_score($score,SCORE_DIV_PERCENT);
  193. }
  194. $item_value = number_format($item_value, 2, '.', ' ');
  195. $total_score=array($item_value,$item_total);
  196. $scorecourse_display = $scoredisplay->display_score($total_score,SCORE_DIV_PERCENT);
  197. //----------------------
  198. //$scorecourse_display = (isset($scorecourse) ? $scoredisplay->display_score($scorecourse,SCORE_AVERAGE) : get_lang('NoResultsAvailable'));
  199. $cattotal = Category :: load(0);
  200. $scoretotal= $cattotal[0]->calc_score(api_get_user_id());
  201. $scoretotal_display = (isset($scoretotal) ? $scoredisplay->display_score($scoretotal,SCORE_PERCENT) : get_lang('NoResultsAvailable'));
  202. $scoreinfo = get_lang('StatsStudent') . ' :<b> '.$user['lastname'].' '.$user['firstname'].'</b><br />';
  203. if ((!$catobj->get_id() == '0') && (!isset ($_GET['studentoverview'])) && (!isset ($_GET['search']))) {
  204. $scoreinfo.= '<br />'.get_lang('Total') . ' : <b>' . $scorecourse_display . '</b>';
  205. }
  206. //$scoreinfo.= '<br />'.get_lang('Total') . ' : <b>' . $scoretotal_display . '</b>';
  207. Display :: display_normal_message($scoreinfo,false);
  208. }
  209. // show navigation tree and buttons?
  210. $header='';
  211. $header .= '<table border=0 cellpadding=5>';
  212. if (($showtree == '1') || (isset ($_GET['studentoverview']))) {
  213. $header .= '<tr><td style="vertical-align: top;">' . get_lang('CurrentCategory') . '</td><td style="vertical-align: top;"><form name="selector"><select name="selectcat" onchange="document.selector.submit()">';
  214. $cats= Category :: load();
  215. $tree= $cats[0]->get_tree();
  216. unset ($cats);
  217. foreach ($tree as $cat) {
  218. for ($i= 0; $i < $cat[2]; $i++) {
  219. $line .= '&mdash;';
  220. }
  221. $line=isset($line) ? $line : '';
  222. if (isset($_GET['selectcat']) && $_GET['selectcat'] == $cat[0]) {
  223. $header .= '<option selected value=' . $cat[0] . '>' . $line . ' ' . $cat[1] . '</option>';
  224. } else {
  225. $header .= '<option value=' . $cat[0] . '>' . $line . ' ' . $cat[1] . '</option>';
  226. }
  227. $line= '';
  228. }
  229. $header .= '</select></form></td>';
  230. if (!$selectcat == '0') {
  231. $header .= '<td style="vertical-align: top;"><a href="' . api_get_self() . '?selectcat=' . $catobj->get_parent_id() . '"><img src="../img/folder_up.gif" border="0" alt="" /></a></td>';
  232. }
  233. if (!empty($simple_search_form) && $message_resource===false) {
  234. $header .= '<td style="vertical-align: top;">'.$simple_search_form->toHtml().'</td>';
  235. } else {
  236. $header .= '<td></td>';
  237. }
  238. if ($is_course_admin && $message_resource===false && $_GET['selectcat']!=0) {
  239. /*$header .= '<td style="vertical-align: top;"><a href="gradebook_flatview.php?'.api_get_cidreq().'&selectcat=' . $catobj->get_id() . '"><img src="../img/stats_access.gif" alt="' . get_lang('FlatView') . '" /> ' . get_lang('FlatView') . '</a>';
  240. if ($is_course_admin && $message_resource===false) {
  241. $header .= '<td style="vertical-align: top;"><a href="gradebook_scoring_system.php?'.api_get_cidreq().'&selectcat=' . $catobj->get_id() .'"><img src="../img/acces_tool.gif" alt="' . get_lang('ScoreEdit') . '" /> ' . get_lang('ScoreEdit') . '</a>';
  242. }*/
  243. } elseif (!(isset ($_GET['studentoverview']))) {
  244. if ( $message_resource===false ) {
  245. //$header .= '<td style="vertical-align: top;"><a href="'.api_get_self().'?'.api_get_cidreq().'&studentoverview=&selectcat=' . $catobj->get_id() . '"><img src="../img/stats_access.gif" alt="' . get_lang('FlatView') . '" /> ' . get_lang('FlatView') . '</a>';
  246. }
  247. } else {
  248. $header .= '<td style="vertical-align: top;"><a href="'.api_get_self().'?'.api_get_cidreq().'&studentoverview=&exportpdf=&selectcat=' . $catobj->get_id() . '" target="_blank"><img src="../img/calendar_up.gif" alt="' . get_lang('ExportPDF') . '" /> ' . get_lang('ExportPDF') . '</a>';
  249. }
  250. $header .= '</td></tr>';
  251. }
  252. $header.='</table>';
  253. // for course admin & platform admin add item buttons are added to the header
  254. $header .= '<table border="0" cellpadding="0"><tr><td>';
  255. if (($is_course_admin) && (!isset ($_GET['search']))) {
  256. if ($selectcat == '0') {
  257. if ($show_add_qualification === true) {
  258. // $header .= '<a href="gradebook_add_cat.php?'.api_get_cidreq().'&selectcat=0"><img src="../img/folder_new.gif" alt="' . get_lang('NewCategory') . '" /> ' . get_lang('NewCategory') . '</a></td>';
  259. }
  260. if ($show_add_link === true) {
  261. //$header .= '<td><a href="gradebook_add_eval.php?'.api_get_cidreq().'"><img src="../img/filenew.gif" alt="' . get_lang('NewEvaluation') . '" /> ' . get_lang('NewEvaluation') . '</a>';
  262. }
  263. } else {
  264. if ($show_add_qualification === true && $message_resource===false) {
  265. //$header .= '<a href="gradebook_add_cat.php?'.api_get_cidreq().'&selectcat=' . $catobj->get_id() . '" ><img src="../img/folder_new.gif" alt="' . get_lang('NewSubCategory') . '" align="absmiddle" /> ' . get_lang('NewSubCategory') . '</a></td>';
  266. }
  267. $my_category=$catobj->shows_all_information_an_category($catobj->get_id());
  268. $my_api_cidreq = api_get_cidreq();
  269. if ($my_api_cidreq=='') {
  270. $my_api_cidreq='cidReq='.$my_category['course_code'];
  271. }
  272. if ($show_add_link === true && $message_resource==false) {
  273. $header .= '<td><a href="gradebook_add_eval.php?'.$my_api_cidreq.'&selectcat=' . $catobj->get_id() . '" ><img src="../img/filenew.gif" alt="' . get_lang('NewEvaluation') . '" align="absmiddle" /> ' . get_lang('NewEvaluation') . '</a>&nbsp;';
  274. $cats= Category :: load($selectcat);
  275. if ($cats[0]->get_course_code() != null && $message_resource===false) {
  276. //$header .= '<td><a href="gradebook_add_link.php?'.api_get_cidreq().'&selectcat=' . $catobj->get_id() . '"><img src="../img/link.gif" alt="' . get_lang('MakeLink') . '" align="absmiddle" /> ' . get_lang('MakeLink') . '</a>';
  277. $header .= '<td><a href="gradebook_add_link.php?'.$my_api_cidreq.'&selectcat=' . $catobj->get_id() . '"><img src="../img/link.gif" alt="' . get_lang('MakeLink') . '" align="absmiddle" /> ' . get_lang('MakeLink') . '</a>&nbsp;';
  278. } else {
  279. $header .= '<td><a href="gradebook_add_link_select_course.php?'.$my_api_cidreq.'&selectcat=' . $catobj->get_id() . '"><img src="../img/link.gif" alt="' . get_lang('MakeLink') . '" align="absmiddle" /> ' . get_lang('MakeLink') . '</a>&nbsp;';
  280. }
  281. }
  282. if ($message_resource===false ) {
  283. $myname=$catobj->shows_all_information_an_category($catobj->get_id());
  284. $header .= '<td><a href="gradebook_edit_all.php?'.$my_api_cidreq.'&selectcat=' . $catobj->get_id() . '"><img src="../img/quiz.gif" alt="' . get_lang('EditAllWeights') . '" align="absmiddle"/> ' . get_lang('EditAllWeights') . '</a>';
  285. $my_course_id=api_get_course_id();
  286. if (!isset($my_course_id)) {
  287. $header .= '<td style="vertical-align: top;"><a href="gradebook_flatview.php?'.$my_api_cidreq.'&selectcat=' . $catobj->get_id() . '"><img src="../img/stats_access.gif" alt="' . get_lang('FlatView') . '" align="absmiddle"/> ' . get_lang('FlatView') . '</a>';
  288. if ($is_course_admin && $message_resource===false) {
  289. $header .= '<td style="vertical-align: top;"><a href="gradebook_scoring_system.php?'.$my_api_cidreq.'&selectcat=' . $catobj->get_id() .'"><img src="../img/acces_tool.gif" alt="' . get_lang('ScoreEdit') . '" align="absmiddle"/> ' . get_lang('ScoreEdit') . '</a>';
  290. }
  291. }
  292. }
  293. }
  294. } elseif (isset ($_GET['search'])) {
  295. $header .= '<b>'.get_lang('SearchResults').' :</b>';
  296. }
  297. $header .= '</td></tr></table>';
  298. echo $header;
  299. }
  300. function display_reduce_header_gradebook($catobj,$is_course_admin, $is_platform_admin, $simple_search_form, $show_add_qualification = true, $show_add_link = true) {
  301. //student
  302. if (!$is_course_admin) {
  303. /*$user= get_user_info_from_id(api_get_user_id());
  304. $catcourse= Category :: load($catobj->get_id());
  305. $scoredisplay = ScoreDisplay :: instance();
  306. $scorecourse = $catcourse[0]->calc_score(api_get_user_id());
  307. $scorecourse_display = (isset($scorecourse) ? $scoredisplay->display_score($scorecourse,SCORE_AVERAGE) : get_lang('NoResultsAvailable'));
  308. $cattotal = Category :: load(0);
  309. $scoretotal= $cattotal[0]->calc_score(api_get_user_id());
  310. $scoretotal_display = (isset($scoretotal) ? $scoredisplay->display_score($scoretotal,SCORE_PERCENT) : get_lang('NoResultsAvailable'));
  311. $scoreinfo = get_lang('StatsStudent') . ' :<b> '.$user['lastname'].' '.$user['firstname'].'</b><br />';
  312. if ((!$catobj->get_id() == '0') && (!isset ($_GET['studentoverview'])) && (!isset ($_GET['search'])))
  313. $scoreinfo.= '<br />'.get_lang('TotalForThisCategory') . ' : <b>' . $scorecourse_display . '</b>';
  314. $scoreinfo.= '<br />'.get_lang('Total') . ' : <b>' . $scoretotal_display . '</b>';
  315. Display :: display_normal_message($scoreinfo,false);
  316. */
  317. }
  318. // show navigation tree and buttons?
  319. $header = '<table border=0 cellpadding=5 >';
  320. if ($is_course_admin) {
  321. $header .= '<td style="vertical-align: top;"><a href="gradebook_flatview.php?'.api_get_cidreq().'&selectcat=' . $catobj->get_id() . '"><img src="../img/stats_access.gif" alt="' . get_lang('FlatView') . '" /> ' . get_lang('FlatView') . '</a>';
  322. if ($is_platform_admin || $is_course_admin)
  323. $header .= '<td style="vertical-align: top;"><a href="gradebook_scoring_system.php?'.api_get_cidreq().'&selectcat=' . $catobj->get_id() .'"><img src="../img/acces_tool.gif" alt="' . get_lang('ScoreEdit') . '" /> ' . get_lang('ScoreEdit') . '</a>';
  324. } elseif (!(isset ($_GET['studentoverview']))) {
  325. $header .= '<td style="vertical-align: top;"><a href="'.api_get_self().'?'.api_get_cidreq().'&studentoverview=&selectcat=' . $catobj->get_id() . '"><img src="../img/stats_access.gif" alt="' . get_lang('FlatView') . '" /> ' . get_lang('FlatView') . '</a>';
  326. } else {
  327. $header .= '<td style="vertical-align: top;"><a href="'.api_get_self().'?'.api_get_cidreq().'&studentoverview=&exportpdf=&selectcat=' . $catobj->get_id() . '" target="_blank"><img src="../img/calendar_up.gif" alt="' . get_lang('ExportPDF') . '" /> ' . get_lang('ExportPDF') . '</a>';
  328. }
  329. $header .= '</td></tr>';
  330. $header.='</table>';
  331. echo $header;
  332. }
  333. function display_header_user($userid) {
  334. $user= get_user_info_from_id($userid);
  335. $image= $user['picture_uri'];
  336. $image_file= ($image != '' ? api_get_path(WEB_CODE_PATH) . "upload/users/$image" : api_get_path(WEB_CODE_PATH) . 'img/unknown.jpg');
  337. $image_size= @ getimagesize($image_file);
  338. $img_attributes= 'src="' . $image_file . '?rand=' . time() . '" ' . 'alt="' . $user['lastname'] . ' ' . $user['firstname'] . '" ';
  339. if ($image_size[0] > 200) {
  340. //limit display width to 200px
  341. $img_attributes .= 'width="200" ';
  342. }
  343. $cattotal= Category :: load(0);
  344. $info = '<table width="100%" border=0 cellpadding=5><tr><td width="80%">';
  345. $info.= get_lang('Name') . ' : <b>' . $user['lastname'] . ' ' . $user['firstname'] . '</b> ( <a href="user_info.php?userid=' . $userid . '&selecteval=' . Security::remove_XSS($_GET['selecteval']) . '">' . get_lang('MoreInfo') . '...</a> )<br>';
  346. $info.= get_lang('Email') . ' : <b><a href="mailto:' . $user['email'] . '">' . $user['email'] . '</a></b><br><br>';
  347. $scoredisplay = ScoreDisplay :: instance();
  348. $score_stud= $cattotal[0]->calc_score($userid);
  349. $score_stud_display = (isset($score_stud) ? $scoredisplay->display_score($score_stud,SCORE_PERCENT) : get_lang('NoResultsAvailable') );
  350. $score_avg= $cattotal[0]->calc_score();
  351. $score_avg_display = (isset($score_avg) ? $scoredisplay->display_score($score_avg,SCORE_AVERAGE) : get_lang('NoResultsAvailable') );
  352. $info.= get_lang('TotalUser') . ' : <b>' . $score_stud_display . '</b><br>';
  353. $info.= get_lang('AverageTotal') . ' : <b>' . $score_avg_display . '</b>';
  354. $info.= '</td><td>';
  355. $info.= '<img ' . $img_attributes . '/></td></tr></table>';
  356. echo Display :: display_normal_message($info,false);
  357. }
  358. }