Yannick Warnier 14 years ago
parent
commit
c0172bcde9
83 changed files with 575 additions and 575 deletions
  1. 4 4
      main/blog/blog.php
  2. 1 1
      main/blog/blog_admin.php
  3. 14 14
      main/course_info/infocours.php
  4. 7 6
      main/course_progress/thematic_advance.php
  5. 68 33
      main/exercice/exercise.class.php
  6. 77 163
      main/exercice/exercise_result.php
  7. 152 274
      main/exercice/exercise_show.php
  8. 16 1
      main/exercice/fill_blanks.class.php
  9. 18 20
      main/exercice/freeanswer.class.php
  10. 15 4
      main/exercice/matching.class.php
  11. 29 13
      main/exercice/multiple_answer.class.php
  12. 23 1
      main/exercice/multiple_answer_combination.class.php
  13. 23 0
      main/exercice/multiple_answer_true_false.class.php
  14. 12 4
      main/exercice/question.class.php
  15. 23 1
      main/exercice/unique_answer.class.php
  16. 24 2
      main/exercice/unique_answer_no_option.class.php
  17. 7 0
      main/gradebook/gradebook_view_result.php
  18. 1 0
      main/gradebook/lib/fe/resulttable.class.php
  19. 5 2
      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. 23 4
      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 0
      main/img/scorms.gif
  72. 0 0
      main/img/scorms_na.gif
  73. BIN
      main/img/statistics.gif
  74. BIN
      main/img/statistics_bis.gif
  75. 3 3
      main/inc/lib/add_course.lib.inc.php
  76. 1 1
      main/inc/lib/blog.lib.php
  77. 3 3
      main/inc/lib/main_api.lib.php
  78. 6 6
      main/inc/lib/notebook.lib.php
  79. 3 3
      main/install/db_main.sql
  80. 8 6
      main/mySpace/myStudents.php
  81. 2 2
      main/notebook/index.php
  82. 6 3
      main/tracking/courseLog.php
  83. 1 1
      main/user/user.php

+ 4 - 4
main/blog/blog.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>';
 

+ 1 - 1
main/blog/blog_admin.php

@@ -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>';
 
 	/*

+ 14 - 14
main/course_info/infocours.php

@@ -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

+ 7 - 6
main/course_progress/thematic_advance.php

@@ -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'];
 		}		
 	}

+ 68 - 33
main/exercice/exercise.class.php

@@ -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;
 ?>

+ 77 - 163
main/exercice/exercise_result.php

@@ -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') {

+ 152 - 274
main/exercice/exercise_show.php

@@ -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) {

+ 16 - 1
main/exercice/fill_blanks.class.php

@@ -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;

+ 18 - 20
main/exercice/freeanswer.class.php

@@ -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;
 ?>

+ 15 - 4
main/exercice/matching.class.php

@@ -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>';
+                    
+		}
+
 
 }
 

+ 29 - 13
main/exercice/multiple_answer.class.php

@@ -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;	    
 	}
 
 }

+ 23 - 1
main/exercice/multiple_answer_combination.class.php

@@ -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;	  
 	}
 
 }

+ 23 - 0
main/exercice/multiple_answer_true_false.class.php

@@ -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;

+ 12 - 4
main/exercice/question.class.php

@@ -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;
 ?>

+ 23 - 1
main/exercice/unique_answer.class.php

@@ -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;

+ 24 - 2
main/exercice/unique_answer_no_option.class.php

@@ -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;

+ 7 - 0
main/gradebook/gradebook_view_result.php

@@ -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;

+ 1 - 0
main/gradebook/lib/fe/resulttable.class.php

@@ -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>';

+ 5 - 2
main/gradebook/user_stats.php

@@ -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'));

BIN
main/img/blog.gif


BIN
main/img/blog_admin.gif


BIN
main/img/blog_admin_na.gif


BIN
main/img/blog_na.gif


BIN
main/img/blog_new.gif


BIN
main/img/chat.gif


BIN
main/img/chat_na.gif


BIN
main/img/course_progress.gif


BIN
main/img/course_progress_bis.gif


BIN
main/img/course_progress_na.gif


BIN
main/img/course_progress_na_bis.gif


BIN
main/img/gradebook.gif


BIN
main/img/gradebook_na.gif


BIN
main/img/icons/22/blog_admin.png


BIN
main/img/icons/22/blog_admin_na.png


BIN
main/img/icons/22/blog_admin_users.png


BIN
main/img/icons/22/chat.gif


BIN
main/img/icons/22/chat_na.png


BIN
main/img/icons/22/course.png


BIN
main/img/icons/22/course_progress.png


BIN
main/img/icons/22/gradebook.gif


BIN
main/img/icons/22/gradebook_na.gif


BIN
main/img/icons/22/mail.png


BIN
main/img/icons/22/settings.png


BIN
main/img/icons/22/user.png


BIN
main/img/icons/32/blog.png


BIN
main/img/icons/32/blog_admin_users.png


BIN
main/img/icons/32/blog_tasks.png


BIN
main/img/icons/32/course_progress.png


BIN
main/img/icons/32/mail.png


BIN
main/img/icons/32/mail_send_na.png


BIN
main/img/icons/32/new_article.png


BIN
main/img/icons/32/new_blog.png


BIN
main/img/icons/32/new_note.png


BIN
main/img/icons/32/notes.png


BIN
main/img/icons/32/notes_order_by_date_mod.png


BIN
main/img/icons/32/notes_order_by_date_new.png


BIN
main/img/icons/32/notes_order_by_title.png


+ 23 - 4
main/img/icons/48/_sum.txt

@@ -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				

BIN
main/img/icons/48/blog.png


BIN
main/img/icons/48/blog_admin.png


BIN
main/img/icons/48/blog_admin_na.png


BIN
main/img/icons/48/blog_admin_users.png


BIN
main/img/icons/48/blog_tasks.png


BIN
main/img/icons/48/chat_na.png


BIN
main/img/icons/48/course_progress.png


BIN
main/img/icons/48/mail.png


BIN
main/img/icons/48/new_article.png


BIN
main/img/icons/48/new_blog.png


BIN
main/img/icons/48/new_note.png


BIN
main/img/icons/48/notes.png


+ 0 - 0
main/img/icons/22/scorms.gif → main/img/scorms.gif


+ 0 - 0
main/img/icons/22/scorms_na.gif → main/img/scorms_na.gif


BIN
main/img/statistics.gif


BIN
main/img/statistics_bis.gif


+ 3 - 3
main/inc/lib/add_course.lib.inc.php

@@ -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')");

+ 1 - 1
main/inc/lib/blog.lib.php

@@ -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>';
 

+ 3 - 3
main/inc/lib/main_api.lib.php

@@ -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">';

+ 6 - 6
main/inc/lib/notebook.lib.php

@@ -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'))) {

+ 3 - 3
main/install/db_main.sql

@@ -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'),

+ 8 - 6
main/mySpace/myStudents.php

@@ -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>';
     

+ 2 - 2
main/notebook/index.php

@@ -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');

+ 6 - 3
main/tracking/courseLog.php

@@ -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>';
 

+ 1 - 1
main/user/user.php

@@ -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)) {