skala
Yannick Warnier 14 years ago
commit c0172bcde9
  1. 8
      main/blog/blog.php
  2. 2
      main/blog/blog_admin.php
  3. 28
      main/course_info/infocours.php
  4. 13
      main/course_progress/thematic_advance.php
  5. 101
      main/exercice/exercise.class.php
  6. 240
      main/exercice/exercise_result.php
  7. 426
      main/exercice/exercise_show.php
  8. 17
      main/exercice/fill_blanks.class.php
  9. 38
      main/exercice/freeanswer.class.php
  10. 19
      main/exercice/matching.class.php
  11. 42
      main/exercice/multiple_answer.class.php
  12. 24
      main/exercice/multiple_answer_combination.class.php
  13. 23
      main/exercice/multiple_answer_true_false.class.php
  14. 16
      main/exercice/question.class.php
  15. 24
      main/exercice/unique_answer.class.php
  16. 26
      main/exercice/unique_answer_no_option.class.php
  17. 7
      main/gradebook/gradebook_view_result.php
  18. 1
      main/gradebook/lib/fe/resulttable.class.php
  19. 7
      main/gradebook/user_stats.php
  20. BIN
      main/img/blog.gif
  21. BIN
      main/img/blog_admin.gif
  22. BIN
      main/img/blog_admin_na.gif
  23. BIN
      main/img/blog_na.gif
  24. BIN
      main/img/blog_new.gif
  25. BIN
      main/img/chat.gif
  26. BIN
      main/img/chat_na.gif
  27. BIN
      main/img/course_progress.gif
  28. BIN
      main/img/course_progress_bis.gif
  29. BIN
      main/img/course_progress_na.gif
  30. BIN
      main/img/course_progress_na_bis.gif
  31. BIN
      main/img/gradebook.gif
  32. BIN
      main/img/gradebook_na.gif
  33. BIN
      main/img/icons/22/blog_admin.png
  34. BIN
      main/img/icons/22/blog_admin_na.png
  35. BIN
      main/img/icons/22/blog_admin_users.png
  36. BIN
      main/img/icons/22/chat.gif
  37. BIN
      main/img/icons/22/chat_na.png
  38. BIN
      main/img/icons/22/course.png
  39. BIN
      main/img/icons/22/course_progress.png
  40. BIN
      main/img/icons/22/gradebook.gif
  41. BIN
      main/img/icons/22/gradebook_na.gif
  42. BIN
      main/img/icons/22/mail.png
  43. BIN
      main/img/icons/22/settings.png
  44. BIN
      main/img/icons/22/user.png
  45. BIN
      main/img/icons/32/blog.png
  46. BIN
      main/img/icons/32/blog_admin_users.png
  47. BIN
      main/img/icons/32/blog_tasks.png
  48. BIN
      main/img/icons/32/course_progress.png
  49. BIN
      main/img/icons/32/mail.png
  50. BIN
      main/img/icons/32/mail_send_na.png
  51. BIN
      main/img/icons/32/new_article.png
  52. BIN
      main/img/icons/32/new_blog.png
  53. BIN
      main/img/icons/32/new_note.png
  54. BIN
      main/img/icons/32/notes.png
  55. BIN
      main/img/icons/32/notes_order_by_date_mod.png
  56. BIN
      main/img/icons/32/notes_order_by_date_new.png
  57. BIN
      main/img/icons/32/notes_order_by_title.png
  58. 27
      main/img/icons/48/_sum.txt
  59. BIN
      main/img/icons/48/blog.png
  60. BIN
      main/img/icons/48/blog_admin.png
  61. BIN
      main/img/icons/48/blog_admin_na.png
  62. BIN
      main/img/icons/48/blog_admin_users.png
  63. BIN
      main/img/icons/48/blog_tasks.png
  64. BIN
      main/img/icons/48/chat_na.png
  65. BIN
      main/img/icons/48/course_progress.png
  66. BIN
      main/img/icons/48/mail.png
  67. BIN
      main/img/icons/48/new_article.png
  68. BIN
      main/img/icons/48/new_blog.png
  69. BIN
      main/img/icons/48/new_note.png
  70. BIN
      main/img/icons/48/notes.png
  71. 0
      main/img/scorms.gif
  72. 0
      main/img/scorms_na.gif
  73. BIN
      main/img/statistics.gif
  74. BIN
      main/img/statistics_bis.gif
  75. 6
      main/inc/lib/add_course.lib.inc.php
  76. 2
      main/inc/lib/blog.lib.php
  77. 6
      main/inc/lib/main_api.lib.php
  78. 12
      main/inc/lib/notebook.lib.php
  79. 6
      main/install/db_main.sql
  80. 14
      main/mySpace/myStudents.php
  81. 4
      main/notebook/index.php
  82. 9
      main/tracking/courseLog.php
  83. 2
      main/user/user.php

@ -256,10 +256,10 @@ if (!empty($return_message))
// actions
echo '<div class=actions>';
?>
<a href="<?php echo api_get_self(); ?>?blog_id=<?php echo $blog_id ?>" title="<?php echo get_lang('Home') ?>"><?php echo Display::return_icon('blog.gif', get_lang('Home')).get_lang('Home') ?></a>
<?php if(api_is_allowed('BLOG_'.$blog_id, 'article_add')) { ?><a href="<?php echo api_get_self(); ?>?action=new_post&amp;blog_id=<?php echo $blog_id ?>" title="<?php echo get_lang('NewPost') ?>"><?php echo Display::return_icon('blog_newarticle.gif', get_lang('NewPost')).get_lang('NewPost') ?></a><?php } ?>
<?php if(api_is_allowed('BLOG_'.$blog_id, 'task_management')) { ?><a href="<?php echo api_get_self(); ?>?action=manage_tasks&amp;blog_id=<?php echo $blog_id ?>" title="<?php echo get_lang('ManageTasks') ?>"><?php echo Display::return_icon('blog_tasks.gif', get_lang('TaskManager')).get_lang('TaskManager') ?></a><?php } ?>
<?php if(api_is_allowed('BLOG_'.$blog_id, 'member_management')) { ?><a href="<?php echo api_get_self(); ?>?action=manage_members&amp;blog_id=<?php echo $blog_id ?>" title="<?php echo get_lang('ManageMembers') ?>"><?php echo Display::return_icon('blog_user.gif', get_lang('MemberManager')).get_lang('MemberManager') ?></a><?php } ?>
<a href="<?php echo api_get_self(); ?>?blog_id=<?php echo $blog_id ?>" title="<?php echo get_lang('Home') ?>"><?php echo Display::return_icon('blog.png', get_lang('Home'),'','32'); ?></a>
<?php if(api_is_allowed('BLOG_'.$blog_id, 'article_add')) { ?><a href="<?php echo api_get_self(); ?>?action=new_post&amp;blog_id=<?php echo $blog_id ?>" title="<?php echo get_lang('NewPost') ?>"><?php echo Display::return_icon('new_article.png', get_lang('NewPost'),'','32'); ?></a><?php } ?>
<?php if(api_is_allowed('BLOG_'.$blog_id, 'task_management')) { ?><a href="<?php echo api_get_self(); ?>?action=manage_tasks&amp;blog_id=<?php echo $blog_id ?>" title="<?php echo get_lang('ManageTasks') ?>"><?php echo Display::return_icon('blog_tasks.png', get_lang('TaskManager'),'','32'); ?></a><?php } ?>
<?php if(api_is_allowed('BLOG_'.$blog_id, 'member_management')) { ?><a href="<?php echo api_get_self(); ?>?action=manage_members&amp;blog_id=<?php echo $blog_id ?>" title="<?php echo get_lang('ManageMembers') ?>"><?php echo Display::return_icon('blog_admin_users.png', get_lang('MemberManager'),'','32'); ?></a><?php } ?>
<?php
echo '</div>';

@ -52,7 +52,7 @@ if (api_is_allowed_to_edit()) {
//echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"".$clarolineRepositoryWeb."css/default.css\"/>"; //@todo this line should be deprecated
}
echo '<div class="actions">';
echo "<a href='".api_get_self()."?".api_get_cidreq()."&action=add'>",Display::return_icon('blog_new.gif',get_lang('AddBlog')),get_lang('AddBlog')."</a>";
echo "<a href='".api_get_self()."?".api_get_cidreq()."&action=add'>",Display::return_icon('new_blog.png',get_lang('AddBlog'),'','32')."</a>";
echo '</div>';
/*

@ -117,7 +117,7 @@ $linebreak = '<div class="row"><div class="label"></div><div class="formw" style
$form = new FormValidator('update_course');
// COURSE SETTINGS
$form->addElement('html', '<div class="sectiontitle"><a href="#header" style="float:right;">'.Display::return_icon('top.gif', get_lang('Top')).'</a><a name="coursesettings" id="coursesettings"></a>'.Display::return_icon('settings.gif', get_lang('CourseSettings')).' '.get_lang('CourseSettings').'</div>');
$form->addElement('html', '<div class="sectiontitle"><a href="#header" style="float:right;">'.Display::return_icon('top.gif', get_lang('Top')).'</a><a name="coursesettings" id="coursesettings"></a>'.Display::return_icon('settings.png', get_lang('CourseSettings'),'','22').' '.get_lang('CourseSettings').'</div>');
$visual_code=$form->addElement('text', 'visual_code', get_lang('Code'));
$visual_code->freeze();
$form->applyFilter('visual_code', 'strtoupper');
@ -163,7 +163,7 @@ $form->addElement('style_submit_button', null, get_lang('SaveSettings'), 'class=
// COURSE ACCESS
$form->addElement('html', '<div class="sectiontitle" style="margin-top: 40px;"><a href="#header" style="float:right;">'.Display::return_icon('top.gif', get_lang('Top')).'</a><a name="coursesaccess" id="coursesaccess"></a>'.Display::return_icon('course.gif', get_lang('CourseAccess')).' '.get_lang('CourseAccess').'</div>');
$form->addElement('html', '<div class="sectiontitle" style="margin-top: 40px;"><a href="#header" style="float:right;">'.Display::return_icon('top.gif', get_lang('Top')).'</a><a name="coursesaccess" id="coursesaccess"></a>'.Display::return_icon('course.png', get_lang('CourseAccess'),'','22').' '.get_lang('CourseAccess').'</div>');
$form->addElement('radio', 'visibility', get_lang("CourseAccess"), get_lang('OpenToTheWorld'), COURSE_VISIBILITY_OPEN_WORLD);
$form->addElement('radio', 'visibility', null, get_lang('OpenToThePlatform'), COURSE_VISIBILITY_OPEN_PLATFORM);
$form->addElement('radio', 'visibility', null, get_lang('Private'), COURSE_VISIBILITY_REGISTERED);
@ -185,7 +185,7 @@ $form->addElement('style_submit_button', null, get_lang('SaveSettings'), 'class=
// EMAIL NOTIFICATIONS
$form->addElement('html', '<div class="sectiontitle" style="margin-top: 40px;"><a href="#header" style="float:right;">'.Display::return_icon('top.gif', get_lang('Top')).'</a><a name="emailnotifications" id="emailnotifications"></a>'.Display::return_icon('mail.png', get_lang('EmailNotifications')).' '.get_lang('EmailNotifications').'</div>');
$form->addElement('html', '<div class="sectiontitle" style="margin-top: 40px;"><a href="#header" style="float:right;">'.Display::return_icon('top.gif', get_lang('Top')).'</a><a name="emailnotifications" id="emailnotifications"></a>'.Display::return_icon('mail.png', get_lang('EmailNotifications'),'','22').' '.get_lang('EmailNotifications').'</div>');
$form->addElement('radio', 'email_alert_to_teacher_on_new_user_in_course', get_lang('NewUserEmailAlert'), get_lang('NewUserEmailAlertEnable'), 1);
$form->addElement('radio', 'email_alert_to_teacher_on_new_user_in_course', null, get_lang('NewUserEmailAlertToTeacharAndTutor'), 2);
@ -212,7 +212,7 @@ $form->addElement('style_submit_button', null, get_lang('SaveSettings'), 'class=
// USER RIGHTS
$form->addElement('html', '<div class="sectiontitle" style="margin-top: 40px;"><a href="#header" style="float:right;">'.Display::return_icon('top.gif', get_lang('Top')).'</a><a name="userrights" id="userrights"></a>'.Display::return_icon('members.gif', get_lang('UserRights')).' '.get_lang('UserRights').'</div>');
$form->addElement('html', '<div class="sectiontitle" style="margin-top: 40px;"><a href="#header" style="float:right;">'.Display::return_icon('top.gif', get_lang('Top')).'</a><a name="userrights" id="userrights"></a>'.Display::return_icon('user.png', get_lang('UserRights'),'','22').' '.get_lang('UserRights').'</div>');
$form->addElement('radio', 'allow_user_edit_agenda', get_lang('AllowUserEditAgenda'), get_lang('AllowUserEditAgendaActivate'), 1);
$form->addElement('radio', 'allow_user_edit_agenda', null, get_lang('AllowUserEditAgendaDeactivate'), 0);
$form->addElement('html', $linebreak);
@ -231,7 +231,7 @@ $form->addElement('style_submit_button', null, get_lang('SaveSettings'), 'class=
// CHAT SETTINGS
$form->addElement('html', '<div class="sectiontitle" style="margin-top: 40px;"><a href="#header" style="float:right;">'.Display::return_icon('top.gif', get_lang('Top')).'</a><a name="chatsettings" id="chatsettings"></a>'.Display::return_icon('chat.gif', get_lang('ConfigChat')).' '.get_lang('ConfigChat').'</div>');
$form->addElement('html', '<div class="sectiontitle" style="margin-top: 40px;"><a href="#header" style="float:right;">'.Display::return_icon('top.gif', get_lang('Top')).'</a><a name="chatsettings" id="chatsettings"></a>'.Display::return_icon('chat.png', get_lang('ConfigChat'),'','22').' '.get_lang('ConfigChat').'</div>');
$form->addElement('radio', 'allow_open_chat_window', get_lang('AllowOpenchatWindow'), get_lang('AllowOpenChatWindowActivate'), 1);
$form->addElement('radio', 'allow_open_chat_window', null, get_lang('AllowOpenChatWindowDeactivate'), 0);
@ -239,7 +239,7 @@ $form->addElement('radio', 'allow_open_chat_window', null, get_lang('AllowOpenCh
$form->addElement('style_submit_button', null, get_lang('SaveSettings'), 'class="save"');
// LEARNING PATH
$form->addElement('html','<div class="sectiontitle" style="margin-top: 40px;"><a href="#header" style="float:right;">'.Display::return_icon('top.gif', get_lang('Top')).'</a><a name="learnpath" id="learnpath"></a>'.Display::return_icon('kcmdf.gif', get_lang('ConfigLearnpath')).' '.get_lang('ConfigLearnpath').'</div><div style="clear:both;"></div>');
$form->addElement('html','<div class="sectiontitle" style="margin-top: 40px;"><a href="#header" style="float:right;">'.Display::return_icon('top.gif', get_lang('Top')).'</a><a name="learnpath" id="learnpath"></a>'.Display::return_icon('scorms.png', get_lang('ConfigLearnpath'),'','22').' '.get_lang('ConfigLearnpath').'</div><div style="clear:both;"></div>');
//Auto launch LP
$form->addElement('radio', 'enable_lp_auto_launch', get_lang('LPAutoLaunch'), get_lang('RedirectToALearningPath'), 1);
$form->addElement('radio', 'enable_lp_auto_launch', get_lang('LPAutoLaunch'), get_lang('RedirectToTheLearningPathList'), 2);
@ -266,7 +266,7 @@ if (is_settings_editable()) {
// THEMATIC ADVANCE SETTINGS
$form->addElement('html', '<div class="sectiontitle" style="margin-top: 40px;"><a href="#header" style="float:right;">'.Display::return_icon('top.gif', get_lang('Top')).'</a><a name="thematicadvance" id="thematicadvance"></a>'.Display::return_icon('course_progress.gif', get_lang('ThematicAdvanceConfiguration')).' '.get_lang('ThematicAdvanceConfiguration').'</div>');
$form->addElement('html', '<div class="sectiontitle" style="margin-top: 40px;"><a href="#header" style="float:right;">'.Display::return_icon('top.gif', get_lang('Top')).'</a><a name="thematicadvance" id="thematicadvance"></a>'.Display::return_icon('course_progress.png', get_lang('ThematicAdvanceConfiguration'),'','22').' '.get_lang('ThematicAdvanceConfiguration').'</div>');
$form->addElement('radio', 'display_info_advance_inside_homecourse', get_lang('InfoAboutAdvanceInsideHomeCourse'), get_lang('DisplayAboutLastDoneAdvance'), 1);
$form->addElement('radio', 'display_info_advance_inside_homecourse', null, get_lang('DisplayAboutNextAdvanceNotDone'), 2);
$form->addElement('radio', 'display_info_advance_inside_homecourse', null, get_lang('DisplayAboutNextAdvanceNotDoneAndLastDoneAdvance'), 3);
@ -399,15 +399,15 @@ if (isset($_GET['action']) && $_GET['action'] == 'show_message') {
// actions bar
echo '<div class="actions">';
echo '<a href="#coursesettings">'.Display::return_icon('settings.gif', get_lang('CourseSettings')).' '.get_lang('CourseSettings').'</a>';
echo '<a href="#coursesaccess">'.Display::return_icon('course.gif', get_lang('CourseAccess')).' '.get_lang('CourseAccess').'</a>';
echo '<a href="#emailnotifications">'.Display::return_icon('mail.png', get_lang('EmailNotifications')).' '.get_lang('EmailNotifications').'</a>';
echo '<a href="#userrights">'.Display::return_icon('members.gif', get_lang('UserRights')).' '.get_lang('UserRights').'</a>';
echo '<a href="#chatsettings">'.Display::return_icon('chat.gif', get_lang('ConfigChat')).' '.get_lang('ConfigChat').'</a>';
echo '<a href="#coursesettings">'.Display::return_icon('settings.png', get_lang('CourseSettings'),'','32').'</a>';
echo '<a href="#coursesaccess">'.Display::return_icon('course.png', get_lang('CourseAccess'),'','32').'</a>';
echo '<a href="#emailnotifications">'.Display::return_icon('mail.png', get_lang('EmailNotifications'),'','32').'</a>';
echo '<a href="#userrights">'.Display::return_icon('user.png', get_lang('UserRights'),'','32').'</a>';
echo '<a href="#chatsettings">'.Display::return_icon('chat.png', get_lang('ConfigChat'),'','32').'</a>';
if (api_get_setting('allow_course_theme') == 'true') {
echo '<a href="#learnpath">'.Display::return_icon('kcmdf.gif', get_lang('ConfigLearnpath')).' '.get_lang('ConfigLearnpath').'</a>';
echo '<a href="#learnpath">'.Display::return_icon('scorms.png', get_lang('ConfigLearnpath'),'','32').'</a>';
}
echo '<a href="#thematicadvance">'.Display::return_icon('course_progress.gif', get_lang('ThematicAdvanceConfiguration')).' '.get_lang('ThematicAdvanceConfiguration').'</a>';
echo '<a href="#thematicadvance">'.Display::return_icon('course_progress.png', get_lang('ThematicAdvanceConfiguration'),'','32').'</a>';
echo '</div>';
// display course picture

@ -62,9 +62,9 @@ if ($action == 'thematic_advance_add' || $action == 'thematic_advance_edit') {
}
$form->addElement('html', '<div id="div_datetime_attendance">');
if (!empty($calendar_select)) {
$form->addElement('select', 'start_date_by_attendance', get_lang('StartDate'), $calendar_select);
}
if (!empty($calendar_select)) {
$form->addElement('select', 'start_date_by_attendance', get_lang('StartDate'), $calendar_select);
}
$form->addElement('html', '</div>');
$form->addElement('html', '</div>');
@ -77,6 +77,7 @@ if ($action == 'thematic_advance_add' || $action == 'thematic_advance_edit') {
$default['start_date_type'] = 1;
$default['custom_start_date'] = date('d-F-Y H:i',api_strtotime(api_get_local_time()));
if (!empty($thematic_advance_data)) {
// set default values
@ -87,9 +88,9 @@ if ($action == 'thematic_advance_add' || $action == 'thematic_advance_edit') {
$default['custom_start_date'] = date('d-F-Y H:i', api_strtotime(api_get_local_time($thematic_advance_data['start_date'])));
} else {
$default['start_date_type'] = 1;
if (!empty($calendar_select)) {
$default['start_date_by_attendance'] = $thematic_advance_data['start_date'];
}
if (!empty($thematic_advance_data['start_date'])) {
$default['start_date_by_attendance'] = api_get_local_time($thematic_advance_data['start_date']);
}
$default['attendance_select'] = $thematic_advance_data['attendance_id'];
}
}

@ -1678,6 +1678,8 @@ class Exercise {
*/
function manage_answer($exeId, $questionId, $choice, $from = 'exercise_show', $exerciseResultCoordinates = array(), $saved_results = true, $from_database = false, $show_result = true, $propagate_neg = 0) {
global $_configuration, $feedback_type;
$html = '';
$questionId = intval($questionId);
$exeId = intval($exeId);
@ -1787,10 +1789,8 @@ class Exercise {
} else {
$questionScore += $doubt_score;
}
}
//$questionWeighting+=$true_score;
$totalScore +=$true_score;
//echo $studentChoice.' - '.$answerCorrect.' '.$questionScore.' - '.$questionWeighting.'<br />';
}
$totalScore +=$true_score;
break;
case MULTIPLE_ANSWER :
if ($from_database) {
@ -1829,8 +1829,7 @@ class Exercise {
$numAnswer=$objAnswerTmp->selectAutoId($answerId);
$studentChoice=$choice[$numAnswer];
//echo $studentChoice.' - '.$answerCorrect.'<br /> ';
if ($answerCorrect == 1) {
if ($studentChoice == 1) { //true value see MultipleAnswerCombinationTrueFalse class
$real_answers[$answerId] = true;
@ -2102,8 +2101,8 @@ class Exercise {
}
break;
// for matching
case MATCHING :
if ($from_database) {
case MATCHING :
if ($from_database) {
$sql_answer = 'SELECT id, answer FROM '.$table_ans.' WHERE question_id="'.$questionId.'" AND correct=0';
$res_answer = Database::query($sql_answer);
// getting the real answer
@ -2116,15 +2115,8 @@ class Exercise {
WHERE question_id="'.$questionId.'" AND correct <> 0 ORDER BY id_auto';
$res_answers = Database::query($sql_select_answer);
if ($show_result) {
echo '<table width="100%" height="71" border="0" cellspacing="3" cellpadding="3" >';
echo '<tr><td colspan="2">&nbsp;</td></tr>';
echo '<tr>
<td><span style="font-style: italic;">'.get_lang('ElementList').'</span> </td>
<td><span style="font-style: italic;">'.get_lang('CorrespondsTo').'</span></td>
</tr>';
echo '<tr><td colspan="2">&nbsp;</td></tr>';
}
$questionScore = 0;
while ($a_answers = Database::fetch_array($res_answers)) {
@ -2331,13 +2323,14 @@ class Exercise {
}
}
if ($from == 'exercise_result') {
global $colspan;
if ($from == 'exercise_result') {
// if answer is hotspot. To the difference of exercise_show.php, we use the results from the session (from_db=0)
// TODO Change this, because it is wrong to show the user some results that haven't been stored in the database yet
if ($answerType == HOT_SPOT || $answerType == HOT_SPOT_ORDER) {
// We made an extra table for the answers
if($origin != 'learnpath') {
// We made an extra table for the answers
if ($show_result) {
if ($origin != 'learnpath') {
echo '</table></td></tr>';
echo '<tr>
<td colspan="2">';
@ -2346,28 +2339,26 @@ class Exercise {
echo '<param name="movie" value="'.api_get_path(WEB_PLUGIN_PATH).'plugin/hotspot/hotspot_solution.swf?modifyAnswers='.Security::remove_XSS($questionId).'&exe_id=&from_db=0" />
</object>
</td>
</tr>';
</tr>';
}
}
}
}
if ($origin != 'learnpath') {
?>
<tr>
<td colspan="<?php echo $colspan; ?>" align="left">
<?php
if ($show_result) {
echo '</table>';
if ($this->type == ALL_ON_ONE_PAGE) {
echo '<div id="question_score">';
if ($propagate_neg == 0 && $questionScore < 0) {
$questionScore = 0;
}
echo get_lang('Score').": ".show_score($questionScore, $questionWeighting,false, false);
echo get_lang('Score').": ".show_score($questionScore, $questionWeighting, false, false);
echo '</div>';
}
?><br />
</td>
</tr>
</table>
<?php }
echo '<br />';
}
}
}
unset ($objAnswerTmp);
$i++;
@ -2588,6 +2579,50 @@ class Exercise {
$result = @api_mail_html('', $to, $subject, $mail_content, $sender_name, $email_admin, array('charset'=>$mycharset));
}
}
function show_exercise_result_header($user_data, $date = null) {
$description = '';
if (!empty($this->description)) {
$description = '<tr>
<td style="font-weight:bold" width="10%">
&nbsp;'.get_lang("Description").' :
</td>
<td width="90%">
'.$this->description.'
</td>
</tr>';
}
$date_data = '';
if (!empty($date)) {
$date_data = '<tr>
<td style="font-weight:bold" width="10%">
&nbsp;'.get_lang("Date").' :
</td>
<td width="90%">
'.$date.'
</td>
</tr>';
}
$html = '<table width="100%">
<tr>
<td colspan="2">
<h2>'.Display::return_icon('quiz_big.png', get_lang('Result')).' '.$this->exercise.' : '.get_lang('Result').'</h2>
</td>
</tr>
<tr>
<td style="font-weight:bold" width="90px">&nbsp;'.get_lang('User').' : </td>
<td>
'.$user_data.'
</td>
</tr>
'.$date_data.'
'.$description.'
</table>
<br />';
return $html;
}
}
endif;
?>

@ -135,10 +135,18 @@ if ($origin != 'learnpath') {
<body dir="<?php echo api_get_text_direction(); ?>">
<?php
}
//Hide results
$show_results = false;
$show_only_score = false;
if ($objExercise->results_disabled) {
ob_start();
if ($objExercise->results_disabled == 0) {
$show_results = true;
}
if ($objExercise->results_disabled == 2) {
$show_only_score = true;
}
/* DISPLAY AND MAIN PROCESS */
// I'm in a preview mode as course admin. Display the action menu.
@ -153,31 +161,34 @@ $exerciseTitle=text_filter($objExercise->selectTitle());
$feedback_type = $objExercise->feedbacktype;
//show exercise title
if($origin != 'learnpath') {?>
<h2><?php echo Display::return_icon('quiz_big.png', get_lang('Result')).' '; echo $exerciseTitle; ?> : <?php echo get_lang("Result"); ?></h2>
<?php echo $objExercise->selectDescription(); ?>
<?php } ?>
if($origin == 'learnpath') { ?>
<form method="get" action="exercice.php?<?php echo api_get_cidreq() ?>">
<input type="hidden" name="origin" value="<?php echo $origin; ?>" />
<input type="hidden" name="learnpath_id" value="<?php echo $learnpath_id; ?>" />
<input type="hidden" name="learnpath_item_id" value="<?php echo $learnpath_item_id; ?>" />
<input type="hidden" name="learnpath_item_view_id" value="<?php echo $learnpath_item_view_id; ?>" />
<?php
}
$i=$totalScore=$totalWeighting=0;
if($debug>0){error_log ("ExerciseResult: ".print_r($exerciseResult,1)); error_log("QuestionList: ".print_r($questionList,1));}
if ($_configuration['tracking_enabled']) {
// Create an empty exercise
if (api_is_allowed_to_session_edit() )
$exeId= create_event_exercice($objExercise->selectId());
// Create an empty exercise
if (api_is_allowed_to_session_edit()) {
$exeId= create_event_exercice($objExercise->selectId());
}
$counter=0;
$user_info = api_get_user_info(api_get_user_id());
if ($show_results || $show_only_score) {
echo $exercise_header = $objExercise->show_exercise_result_header(api_get_person_name($user_info['firstName'], $user_info['lastName']));
}
// Loop over all question to show results for each of them, one by one
foreach ($questionList as $questionId) {
// destruction of the Question object
unset($objQuestionTmp);
$counter++;
// gets the student choice for this question
$choice = $exerciseResult[$questionId];
@ -189,134 +200,54 @@ foreach ($questionList as $questionId) {
$questionDescription = $objQuestionTmp->selectDescription();
$questionWeighting = $objQuestionTmp->selectWeighting();
$answerType = $objQuestionTmp->selectType();
$quesId = $objQuestionTmp->selectId(); //added by priya saini
// destruction of the Question object
unset($objQuestionTmp);
// decide how many columns we want to use to show the results of each type
if (in_array($answerType, array(UNIQUE_ANSWER, MULTIPLE_ANSWER, MULTIPLE_ANSWER_COMBINATION, MULTIPLE_ANSWER_TRUE_FALSE, MULTIPLE_ANSWER_COMBINATION_TRUE_FALSE,UNIQUE_ANSWER_NO_OPTION))) {
$colspan=4;
} elseif($answerType == MATCHING || $answerType == FREE_ANSWER) {
$colspan=2;
} elseif($answerType == HOT_SPOT || $answerType == HOT_SPOT_ORDER) {
$colspan=4;
$rowspan=$nbrAnswers+1;
} else {
$colspan=1;
}
// show titles
if ($origin != 'learnpath') {?>
<table width="100%" border="0" cellpadding="3" cellspacing="2">
<tr>
<td colspan="<?php echo $colspan; ?>">
<div id="question_title" class="sectiontitle">
<?php echo get_lang("Question").' '.($counter).' : '.$questionName; ?>
</div>
</td>
</tr>
<tr>
<td colspan="<?php echo $colspan; ?>">
<i><?php echo $questionDescription; ?></i>
</td>
</tr>
<?php
if (in_array($answerType, array(UNIQUE_ANSWER, MULTIPLE_ANSWER, MULTIPLE_ANSWER_COMBINATION, MULTIPLE_ANSWER_TRUE_FALSE, MULTIPLE_ANSWER_COMBINATION_TRUE_FALSE,UNIQUE_ANSWER_NO_OPTION))) {
?>
<tr>
<td width="5%" valign="top" align="center" nowrap="nowrap">
<i><?php echo get_lang("Choice"); ?></i>
</td>
<td width="5%" align="center" nowrap="nowrap">
<i><?php echo get_lang("ExpectedChoice"); ?></i>
</td>
<td width="45%" valign="top">
<i><?php echo get_lang("Answer"); ?></i>
</td>
<?php if ($objExercise->feedbacktype != EXERCISE_FEEDBACK_TYPE_EXAM) { ?>
<td width="45%" valign="top">
<i><?php echo get_lang("Comment"); ?></i>
</td>
<?php } else { ?>
<td>&nbsp;</td>
<?php } ?>
</tr>
<?php
} elseif ($answerType == FILL_IN_BLANKS) { ?>
<tr>
<td>
<i><?php echo get_lang("Answer"); ?></i>
</td>
</tr>
<?php
} elseif ($answerType == FREE_ANSWER) {
?>
<tr>
<td width="55%">
<i><?php echo get_lang("Answer"); ?></i>
</td>
<?php if ($objExercise->feedbacktype != EXERCISE_FEEDBACK_TYPE_EXAM) { ?>
<td width="45%" valign="top">
<i><?php echo get_lang("Comment"); ?></i>
</td>
<?php } else { ?>
<td>&nbsp;</td>
<?php } ?>
</tr>
<?php
} elseif ($answerType == HOT_SPOT) {
?>
<tr>
<td valign="top" colspan="2">
<table width="552" border="1" bordercolor="#A4A4A4" style="border-collapse: collapse;">
<tr>
<td width="152" valign="top">
<i><?php echo get_lang("CorrectAnswer"); ?></i><br /><br />
</td>
<td width="100" valign="top">
<i><?php echo get_lang('HotspotHit'); ?></i><br /><br />
</td>
<?php if ($objExercise->feedbacktype != EXERCISE_FEEDBACK_TYPE_EXAM) { ?>
<td width="300" valign="top">
<i><?php echo get_lang("Comment"); ?></i><br /><br />
</td>
<?php } else { ?>
<td>&nbsp;</td>
<?php } ?>
</tr>
<?php
} else { //matching type
?>
<tr>
<td width="50%">
<i><?php echo get_lang("ElementList"); ?></i>
</td>
<td width="50%">
<i><?php echo get_lang("CorrespondsTo"); ?></i>
</td>
</tr>
<?php
}
$quesId = $objQuestionTmp->selectId();
if ($show_results) {
// show titles
if ($origin != 'learnpath') {
echo $objQuestionTmp->return_header($objExercise->feedbacktype);
if ($answerType == HOT_SPOT) {
?>
<tr>
<td valign="top" colspan="2">
<table width="552" border="1" bordercolor="#A4A4A4" style="border-collapse: collapse;">
<tr>
<td width="152" valign="top">
<i><?php echo get_lang("CorrectAnswer"); ?></i><br /><br />
</td>
<td width="100" valign="top">
<i><?php echo get_lang('HotspotHit'); ?></i><br /><br />
</td>
<?php if ($objExercise->feedbacktype != EXERCISE_FEEDBACK_TYPE_EXAM) { ?>
<td width="300" valign="top">
<i><?php echo get_lang("Comment"); ?></i><br /><br />
</td>
<?php } else { ?>
<td>&nbsp;</td>
<?php } ?>
</tr>
<?php
}
}
}
// We're inside *one* question. Go through each possible answer for this question
$result = $objExercise->manage_answer($exeId, $questionId, $choice,'exercise_result', $exerciseResultCoordinates, true, false, true, $objExercise->selectPropagateNeg());
$result = $objExercise->manage_answer($exeId, $questionId, $choice,'exercise_result', $exerciseResultCoordinates, true, false, $show_results, $objExercise->selectPropagateNeg());
$totalScore += $result['score'];
$totalWeighting += $result['weight'];
$totalWeighting += $result['weight'];
} // end huge foreach() block that loops over all questions
if($origin != 'learnpath') {
echo '<div id="question_score">';
echo get_lang('YourTotalScore')." ";
if ($objExercise->selectPropagateNeg() == 0 && $totalScore < 0) {
$totalScore = 0;
}
echo show_score($totalScore, $totalWeighting, false);
echo '</div>';
?>
<button type="submit" class="save"><?php echo get_lang('Finish');?></button>
<?php
if ($origin != 'learnpath') {
if ($show_results || $show_only_score) {
echo '<div id="question_score">';
echo get_lang('YourTotalScore')." ";
if ($objExercise->selectPropagateNeg() == 0 && $totalScore < 0) {
$totalScore = 0;
}
echo show_score($totalScore, $totalWeighting, false);
echo '</div>';
}
/* <button type="submit" class="save"><?php echo get_lang('Finish');?></button> */
}
// Tracking of results
@ -330,35 +261,18 @@ if (api_is_allowed_to_session_edit() ) {
update_event_exercice($exeId, $objExercise->selectId(), $totalScore, $totalWeighting,api_get_session_id(),$safe_lp_id,$safe_lp_item_id,$safe_lp_item_view_id, $quizDuration);
}
if ($objExercise->results_disabled) {
ob_end_clean();
if ($origin != 'learnpath') {
Display :: display_normal_message(get_lang('ExerciseFinished').'<br /><a href="exercice.php" />'.get_lang('Back').'</a>',false);
} else {
Display :: display_normal_message(get_lang('ExerciseFinished').'<br /><br />',false);
$lp_mode = $_SESSION['lp_mode'];
$url = '../newscorm/lp_controller.php?cidReq='.api_get_course_id().'&action=view&lp_id='.$learnpath_id.'&lp_item_id='.$learnpath_item_id.'&exeId='.$exeId.'&fb_type='.$objExercise->feedbacktype;
$href = ($lp_mode == 'fullscreen')?' window.opener.location.href="'.$url.'" ':' top.location.href="'.$url.'" ';
echo '<script language="javascript" type="text/javascript">'.$href.'</script>'."\n";
//record the results in the learning path, using the SCORM interface (API)
echo '<script language="javascript" type="text/javascript">window.parent.API.void_save_asset('.$totalScore.','.$totalWeighting.');</script>'."\n";
echo '</body></html>';
}
if ($origin != 'learnpath') {
Display :: display_normal_message(get_lang('ExerciseFinished').'<br /><a href="exercice.php" />'.get_lang('Back').'</a>',false);
} else {
//show score
if ($origin == 'learnpath') {
Display::display_normal_message(get_lang('ExerciseFinished'));
$lp_mode = $_SESSION['lp_mode'];
$url = '../newscorm/lp_controller.php?'.api_get_cidreq().'&action=view&lp_id='.$learnpath_id.'&lp_item_id='.$learnpath_item_id.'&exeId='.$exeId.'&fb_type='.$objExercise->feedbacktype;
$href = ($lp_mode == 'fullscreen')?' window.opener.location.href="'.$url.'" ':' top.location.href="'.$url.'" ';
echo '<script language="javascript" type="text/javascript">'.$href.'</script>'."\n";
//record the results in the learning path, using the SCORM interface (API)
echo '<script language="javascript" type="text/javascript">window.parent.API.void_save_asset('.$totalScore.','.$totalWeighting.');</script>'."\n";
echo '</body></html>';
}
Display :: display_normal_message(get_lang('ExerciseFinished').'<br /><br />',false);
$lp_mode = $_SESSION['lp_mode'];
$url = '../newscorm/lp_controller.php?cidReq='.api_get_course_id().'&action=view&lp_id='.$learnpath_id.'&lp_item_id='.$learnpath_item_id.'&exeId='.$exeId.'&fb_type='.$objExercise->feedbacktype;
$href = ($lp_mode == 'fullscreen')?' window.opener.location.href="'.$url.'" ':' top.location.href="'.$url.'" ';
echo '<script language="javascript" type="text/javascript">'.$href.'</script>'."\n";
//record the results in the learning path, using the SCORM interface (API)
echo '<script language="javascript" type="text/javascript">window.parent.API.void_save_asset('.$totalScore.','.$totalWeighting.');</script>'."\n";
echo '</body></html>';
}
if ($origin != 'learnpath') {

@ -201,11 +201,10 @@ function getFCK(vals,marksid) {
//f.submit();
}
</script>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td colspan="2">
<?php
$show_results = true;
$show_results = true;
$show_only_total_score = false;
// Avoiding the "Score 0/0" message when the exe_id is not set
if (!empty($track_exercise_info)) {
$exerciseTitle = text_filter($track_exercise_info['title']);
@ -213,283 +212,149 @@ if (!empty($track_exercise_info)) {
// if the results_disabled of the Quiz is 1 when block the script
$result_disabled = $track_exercise_info['results_disabled'];
if (!(api_is_platform_admin() || api_is_course_admin()) ) {
if ($result_disabled == 1) {
//if (!(api_is_platform_admin() || api_is_course_admin()) ) {
if ($result_disabled == 1) {
//api_not_allowed();
$show_results = false;
//Display::display_warning_message(get_lang('CantViewResults'));
if ($origin != 'learnpath') {
echo '<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td colspan="2">';
Display::display_warning_message(get_lang('ThankYouForPassingTheTest').'<br /><br /><a href="exercice.php">'.(get_lang('BackToExercisesList')).'</a>', false);
echo '</td>
</tr>
</table>';
}
} elseif ($result_disabled == 2) {
$show_results = false;
$show_results = false;
$show_only_total_score = true;
if ($origin != 'learnpath') {
Display::display_warning_message(get_lang('ThankYouForPassingTheTest').'<br /><br /><a href="exercice.php">'.(get_lang('BackToExercisesList')).'</a>', false);
echo '<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td colspan="2">';
Display::display_warning_message(get_lang('ThankYouForPassingTheTest'), false);
echo '</td>
</tr>
</table>';
}
}
}
//}
} else {
Display::display_warning_message(get_lang('CantViewResults'));
$show_results = false;
echo '</td>
</tr>
</table>';
}
//var_dump($show_results);
if ($origin == 'learnpath' && !isset($_GET['fb_type']) ) {
$show_results = false;
}
$html = '';
if ($show_results || $show_only_total_score) {
$user_info = api_get_user_info($student_id);
//Shows exercise header
echo $objExercise->show_exercise_result_header(api_get_person_name($user_info['firstName'], $user_info['lastName']), api_convert_and_format_date($exercise_date));
}
if ($show_results) {
?>
<table width="100%">
<tr>
<td colspan="2">
<h2><?php echo Display::return_icon('quiz_big.png', get_lang('Result')).' '.$exerciseTitle.' : '.get_lang('Result');?></h2>
</td>
</tr>
<tr>
<td style="font-weight:bold" width="90px"><?php echo '&nbsp;'.get_lang('User')?> : </td>
<td>
<?php
$user_info = api_get_user_info($student_id);
echo api_get_person_name($user_info['firstName'], $user_info['lastName']);
?>
</td>
</tr>
<tr>
<td style="font-weight:bold" width="90px"><?php echo '&nbsp;'.get_lang('Date')?> : </td>
<td>
<?php
echo api_convert_and_format_date($exercise_date);
?>
</td>
</tr>
<?php if (!empty($exerciseDescription)) { ?>
<tr>
<td style="font-weight:bold" width="10%">
<?php echo '&nbsp;'.get_lang("Description").' :'; ?>
</td>
<td width="90%">
<?php echo $exerciseDescription; ?>
</td>
</tr>
<?php } ?>
</table>
<br />
</table>
<?php
$i=$totalScore=$totalWeighting=0;
$i=$totalScore=$totalWeighting=0;
if($debug>0){error_log("ExerciseResult: ".print_r($exerciseResult,1)); error_log("QuestionList: ".print_r($questionList,1));}
if($debug>0){error_log("ExerciseResult: ".print_r($exerciseResult,1)); error_log("QuestionList: ".print_r($questionList,1));}
$arrques = array();
$arrans = array();
$user_restriction = $is_allowedToEdit ? '' : "AND user_id=".intval($student_id)." ";
$query = "SELECT attempts.question_id, answer from ".$TBL_TRACK_ATTEMPT." as attempts
INNER JOIN ".$TBL_TRACK_EXERCICES." as stats_exercices ON stats_exercices.exe_id=attempts.exe_id
INNER JOIN ".$TBL_EXERCICE_QUESTION." as quizz_rel_questions ON quizz_rel_questions.exercice_id=stats_exercices.exe_exo_id AND quizz_rel_questions.question_id = attempts.question_id
INNER JOIN ".$TBL_QUESTIONS." as questions ON questions.id=quizz_rel_questions.question_id
WHERE attempts.exe_id='".Database::escape_string($id)."' $user_restriction
GROUP BY quizz_rel_questions.question_order, attempts.question_id";
//GROUP BY questions.position, attempts.question_id";
$result =Database::query($query);
$questionList = array();
$exerciseResult = array();
while ($row = Database::fetch_array($result)) {
$questionList[] = $row['question_id'];
$exerciseResult[$row['question_id']] = $row['answer'];
}
//Fixing #2073 Fixing order of questions
if (!empty($track_exercise_info['data_tracking']) && !empty($track_exercise_info['random']) ) {
$tempquestionList = explode(',',$track_exercise_info['data_tracking']);
if (is_array($tempquestionList) && count($tempquestionList) == count($questionList)) {
$questionList = $tempquestionList;
}
}
// for each question
$counter=0;
$arrques = array();
$arrans = array();
$total_weighting = 0;
foreach ($questionList as $questionId) {
$objQuestionTmp = Question::read($questionId);
$total_weighting +=$objQuestionTmp->selectWeighting();
}
foreach ($questionList as $questionId) {
$counter++;
$choice=$exerciseResult[$questionId];
// creates a temporary Question object
$objQuestionTmp = Question::read($questionId);
$questionName = $objQuestionTmp->selectTitle();
$questionDescription= $objQuestionTmp->selectDescription();
$questionWeighting = $objQuestionTmp->selectWeighting();
$answerType = $objQuestionTmp->selectType();
$quesId = $objQuestionTmp->selectId(); //added by priya saini
$user_restriction = $is_allowedToEdit ? '' : "AND user_id=".intval($student_id)." ";
$query = "SELECT attempts.question_id, answer from ".$TBL_TRACK_ATTEMPT." as attempts
INNER JOIN ".$TBL_TRACK_EXERCICES." as stats_exercices ON stats_exercices.exe_id=attempts.exe_id
INNER JOIN ".$TBL_EXERCICE_QUESTION." as quizz_rel_questions ON quizz_rel_questions.exercice_id=stats_exercices.exe_exo_id AND quizz_rel_questions.question_id = attempts.question_id
INNER JOIN ".$TBL_QUESTIONS." as questions ON questions.id=quizz_rel_questions.question_id
WHERE attempts.exe_id='".Database::escape_string($id)."' $user_restriction
GROUP BY quizz_rel_questions.question_order, attempts.question_id";
//GROUP BY questions.position, attempts.question_id";
// destruction of the Question object
unset($objQuestionTmp);
$result =Database::query($query);
$questionList = array();
$exerciseResult = array();
if ($answerType == UNIQUE_ANSWER || $answerType == MULTIPLE_ANSWER) {
$colspan=2;
}
if($answerType == MATCHING || $answerType == FREE_ANSWER) {
$colspan=2;
} else {
$colspan=2;
}
echo '<div id="question_title" class="sectiontitle">';
echo get_lang("Question").' '.($counter).' : '.$questionName;
echo '</div>';
echo '<div id="question_description">';
echo $questionDescription;
echo '</div>';
if ($answerType == MULTIPLE_ANSWER || $answerType == MULTIPLE_ANSWER_TRUE_FALSE) {
?>
<table width="100%" border="0" cellspacing="3" cellpadding="3">
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td><i><?php echo get_lang("Choice"); ?></i> </td>
<td><i><?php echo get_lang("ExpectedChoice"); ?></i></td>
<td><i><?php echo get_lang("Answer"); ?></i></td>
<?php if ($feedback_type != EXERCISE_FEEDBACK_TYPE_EXAM) { ?>
<td><i><?php echo get_lang("Comment"); ?></i></td>
<?php } else { ?>
<td>&nbsp;</td>
<?php } ?>
</tr>
<tr>
<td>&nbsp;</td>
</tr>
<?php
// construction of the Answer object
$question_result = $objExercise->manage_answer($id, $questionId, $choice,'exercise_show', array(), false, true, true, $objExercise->selectPropagateNeg());
//var_dump($question_result);
$questionScore = $question_result['score'];
$totalScore += $question_result['score'];
//$questionWeighting += $question_result['weight'];
echo '</table>';
} elseif ($answerType == MULTIPLE_ANSWER_COMBINATION || $answerType == MULTIPLE_ANSWER_COMBINATION_TRUE_FALSE) {
$choice=array();
?>
<table width="100%" border="0" cellspacing="3" cellpadding="3">
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td><i><?php echo get_lang("Choice"); ?></i> </td>
<td><i><?php echo get_lang("ExpectedChoice"); ?></i></td>
<td><i><?php echo get_lang("Answer"); ?></i></td>
<td><i><?php echo get_lang("Comment"); ?></i></td>
</tr>
<tr>
<td>&nbsp;</td>
</tr>
<?php
$question_result = $objExercise->manage_answer($id, $questionId, $choice,'exercise_show', array(), false, true, true, $objExercise->selectPropagateNeg());
$questionScore = $question_result['score'];
$totalScore += $question_result['score'];
while ($row = Database::fetch_array($result)) {
$questionList[] = $row['question_id'];
$exerciseResult[$row['question_id']] = $row['answer'];
}
echo '</table>';
} elseif ($answerType == UNIQUE_ANSWER || $answerType == UNIQUE_ANSWER_NO_OPTION) {
?>
<table width="100%" border="0" cellspacing="3" cellpadding="3">
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td><i><?php echo get_lang("Choice"); ?></i> </td>
<td><i><?php echo get_lang("ExpectedChoice"); ?></i></td>
<td><i><?php echo get_lang("Answer"); ?></i></td>
<?php if ($feedback_type != EXERCISE_FEEDBACK_TYPE_EXAM) { ?>
<td><i><?php echo get_lang("Comment"); ?></i></td>
<?php } else { ?>
<td>&nbsp;</td>
<?php } ?>
</tr>
<tr>
<td>&nbsp;</td>
</tr>
<?php
$question_result = $objExercise->manage_answer($id, $questionId, $choice,'exercise_show', array(), false, true, true, $objExercise->selectPropagateNeg());
$questionScore = $question_result['score'];
$totalScore += $question_result['score'];
echo '</table>';
} elseif ($answerType == FILL_IN_BLANKS) {
?>
<table width="100%" border="0" cellspacing="3" cellpadding="3">
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td><i><?php echo get_lang("Answer"); ?></i> </td>
</tr>
<tr>
<td>&nbsp;</td>
</tr>
<?php
$question_result = $objExercise->manage_answer($id, $questionId, $choice,'exercise_show', array(), false, true, true, $objExercise->selectPropagateNeg());
$questionScore = $question_result['score'];
$totalScore += $question_result['score'];
echo '</table>';
} elseif ($answerType == FREE_ANSWER) {
$answer = $str;
?>
<table width="100%" border="0" cellspacing="3" cellpadding="3">
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td><i><?php echo get_lang("Answer"); ?></i> </td>
</tr>
<tr>
<td>&nbsp;</td>
</tr>
//Fixing #2073 Fixing order of questions
if (!empty($track_exercise_info['data_tracking']) && !empty($track_exercise_info['random']) ) {
$tempquestionList = explode(',',$track_exercise_info['data_tracking']);
if (is_array($tempquestionList) && count($tempquestionList) == count($questionList)) {
$questionList = $tempquestionList;
}
}
<?php
$question_result = $objExercise->manage_answer($id, $questionId, $choice,'exercise_show', array(), false, true, true, $objExercise->selectPropagateNeg());
$questionScore = $question_result['score'];
$totalScore += $question_result['score'];
} elseif ($answerType == MATCHING) {
$question_result = $objExercise->manage_answer($id, $questionId, $choice,'exercise_show', array(), false, true, true, $objExercise->selectPropagateNeg());
$questionScore = $question_result['score'];
$totalScore += $question_result['score'];
echo '</table>';
} elseif ($answerType == HOT_SPOT) {
echo '<table width="500" border="0">
<tr>
// for each question
$counter=0;
$total_weighting = 0;
foreach ($questionList as $questionId) {
$objQuestionTmp = Question::read($questionId);
$total_weighting +=$objQuestionTmp->selectWeighting();
}
foreach ($questionList as $questionId) {
$counter++;
$choice=$exerciseResult[$questionId];
// destruction of the Question object
unset($objQuestionTmp);
// creates a temporary Question object
$objQuestionTmp = Question::read($questionId);
$questionName = $objQuestionTmp->selectTitle();
$questionDescription= $objQuestionTmp->selectDescription();
$questionWeighting = $objQuestionTmp->selectWeighting();
$answerType = $objQuestionTmp->selectType();
$quesId = $objQuestionTmp->selectId();
if ($show_results) {
echo $objQuestionTmp->return_header($feedback_type);
}
if ($answerType == MULTIPLE_ANSWER || $answerType == MULTIPLE_ANSWER_TRUE_FALSE) {
$question_result = $objExercise->manage_answer($id, $questionId, $choice,'exercise_show', array(), false, true, $show_results, $objExercise->selectPropagateNeg());
$questionScore = $question_result['score'];
$totalScore += $question_result['score'];
} elseif ($answerType == MULTIPLE_ANSWER_COMBINATION || $answerType == MULTIPLE_ANSWER_COMBINATION_TRUE_FALSE) {
$choice=array();
$question_result = $objExercise->manage_answer($id, $questionId, $choice,'exercise_show', array(), false, true, $show_results, $objExercise->selectPropagateNeg());
$questionScore = $question_result['score'];
$totalScore += $question_result['score'];
} elseif ($answerType == UNIQUE_ANSWER || $answerType == UNIQUE_ANSWER_NO_OPTION) {
$question_result = $objExercise->manage_answer($id, $questionId, $choice,'exercise_show', array(), false, true, $show_results, $objExercise->selectPropagateNeg());
$questionScore = $question_result['score'];
$totalScore += $question_result['score'];
echo '</table>';
} elseif ($answerType == FILL_IN_BLANKS) {
$question_result = $objExercise->manage_answer($id, $questionId, $choice,'exercise_show', array(), false, true, $show_results, $objExercise->selectPropagateNeg());
$questionScore = $question_result['score'];
$totalScore += $question_result['score'];
} elseif ($answerType == FREE_ANSWER) {
$answer = $str;
$question_result = $objExercise->manage_answer($id, $questionId, $choice,'exercise_show', array(), false, true, $show_results, $objExercise->selectPropagateNeg());
$questionScore = $question_result['score'];
$totalScore += $question_result['score'];
} elseif ($answerType == MATCHING) {
$question_result = $objExercise->manage_answer($id, $questionId, $choice,'exercise_show', array(), false, true, $show_results, $objExercise->selectPropagateNeg());
$questionScore = $question_result['score'];
$totalScore += $question_result['score'];
} elseif ($answerType == HOT_SPOT) {
if ($show_results) {
echo '<table width="500" border="0"><tr>
<td valign="top" align="center" style="padding-left:0px;" >
<table border="1" bordercolor="#A4A4A4" style="border-collapse: collapse;" width="552">';
$question_result = $objExercise->manage_answer($id, $questionId, $choice,'exercise_show', array(), false, true, true, $objExercise->selectPropagateNeg());
$questionScore = $question_result['score'];
$totalScore += $question_result['score'];
<table border="1" bordercolor="#A4A4A4" style="border-collapse: collapse;" width="552">';
}
$question_result = $objExercise->manage_answer($id, $questionId, $choice,'exercise_show', array(), false, true, $show_results, $objExercise->selectPropagateNeg());
$questionScore = $question_result['score'];
$totalScore += $question_result['score'];
if ($show_results) {
echo '</table></td></tr>';
echo '<tr>
<td colspan="2">'.
@ -499,7 +364,16 @@ if ($show_results) {
</td>
</tr>
</table><br/>';
}
}
}
if ($show_results) {
if ($answerType != HOT_SPOT) {
echo '</table>';
}
}
if ($show_results) {
echo '<table width="100%" border="0" cellspacing="3" cellpadding="0">';
@ -552,6 +426,7 @@ if ($show_results) {
}
echo '</td><td>';
}
if ($is_allowedToEdit) {
if ($answerType == FREE_ANSWER) {
$marksname = "marksName".$questionId;
@ -581,40 +456,43 @@ if ($show_results) {
$questionScore=0;
}
}
?>
</td>
</tr>
</table>
<?php
/*
Do not convert question results
$my_total_score = convert_score($questionScore, $total_weighting);
$my_total_weight = convert_score($questionWeighting, $total_weighting);*/
$my_total_score = $questionScore;
$my_total_weight = $questionWeighting;
echo '<div id="question_score">';
if ($objExercise->selectPropagateNeg() == 0 && $my_total_score < 0) {
$my_total_score = 0;
}
echo '</td>
</tr>
</table>';
}
/*
Do not convert question results
$my_total_score = convert_score($questionScore, $total_weighting);
$my_total_weight = convert_score($questionWeighting, $total_weighting);*/
$my_total_score = $questionScore;
$my_total_weight = $questionWeighting;
if ($objExercise->selectPropagateNeg() == 0 && $my_total_score < 0) {
$my_total_score = 0;
}
if ($show_results) {
echo '<div id="question_score">';
//echo get_lang('Score')." : $my_total_score / $my_total_weight";
echo get_lang('Score')." : ".show_score($my_total_score, $my_total_weight, false, false);
//echo get_lang('Score')." : ".show_score($my_total_score, $total_weighting, false);
echo '</div>';
}
unset($objAnswerTmp);
$i++;
$totalWeighting+=$questionWeighting;
} // end of large foreach on questions
} //end of condition if $show_results
unset($objAnswerTmp);
$i++;
$totalWeighting+=$questionWeighting;
} // end of large foreach on questions
//Total score
if ($origin!='learnpath' || ($origin == 'learnpath' && isset($_GET['fb_type']))) {
if ($show_results) {
if ($show_results || $show_only_total_score ) {
echo '<div id="question_score">'.get_lang('YourTotalScore').": ";
$my_total_score_temp = $totalScore;
if ($objExercise->selectPropagateNeg() == 0 && $my_total_score_temp < 0) {

@ -4,7 +4,7 @@
/**
* File containing the FillBlanks class.
* @package dokeos.exercise
* @package chamilo.exercise
* @author Eric Marguin
* @author Julio Montoya Armas switchable fill in blank option added
* @version $Id: admin.php 10680 2007-01-11 21:26:23Z pcool $
@ -200,6 +200,21 @@ class FillBlanks extends Question
$objAnswer->createAnswer($answer,0,'',0,'');
$objAnswer->save();
}
function return_header($feedback_type, $counter = null) {
parent::return_header($feedback_type, $counter);
$header = '<table width="100%" border="0" cellspacing="3" cellpadding="3">
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td><i><?php echo get_lang("Answer"); ?></i> </td>
</tr>
<tr>
<td>&nbsp;</td>
</tr>';
return $header;
}
}
endif;

@ -1,28 +1,10 @@
<?php
/*
DOKEOS - elearning and course management software
For a full list of contributors, see documentation/credits.html
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
See "documentation/licence.html" more details.
Contact:
Dokeos
Rue des Palais 44 Paleizenstraat
B-1030 Brussels - Belgium
Tel. +32 (2) 211 34 56
*/
/* For licensing terms, see /license.txt */
/**
* File containing the FreeAnswer class.
* This class allows to instantiate an object of type FREE_ANSWER,
* extending the class question
* @package dokeos.exercise
* @package chamilo.exercise
* @author Eric Marguin
* @version $Id: admin.php 10680 2007-01-11 21:26:23Z pcool $
*/
@ -72,6 +54,22 @@ class FreeAnswer extends Question {
$this -> weighting = $form -> getSubmitValue('weighting');
$this->save();
}
function return_header($feedback_type, $counter = null) {
parent::return_header($feedback_type, $counter);
$header = '<table width="100%" border="0" cellspacing="3" cellpadding="3">
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td><i><?php echo get_lang("Answer"); ?></i> </td>
</tr>
<tr>
<td>&nbsp;</td>
</tr>';
return $header;
}
}
endif;
?>

@ -236,8 +236,7 @@ class Matching extends Question {
}
// insert the answers
for($i=1 ; $i<=$nb_matches ; ++$i)
{
for($i=1 ; $i<=$nb_matches ; ++$i) {
$position++;
$answer = $form -> getSubmitValue('answer['.$i.']');
$matches = $form -> getSubmitValue('matches['.$i.']');
@ -245,11 +244,23 @@ class Matching extends Question {
$this -> weighting += $weighting;
$objAnswer->createAnswer($answer,$matches,'',$weighting,$position);
}
$objAnswer->save();
$this->save();
}
function return_header($feedback_type, $counter = null) {
parent::return_header($feedback_type, $counter);
echo '<table width="100%" height="71" border="0" cellspacing="3" cellpadding="3" >';
echo '<tr><td colspan="2">&nbsp;</td></tr>';
echo '<tr>
<td><span style="font-style: italic;">'.get_lang('ElementList').'</span> </td>
<td><span style="font-style: italic;">'.get_lang('CorrespondsTo').'</span></td>
</tr>';
echo '<tr><td colspan="2">&nbsp;</td></tr>';
}
}

@ -181,13 +181,10 @@ class MultipleAnswer extends Question {
function processAnswersCreation($form) {
$questionWeighting = $nbrGoodAnswers = 0;
$objAnswer = new Answer($this->id);
$nb_answers = $form->getSubmitValue('nb_answers');
$objAnswer = new Answer($this->id);
$nb_answers = $form -> getSubmitValue('nb_answers');
for($i=1 ; $i <= $nb_answers ; $i++)
{
for($i=1 ; $i <= $nb_answers ; $i++) {
$answer = trim($form -> getSubmitValue('answer['.$i.']'));
$comment = trim($form -> getSubmitValue('comment['.$i.']'));
$weighting = trim($form -> getSubmitValue('weighting['.$i.']'));
@ -199,22 +196,41 @@ class MultipleAnswer extends Question {
$weighting = abs($weighting);
$weighting = -$weighting;
}
if($weighting > 0)
{
if($weighting > 0) {
$questionWeighting += $weighting;
}
$objAnswer -> createAnswer($answer,$goodAnswer,$comment,$weighting,$i);
}
// saves the answers into the data base
$objAnswer -> save();
// sets the total weighting of the question
$this -> updateWeighting($questionWeighting);
$this -> save();
$this->updateWeighting($questionWeighting);
$this->save();
}
function return_header($feedback_type, $counter = null) {
parent::return_header($feedback_type, $counter);
$header = '<table width="100%" border="0" cellspacing="3" cellpadding="3">
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td><i>'.get_lang("Choice").'</i> </td>
<td><i>'. get_lang("ExpectedChoice").'</i></td>
<td><i>'. get_lang("Answer").'</i></td>';
if ($feedback_type != EXERCISE_FEEDBACK_TYPE_EXAM) {
$header .= '<td><i>'.get_lang("Comment").'</i></td>';
} else {
$header .= '<td>&nbsp;</td>';
}
$header .= '
</tr>
<tr>
<td>&nbsp;</td>
</tr>';
return $header;
}
}

@ -221,7 +221,29 @@ class MultipleAnswerCombination extends Question {
// sets the total weighting of the question
$this -> updateWeighting($questionWeighting);
$this -> save();
}
function return_header($feedback_type, $counter = null) {
parent::return_header($feedback_type, $counter);
$header = '<table width="100%" border="0" cellspacing="3" cellpadding="3">
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td><i>'.get_lang("Choice").'</i> </td>
<td><i>'. get_lang("ExpectedChoice").'</i></td>
<td><i>'. get_lang("Answer").'</i></td>';
if ($feedback_type != EXERCISE_FEEDBACK_TYPE_EXAM) {
$header .= '<td><i>'.get_lang("Comment").'</i></td>';
} else {
$header .= '<td>&nbsp;</td>';
}
$header .= '
</tr>
<tr>
<td>&nbsp;</td>
</tr>';
return $header;
}
}

@ -275,5 +275,28 @@ class MultipleAnswerTrueFalse extends Question {
$this -> updateWeighting($questionWeighting);
$this -> save();
}
function return_header($feedback_type, $counter = null) {
parent::return_header($feedback_type, $counter);
$header = '<table width="100%" border="0" cellspacing="3" cellpadding="3">
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td><i>'.get_lang("Choice").'</i> </td>
<td><i>'. get_lang("ExpectedChoice").'</i></td>
<td><i>'. get_lang("Answer").'</i></td>';
if ($feedback_type != EXERCISE_FEEDBACK_TYPE_EXAM) {
$header .= '<td><i>'.get_lang("Comment").'</i></td>';
} else {
$header .= '<td>&nbsp;</td>';
}
$header .= '
</tr>
<tr>
<td>&nbsp;</td>
</tr>';
return $header;
}
}
endif;

@ -1218,13 +1218,11 @@ abstract class Question
echo '</ul>';
}
static function get_types_information()
{
static function get_types_information(){
return self::$questionTypes;
}
static function updateId()
{
static function updateId() {
return self::$questionTypes;
}
@ -1259,6 +1257,16 @@ abstract class Question
$result = Database::select('*', $TBL_EXERCICE_QUESTION_OPTION, array('where'=>array('question_id = ?' =>$question_id), 'order'=>'id ASC'));
return $result;
}
function return_header($feedback_type, $counter = null) {
$counter_label = '';
if (!is_null($counter)) {
$counter = intval($counter);
}
echo Display::div(get_lang("Question").' '.($counter_label).' : '.$this->question, array('id'=>'question_title', 'class'=>'sectiontitle'));
echo Display::div($this->description, array('id'=>'question_description'));
}
}
endif;
?>

@ -370,7 +370,29 @@ class UniqueAnswer extends Question {
// sets the total weighting of the question
$this -> updateWeighting($questionWeighting);
$this -> save();
}
function return_header($feedback_type, $counter = null) {
parent::return_header($feedback_type, $counter);
$header = '<table width="100%" border="0" cellspacing="3" cellpadding="3">
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td><i>'.get_lang("Choice").'</i> </td>
<td><i>'. get_lang("ExpectedChoice").'</i></td>
<td><i>'. get_lang("Answer").'</i></td>';
if ($feedback_type != EXERCISE_FEEDBACK_TYPE_EXAM) {
$header .= '<td><i>'.get_lang("Comment").'</i></td>';
} else {
$header .= '<td>&nbsp;</td>';
}
$header .= '
</tr>
<tr>
<td>&nbsp;</td>
</tr>';
return $header;
}
}
endif;

@ -449,7 +449,7 @@ class UniqueAnswerNoOption extends Question {
$comment = trim($form -> getSubmitValue('comment['.$i.']'));
$weighting = trim($form -> getSubmitValue('weighting['.$i.']'));
$goodAnswer= ($correct == $i) ? true : false;
$dest = '';
$dest = '';
$objAnswer -> createAnswer($answer,$goodAnswer,$comment,$weighting,$i,NULL,NULL,$dest);
@ -459,7 +459,29 @@ class UniqueAnswerNoOption extends Question {
// sets the total weighting of the question
$this -> updateWeighting($questionWeighting);
$this -> save();
}
function return_header($feedback_type, $counter = null) {
parent::return_header($feedback_type, $counter);
$header = '<table width="100%" border="0" cellspacing="3" cellpadding="3">
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td><i>'.get_lang("Choice").'</i> </td>
<td><i>'. get_lang("ExpectedChoice").'</i></td>
<td><i>'. get_lang("Answer").'</i></td>';
if ($feedback_type != EXERCISE_FEEDBACK_TYPE_EXAM) {
$header .= '<td><i>'.get_lang("Comment").'</i></td>';
} else {
$header .= '<td>&nbsp;</td>';
}
$header .= '
</tr>
<tr>
<td>&nbsp;</td>
</tr>';
return $header;
}
}
endif;

@ -43,6 +43,13 @@ if ($eval[0]->get_category_id() < 0) {
$currentcat= Category :: load($eval[0]->get_category_id());
//load the result with the evaluation id
if (isset ($_GET['delete_mark'])) {
$result = Result :: load($_GET['delete_mark']);
if (!empty( $result[0])) {
$result[0]->delete();
}
}
if (isset ($_GET['selecteval'])) {
$allresults= Result :: load(null,null,$select_eval);
$iscourse= $currentcat[0]->get_course_code() == null ? 1 : 0;

@ -138,6 +138,7 @@ class ResultTable extends SortableTable
$status=CourseManager::get_user_in_course_status(api_get_user_id(), api_get_course_id());
if (api_is_allowed_to_edit(null, true)) {//api_is_course_admin()
$edit_column = '<a href="' . api_get_self() . '?editres=' . $item['result_id'] . '&selecteval=' . $this->evaluation->get_id() . '"><img src="../img/edit.gif" border="0" title="' . get_lang('Modify') . '" alt="" /></a>';
$edit_column .= ' <a href="' . api_get_self() . '?delete_mark=' . $item['result_id'] . '&selecteval=' . $this->evaluation->get_id() . '"><img src="../img/delete.gif" border="0" title="' . get_lang('Delete') . '" alt="" /></a>';
}
if ($this->evaluation->get_course_code() == null) {
$edit_column.= '&nbsp;<a href="' . api_get_self() . '?resultdelete=' . $item['result_id'] . '&selecteval=' . $this->evaluation->get_id() . '" onclick="return confirmationuser();"><img src="../img/delete.gif" border="0" title="' . get_lang('Delete') . '" alt="" /></a>';

@ -92,9 +92,12 @@ if (isset ($_GET['selecteval'])) {
'url' => 'gradebook_view_result.php?selecteval=' . Security::remove_XSS($_GET['selecteval']),
'name' => get_lang('ViewResult'
));
$actions.= '<a href=gradebook_view_result.php?selecteval=' . Security::remove_XSS($_GET['selecteval']) . '><img src=../img/lp_leftarrow.gif alt=' . get_lang('BackToEvaluation') . ' align=absmiddle/> ' . get_lang('BackToEvaluation') . '</a>&nbsp&nbsp';
$actions.= '<a href=gradebook_view_result.php?selecteval=' . Security::remove_XSS($_GET['selecteval']) . '>
'.Display::return_icon('back.png', get_lang('BackToEvaluation'),'','32').'</a>';
}
$actions.= '<a href="' . api_get_self() . '?exportpdf=&userid='.Security::remove_XSS($_GET['userid']).'&selectcat=' . $category[0]->get_id() . '" target="_blank"><img src=../img/icons/32/pdf.png alt=' . get_lang('ExportPDF') . '/> ' . get_lang('ExportPDF') . '</a>';
$actions.= '<a href="' . api_get_self() . '?exportpdf=&userid='.Security::remove_XSS($_GET['userid']).'&selectcat=' . $category[0]->get_id() . '" target="_blank">
' . Display::return_icon('pdf.png', get_lang('ExportPDF'),'','32').'</a>';
$actions.='</div>';
Display :: display_header(get_lang('ResultsPerUser'));

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 775 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 538 B

After

Width:  |  Height:  |  Size: 334 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 782 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 797 B

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 797 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 414 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 361 B

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 361 B

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

@ -51,7 +51,7 @@ learnpath_section modif nuvola (16 px lp_dokeos_chapter.png and lp_dir.png into
view_left_right nuvola
move_learnpath modif nuvola
move_learnpath_na modif nuvola
scorms nuvola (and 22 px gif version for home page)
scorms nuvola (and 22 px gif version for home page)
scorms_na modif nuvola (and 22 px gif version for home page)
view_remove.png nuvola
view_remove_na.png modif nuvola
@ -78,7 +78,7 @@ stats crystal
percentage nuvola
pdf crystal
printer nuvola
gradebook crystal (and 22 px gif version for home page)
gradebook crystal (and 22 px gif version for home page)
gradebook_na modif crystal (and 22 px gif version for home page)
empty_evaluation crystal
no_empty_evaluation modif crystal
@ -120,7 +120,8 @@ user_unsubscribe_course modif nuvola
teacher_unsubscribe_session modif nuvola
session modif nuvola
--
chat nuvola (and 22 px gif version for home page)
chat nuvola (and 22 px gif version for home page)
chat_na modif nuvola (and 22 px gif version for home page)
--
thread nuvola
search nuvola
@ -147,8 +148,26 @@ search crystal (only 32 px)
survey crystal
new_survey modif crystal
clean tango
---
--
group_summary modif nuvola
--
blog modif nuvola
new_blog modif nuvola
blog_tasks
new_article modif nuvola
blog_admin_users modif nuvola
blog_admin modif nuvola (and 22 px gif version for home page)
blog_admin_na modif nuvola (and 22 px gif version for home page)
--
course_progress modif mix gnome crystal
--
mail crystal
--
notes nuvola
new_note modif nuvola
notes_order_by_date_modif modif crystal (only 32 px)
notes_order_by_date_new modif modif crystal (only 32 px)
notes_order_by_title modif crystal (only 32 px)
--julio
star

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

@ -2144,7 +2144,7 @@ function fill_Db_course($course_db_name, $course_repository, $language, $default
Database::query("INSERT INTO `" . $tbl_course_homepage . "` VALUES (NULL, '" . TOOL_COURSE_DESCRIPTION . "','course_description/','info.gif','".string2binary(api_get_setting('course_create_active_tools', 'course_description')) . "','0','squaregrey.gif','NO','_self','authoring','0')");
Database::query("INSERT INTO `" . $tbl_course_homepage . "` VALUES (NULL, '" . TOOL_CALENDAR_EVENT . "','calendar/agenda.php','agenda.gif','".string2binary(api_get_setting('course_create_active_tools', 'agenda')) . "','0','squaregrey.gif','NO','_self','interaction','0')");
Database::query("INSERT INTO `" . $tbl_course_homepage . "` VALUES (NULL, '" . TOOL_DOCUMENT . "','document/document.php','folder_document.gif','".string2binary(api_get_setting('course_create_active_tools', 'documents')) . "','0','squaregrey.gif','NO','_self','authoring','0')");
Database::query("INSERT INTO `" . $tbl_course_homepage . "` VALUES (NULL, '" . TOOL_LEARNPATH . "','newscorm/lp_controller.php','icons/22/scorms.gif','".string2binary(api_get_setting('course_create_active_tools', 'learning_path')) . "','0','squaregrey.gif','NO','_self','authoring','0')");
Database::query("INSERT INTO `" . $tbl_course_homepage . "` VALUES (NULL, '" . TOOL_LEARNPATH . "','newscorm/lp_controller.php','scorms.gif','".string2binary(api_get_setting('course_create_active_tools', 'learning_path')) . "','0','squaregrey.gif','NO','_self','authoring','0')");
Database::query("INSERT INTO `" . $tbl_course_homepage . "` VALUES (NULL, '" . TOOL_LINK . "','link/link.php','links.gif','".string2binary(api_get_setting('course_create_active_tools', 'links')) . "','0','squaregrey.gif','NO','_self','authoring','0')");
Database::query("INSERT INTO `" . $tbl_course_homepage . "` VALUES (NULL, '" . TOOL_QUIZ . "','exercice/exercice.php','quiz.gif','".string2binary(api_get_setting('course_create_active_tools', 'quiz')) . "','0','squaregrey.gif','NO','_self','authoring','0')");
Database::query("INSERT INTO `" . $tbl_course_homepage . "` VALUES (NULL, '" . TOOL_ANNOUNCEMENT . "','announcements/announcements.php','valves.gif','".string2binary(api_get_setting('course_create_active_tools', 'announcements')) . "','0','squaregrey.gif','NO','_self','authoring','0')");
@ -2152,11 +2152,11 @@ function fill_Db_course($course_db_name, $course_repository, $language, $default
Database::query("INSERT INTO `" . $tbl_course_homepage . "` VALUES (NULL, '" . TOOL_DROPBOX . "','dropbox/index.php','dropbox.gif','".string2binary(api_get_setting('course_create_active_tools', 'dropbox')) . "','0','squaregrey.gif','NO','_self','interaction','0')");
Database::query("INSERT INTO `" . $tbl_course_homepage . "` VALUES (NULL, '" . TOOL_USER . "','user/user.php','members.gif','".string2binary(api_get_setting('course_create_active_tools', 'users')) . "','0','squaregrey.gif','NO','_self','interaction','0')");
Database::query("INSERT INTO `" . $tbl_course_homepage . "` VALUES (NULL, '" . TOOL_GROUP . "','group/group.php','group.gif','".string2binary(api_get_setting('course_create_active_tools', 'groups')) . "','0','squaregrey.gif','NO','_self','interaction','0')");
Database::query("INSERT INTO `" . $tbl_course_homepage . "` VALUES (NULL, '" . TOOL_CHAT . "','chat/chat.php','icons/22/chat.gif','".string2binary(api_get_setting('course_create_active_tools', 'chat')) . "','0','squaregrey.gif','NO','_self','interaction','0')");
Database::query("INSERT INTO `" . $tbl_course_homepage . "` VALUES (NULL, '" . TOOL_CHAT . "','chat/chat.php','chat.gif','".string2binary(api_get_setting('course_create_active_tools', 'chat')) . "','0','squaregrey.gif','NO','_self','interaction','0')");
Database::query("INSERT INTO `" . $tbl_course_homepage . "` VALUES (NULL, '" . TOOL_STUDENTPUBLICATION . "','work/work.php','works.gif','".string2binary(api_get_setting('course_create_active_tools', 'student_publications')) . "','0','squaregrey.gif','NO','_self','interaction','0')");
Database::query("INSERT INTO `" . $tbl_course_homepage . "` VALUES (NULL, '" . TOOL_SURVEY."','survey/survey_list.php','survey.gif','".string2binary(api_get_setting('course_create_active_tools', 'survey')) . "','0','squaregrey.gif','NO','_self','interaction','0')");
Database::query("INSERT INTO `" . $tbl_course_homepage . "` VALUES (NULL, '" . TOOL_WIKI ."','wiki/index.php','wiki.gif','".string2binary(api_get_setting('course_create_active_tools', 'wiki')) . "','0','squaregrey.gif','NO','_self','interaction','0')");
Database::query("INSERT INTO `" . $tbl_course_homepage . "` VALUES (NULL, '" . TOOL_GRADEBOOK."','gradebook/index.php','icons/22/gradebook.gif','".string2binary(api_get_setting('course_create_active_tools', 'gradebook')). "','0','squaregrey.gif','NO','_self','authoring','0')");
Database::query("INSERT INTO `" . $tbl_course_homepage . "` VALUES (NULL, '" . TOOL_GRADEBOOK."','gradebook/index.php','gradebook.gif','".string2binary(api_get_setting('course_create_active_tools', 'gradebook')). "','0','squaregrey.gif','NO','_self','authoring','0')");
Database::query("INSERT INTO `" . $tbl_course_homepage . "` VALUES (NULL, '" . TOOL_GLOSSARY."','glossary/index.php','glossary.gif','".string2binary(api_get_setting('course_create_active_tools', 'glossary')). "','0','squaregrey.gif','NO','_self','authoring','0')");
Database::query("INSERT INTO `" . $tbl_course_homepage . "` VALUES (NULL, '" . TOOL_NOTEBOOK."','notebook/index.php','notebook.gif','".string2binary(api_get_setting('course_create_active_tools', 'notebook'))."','0','squaregrey.gif','NO','_self','interaction','0')");
Database::query("INSERT INTO `" . $tbl_course_homepage . "` VALUES (NULL, '" . TOOL_ATTENDANCE."','attendance/index.php','attendance.gif','".string2binary(api_get_setting('course_create_active_tools', 'attendances'))."','0','squaregrey.gif','NO','_self','authoring','0')");

@ -1379,7 +1379,7 @@ class Blog {
echo '<a href="' .api_get_self(). '?action=manage_tasks&amp;blog_id=' . $blog_id . '&amp;do=add"><img src="../img/blog_newtasks.gif" border="0" align="middle" alt="'.get_lang('AddTasks').'" />' . get_lang('AddTasks') . '</a> ';
echo '<a href="' .api_get_self(). '?action=manage_tasks&amp;blog_id=' . $blog_id . '&amp;do=assign"><img src="../img/blog_task.gif" border="0" align="middle" alt="'.get_lang('AssignTasks').'" />' . get_lang('AssignTasks') . '</a>';
?>
<a href="<?php echo api_get_self(); ?>?action=manage_rights&amp;blog_id=<?php echo $blog_id ?>" title="<?php echo get_lang('ManageRights') ?>"><?php echo Display::return_icon('blog_user.gif', get_lang('RightsManager')). get_lang('RightsManager') ?></a>
<a href="<?php echo api_get_self(); ?>?action=manage_rights&amp;blog_id=<?php echo $blog_id ?>" title="<?php echo get_lang('ManageRights') ?>"><?php echo Display::return_icon('blog_admin_users.png', get_lang('RightsManager'),'','22'). get_lang('RightsManager') ?></a>
<?php
echo '</div>';

@ -2261,7 +2261,7 @@ function api_not_allowed($print_headers = false) {
//if the access is not authorized and there is some login information
// but the cidReq is not found, assume we are missing course data and send the user
// to the user_portal
if ((!headers_sent() or $print_headers) && $origin != 'learnpath') { Display::display_header(''); }
if ((!headers_sent() or $print_headers) && $origin != 'learnpath') { Display::display_header(null); }
echo '<div align="center">';
Display::display_error_message(get_lang('NotAllowedClickBack').'<br /><br /><a href="'.$_SERVER['HTTP_REFERER'].'">'.get_lang('BackToPreviousPage').'</a><br />', false);
echo '</div>';
@ -2271,7 +2271,7 @@ function api_not_allowed($print_headers = false) {
if (!empty($_SERVER['REQUEST_URI']) && (!empty($_GET['cidReq']) || $this_section == SECTION_MYPROFILE)) {
//only display form and return to the previous URL if there was a course ID included
if (!empty($user) && !api_is_anonymous()) {
if ((!headers_sent() || $print_headers) && $origin != 'learnpath') { Display::display_header(''); }
if ((!headers_sent() || $print_headers) && $origin != 'learnpath') { Display::display_header(null); }
echo '<div align="center">';
Display::display_error_message(get_lang('NotAllowedClickBack').'<br /><br /><a href="'.$_SERVER['HTTP_REFERER'].'">'.get_lang('BackToPreviousPage').'</a><br />', false);
echo '</div>';
@ -2284,7 +2284,7 @@ function api_not_allowed($print_headers = false) {
$form->addElement('password', 'password', get_lang('Password'), array('size' => 17));
$form->addElement('style_submit_button', 'submitAuth', get_lang('LoginEnter'),'class="login"');
if ((!headers_sent() || $print_headers) && $origin != 'learnpath') { Display::display_header(''); }
if ((!headers_sent() || $print_headers) && $origin != 'learnpath') { Display::display_header(null); }
Display::display_error_message(get_lang('NotAllowed').'<br />'.get_lang('PleaseLoginAgainFromFormBelow').'<br />', false);
echo '<div class="menu" id="menu" style="float:left">';

@ -166,18 +166,18 @@ class NotebookManager
//{
if (!api_is_anonymous()) {
if (api_get_session_id()==0)
echo '<a href="index.php?'.api_get_cidreq().'&amp;action=addnote">'.Display::return_icon('filenew.gif',get_lang('NoteAddNew')).get_lang('NoteAddNew').'</a>';
echo '<a href="index.php?'.api_get_cidreq().'&amp;action=addnote">'.Display::return_icon('new_note.png',get_lang('NoteAddNew'),'','32').'</a>';
elseif(api_is_allowed_to_session_edit(false,true)){
echo '<a href="index.php?'.api_get_cidreq().'&amp;action=addnote">'.Display::return_icon('filenew.gif',get_lang('NoteAddNew')).get_lang('NoteAddNew').'</a>';
echo '<a href="index.php?'.api_get_cidreq().'&amp;action=addnote">'.Display::return_icon('new_note.png',get_lang('NoteAddNew'),'','32').'</a>';
}
} else {
echo '<a href="javascript:void(0)">'.Display::return_icon('filenew.gif',get_lang('NoteAddNew')).get_lang('NoteAddNew').'</a>';
echo '<a href="javascript:void(0)">'.Display::return_icon('new_note.png',get_lang('NoteAddNew'),'','32').'</a>';
}
//}
echo '<a href="index.php?'.api_get_cidreq().'&amp;action=changeview&amp;view=creation_date&amp;direction='.$link_sort_direction.'">'.Display::return_icon('calendar_select.gif',get_lang('OrderByCreationDate')).get_lang('OrderByCreationDate').'</a>';
echo '<a href="index.php?'.api_get_cidreq().'&amp;action=changeview&amp;view=update_date&amp;direction='.$link_sort_direction.'">'.Display::return_icon('calendar_select.gif',get_lang('OrderByModificationDate')).get_lang('OrderByModificationDate').'</a>';
echo '<a href="index.php?'.api_get_cidreq().'&amp;action=changeview&amp;view=title&amp;direction='.$link_sort_direction.'">'.Display::return_icon('comment.gif',get_lang('OrderByTitle')).get_lang('OrderByTitle').'</a>';
echo '<a href="index.php?'.api_get_cidreq().'&amp;action=changeview&amp;view=creation_date&amp;direction='.$link_sort_direction.'">'.Display::return_icon('notes_order_by_date_new.png',get_lang('OrderByCreationDate'),'','32').'</a>';
echo '<a href="index.php?'.api_get_cidreq().'&amp;action=changeview&amp;view=update_date&amp;direction='.$link_sort_direction.'">'.Display::return_icon('notes_order_by_date_mod.png',get_lang('OrderByModificationDate'),'','32').'</a>';
echo '<a href="index.php?'.api_get_cidreq().'&amp;action=changeview&amp;view=title&amp;direction='.$link_sort_direction.'">'.Display::return_icon('notes_order_by_title.png',get_lang('OrderByTitle'),'','32').'</a>';
echo '</div>';
if (!in_array($_SESSION['notebook_view'],array('creation_date','update_date', 'title'))) {

@ -271,7 +271,7 @@ INSERT INTO course_module VALUES
(8,'quiz','exercice/exercice.php','quiz.gif',2,2,'basic'),
(9,'group','group/group.php','group.gif',3,3,'basic'),
(10,'course_description','course_description/','info.gif',1,3,'basic'),
(11,'chat','chat/chat.php','icons/22/chat.gif',0,0,'external'),
(11,'chat','chat/chat.php','chat.gif',0,0,'external'),
(12,'dropbox','dropbox/index.php','dropbox.gif',4,2,'basic'),
(13,'tracking','tracking/courseLog.php','statistics.gif',1,3,'courseadmin'),
(14,'homepage_link','link/link.php?action=addlink','npage.gif',1,1,'courseadmin'),
@ -280,13 +280,13 @@ INSERT INTO course_module VALUES
(17,'AddedLearnpath','','scormbuilder.gif',0,0,'external'),
(18,'conference','conference/index.php?type=conference','conf.gif',0,0,'external'),
(19,'conference','conference/index.php?type=classroom','conf.gif',0,0,'external'),
(20,'learnpath','newscorm/lp_controller.php','icons/22/scorms.gif',5,1,'basic'),
(20,'learnpath','newscorm/lp_controller.php','scorms.gif',5,1,'basic'),
(21,'blog','blog/blog.php','blog.gif',1,2,'basic'),
(22,'blog_management','blog/blog_admin.php','blog_admin.gif',1,2,'courseadmin'),
(23,'course_maintenance','course_info/maintenance.php','backup.gif',2,3,'courseadmin'),
(24,'survey','survey/survey_list.php','survey.gif',2,1,'basic'),
(25,'wiki','wiki/index.php','wiki.gif',2,3,'basic'),
(26,'gradebook','gradebook/index.php','icons/22/gradebook.gif',2,2,'basic'),
(26,'gradebook','gradebook/index.php','gradebook.gif',2,2,'basic'),
(27,'glossary','glossary/index.php','glossary.gif',2,1,'basic'),
(28,'notebook','notebook/index.php','notebook.gif',2,1,'basic'),
(29,'attendance','attendance/index.php','attendance.gif',2,1,'basic'),

@ -257,18 +257,20 @@ if (!empty ($_GET['student'])) {
// Actions bar
echo '<div class="actions">';
echo '&nbsp;<a href="javascript: window.back();" ">'.Display::return_icon('back.png', get_lang('Back')).get_lang('Back').'</a>';
echo '<a href="javascript: window.back();" ">'.Display::return_icon('back.png', get_lang('Back'),'','32').'</a>';
echo '<a href="javascript: void(0);" onclick="javascript: window.print();"><img src="../img/printmgr.gif">&nbsp;' . get_lang('Print') . '</a>';
echo '<a href="' . api_get_self() . '?' . Security :: remove_XSS($_SERVER['QUERY_STRING']) . '&export=csv"><img src="../img/csv.gif">&nbsp;' . get_lang('ExportAsCSV') . '</a>';
echo '<a href="javascript: void(0);" onclick="javascript: window.print();">
'.Display::return_icon('printer.png', get_lang('Print'),'','32').'</a>';
echo '<a href="' . api_get_self() . '?' . Security :: remove_XSS($_SERVER['QUERY_STRING']) . '&export=csv">
'.Display::return_icon('export_csv.png', get_lang('ExportAsCSV'),'','32').'</a>';
if (!empty ($info_user['email'])) {
$send_mail = Display :: return_icon('send_mail.gif', get_lang('SendMail')) . ' ' . Display :: encrypted_mailto_link($info_user['email'], get_lang('SendMail'));
$send_mail = '<a href="mailto:'.$info_user['email'].'">'.Display :: return_icon('mail_send.png', get_lang('SendMail'),'','32').'</a>';
} else {
$send_mail = Display :: return_icon('send_mail.gif', get_lang('SendMail')) . ' ' . get_lang('SendMail');
$send_mail = Display :: return_icon('mail_send_na.png', get_lang('SendMail'),'','32');
}
echo $send_mail;
if (!empty ($_GET['student']) && !empty ($_GET['course'])) { //only show link to connection details if course and student were defined in the URL
echo '<a href="access_details.php?student=' . Security :: remove_XSS($_GET['student']) . '&course=' . Security :: remove_XSS($_GET['course']) . '&amp;origin=' . Security :: remove_XSS($_GET['origin']) . '&amp;cidReq='.Security::remove_XSS($_GET['course']).'&amp;id_session='.$session_id.'">' . Display :: return_icon('statistics.gif', get_lang('AccessDetails')) . ' ' . get_lang('AccessDetails') . '</a>';
echo '<a href="access_details.php?student=' . Security :: remove_XSS($_GET['student']) . '&course=' . Security :: remove_XSS($_GET['course']) . '&amp;origin=' . Security :: remove_XSS($_GET['origin']) . '&amp;cidReq='.Security::remove_XSS($_GET['course']).'&amp;id_session='.$session_id.'">' . Display :: return_icon('statistics.png', get_lang('AccessDetails'),'','32').'</a>';
}
echo '</div>';

@ -100,7 +100,7 @@ if (isset($_GET['action']) && $_GET['action'] == 'addnote') {
NotebookManager::display_notes();
} else {
echo '<div class="actions">';
echo '<a href="index.php">'.Display::return_icon('back.png').' '.get_lang('BackToNotesList').'</a>';
echo '<a href="index.php">'.Display::return_icon('back.png',get_lang('BackToNotesList'),'','32').'</a>';
echo '</div>';
$token = Security::get_token();
$form->addElement('hidden', 'sec_token');
@ -152,7 +152,7 @@ elseif (isset($_GET['action']) && $_GET['action'] == 'editnote' && is_numeric($_
NotebookManager::display_notes();
} else {
echo '<div class="actions">';
echo '<a href="index.php">'.Display::return_icon('back.png').' '.get_lang('BackToNotesList').'</a>';
echo '<a href="index.php">'.Display::return_icon('back.png',get_lang('BackToNotesList'),'','32').'</a>';
echo '</div>';
$token = Security::get_token();
$form->addElement('hidden', 'sec_token');

@ -166,10 +166,12 @@ if ($_GET['studentlist'] == 'false') {
echo ' | <a href="exams.php?'.api_get_cidreq().'">'.get_lang('ExamTracking').'</a>&nbsp;';*/
}
echo '&nbsp;<a href="javascript: void(0);" onclick="javascript: window.print();">'.Display::return_icon('printmgr.gif', get_lang('Print')).get_lang('Print').'</a>';
echo '<a href="javascript: void(0);" onclick="javascript: window.print();">'.Display::return_icon('printer.png', get_lang('Print'),'','32').'</a>';
if ($_GET['studentlist'] == 'false') {
echo '<a href="'.api_get_self().'?'.api_get_cidreq().'&id_session='.api_get_session_id().'&export=csv&studentlist=false"><img align="absbottom" src="../img/excel.gif">&nbsp;'.get_lang('ExportAsCSV').'</a>';
echo '<a href="'.api_get_self().'?'.api_get_cidreq().'&id_session='.api_get_session_id().'&export=csv&studentlist=false">
'.Display::return_icon('export_csv.png', get_lang('ExportAsCSV'),'','32').'</a>';
} elseif ($_GET['studentlist'] == '' || $_GET['studentlist'] == 'true') {
$addional_param = '';
if (isset($_GET['additional_profile_field'])) {
@ -178,7 +180,8 @@ if ($_GET['studentlist'] == 'false') {
if (isset($_GET['users_tracking_per_page'])) {
$users_tracking_per_page= '&users_tracking_per_page='.intval($_GET['users_tracking_per_page']);
}
echo '<a href="'.api_get_self().'?'.api_get_cidreq().'&export=csv&'.$addional_param.$users_tracking_per_page.'">'.Display::return_icon('csv.gif',get_lang('ExportAsCSV')).get_lang('ExportAsCSV').'</a>';
echo '<a href="'.api_get_self().'?'.api_get_cidreq().'&export=csv&'.$addional_param.$users_tracking_per_page.'">
'.Display::return_icon('export_csv.png', get_lang('ExportAsCSV'),'','32').'</a>';
}
echo '</div>';

@ -580,7 +580,7 @@ function modify_filter($user_id) {
$result="<div style='text-align: center'>";
if ($is_allowed_to_track) {
$result .= '<a href="../mySpace/myStudents.php?'.api_get_cidreq().'&student='.$user_id.'&amp;details=true&amp;course='.$_course['id'].'&amp;origin=user_course&amp;id_session='.$_SESSION["id_session"].'" title="'.get_lang('Tracking').'" ><img border="0" alt="'.get_lang('Tracking').'" src="../img/statistics.gif" /></a>&nbsp;';
$result .= '<a href="../mySpace/myStudents.php?'.api_get_cidreq().'&student='.$user_id.'&amp;details=true&amp;course='.$_course['id'].'&amp;origin=user_course&amp;id_session='.$_SESSION["id_session"].'" title="'.get_lang('Tracking').'" ><img border="0" alt="'.get_lang('Tracking').'" src="../img/icons/22/stats.png" /></a>';
}
if (api_is_allowed_to_edit(null, true)) {

Loading…
Cancel
Save