Merge branch '1.10.x' of github.com:chamilo/chamilo-lms into 1.10.x

1.10.x
Yannick Warnier 10 years ago
commit d22cbfbd13
  1. 14
      main/announcements/announcements.php
  2. 25
      main/blog/blog_admin.php
  3. 27
      main/exercice/exercise_report.php
  4. 127
      main/exercice/exercise_show.php
  5. 4
      main/gradebook/certificate_report.php
  6. 12
      main/gradebook/gradebook.php
  7. 2
      main/gradebook/gradebook_add_cat.php
  8. 2
      main/gradebook/gradebook_flatview.php
  9. 86
      main/gradebook/gradebook_view_result.php
  10. 3
      main/gradebook/lib/fe/displaygradebook.php
  11. 71
      main/gradebook/lib/fe/exportgradebook.php
  12. 34
      main/group/group_creation.php
  13. 4
      main/inc/lib/AnnouncementManager.php
  14. 1
      main/inc/lib/agenda.lib.php
  15. 1
      main/inc/lib/api.lib.php
  16. 19
      main/inc/lib/formvalidator/FormValidator.class.php
  17. 94
      main/inc/lib/message.lib.php
  18. 6
      main/inc/lib/phpmailer/class.phpmailer.php
  19. 25
      main/inc/lib/usermanager.lib.php
  20. 25
      main/messages/inbox.php
  21. 30
      main/messages/outbox.php
  22. 19
      main/session/session_add.php

@ -51,6 +51,7 @@ $tbl_item_property = Database::get_course_table(TABLE_ITEM_PROPERTY);
$course_id = api_get_course_int_id(); $course_id = api_get_course_int_id();
$_course = api_get_course_info_by_id($course_id); $_course = api_get_course_info_by_id($course_id);
$group_id = api_get_group_id(); $group_id = api_get_group_id();
$sessionId = api_get_session_id();
api_protect_course_group(GroupManager::GROUP_TOOL_ANNOUNCEMENT); api_protect_course_group(GroupManager::GROUP_TOOL_ANNOUNCEMENT);
@ -142,7 +143,7 @@ switch ($action) {
); );
$searchForm->addElement('text', 'keyword', get_lang('Title')); $searchForm->addElement('text', 'keyword', get_lang('Title'));
$users = CourseManager::get_user_list_from_course_code(api_get_course_id(), api_get_session_id()); $users = CourseManager::get_user_list_from_course_code(api_get_course_id(), $sessionId);
$userList = array('' => ''); $userList = array('' => '');
if (!empty($users)) { if (!empty($users)) {
foreach ($users as $user) { foreach ($users as $user) {
@ -270,7 +271,7 @@ switch ($action) {
case 'delete': case 'delete':
/* Delete announcement */ /* Delete announcement */
$id = intval($_GET['id']); $id = intval($_GET['id']);
if (api_get_session_id() != 0 && api_is_allowed_to_session_edit(false, true) == false) { if ($sessionId != 0 && api_is_allowed_to_session_edit(false, true) == false) {
api_not_allowed(); api_not_allowed();
} }
@ -302,7 +303,7 @@ switch ($action) {
case 'showhide': case 'showhide':
if (!isset($_GET['isStudentView']) || $_GET['isStudentView'] != 'false') { if (!isset($_GET['isStudentView']) || $_GET['isStudentView'] != 'false') {
if (isset($_GET['id']) && $_GET['id']) { if (isset($_GET['id']) && $_GET['id']) {
if (api_get_session_id() != 0 && if ($sessionId != 0 &&
api_is_allowed_to_session_edit(false, true) == false api_is_allowed_to_session_edit(false, true) == false
) { ) {
api_not_allowed(); api_not_allowed();
@ -326,7 +327,7 @@ switch ($action) {
break; break;
case 'add': case 'add':
case 'modify': case 'modify':
if (api_get_session_id() != 0 && if ($sessionId != 0 &&
api_is_allowed_to_session_edit(false, true) == false api_is_allowed_to_session_edit(false, true) == false
) { ) {
api_not_allowed(true); api_not_allowed(true);
@ -371,7 +372,7 @@ switch ($action) {
$to = Tracking:: getInactiveStudentsInCourse( $to = Tracking:: getInactiveStudentsInCourse(
api_get_course_int_id(), api_get_course_int_id(),
$since, $since,
api_get_session_id() $sessionId
); );
// setting the variables for the form elements: the users who need to receive the message // setting the variables for the form elements: the users who need to receive the message
foreach ($to as &$user) { foreach ($to as &$user) {
@ -473,7 +474,7 @@ switch ($action) {
$form->addElement('textarea', 'file_comment', get_lang('FileComment')); $form->addElement('textarea', 'file_comment', get_lang('FileComment'));
$form->addElement('hidden', 'sec_token', $stok); $form->addElement('hidden', 'sec_token', $stok);
if (api_get_session_id() == 0) { if (empty($sessionId)) {
$form->addCheckBox('send_to_users_in_session', null, get_lang('SendToUsersInSessions')); $form->addCheckBox('send_to_users_in_session', null, get_lang('SendToUsersInSessions'));
} }
@ -533,6 +534,7 @@ switch ($action) {
$data['users'], $data['users'],
$file, $file,
$file_comment, $file_comment,
null,
$sendToUsersInSession $sendToUsersInSession
); );
} else { } else {

@ -5,7 +5,7 @@
* BLOG HOMEPAGE * BLOG HOMEPAGE
* This file takes care of all blog navigation and displaying. * This file takes care of all blog navigation and displaying.
* @package chamilo.blogs * @package chamilo.blogs
*/ */
require_once '../inc/global.inc.php'; require_once '../inc/global.inc.php';
$current_course_tool = TOOL_BLOGS; $current_course_tool = TOOL_BLOGS;
@ -33,26 +33,26 @@ if (api_is_allowed_to_edit()) {
$interbreadcrumb[]= array ('url' => 'blog_admin.php?','name' => $nameTools); $interbreadcrumb[]= array ('url' => 'blog_admin.php?','name' => $nameTools);
$my_url=''; $my_url='';
if (isset($_GET['action']) && $_GET['action']=='add') { if (isset($_GET['action']) && $_GET['action']=='add') {
$current_section=get_lang('AddBlog'); $current_section = get_lang('AddBlog');
$my_url='action=add'; $my_url='action=add';
} elseif (isset($_GET['action']) && $_GET['action']=='edit') { } elseif (isset($_GET['action']) && $_GET['action']=='edit') {
$current_section=get_lang('EditBlog'); $current_section = get_lang('EditBlog');
$my_url='action=edit&blog_id='.Security::remove_XSS($_GET['blog_id']); $my_url='action=edit&blog_id='.Security::remove_XSS($_GET['blog_id']);
} }
Display::display_header(''); Display::display_header('');
} }
echo '<div class="actions">'; echo '<div class="actions">';
echo "<a href='".api_get_self()."?".api_get_cidreq()."&action=add'>", echo "<a href='".api_get_self()."?".api_get_cidreq()."&action=add'>",
Display::return_icon('new_blog.png',get_lang('AddBlog'),'',ICON_SIZE_MEDIUM)."</a>"; Display::return_icon('new_blog.png', get_lang('AddBlog'),'',ICON_SIZE_MEDIUM)."</a>";
echo '</div>'; echo '</div>';
if (!empty($_POST['new_blog_submit']) AND !empty($_POST['blog_name'])) { if (!empty($_POST['new_blog_submit']) && !empty($_POST['blog_name'])) {
if (isset($_POST['blog_name'])) { if (isset($_POST['blog_name'])) {
Blog::create_blog($_POST['blog_name'], $_POST['blog_subtitle']); Blog::create_blog($_POST['blog_name'], $_POST['blog_subtitle']);
Display::display_confirmation_message(get_lang('BlogStored')); Display::display_confirmation_message(get_lang('BlogStored'));
} }
} }
if (!empty($_POST['edit_blog_submit']) AND !empty($_POST['blog_name'])) { if (!empty($_POST['edit_blog_submit']) && !empty($_POST['blog_name'])) {
if (strlen(trim($_POST['blog_name']))>0) { if (strlen(trim($_POST['blog_name']))>0) {
Blog::edit_blog($_POST['blog_id'], $_POST['blog_name'], $_POST['blog_subtitle']); Blog::edit_blog($_POST['blog_id'], $_POST['blog_name'], $_POST['blog_subtitle']);
Display::display_confirmation_message(get_lang('BlogEdited')); Display::display_confirmation_message(get_lang('BlogEdited'));
@ -76,16 +76,7 @@ if (api_is_allowed_to_edit()) {
// we show the form if // we show the form if
// 1. no post data // 1. no post data
// 2. there is post data and one of the required form elements is empty // 2. there is post data and one of the required form elements is empty
if (!$_POST OR (!empty($_POST) AND (empty($_POST['new_blog_submit']) OR empty($_POST['blog_name'])))) { if (!$_POST || (!empty($_POST) && (empty($_POST['new_blog_submit']) || empty($_POST['blog_name'])))) {
// if there is post data there is certainly an error in the form
/*if ($_POST){
Display::display_error_message(get_lang('FormHasErrorsPleaseComplete'));
}*/
/*if (strlen($_POST['blog_name'])==0) {
if (count($_POST)>0) {
Display::display_error_message(get_lang('FormHasErrorsPleaseComplete'));
}
}*/
Blog::display_new_blog_form(); Blog::display_new_blog_form();
} }
} }
@ -94,7 +85,7 @@ if (api_is_allowed_to_edit()) {
// we show the form if // we show the form if
// 1. no post data // 1. no post data
// 2. there is post data and one of the three form elements is empty // 2. there is post data and one of the three form elements is empty
if (!$_POST OR (!empty($_POST) AND (empty($_POST['edit_blog_submit']) OR empty($_POST['blog_name']) ))) { if (!$_POST || (!empty($_POST) && (empty($_POST['edit_blog_submit']) || empty($_POST['blog_name']) ))) {
// if there is post data there is certainly an error in the form // if there is post data there is certainly an error in the form
if ($_POST) { if ($_POST) {
Display::display_error_message(get_lang('FormHasErrorsPleaseComplete')); Display::display_error_message(get_lang('FormHasErrorsPleaseComplete'));

@ -95,7 +95,7 @@ if (!empty($_REQUEST['export_report']) && $_REQUEST['export_report'] == '1') {
$export->setOnlyBestAttempts($onlyBestAttempts); $export->setOnlyBestAttempts($onlyBestAttempts);
switch ($_GET['export_format']) { switch ($_GET['export_format']) {
case 'xls' : case 'xls':
$export->exportCompleteReportXLS( $export->exportCompleteReportXLS(
$documentPath, $documentPath,
null, null,
@ -105,8 +105,8 @@ if (!empty($_REQUEST['export_report']) && $_REQUEST['export_report'] == '1') {
); );
exit; exit;
break; break;
case 'csv' : case 'csv':
default : default:
$export->exportCompleteReportCSV( $export->exportCompleteReportCSV(
$documentPath, $documentPath,
null, null,
@ -130,6 +130,7 @@ if (isset($_REQUEST['comments']) &&
//filtered by post-condition //filtered by post-condition
$id = intval($_GET['exeid']); $id = intval($_GET['exeid']);
$track_exercise_info = ExerciseLib::get_exercise_track_exercise_info($id); $track_exercise_info = ExerciseLib::get_exercise_track_exercise_info($id);
if (empty($track_exercise_info)) { if (empty($track_exercise_info)) {
api_not_allowed(); api_not_allowed();
} }
@ -137,8 +138,8 @@ if (isset($_REQUEST['comments']) &&
$student_id = $track_exercise_info['exe_user_id']; $student_id = $track_exercise_info['exe_user_id'];
$session_id = $track_exercise_info['session_id']; $session_id = $track_exercise_info['session_id'];
$lp_id = $track_exercise_info['orig_lp_id']; $lp_id = $track_exercise_info['orig_lp_id'];
//$lp_item_id = $track_exercise_info['orig_lp_item_id'];
$lp_item_view_id = $track_exercise_info['orig_lp_item_view_id']; $lp_item_view_id = $track_exercise_info['orig_lp_item_view_id'];
$exerciseId = $track_exercise_info['exe_exo_id'];
$course_info = api_get_course_info(); $course_info = api_get_course_info();
@ -216,6 +217,7 @@ if (isset($_REQUEST['comments']) &&
$sql = "UPDATE $TBL_TRACK_EXERCISES $sql = "UPDATE $TBL_TRACK_EXERCISES
SET exe_result = '".floatval($tot)."' SET exe_result = '".floatval($tot)."'
WHERE exe_id = ".$id; WHERE exe_id = ".$id;
Database::query($sql); Database::query($sql);
if (isset($_POST['send_notification'])) { if (isset($_POST['send_notification'])) {
@ -226,9 +228,9 @@ if (isset($_REQUEST['comments']) &&
$message .= '<h3>'.get_lang('CourseName').'</h3><p>'.Security::remove_XSS($course_info['name']).''; $message .= '<h3>'.get_lang('CourseName').'</h3><p>'.Security::remove_XSS($course_info['name']).'';
$message .= '<h3>'.get_lang('Exercise').'</h3><p>'.Security::remove_XSS($test); $message .= '<h3>'.get_lang('Exercise').'</h3><p>'.Security::remove_XSS($test);
//Only for exercises not in a LP // Only for exercises not in a LP
if ($lp_id == 0) { if ($lp_id == 0) {
$message .= '<p>'.get_lang('ClickLinkToViewComment').' <a href="#url#">#url#</a><br />'; $message .= '<p>'.get_lang('ClickLinkToViewComment').' <br /><a href="#url#">#url#</a><br />';
} }
$message .= '<p>'.get_lang('Regards').'</p>'; $message .= '<p>'.get_lang('Regards').'</p>';
@ -246,23 +248,24 @@ if (isset($_REQUEST['comments']) &&
Display::addFlash( Display::addFlash(
Display::return_message(get_lang('MessageSent')) Display::return_message(get_lang('MessageSent'))
); );
header('Location: ' . api_get_path(WEB_PATH)); header('Location: ' . api_get_self().'?'.api_get_cidreq().'&exerciseId='.$exerciseId);
exit; exit;
} }
} }
//Updating LP score here // Updating LP score here
if (in_array($origin, array('tracking_course', 'user_course', 'correct_exercise_in_lp'))) { if (in_array($origin, array('tracking_course', 'user_course', 'correct_exercise_in_lp'))
) {
$sql = "UPDATE $TBL_LP_ITEM_VIEW SET score = '".floatval($tot)."' $sql = "UPDATE $TBL_LP_ITEM_VIEW SET score = '".floatval($tot)."'
WHERE c_id = ".$course_id." AND id = ".$lp_item_view_id; WHERE c_id = ".$course_id." AND id = ".$lp_item_view_id;
Database::query($sql); Database::query($sql);
if ($origin == 'tracking_course') { if ($origin == 'tracking_course') {
//Redirect to the course detail in lp //Redirect to the course detail in lp
header('location: exercise.php?course='.Security :: remove_XSS($_GET['course'])); header('location: '.api_get_path(WEB_CODE_PATH).'exercice/exercise.php?course='.Security :: remove_XSS($_GET['course']));
exit; exit;
} else { } else {
//Redirect to the reporting // Redirect to the reporting
header('location: ../mySpace/myStudents.php?origin='.$origin.'&student='.$student_id.'&details=true&course='.$course_id.'&session_id='.$session_id); header('Location: '.api_get_path(WEB_CODE_PATH).'mySpace/myStudents.php?origin='.$origin.'&student='.$student_id.'&details=true&course='.$course_id.'&session_id='.$session_id);
exit; exit;
} }
} }

@ -231,7 +231,10 @@ if ($show_results || $show_only_total_score) {
$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(); $arrques = array();
$arrans = array(); $arrans = array();
@ -323,39 +326,119 @@ foreach ($questionList as $questionId) {
}*/ }*/
if ($answerType == MULTIPLE_ANSWER || $answerType == MULTIPLE_ANSWER_TRUE_FALSE) { 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()); $question_result = $objExercise->manage_answer(
$id,
$questionId,
$choice,
'exercise_show',
array(),
false,
true,
$show_results,
$objExercise->selectPropagateNeg()
);
$questionScore = $question_result['score']; $questionScore = $question_result['score'];
$totalScore += $question_result['score']; $totalScore += $question_result['score'];
} elseif ($answerType == MULTIPLE_ANSWER_COMBINATION || $answerType == MULTIPLE_ANSWER_COMBINATION_TRUE_FALSE) { } elseif ($answerType == MULTIPLE_ANSWER_COMBINATION || $answerType == MULTIPLE_ANSWER_COMBINATION_TRUE_FALSE) {
$choice = array(); $choice = array();
$question_result = $objExercise->manage_answer($id, $questionId, $choice,'exercise_show', array(), false, true, $show_results, $objExercise->selectPropagateNeg()); $question_result = $objExercise->manage_answer(
$id,
$questionId,
$choice,
'exercise_show',
array(),
false,
true,
$show_results,
$objExercise->selectPropagateNeg()
);
$questionScore = $question_result['score']; $questionScore = $question_result['score'];
$totalScore += $question_result['score']; $totalScore += $question_result['score'];
} elseif ($answerType == UNIQUE_ANSWER || $answerType == UNIQUE_ANSWER_NO_OPTION) { } 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()); $question_result = $objExercise->manage_answer(
$id,
$questionId,
$choice,
'exercise_show',
array(),
false,
true,
$show_results,
$objExercise->selectPropagateNeg()
);
$questionScore = $question_result['score']; $questionScore = $question_result['score'];
$totalScore += $question_result['score']; $totalScore += $question_result['score'];
echo '</table>'; echo '</table>';
} elseif ($answerType == FILL_IN_BLANKS) { } elseif ($answerType == FILL_IN_BLANKS) {
$question_result = $objExercise->manage_answer($id, $questionId, $choice,'exercise_show', array(), false, true, $show_results, $objExercise->selectPropagateNeg()); $question_result = $objExercise->manage_answer(
$id,
$questionId,
$choice,
'exercise_show',
array(),
false,
true,
$show_results,
$objExercise->selectPropagateNeg()
);
$questionScore = $question_result['score']; $questionScore = $question_result['score'];
$totalScore += $question_result['score']; $totalScore += $question_result['score'];
} elseif ($answerType == GLOBAL_MULTIPLE_ANSWER) { } elseif ($answerType == GLOBAL_MULTIPLE_ANSWER) {
$question_result = $objExercise->manage_answer($id, $questionId, $choice,'exercise_show', array(), false, true, $show_results, $objExercise->selectPropagateNeg()); $question_result = $objExercise->manage_answer(
$id,
$questionId,
$choice,
'exercise_show',
array(),
false,
true,
$show_results,
$objExercise->selectPropagateNeg()
);
$questionScore = $question_result['score']; $questionScore = $question_result['score'];
$totalScore += $question_result['score']; $totalScore += $question_result['score'];
} elseif ($answerType == FREE_ANSWER) { } elseif ($answerType == FREE_ANSWER) {
$answer = $str; $answer = $str;
$question_result = $objExercise->manage_answer($id, $questionId, $choice,'exercise_show', array(), false, true, $show_results, $objExercise->selectPropagateNeg()); $question_result = $objExercise->manage_answer(
$id,
$questionId,
$choice,
'exercise_show',
array(),
false,
true,
$show_results,
$objExercise->selectPropagateNeg()
);
$questionScore = $question_result['score']; $questionScore = $question_result['score'];
$totalScore += $question_result['score']; $totalScore += $question_result['score'];
} elseif ($answerType == ORAL_EXPRESSION) { } elseif ($answerType == ORAL_EXPRESSION) {
$answer = $str; $answer = $str;
$question_result = $objExercise->manage_answer($id, $questionId, $choice,'exercise_show', array(), false, true, $show_results, $objExercise->selectPropagateNeg()); $question_result = $objExercise->manage_answer(
$id,
$questionId,
$choice,
'exercise_show',
array(),
false,
true,
$show_results,
$objExercise->selectPropagateNeg()
);
$questionScore = $question_result['score']; $questionScore = $question_result['score'];
$totalScore += $question_result['score']; $totalScore += $question_result['score'];
} elseif (in_array($answerType, [MATCHING, DRAGGABLE, MATCHING_DRAGGABLE])) { } elseif (in_array($answerType, [MATCHING, DRAGGABLE, MATCHING_DRAGGABLE])) {
$question_result = $objExercise->manage_answer($id, $questionId, $choice,'exercise_show', array(), false, true, $show_results, $objExercise->selectPropagateNeg()); $question_result = $objExercise->manage_answer(
$id,
$questionId,
$choice,
'exercise_show',
array(),
false,
true,
$show_results,
$objExercise->selectPropagateNeg()
);
$questionScore = $question_result['score']; $questionScore = $question_result['score'];
$totalScore += $question_result['score']; $totalScore += $question_result['score'];
} elseif ($answerType == HOT_SPOT) { } elseif ($answerType == HOT_SPOT) {
@ -364,7 +447,17 @@ foreach ($questionList as $questionId) {
<td valign="top" align="center" style="padding-left:0px;" > <td valign="top" align="center" style="padding-left:0px;" >
<table border="1" bordercolor="#A4A4A4" style="border-collapse: collapse;" width="552">'; <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()); $question_result = $objExercise->manage_answer(
$id,
$questionId,
$choice,
'exercise_show',
array(),
false,
true,
$show_results,
$objExercise->selectPropagateNeg()
);
$questionScore = $question_result['score']; $questionScore = $question_result['score'];
$totalScore += $question_result['score']; $totalScore += $question_result['score'];
@ -394,7 +487,18 @@ foreach ($questionList as $questionId) {
} }
} else if($answerType == HOT_SPOT_DELINEATION) { } else if($answerType == HOT_SPOT_DELINEATION) {
$question_result = $objExercise->manage_answer($id, $questionId, $choice,'exercise_show', array(), false, true, $show_results, $objExercise->selectPropagateNeg(), 'database'); $question_result = $objExercise->manage_answer(
$id,
$questionId,
$choice,
'exercise_show',
array(),
false,
true,
$show_results,
$objExercise->selectPropagateNeg(),
'database'
);
$questionScore = $question_result['score']; $questionScore = $question_result['score'];
$totalScore += $question_result['score']; $totalScore += $question_result['score'];
@ -780,6 +884,7 @@ if ($isFeedbackAllowed) {
if ($origin !='learnpath' && $origin!='student_progress') { if ($origin !='learnpath' && $origin!='student_progress') {
echo '<label><input type= "checkbox" name="send_notification"> '.get_lang('SendEmail').'</label>'; echo '<label><input type= "checkbox" name="send_notification"> '.get_lang('SendEmail').'</label>';
?> ?>
<br />
<button type="submit" class="btn btn-primary" value="<?php echo get_lang('Ok'); ?>" onclick="getFCK('<?php echo $strids; ?>','<?php echo $marksid; ?>');"> <button type="submit" class="btn btn-primary" value="<?php echo get_lang('Ok'); ?>" onclick="getFCK('<?php echo $strids; ?>','<?php echo $marksid; ?>');">
<?php echo get_lang('CorrectTest'); ?> <?php echo get_lang('CorrectTest'); ?>
</button> </button>

@ -1,5 +1,6 @@
<?php <?php
/* For licensing terms, see /license.txt */ /* For licensing terms, see /license.txt */
/** /**
* List all certificates filtered by session/course and month/year * List all certificates filtered by session/course and month/year
* @author Angel Fernando Quiroz Campos <angel.quiroz@beeznest.com> * @author Angel Fernando Quiroz Campos <angel.quiroz@beeznest.com>
@ -16,7 +17,7 @@ $this_section = SECTION_TRACKING;
api_block_anonymous_users(); api_block_anonymous_users();
$interbreadcrumb[] = array( $interbreadcrumb[] = array(
"url" => api_get_path(WEB_CODE_PATH) . "mySpace/index.php", "url" => api_get_path(WEB_CODE_PATH) . "mySpace/index.php?".api_get_cidreq(),
"name" => get_lang("MySpace") "name" => get_lang("MySpace")
); );
@ -27,7 +28,6 @@ $selectedYear = isset($_POST['year']) && !empty($_POST['year']) ? trim($_POST['y
$selectedStudent = isset($_POST['student']) && !empty($_POST['student']) ? intval($_POST['student']) : 0; $selectedStudent = isset($_POST['student']) && !empty($_POST['student']) ? intval($_POST['student']) : 0;
$userId = api_get_user_id(); $userId = api_get_user_id();
$sessions = $courses = $months = $students = [0 => get_lang('Select')]; $sessions = $courses = $months = $students = [0 => get_lang('Select')];
if (api_is_student_boss()) { if (api_is_student_boss()) {

@ -370,12 +370,12 @@ if (isset ($_POST['submit']) && isset ($_POST['keyword'])) {
. '&search='.Security::remove_XSS($_POST['keyword'])); . '&search='.Security::remove_XSS($_POST['keyword']));
exit; exit;
} }
// DISPLAY HEADERS AND MESSAGES -
if (!isset($_GET['exportpdf']) and !isset($_GET['export_certificate'])) { // DISPLAY HEADERS AND MESSAGES -
if (!isset($_GET['exportpdf']) && !isset($_GET['export_certificate'])) {
if (isset ($_GET['studentoverview'])) { if (isset ($_GET['studentoverview'])) {
$interbreadcrumb[]= array ( $interbreadcrumb[]= array (
'url' => $_SESSION['gradebook_dest'].'?selectcat=' . Security::remove_XSS($_GET['selectcat']), 'url' => $_SESSION['gradebook_dest'].'?selectcat=' . Security::remove_XSS($_GET['selectcat'].'&'.api_get_cidreq()),
'name' => get_lang('ToolGradebook') 'name' => get_lang('ToolGradebook')
); );
Display :: display_header(get_lang('FlatView')); Display :: display_header(get_lang('FlatView'));
@ -401,13 +401,13 @@ if (!isset($_GET['exportpdf']) and !isset($_GET['export_certificate'])) {
} }
} }
if (isset ($_GET['categorymoved'])) { if (isset($_GET['categorymoved'])) {
Display :: display_confirmation_message(get_lang('CategoryMoved'),false); Display :: display_confirmation_message(get_lang('CategoryMoved'),false);
} }
if (isset ($_GET['evaluationmoved'])) { if (isset($_GET['evaluationmoved'])) {
Display :: display_confirmation_message(get_lang('EvaluationMoved'),false); Display :: display_confirmation_message(get_lang('EvaluationMoved'),false);
} }
if (isset ($_GET['linkmoved'])) { if (isset($_GET['linkmoved'])) {
Display :: display_confirmation_message(get_lang('LinkMoved'),false); Display :: display_confirmation_message(get_lang('LinkMoved'),false);
} }
if (isset ($_GET['addcat'])) { if (isset ($_GET['addcat'])) {

@ -99,7 +99,7 @@ if (!$_in_course) {
'name' => get_lang('Gradebook') 'name' => get_lang('Gradebook')
); );
} }
$interbreadcrumb[]= array( 'url' =>'index.php','name' => get_lang('ToolGradebook')); $interbreadcrumb[] = array('url' => 'index.php?'.api_get_cidreq(), 'name' => get_lang('ToolGradebook'));
Display :: display_header(get_lang('NewCategory')); Display :: display_header(get_lang('NewCategory'));
$display_form = true; $display_form = true;

@ -6,6 +6,8 @@
* @package chamilo.gradebook * @package chamilo.gradebook
*/ */
require_once '../inc/global.inc.php'; require_once '../inc/global.inc.php';
require_once api_get_path(SYS_CODE_PATH).'gradebook/lib/fe/exportgradebook.php';
$current_course_tool = TOOL_GRADEBOOK; $current_course_tool = TOOL_GRADEBOOK;
api_protect_course_script(true); api_protect_course_script(true);

@ -6,6 +6,7 @@
* @package chamilo.gradebook * @package chamilo.gradebook
*/ */
require_once '../inc/global.inc.php'; require_once '../inc/global.inc.php';
require_once api_get_path(SYS_CODE_PATH).'gradebook/lib/fe/exportgradebook.php';
api_block_anonymous_users(); api_block_anonymous_users();
$isDrhOfCourse = CourseManager::isUserSubscribedInCourseAsDrh( $isDrhOfCourse = CourseManager::isUserSubscribedInCourseAsDrh(
@ -19,11 +20,11 @@ if (!$isDrhOfCourse) {
$interbreadcrumb[] = array( $interbreadcrumb[] = array(
'url' => $_SESSION['gradebook_dest'], 'url' => $_SESSION['gradebook_dest'],
'name' => get_lang('Gradebook' 'name' => get_lang('Gradebook')
)); );
//load the evaluation & category //load the evaluation & category
$select_eval = Security::remove_XSS($_GET['selecteval']); $select_eval = intval($_GET['selecteval']);
if (empty($select_eval)) { if (empty($select_eval)) {
api_not_allowed(); api_not_allowed();
} }
@ -35,10 +36,11 @@ if ($eval[0]->get_category_id() < 0) {
// if category id is negative, then the evaluation's origin is a link // if category id is negative, then the evaluation's origin is a link
$link = LinkFactory :: get_evaluation_link($eval[0]->get_id()); $link = LinkFactory :: get_evaluation_link($eval[0]->get_id());
$currentcat = Category :: load($link->get_category_id()); $currentcat = Category :: load($link->get_category_id());
} else } else {
$currentcat = Category :: load($eval[0]->get_category_id()); $currentcat = Category:: load($eval[0]->get_category_id());
//load the result with the evaluation id }
//load the result with the evaluation id
if (isset($_GET['delete_mark'])) { if (isset($_GET['delete_mark'])) {
$result = Result :: load($_GET['delete_mark']); $result = Result :: load($_GET['delete_mark']);
if (!empty($result[0])) { if (!empty($result[0])) {
@ -53,7 +55,6 @@ if (isset($_GET['selecteval'])) {
if (isset($_GET['editres'])) { if (isset($_GET['editres'])) {
$edit_res_xml = Security::remove_XSS($_GET['editres']); $edit_res_xml = Security::remove_XSS($_GET['editres']);
$select_eval_edit = Security::remove_XSS($_GET['selecteval']);
$resultedit = Result :: load($edit_res_xml); $resultedit = Result :: load($edit_res_xml);
$edit_res_form = new EvalForm( $edit_res_form = new EvalForm(
EvalForm :: TYPE_RESULT_EDIT, EvalForm :: TYPE_RESULT_EDIT,
@ -61,39 +62,38 @@ if (isset($_GET['editres'])) {
$resultedit[0], $resultedit[0],
'edit_result_form', 'edit_result_form',
null, null,
api_get_self() . '?editres=' . $resultedit[0]->get_id() . '&selecteval=' . $select_eval_edit.'&'.api_get_cidreq() api_get_self() . '?editres=' . $resultedit[0]->get_id() . '&selecteval=' . $select_eval.'&'.api_get_cidreq()
); );
if ($edit_res_form->validate()) { if ($edit_res_form->validate()) {
$values = $edit_res_form->exportValues(); $values = $edit_res_form->exportValues();
$result = new Result(); $result = new Result();
$resultlog = new Result(); $resultlog = new Result();
$resultlog->add_result__log($values['hid_user_id'], $select_eval_edit); $resultlog->add_result__log($values['hid_user_id'], $select_eval);
$result->set_id($edit_res_xml); $result->set_id($edit_res_xml);
$result->set_user_id($values['hid_user_id']); $result->set_user_id($values['hid_user_id']);
$result->set_evaluation_id($select_eval_edit); $result->set_evaluation_id($select_eval);
$row_value = isset($values['score']) ? (float) $values['score'] : 0; $row_value = isset($values['score']) ? (float) $values['score'] : 0;
if (!empty($row_value) || $row_value == 0) { if (!empty($row_value) || $row_value == 0) {
$result->set_score(floatval(number_format($row_value, api_get_setting('gradebook_number_decimals')))); $result->set_score(floatval(number_format($row_value, api_get_setting('gradebook_number_decimals'))));
} }
$result->save(); $result->save();
unset($result); unset($result);
header('Location: gradebook_view_result.php?selecteval=' . $select_eval_edit . '&editresmessage=&'.api_get_cidreq()); header('Location: gradebook_view_result.php?selecteval=' . $select_eval . '&editresmessage=&'.api_get_cidreq());
exit; exit;
} }
} }
$file_type = null; $file_type = null;
if (isset($_GET['import'])) { if (isset($_GET['import'])) {
$interbreadcrumb[] = array( $interbreadcrumb[] = array(
'url' => 'gradebook_view_result.php?selecteval=' . Security::remove_XSS($_GET['selecteval']).'&'.api_get_cidreq(), 'url' => api_get_path(WEB_CODE_PATH).'gradebook/gradebook_view_result.php?selecteval=' . $select_eval.'&'.api_get_cidreq(),
'name' => get_lang('ViewResult') 'name' => get_lang('ViewResult')
); );
$import_result_form = new DataForm( $import_result_form = new DataForm(
DataForm :: TYPE_IMPORT, DataForm :: TYPE_IMPORT,
'import_result_form', 'import_result_form',
null, null,
api_get_self() . '?import=&selecteval=' . Security::remove_XSS($_GET['selecteval']), api_get_self() . '?import=&selecteval=' . $select_eval,
'_blank', '_blank',
'' ''
); );
@ -122,7 +122,7 @@ if (isset($_GET['import'])) {
if (($importedresult['user_id'] == $allresult->get_user_id())) { if (($importedresult['user_id'] == $allresult->get_user_id())) {
if ($importedresult['score'] != $allresult->get_score()) { if ($importedresult['score'] != $allresult->get_score()) {
if (!isset($values['overwrite'])) { if (!isset($values['overwrite'])) {
header('Location: gradebook_view_result.php?selecteval=' . Security::remove_XSS($_GET['selecteval']) . '&import_score_error=' . $importedresult['user_id']); header('Location: '.api_get_path(WEB_CODE_PATH).'gradebook/gradebook_view_result.php?selecteval=' . $select_eval . '&import_score_error=' . $importedresult['user_id']);
exit; exit;
break; break;
} else { } else {
@ -140,7 +140,7 @@ if (isset($_GET['import'])) {
} }
} }
if ($importedresult['user_id'] == null) { if ($importedresult['user_id'] == null) {
header('Location: gradebook_view_result.php?selecteval=' . Security::remove_XSS($_GET['selecteval']) . '&incorrectdata='); header('Location: gradebook_view_result.php?selecteval=' . $select_eval . '&incorrectdata=');
exit; exit;
} }
$userinfo = api_get_user_info($importedresult['user_id']); $userinfo = api_get_user_info($importedresult['user_id']);
@ -149,13 +149,13 @@ if (isset($_GET['import'])) {
$userinfo['official_code'] != $importedresult['official_code'] $userinfo['official_code'] != $importedresult['official_code']
) { ) {
if (!isset($values['ignoreerrors'])) { if (!isset($values['ignoreerrors'])) {
header('Location: gradebook_view_result.php?selecteval=' . Security::remove_XSS($_GET['selecteval']) . '&import_user_error=' . $importedresult['user_id']); header('Location: gradebook_view_result.php?selecteval=' . $select_eval . '&import_user_error=' . $importedresult['user_id']);
exit; exit;
} }
} }
if ($added != '1') { if ($added != '1') {
if ($importedresult['score'] > $eval[0]->get_max()) { if ($importedresult['score'] > $eval[0]->get_max()) {
header('Location: gradebook_view_result.php?selecteval=' . Security::remove_XSS($_GET['selecteval']) . '&overwritemax='); header('Location: gradebook_view_result.php?selecteval=' . $select_eval . '&overwritemax=');
exit; exit;
} }
$result = new Result(); $result = new Result();
@ -168,36 +168,39 @@ if (isset($_GET['import'])) {
} else { } else {
$result->set_date(api_get_utc_datetime()); $result->set_date(api_get_utc_datetime());
} }
$result->set_evaluation_id($_GET['selecteval']); $result->set_evaluation_id($select_eval);
$result->add(); $result->add();
$nr_results_added++; $nr_results_added++;
} }
} }
} else { } else {
header('Location: ' . api_get_self() . '?import=&selecteval=' . Security::remove_XSS($_GET['selecteval']) . '&importnofile='); header('Location: ' . api_get_self() . '?import=&selecteval=' . $select_eval . '&importnofile=');
exit; exit;
} }
if ($overwritescore != 0) { if ($overwritescore != 0) {
header('Location: ' . api_get_self() . '?selecteval=' . Security::remove_XSS($_GET['selecteval']) . '&importoverwritescore=' . $overwritescore); header('Location: ' . api_get_self() . '?selecteval=' . $select_eval. '&importoverwritescore=' . $overwritescore);
exit; exit;
} }
if ($nr_results_added == 0) { if ($nr_results_added == 0) {
header('Location: ' . api_get_self() . '?selecteval=' . Security::remove_XSS($_GET['selecteval']) . '&nothingadded='); header('Location: ' . api_get_self() . '?selecteval=' . $select_eval. '&nothingadded=');
exit; exit;
} }
header('Location: ' . api_get_self() . '?selecteval=' . Security::remove_XSS($_GET['selecteval']) . '&importok='); header('Location: ' . api_get_self() . '?selecteval=' . $select_eval . '&importok=');
exit; exit;
} }
} }
if (isset($_GET['export'])) { if (isset($_GET['export'])) {
$interbreadcrumb[] = array('url' => 'gradebook_view_result.php?selecteval=' . Security::remove_XSS($_GET['selecteval']), 'name' => get_lang('ViewResult')); $interbreadcrumb[] = array(
'url' => 'gradebook_view_result.php?selecteval='.$select_eval,
'name' => get_lang('ViewResult'),
);
$locked_status = $eval[0]->get_locked(); $locked_status = $eval[0]->get_locked();
$export_result_form = new DataForm( $export_result_form = new DataForm(
DataForm :: TYPE_EXPORT, DataForm :: TYPE_EXPORT,
'export_result_form', 'export_result_form',
null, null,
api_get_self() . '?export=&selecteval=' . $_GET['selecteval'], api_get_self() . '?export=&selecteval=' . $select_eval,
'_blank', '_blank',
$locked_status $locked_status
); );
@ -209,7 +212,7 @@ if (isset($_GET['export'])) {
$export = $export_result_form->exportValues(); $export = $export_result_form->exportValues();
$file_type = $export['file_type']; $file_type = $export['file_type'];
$filename = 'export_results_' . gmdate('Y-m-d_H-i-s'); $filename = 'export_results_' . gmdate('Y-m-d_H-i-s');
$results = Result :: load(null, null, Security::remove_XSS($_GET['selecteval'])); $results = Result :: load(null, null, $select_eval);
$data = array(); //when file type is csv, add a header to the output file $data = array(); //when file type is csv, add a header to the output file
if ($file_type == 'csv') { if ($file_type == 'csv') {
$alldata[] = array( $alldata[] = array(
@ -332,11 +335,11 @@ if (isset($_GET['export'])) {
} }
switch ($file_type) { switch ($file_type) {
case 'xml' : case 'xml':
Export :: arrayToXml($alldata, $filename, 'Result', 'XMLResults'); Export :: arrayToXml($alldata, $filename, 'Result', 'XMLResults');
exit; exit;
break; break;
case 'csv' : case 'csv':
Export :: arrayToCsv($alldata, $filename); Export :: arrayToCsv($alldata, $filename);
exit; exit;
break; break;
@ -347,7 +350,7 @@ if (isset($_GET['export'])) {
if (isset($_GET['resultdelete'])) { if (isset($_GET['resultdelete'])) {
$result = Result :: load($_GET['resultdelete']); $result = Result :: load($_GET['resultdelete']);
$result[0]->delete(); $result[0]->delete();
header('Location: gradebook_view_result.php?deleteresult=&selecteval=' . Security::remove_XSS($_GET['selecteval'])); header('Location: gradebook_view_result.php?deleteresult=&selecteval=' . $select_eval);
exit; exit;
} }
@ -357,14 +360,14 @@ if (isset($_POST['action'])) {
Display :: display_warning_message(get_lang('NoItemsSelected'), false); Display :: display_warning_message(get_lang('NoItemsSelected'), false);
} else { } else {
switch ($_POST['action']) { switch ($_POST['action']) {
case 'delete' : case 'delete':
$number_of_deleted_results = 0; $number_of_deleted_results = 0;
foreach ($_POST['id'] as $indexstr) { foreach ($_POST['id'] as $indexstr) {
$result = Result :: load($indexstr); $result = Result :: load($indexstr);
$result[0]->delete(); $result[0]->delete();
$number_of_deleted_results++; $number_of_deleted_results++;
} }
header('Location: gradebook_view_result.php?massdelete=&selecteval=' . Security::remove_XSS($_GET['selecteval'])); header('Location: gradebook_view_result.php?massdelete=&selecteval=' . $select_eval);
exit; exit;
break; break;
} }
@ -403,8 +406,7 @@ if (isset($_GET['print'])) {
$resulttable = new ResultTable($eval[0], $allresults, $iscourse, $addparams); $resulttable = new ResultTable($eval[0], $allresults, $iscourse, $addparams);
} }
$htmlHeadXtra[] = '<script type="text/javascript"> $htmlHeadXtra[] = '<script>
function confirmationuser() { function confirmationuser() {
if (confirm("' . get_lang('DeleteUser') . '?")) if (confirm("' . get_lang('DeleteUser') . '?"))
{return true;} {return true;}
@ -421,17 +423,20 @@ function confirmationall () {
</script>'; </script>';
if (isset($_GET['deleteall'])) { if (isset($_GET['deleteall'])) {
$eval[0]->delete_results(); $eval[0]->delete_results();
header('Location: gradebook_view_result.php?allresdeleted=&selecteval=' . Security::remove_XSS($_GET['selecteval'])); header('Location: '.api_get_path(WEB_CODE_PATH).'gradebook/gradebook_view_result.php?allresdeleted=&selecteval=' . $select_eval.'&'.api_get_cidreq());
exit; exit;
} }
if ((!isset($_GET['export'])) && (!isset($_GET['import']))) { if (!isset($_GET['export']) && (!isset($_GET['import']))) {
if (!isset($_GET['selectcat'])) { if (!isset($_GET['selectcat'])) {
$interbreadcrumb[] = array( $interbreadcrumb[] = array(
'url' => $_SESSION['gradebook_dest'] . '?selectcat=' . $currentcat[0]->get_id(), 'url' => $_SESSION['gradebook_dest'] . '?selectcat=' . $currentcat[0]->get_id().'&'.api_get_cidreq(),
'name' => get_lang('Details') 'name' => get_lang('Details')
); );
} }
$interbreadcrumb[] = array('url' => 'gradebook_view_result.php' . '?selecteval=' . Security::remove_XSS($_GET['selecteval']), 'name' => get_lang('ViewResult')); $interbreadcrumb[] = array(
'url' => api_get_path(WEB_CODE_PATH).'gradebook/gradebook_view_result.php?selecteval='.$select_eval.'&'.api_get_cidreq(),
'name' => get_lang('ViewResult'),
);
Display :: display_header(''); Display :: display_header('');
} }
if (isset($_GET['addresultnostudents'])) { if (isset($_GET['addresultnostudents'])) {
@ -483,7 +488,9 @@ if (isset($_GET['importoverwritescore'])) {
} }
if (isset($_GET['import_user_error'])) { if (isset($_GET['import_user_error'])) {
$userinfo = api_get_user_info($_GET['import_user_error']); $userinfo = api_get_user_info($_GET['import_user_error']);
Display :: display_warning_message(get_lang('UserInfoDoesNotMatch') . ' ' . api_get_person_name($userinfo['firstname'], $userinfo['lastname'])); Display:: display_warning_message(
get_lang('UserInfoDoesNotMatch').' '.api_get_person_name($userinfo['firstname'], $userinfo['lastname'])
);
} }
if (isset($_GET['allresdeleted'])) { if (isset($_GET['allresdeleted'])) {
Display :: display_confirmation_message(get_lang('AllResultDeleted')); Display :: display_confirmation_message(get_lang('AllResultDeleted'));
@ -492,7 +499,8 @@ if (isset($_GET['import_score_error'])) {
$userinfo = api_get_user_info($_GET['import_score_error']); $userinfo = api_get_user_info($_GET['import_score_error']);
Display :: display_warning_message(get_lang('ScoreDoesNotMatch') . ' ' . api_get_person_name($userinfo['firstname'], $userinfo['lastname'])); Display :: display_warning_message(get_lang('ScoreDoesNotMatch') . ' ' . api_get_person_name($userinfo['firstname'], $userinfo['lastname']));
} }
if ($file_type == null) { //show the result header if ($file_type == null) {
//show the result header
if (isset($export_result_form) && !(isset($edit_res_form))) { if (isset($export_result_form) && !(isset($edit_res_form))) {
echo $export_result_form->display(); echo $export_result_form->display();
DisplayGradebook :: display_header_result($eval[0], $currentcat[0]->get_id(), 1); DisplayGradebook :: display_header_result($eval[0], $currentcat[0]->get_id(), 1);

@ -20,7 +20,7 @@ class DisplayGradebook
if (api_is_allowed_to_edit(null, true)) { if (api_is_allowed_to_edit(null, true)) {
$header = '<div class="actions">'; $header = '<div class="actions">';
if ($page != 'statistics') { if ($page != 'statistics') {
$header .= '<a href="' . Security::remove_XSS($_SESSION['gradebook_dest']) . '?selectcat=' . $selectcat . '">' . $header .= '<a href="' . Security::remove_XSS($_SESSION['gradebook_dest']) . '?selectcat=' . $selectcat . '&'.api_get_cidreq().'">' .
Display::return_icon(('back.png'), get_lang('FolderView'), '', ICON_SIZE_MEDIUM) . '</a>'; Display::return_icon(('back.png'), get_lang('FolderView'), '', ICON_SIZE_MEDIUM) . '</a>';
if ($evalobj->get_course_code() == null) { if ($evalobj->get_course_code() == null) {
@ -92,7 +92,6 @@ class DisplayGradebook
$evalinfo .= '<h2>' . $evalobj->get_name() . '</h2><hr>'; $evalinfo .= '<h2>' . $evalobj->get_name() . '</h2><hr>';
$evalinfo .= $description; $evalinfo .= $description;
$evalinfo .= get_lang('Course') . ' :<b> ' . $course . '</b><br />'; $evalinfo .= get_lang('Course') . ' :<b> ' . $course . '</b><br />';
//'<br>' . get_lang('Weight') . ' :<b> ' . $evalobj->get_weight() . '</b><br>' . get_lang('Visible') . ' :<b> ' . $visible . '</b>
$evalinfo .= get_lang('QualificationNumeric') . ' :<b> ' . $evalobj->get_max() . '</b><br>' . $average; $evalinfo .= get_lang('QualificationNumeric') . ' :<b> ' . $evalobj->get_max() . '</b><br>' . $average;
if (!api_is_allowed_to_edit()) { if (!api_is_allowed_to_edit()) {

@ -4,6 +4,7 @@
* Script * Script
* @package chamilo.gradebook * @package chamilo.gradebook
*/ */
/** /**
* Prints an HTML page with a table containing the gradebook data * Prints an HTML page with a table containing the gradebook data
* @param array Array containing the data to be printed in the table * @param array Array containing the data to be printed in the table
@ -11,8 +12,9 @@
* @param string View to print as a title for the table * @param string View to print as a title for the table
* @param string Course name to print as title for the table * @param string Course name to print as title for the table
*/ */
function print_table ($data_array,$header_names,$view,$coursename) { function print_table($data_array,$header_names,$view,$coursename)
$printdata= '<!DOCTYPE html {
$printdata = '<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="'.api_get_language_isocode().'" lang="'.api_get_language_isocode().'"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="'.api_get_language_isocode().'" lang="'.api_get_language_isocode().'">
@ -66,7 +68,7 @@ a:active {text-decoration: none; font-weight : bold; color : black;}
$printdata .= '<h2>'.$view.' : '.$coursename.'</h2>'; $printdata .= '<h2>'.$view.' : '.$coursename.'</h2>';
//@todo not necessary here //@todo not necessary here
//$printdata .= '<h3>'.get_lang('Date').' : '.api_convert_and_format_date(null, DATE_FORMAT_SHORT). ' ' . api_convert_and_format_date(null, TIME_NO_SEC_FORMAT).'</h3>';
$printdata .= '<table border="1" width="90%" cellspacing="1" cellpadding="1">'; $printdata .= '<table border="1" width="90%" cellspacing="1" cellpadding="1">';
foreach ($header_names as $header) { foreach ($header_names as $header) {
$printdata .= '<th>'.$header.'</th>'; $printdata .= '<th>'.$header.'</th>';
@ -81,10 +83,10 @@ a:active {text-decoration: none; font-weight : bold; color : black;}
} }
$printdata .= '</table></div></body></html>'; $printdata .= '</table></div></body></html>';
return $printdata; return $printdata;
} }
/** /**
* This function get a content html for export inside a pdf file * This function get a content html for export inside a pdf file
* @param array table headers * @param array table headers
@ -93,17 +95,24 @@ a:active {text-decoration: none; font-weight : bold; color : black;}
* @param array pdf footers * @param array pdf footers
* @return void * @return void
*/ */
function export_pdf_attendance($headers_table, $data_table, $headers_pdf, $footers_pdf, $title_pdf) { function export_pdf_attendance($headers_table, $data_table, $headers_pdf, $footers_pdf, $title_pdf)
{
$mpdf = new mPDF('UTF-8', 'A4-L', '', '', 15, 10, 35, 20, 4, 2, 'L'); $mpdf = new mPDF('UTF-8', 'A4-L', '', '', 15, 10, 35, 20, 4, 2, 'L');
$mpdf->useOnlyCoreFonts = true; $mpdf->useOnlyCoreFonts = true;
$mpdf->mirrorMargins = 0; // Use different Odd/Even headers and footers and mirror margins $mpdf->mirrorMargins = 0;
// Use different Odd/Even headers and footers and mirror margins
if (is_array($headers_pdf)) { if (is_array($headers_pdf)) {
// preparing headers pdf // preparing headers pdf
$header = '<table width="100%" cellspacing="1" cellpadding="1" border="0" class="strong"> $header = '
<table width="100%" cellspacing="1" cellpadding="1" border="0" class="strong">
<tr> <tr>
<td ROWSPAN="3" style="text-align: left;" class="title"><img src="'.api_get_path(WEB_CSS_PATH).api_get_setting('stylesheets').'/images/header-logo.png"></td><td colspan="3"><h1>'.$title_pdf.'</h1></td> <td ROWSPAN="3" style="text-align: left;" class="title">
<img src="'.api_get_path(WEB_CSS_PATH).api_get_setting('stylesheets').'/images/header-logo.png">
</td>
<td colspan="3">
<h1>'.$title_pdf.'</h1>
</td>
<tr> <tr>
<td></td> <td></td>
<td><strong>'.$headers_pdf[0][0].'</strong> </td><td> <strong>'.$headers_pdf[0][1].'</strong></td> <td><strong>'.$headers_pdf[0][0].'</strong> </td><td> <strong>'.$headers_pdf[0][1].'</strong></td>
@ -133,7 +142,6 @@ function export_pdf_attendance($headers_table, $data_table, $headers_pdf, $foote
$footer .= '</tr>'; $footer .= '</tr>';
} }
$footer .= '</table>'; $footer .= '</table>';
$footer .= '<div align="right" style="font-weight: bold;">{PAGENO}/{nb}</div>'; $footer .= '<div align="right" style="font-weight: bold;">{PAGENO}/{nb}</div>';
// preparing content pdf // preparing content pdf
@ -144,12 +152,14 @@ function export_pdf_attendance($headers_table, $data_table, $headers_pdf, $foote
$css = ''; $css = '';
} }
if(count($data_table) > 30) if (count($data_table) > 30) {
$items_per_page = (count($data_table)/2); $items_per_page = (count($data_table) / 2);
else } else {
$items_per_page = count($data_table); $items_per_page = count($data_table);
}
$count_pages = ceil(count($data_table) / $items_per_page); $count_pages = ceil(count($data_table) / $items_per_page);
$content_table = '';
for ($x = 0; $x<$count_pages; $x++) { for ($x = 0; $x<$count_pages; $x++) {
$content_table .= '<table width="100%" border="1" style="border-collapse:collapse">'; $content_table .= '<table width="100%" border="1" style="border-collapse:collapse">';
// header table // header table
@ -192,10 +202,8 @@ function export_pdf_attendance($headers_table, $data_table, $headers_pdf, $foote
$content_table .= '</table>'; $content_table .= '</table>';
if ($x < ($count_pages - 1)) { $content_table .= '<pagebreak />'; } if ($x < ($count_pages - 1)) { $content_table .= '<pagebreak />'; }
} }
$html = $content_table; $html = $content_table;
// set attributes for pdf // set attributes for pdf
$mpdf->SetHTMLHeader($header); $mpdf->SetHTMLHeader($header);
$mpdf->SetHTMLFooter($footer); $mpdf->SetHTMLFooter($footer);
@ -206,6 +214,7 @@ function export_pdf_attendance($headers_table, $data_table, $headers_pdf, $foote
$mpdf->WriteHTML($html); $mpdf->WriteHTML($html);
} }
$mpdf->Output(api_replace_dangerous_char($title_pdf.'.pdf'), 'D'); $mpdf->Output(api_replace_dangerous_char($title_pdf.'.pdf'), 'D');
exit; exit;
} }
@ -224,9 +233,12 @@ function export_pdf_with_html($headers_table, $data_table, $headers_pdf, $footer
if (is_array($headers_pdf)) { if (is_array($headers_pdf)) {
// preparing headers pdf // preparing headers pdf
$header = '<br/><br/><table width="100%" cellspacing="1" cellpadding="5" border="0" class="strong"> $header = '<br/><br/>
<tr><td width="100%" style="text-align: center;" class="title" colspan="4"><h1>'.$title_pdf.'</h1></td></tr>'; <table width="100%" cellspacing="1" cellpadding="5" border="0" class="strong">
foreach($headers_pdf as $header_pdf) { <tr>
<td width="100%" style="text-align: center;" class="title" colspan="4">
<h1>'.$title_pdf.'</h1></td></tr>';
foreach ($headers_pdf as $header_pdf) {
if (!empty($header_pdf[0]) && !empty($header_pdf[1])) { if (!empty($header_pdf[0]) && !empty($header_pdf[1])) {
$header.= '<tr><td><strong>'.$header_pdf[0].'</strong> </td><td>'.$header_pdf[1].'</td></tr>'; $header.= '<tr><td><strong>'.$header_pdf[0].'</strong> </td><td>'.$header_pdf[1].'</td></tr>';
} }
@ -312,21 +324,26 @@ function export_pdf_with_html($headers_table, $data_table, $headers_pdf, $footer
* @param array Table headers * @param array Table headers
* @param string Format (portrait or landscape) * @param string Format (portrait or landscape)
*/ */
function export_pdf($pdf,$newarray,$header_names,$format) { function export_pdf($pdf, $newarray, $header_names, $format)
{
$pdf->selectFont(api_get_path(LIBRARY_PATH).'ezpdf/fonts/Courier.afm'); $pdf->selectFont(api_get_path(LIBRARY_PATH).'ezpdf/fonts/Courier.afm');
$pdf->ezSetCmMargins(0,0,0,0); $pdf->ezSetCmMargins(0,0,0,0);
$pdf->ezSetY(($format=='portrait')?'820':'570'); $pdf->ezSetY(($format=='portrait')?'820':'570');
$pdf->selectFont(api_get_path(LIBRARY_PATH).'ezpdf/fonts/Courier.afm'); $pdf->selectFont(api_get_path(LIBRARY_PATH).'ezpdf/fonts/Courier.afm');
//$pdf->ezText(get_lang('FlatView').' ('. api_convert_and_format_date(null, DATE_FORMAT_SHORT). ' ' . api_convert_and_format_date(null, TIME_NO_SEC_FORMAT) .')',12,array('justification'=>'center')); if ($format == 'portrait') {
if ($format=='portrait') { $pdf->line(40, 790, 540, 790);
$pdf->line(40,790,540,790); $pdf->line(40, 40, 540, 40);
$pdf->line(40,40,540,40);
} else { } else {
$pdf->line(40,540,790,540); $pdf->line(40, 540, 790, 540);
$pdf->line(40,40,790,40); $pdf->line(40, 40, 790, 40);
} }
$pdf->ezSetY(($format=='portrait')?'750':'520'); $pdf->ezSetY(($format=='portrait')?'750':'520');
$pdf->ezTable($newarray,$header_names,'',array('showHeadings'=>1,'shaded'=>1,'showLines'=>1,'rowGap'=>3,'width'=>(($format=='portrait')?'500':'750'))); $pdf->ezTable($newarray, $header_names, '', array(
'showHeadings' => 1,
'shaded' => 1,
'showLines' => 1,
'rowGap' => 3,
'width' => (($format == 'portrait') ? '500' : '750'),
));
$pdf->ezStream(); $pdf->ezStream();
} }

@ -10,6 +10,11 @@ $current_course_tool = TOOL_GROUP;
// Notice for unauthorized people. // Notice for unauthorized people.
api_protect_course_script(true); api_protect_course_script(true);
if (!api_is_allowed_to_edit(false, true)) {
api_not_allowed(true);
}
$currentUrl = api_get_path(WEB_CODE_PATH).'group/group.php?'.api_get_cidreq(); $currentUrl = api_get_path(WEB_CODE_PATH).'group/group.php?'.api_get_cidreq();
/* Create the groups */ /* Create the groups */
@ -70,13 +75,12 @@ if (isset($_POST['action'])) {
} }
$nameTools = get_lang('GroupCreation'); $nameTools = get_lang('GroupCreation');
$interbreadcrumb[] = array ('url' => 'group.php', 'name' => get_lang('Groups')); $interbreadcrumb[] = array(
'url' => api_get_path(WEB_CODE_PATH).'group/group.php?'.api_get_cidreq(),
'name' => get_lang('Groups'),
);
Display :: display_header($nameTools, 'Group'); Display :: display_header($nameTools, 'Group');
if (!api_is_allowed_to_edit(false, true)) {
api_not_allowed();
}
if (isset($_POST['number_of_groups'])) { if (isset($_POST['number_of_groups'])) {
if (!is_numeric($_POST['number_of_groups']) || intval($_POST['number_of_groups']) < 1) { if (!is_numeric($_POST['number_of_groups']) || intval($_POST['number_of_groups']) < 1) {
Display :: display_error_message( Display :: display_error_message(
@ -176,9 +180,20 @@ EOT;
$group_el = array(); $group_el = array();
$group_el[] = $form->createElement('text', 'group_'.$group_number.'_name'); $group_el[] = $form->createElement('text', 'group_'.$group_number.'_name');
if (api_get_setting('allow_group_categories') == 'true') { if (api_get_setting('allow_group_categories') == 'true') {
$group_el[] = $form->createElement('select', 'group_'.$group_number.'_category', null, $cat_options, array('id' => 'category_'.$group_number)); $group_el[] = $form->createElement(
'select',
'group_'.$group_number.'_category',
null,
$cat_options,
array('id' => 'category_'.$group_number)
);
} }
$group_el[] = $form->createElement('text', 'group_'.$group_number.'_places', null, array('class' => 'span1', 'id' => 'places_'.$group_number)); $group_el[] = $form->createElement(
'text',
'group_'.$group_number.'_places',
null,
array('class' => 'span1', 'id' => 'places_'.$group_number)
);
if ($_POST['number_of_groups'] < 10000) { if ($_POST['number_of_groups'] < 10000) {
if ($group_id < 10) { if ($group_id < 10) {
@ -208,11 +223,6 @@ EOT;
$create_groups_form = new FormValidator('create_groups', 'post', api_get_self().'?'.api_get_cidreq()); $create_groups_form = new FormValidator('create_groups', 'post', api_get_self().'?'.api_get_cidreq());
$create_groups_form->addElement('header', $nameTools); $create_groups_form->addElement('header', $nameTools);
/* $group_el = array ();
$group_el[] = $create_groups_form->createElement('text', 'number_of_groups', array(get_lang('Create'), '1'));
$group_el[] = $create_groups_form->addButtonCreate(get_lang('ProceedToCreateGroup'), 'submit', true);
$create_groups_form->addGroup($group_el, 'create_groups', get_lang('NumberOfGroupsToCreate'), ' ', false);
*/
$create_groups_form->addText('number_of_groups',get_lang('NumberOfGroupsToCreate'),null,array('value'=>'1')); $create_groups_form->addText('number_of_groups',get_lang('NumberOfGroupsToCreate'),null,array('value'=>'1'));
$create_groups_form->addButton('submit', get_lang('ProceedToCreateGroup'),'plus','primary'); $create_groups_form->addButton('submit', get_lang('ProceedToCreateGroup'),'plus','primary');
$defaults = array(); $defaults = array();

@ -386,7 +386,6 @@ class AnnouncementManager
if (empty($last_id)) { if (empty($last_id)) {
return false; return false;
} else { } else {
$sql = "UPDATE $tbl_announcement SET id = iid WHERE iid = $last_id"; $sql = "UPDATE $tbl_announcement SET id = iid WHERE iid = $last_id";
Database::query($sql); Database::query($sql);
@ -399,7 +398,6 @@ class AnnouncementManager
} }
// store in item_property (first the groups, then the users // store in item_property (first the groups, then the users
if (empty($sentTo) || !empty($sentTo) && if (empty($sentTo) || !empty($sentTo) &&
isset($sentTo[0]) && $sentTo[0] == 'everyone' isset($sentTo[0]) && $sentTo[0] == 'everyone'
) { ) {
@ -460,6 +458,8 @@ class AnnouncementManager
* @param $to_users * @param $to_users
* @param array $file * @param array $file
* @param string $file_comment * @param string $file_comment
* @param bool $sendToUsersInSession
*
* @return bool|int * @return bool|int
*/ */
public static function add_group_announcement( public static function add_group_announcement(

@ -2150,7 +2150,6 @@ class Agenda
); );
} }
if ($id) { if ($id) {
$form->addButtonUpdate(get_lang('ModifyEvent')); $form->addButtonUpdate(get_lang('ModifyEvent'));
} else { } else {

@ -7952,7 +7952,6 @@ function api_mail_html(
} }
} }
} }
//$message = str_replace(array("\n\r", "\n", "\r"), '<br />', $message);
$mailView = new Template(null, false, false, false, false, false, false); $mailView = new Template(null, false, false, false, false, false, false);
$mailView->assign('content', $message); $mailView->assign('content', $message);

@ -945,26 +945,17 @@ EOT;
*/ */
public function returnForm() public function returnForm()
{ {
$error = false; $returnValue = '';
/** @var HTML_QuickForm_element $element */ /** @var HTML_QuickForm_element $element */
foreach ($this->_elements as $element) { foreach ($this->_elements as $element) {
if (!is_null(parent::getElementError($element->getName()))) { $elementError = parent::getElementError($element->getName());
$error = true; if (!is_null($elementError)) {
$returnValue .= Display::return_message($elementError, 'warning').'<br />';
break; break;
} }
} }
$returnValue = '';
$js = null;
if ($error) {
$returnValue = Display::return_message(
get_lang('FormHasErrorsPleaseComplete'),
'warning'
);
}
$returnValue .= $js;
$returnValue .= parent::toHtml(); $returnValue .= parent::toHtml();
// Add div-element which is to hold the progress bar // Add div-element which is to hold the progress bar
if (isset($this->with_progress_bar) && $this->with_progress_bar) { if (isset($this->with_progress_bar) && $this->with_progress_bar) {

@ -1,6 +1,8 @@
<?php <?php
/* For licensing terms, see /license.txt */ /* For licensing terms, see /license.txt */
use ChamiloSession as Session;
/** /**
* Class MessageManager * Class MessageManager
* *
@ -105,11 +107,21 @@ class MessageManager
$condition_msg_status = ' msg_status IN('.MESSAGE_STATUS_NEW.','.MESSAGE_STATUS_UNREAD.') '; $condition_msg_status = ' msg_status IN('.MESSAGE_STATUS_NEW.','.MESSAGE_STATUS_UNREAD.') ';
} }
$keyword = Session::read('message_search_keyword');
$keywordCondition = '';
if (!empty($keyword)) {
$keyword = Database::escape_string($keyword);
$keywordCondition = " AND (title like '%$keyword%' OR content LIKE '%$keyword%') ";
}
$sql = "SELECT COUNT(*) as number_messages $sql = "SELECT COUNT(*) as number_messages
FROM $table_message FROM $table_message
WHERE $condition_msg_status AND user_receiver_id=".api_get_user_id(); WHERE $condition_msg_status AND
$sql_result = Database::query($sql); user_receiver_id=".api_get_user_id()."
$result = Database::fetch_array($sql_result); $keywordCondition
";
$result = Database::query($sql);
$result = Database::fetch_array($result);
return $result['number_messages']; return $result['number_messages'];
} }
@ -134,13 +146,24 @@ class MessageManager
if (!in_array($direction, array('ASC', 'DESC'))) if (!in_array($direction, array('ASC', 'DESC')))
$direction = 'ASC'; $direction = 'ASC';
} }
$keyword = Session::read('message_search_keyword');
$keywordCondition = '';
if (!empty($keyword)) {
$keyword = Database::escape_string($keyword);
$keywordCondition = " AND (title like '%$keyword%' OR content LIKE '%$keyword%') ";
}
$table_message = Database::get_main_table(TABLE_MESSAGE); $table_message = Database::get_main_table(TABLE_MESSAGE);
$sql = "SELECT id as col0, user_sender_id as col1, title as col2, send_date as col3, msg_status as col4 $sql = "SELECT id as col0, user_sender_id as col1, title as col2, send_date as col3, msg_status as col4
FROM $table_message FROM $table_message
WHERE user_receiver_id=".api_get_user_id()." AND msg_status IN (0,1) WHERE
user_receiver_id=".api_get_user_id()." AND
msg_status IN (0,1)
$keywordCondition
ORDER BY col$column $direction ORDER BY col$column $direction
LIMIT $from,$number_of_items"; LIMIT $from, $number_of_items";
$sql_result = Database::query($sql); $sql_result = Database::query($sql);
$i = 0; $i = 0;
@ -244,7 +267,7 @@ class MessageManager
format_file_size(api_get_setting('message_max_upload_filesize')) format_file_size(api_get_setting('message_max_upload_filesize'))
); );
Display::addFlash(Display::return_message($warning , 'warning')); Display::addFlash(Display::return_message($warning, 'warning'));
return false; return false;
} }
@ -865,12 +888,21 @@ class MessageManager
} }
$table_message = Database::get_main_table(TABLE_MESSAGE); $table_message = Database::get_main_table(TABLE_MESSAGE);
$request = api_is_xml_http_request(); $request = api_is_xml_http_request();
$keyword = Session::read('message_sent_search_keyword');
$keywordCondition = '';
if (!empty($keyword)) {
$keyword = Database::escape_string($keyword);
$keywordCondition = " AND (title like '%$keyword%' OR content LIKE '%$keyword%') ";
}
$sql = "SELECT $sql = "SELECT
id as col0, user_sender_id as col1, title as col2, send_date as col3, user_receiver_id as col4, msg_status as col5 id as col0, user_sender_id as col1, title as col2, send_date as col3, user_receiver_id as col4, msg_status as col5
FROM $table_message FROM $table_message
WHERE WHERE
user_sender_id=".api_get_user_id()." AND user_sender_id=".api_get_user_id()." AND
msg_status=".MESSAGE_STATUS_OUTBOX." msg_status=".MESSAGE_STATUS_OUTBOX."
$keywordCondition
ORDER BY col$column $direction ORDER BY col$column $direction
LIMIT $from, $number_of_items"; LIMIT $from, $number_of_items";
$sql_result = Database::query($sql); $sql_result = Database::query($sql);
@ -921,10 +953,22 @@ class MessageManager
public static function get_number_of_messages_sent() public static function get_number_of_messages_sent()
{ {
$table_message = Database::get_main_table(TABLE_MESSAGE); $table_message = Database::get_main_table(TABLE_MESSAGE);
$keyword = Session::read('message_sent_search_keyword');
$keywordCondition = '';
if (!empty($keyword)) {
$keyword = Database::escape_string($keyword);
$keywordCondition = " AND (title like '%$keyword%' OR content LIKE '%$keyword%') ";
}
$sql = "SELECT COUNT(*) as number_messages FROM $table_message $sql = "SELECT COUNT(*) as number_messages FROM $table_message
WHERE msg_status=".MESSAGE_STATUS_OUTBOX." AND user_sender_id=".api_get_user_id(); WHERE
$sql_result = Database::query($sql); msg_status=".MESSAGE_STATUS_OUTBOX." AND
$result = Database::fetch_array($sql_result); user_sender_id=".api_get_user_id()."
$keywordCondition
";
$result = Database::query($sql);
$result = Database::fetch_array($result);
return $result['number_messages']; return $result['number_messages'];
} }
@ -1523,13 +1567,15 @@ class MessageManager
//@todo this functions should be in the message class //@todo this functions should be in the message class
public static function inbox_display() public static function inbox_display($keyword = '')
{ {
$success = get_lang('SelectedMessagesDeleted'); $success = get_lang('SelectedMessagesDeleted');
$success_read = get_lang('SelectedMessagesRead'); $success_read = get_lang('SelectedMessagesRead');
$success_unread = get_lang('SelectedMessagesUnRead'); $success_unread = get_lang('SelectedMessagesUnRead');
$html = ''; $html = '';
Session::write('message_search_keyword', $keyword);
if (isset($_REQUEST['action'])) { if (isset($_REQUEST['action'])) {
switch ($_REQUEST['action']) { switch ($_REQUEST['action']) {
case 'mark_as_unread' : case 'mark_as_unread' :
@ -1590,18 +1636,25 @@ class MessageManager
) )
); );
$html .= $table->return_table(); $html .= $table->return_table();
Session::erase('message_search_keyword');
return $html; return $html;
} }
/** /**
* @return string * @param string $keyword
* @return null|string
*/ */
static function outbox_display() public static function outbox_display($keyword = '')
{ {
$social_link = false; $social_link = false;
if (isset($_REQUEST['f']) && $_REQUEST['f'] == 'social') { if (isset($_REQUEST['f']) && $_REQUEST['f'] == 'social') {
$social_link = 'f=social'; $social_link = 'f=social';
} }
Session::write('message_sent_search_keyword', $keyword);
$success = get_lang('SelectedMessagesDeleted').'&nbsp</b><br /><a href="outbox.php?'.$social_link.'">'.get_lang('BackToOutbox').'</a>'; $success = get_lang('SelectedMessagesDeleted').'&nbsp</b><br /><a href="outbox.php?'.$social_link.'">'.get_lang('BackToOutbox').'</a>';
$html = null; $html = null;
@ -1645,6 +1698,8 @@ class MessageManager
$table->set_form_actions(array('delete' => get_lang('DeleteSelectedMessages'))); $table->set_form_actions(array('delete' => get_lang('DeleteSelectedMessages')));
$html .= $table->return_table(); $html .= $table->return_table();
Session::erase('message_sent_search_keyword');
return $html; return $html;
} }
@ -1756,4 +1811,19 @@ class MessageManager
return false; return false;
} }
/**
* @param string $url
*
* @return FormValidator
*/
public static function getSearchForm($url)
{
$form = new FormValidator('search', 'post', $url, null, [], FormValidator::LAYOUT_INLINE);
$form->addElement('text', 'keyword');
$form->addButtonSearch(get_lang('Search'));
return $form;
}
} }

@ -1739,15 +1739,15 @@ class PHPMailer {
switch (strtolower($position)) { switch (strtolower($position)) {
case 'phrase': case 'phrase':
$encoded = preg_replace("/([^A-Za-z0-9!*+\/ -])/e", "'='.sprintf('%02X', ord('\\1'))", $encoded); $encoded = @preg_replace("/([^A-Za-z0-9!*+\/ -])/e", "'='.sprintf('%02X', ord('\\1'))", $encoded);
break; break;
case 'comment': case 'comment':
$encoded = preg_replace("/([\(\)\"])/e", "'='.sprintf('%02X', ord('\\1'))", $encoded); $encoded = @preg_replace("/([\(\)\"])/e", "'='.sprintf('%02X', ord('\\1'))", $encoded);
case 'text': case 'text':
default: default:
// Replace every high ascii, control =, ? and _ characters // Replace every high ascii, control =, ? and _ characters
//TODO using /e (equivalent to eval()) is probably not a good idea //TODO using /e (equivalent to eval()) is probably not a good idea
$encoded = preg_replace('/([\000-\011\013\014\016-\037\075\077\137\177-\377])/e', $encoded = @preg_replace('/([\000-\011\013\014\016-\037\075\077\137\177-\377])/e',
"'='.sprintf('%02X', ord('\\1'))", $encoded); "'='.sprintf('%02X', ord('\\1'))", $encoded);
break; break;
} }

@ -2357,7 +2357,6 @@ class UserManager
$result = Database::query($sql); $result = Database::query($sql);
$categories = array(); $categories = array();
if (Database::num_rows($result) > 0) { if (Database::num_rows($result) > 0) {
while ($row = Database::fetch_array($result, 'ASSOC')) { while ($row = Database::fetch_array($result, 'ASSOC')) {
@ -2380,7 +2379,10 @@ class UserManager
if (api_is_allowed_to_create_course()) { if (api_is_allowed_to_create_course()) {
// Teachers can access the session depending in the access_coach date // Teachers can access the session depending in the access_coach date
} else { } else {
if (isset($row['access_end_date']) && $row['access_end_date'] != '0000-00-00 00:00:00') { if (isset($row['access_end_date']) &&
($row['access_end_date'] != '0000-00-00 00:00:00') &&
!empty($row['access_end_date'])
) {
if ($row['access_end_date'] <= $now) { if ($row['access_end_date'] <= $now) {
continue; continue;
} }
@ -2410,6 +2412,7 @@ class UserManager
$ignore_visibility_for_admins $ignore_visibility_for_admins
); );
// Course Coach session visibility. // Course Coach session visibility.
$blockedCourseCount = 0; $blockedCourseCount = 0;
$closedVisibilityList = array( $closedVisibilityList = array(
@ -2426,7 +2429,6 @@ class UserManager
); );
$courseIsVisible = !in_array($course['visibility'], $closedVisibilityList); $courseIsVisible = !in_array($course['visibility'], $closedVisibilityList);
if ($courseIsVisible == false || $visibility == SESSION_INVISIBLE) { if ($courseIsVisible == false || $visibility == SESSION_INVISIBLE) {
$blockedCourseCount++; $blockedCourseCount++;
} }
@ -3773,16 +3775,23 @@ class UserManager
} else { } else {
$user_id = api_get_user_id(); $user_id = api_get_user_id();
$sql = 'SELECT COUNT(*) as count FROM '.$tbl_my_friend.' $sql = 'SELECT COUNT(*) as count FROM '.$tbl_my_friend.'
WHERE user_id='.$user_id.' AND relation_type NOT IN('.USER_RELATION_TYPE_DELETED.', '.USER_RELATION_TYPE_RRHH.') AND friend_user_id='.$friend_id; WHERE
user_id='.$user_id.' AND
relation_type NOT IN('.USER_RELATION_TYPE_DELETED.', '.USER_RELATION_TYPE_RRHH.') AND
friend_user_id='.$friend_id;
$result = Database::query($sql); $result = Database::query($sql);
$row = Database :: fetch_array($result, 'ASSOC'); $row = Database :: fetch_array($result, 'ASSOC');
if ($row['count'] == 1) { if ($row['count'] == 1) {
//Delete user rel user //Delete user rel user
$sql_i = 'UPDATE '.$tbl_my_friend.' SET relation_type='.USER_RELATION_TYPE_DELETED.' WHERE user_id='.$user_id.' AND friend_user_id='.$friend_id; $sql_i = 'UPDATE '.$tbl_my_friend.' SET relation_type='.USER_RELATION_TYPE_DELETED.'
$sql_j = 'UPDATE '.$tbl_my_message.' SET msg_status='.MESSAGE_STATUS_INVITATION_DENIED.' WHERE user_receiver_id='.$user_id.' AND user_sender_id='.$friend_id.' AND update_date="0000-00-00 00:00:00" '; WHERE user_id='.$user_id.' AND friend_user_id='.$friend_id;
$sql_j = 'UPDATE '.$tbl_my_message.' SET msg_status='.MESSAGE_STATUS_INVITATION_DENIED.'
WHERE user_receiver_id='.$user_id.' AND user_sender_id='.$friend_id.' AND update_date="0000-00-00 00:00:00" ';
//Delete user //Delete user
$sql_ij = 'UPDATE '.$tbl_my_friend.' SET relation_type='.USER_RELATION_TYPE_DELETED.' WHERE user_id='.$friend_id.' AND friend_user_id='.$user_id; $sql_ij = 'UPDATE '.$tbl_my_friend.' SET relation_type='.USER_RELATION_TYPE_DELETED.'
$sql_ji = 'UPDATE '.$tbl_my_message.' SET msg_status='.MESSAGE_STATUS_INVITATION_DENIED.' WHERE user_receiver_id='.$friend_id.' AND user_sender_id='.$user_id.' AND update_date="0000-00-00 00:00:00" '; WHERE user_id='.$friend_id.' AND friend_user_id='.$user_id;
$sql_ji = 'UPDATE '.$tbl_my_message.' SET msg_status='.MESSAGE_STATUS_INVITATION_DENIED.'
WHERE user_receiver_id='.$friend_id.' AND user_sender_id='.$user_id.' AND update_date="0000-00-00 00:00:00" ';
Database::query($sql_i); Database::query($sql_i);
Database::query($sql_j); Database::query($sql_j);
Database::query($sql_ij); Database::query($sql_ij);

@ -139,22 +139,25 @@ if (api_get_setting('allow_social_tool') == 'true') {
//Right content //Right content
$social_right_content = null; $social_right_content = null;
$keyword = '';
if (api_get_setting('allow_social_tool') == 'true') { if (api_get_setting('allow_social_tool') == 'true') {
$social_right_content .= '<div class="col-md-12">'; $actionsLeft = '<a href="'.api_get_path(WEB_PATH).'main/messages/new_message.php?f=social">'.
$social_right_content .= '<div class="actions">';
$social_right_content .= '<a href="'.api_get_path(WEB_PATH).'main/messages/new_message.php?f=social">'.
Display::return_icon('new-message.png', get_lang('ComposeMessage'), array(), 32).'</a>'; Display::return_icon('new-message.png', get_lang('ComposeMessage'), array(), 32).'</a>';
$social_right_content .= '<a href="'.api_get_path(WEB_PATH).'main/messages/outbox.php?f=social">'. $actionsLeft .= '<a href="'.api_get_path(WEB_PATH).'main/messages/outbox.php?f=social">'.
Display::return_icon('outbox.png', get_lang('Outbox'), array(), 32).'</a>'; Display::return_icon('outbox.png', get_lang('Outbox'), array(), 32).'</a>';
$social_right_content .= '</div>';
$social_right_content .= '</div>'; $form = MessageManager::getSearchForm(api_get_path(WEB_PATH).'main/messages/inbox.php');
$social_right_content .= '<div class="col-md-12">'; if ($form->validate()) {
$values = $form->getSubmitValues();
$keyword = $values['keyword'];
}
$actionsRight = $form->returnForm();
$social_right_content .= Display::toolbarAction('toolbar', [$actionsLeft, $actionsRight]);
} }
//MAIN CONTENT //MAIN CONTENT
if (!isset($_GET['del_msg'])) { if (!isset($_GET['del_msg'])) {
$social_right_content .= MessageManager::inbox_display(); $social_right_content .= MessageManager::inbox_display($keyword);
} else { } else {
$num_msg = intval($_POST['total']); $num_msg = intval($_POST['total']);
for ($i = 0; $i < $num_msg; $i++) { for ($i = 0; $i < $num_msg; $i++) {
@ -166,10 +169,6 @@ if (!isset($_GET['del_msg'])) {
$social_right_content .= MessageManager::inbox_display(); $social_right_content .= MessageManager::inbox_display();
} }
if (api_get_setting('allow_social_tool') == 'true') {
$social_right_content .= '</div>';
}
$tpl = new Template(null); $tpl = new Template(null);
// Block Social Avatar // Block Social Avatar
SocialManager::setSocialUserBlock($tpl, $user_id, 'messages'); SocialManager::setSocialUserBlock($tpl, $user_id, 'messages');

@ -99,15 +99,21 @@ if (isset($_REQUEST['action'])) {
$action = $_REQUEST['action']; $action = $_REQUEST['action'];
} }
$keyword = '';
$social_right_content = ''; $social_right_content = '';
if (api_get_setting('allow_social_tool') == 'true') { if (api_get_setting('allow_social_tool') == 'true') {
//Block Social Menu //Block Social Menu
$social_menu_block = SocialManager::show_social_menu('messages'); $social_menu_block = SocialManager::show_social_menu('messages');
$actionsLeft = '<a href="'.api_get_path(WEB_PATH).'main/messages/inbox.php?f=social">'.
$social_right_content .= '<div class="actions">';
$social_right_content .= '<a href="'.api_get_path(WEB_PATH).'main/messages/inbox.php?f=social">'.
Display::return_icon('back.png', get_lang('Back'), array(), 32).'</a>'; Display::return_icon('back.png', get_lang('Back'), array(), 32).'</a>';
$social_right_content .= '</div>';
$form = MessageManager::getSearchForm(api_get_path(WEB_PATH).'main/messages/outbox.php');
if ($form->validate()) {
$values = $form->getSubmitValues();
$keyword = $values['keyword'];
}
$actionsRight = $form->returnForm();
$social_right_content .= Display::toolbarAction('toolbar', [$actionsLeft, $actionsRight]);
} }
//MAIN CONTENT //MAIN CONTENT
if ($action == 'delete') { if ($action == 'delete') {
@ -118,20 +124,19 @@ if ($action == 'delete') {
if (isset($_POST['id'])) { if (isset($_POST['id'])) {
$delete_list_id=$_POST['id']; $delete_list_id=$_POST['id'];
} }
for ($i=0;$i<count($delete_list_id);$i++) { for ($i = 0; $i < count($delete_list_id); $i++) {
MessageManager::delete_message_by_user_sender(api_get_user_id(), $delete_list_id[$i]); MessageManager::delete_message_by_user_sender(api_get_user_id(), $delete_list_id[$i]);
} }
$delete_list_id=array(); $delete_list_id=array();
$social_right_content .= MessageManager::outbox_display(); $social_right_content .= MessageManager::outbox_display($keyword);
} elseif ($action == 'deleteone') {
} elseif($action =='deleteone') { $delete_list_id = array();
$delete_list_id=array();
$id = Security::remove_XSS($_GET['id']); $id = Security::remove_XSS($_GET['id']);
MessageManager::delete_message_by_user_sender(api_get_user_id(),$id); MessageManager::delete_message_by_user_sender(api_get_user_id(), $id);
$delete_list_id=array(); $delete_list_id=array();
$social_right_content .= MessageManager::outbox_display(); $social_right_content .= MessageManager::outbox_display($keyword);
} else { } else {
$social_right_content .= MessageManager::outbox_display(); $social_right_content .= MessageManager::outbox_display($keyword);
} }
$tpl = new Template(get_lang('ComposeMessage')); $tpl = new Template(get_lang('ComposeMessage'));
@ -146,7 +151,6 @@ if (api_get_setting('allow_social_tool') == 'true') {
} else { } else {
$content = $social_right_content; $content = $social_right_content;
$tpl->assign('actions', $actions); $tpl->assign('actions', $actions);
//$tpl->assign('message', $show_message);
$tpl->assign('content', $content); $tpl->assign('content', $content);
$tpl->display_one_col_template(); $tpl->display_one_col_template();
} }

@ -7,7 +7,6 @@
$cidReset = true; $cidReset = true;
// including the global Chamilo file
require_once '../inc/global.inc.php'; require_once '../inc/global.inc.php';
$xajax = new xajax(); $xajax = new xajax();
@ -23,10 +22,6 @@ api_protect_limit_for_session_admin();
$formSent=0; $formSent=0;
$errorMsg=''; $errorMsg='';
/*$interbreadcrumb[] = array(
'url' => 'index.php',
'name' => get_lang('PlatformAdmin'),
);*/
$interbreadcrumb[] = array( $interbreadcrumb[] = array(
'url' => 'session_list.php', 'url' => 'session_list.php',
'name' => get_lang('SessionList'), 'name' => get_lang('SessionList'),
@ -159,13 +154,15 @@ $form->setDefaults($formDefaults);
if ($form->validate()) { if ($form->validate()) {
$params = $form->getSubmitValues(); $params = $form->getSubmitValues();
$name = $params['name']; $name = $params['name'];
$startDate = $params['access_start_date']; $startDate = $params['access_start_date'];
$endDate = $params['access_end_date']; $endDate = $params['access_end_date'];
$displayStartDate = $params['display_start_date']; $displayStartDate = $params['display_start_date'];
$displayendDate = $params['display_end_date']; $displayEndDate = $params['display_end_date'];
$coachStartDate = $params['coach_access_start_date']; $coachStartDate = $params['coach_access_start_date'];
if (empty($coachStartDate)) {
$coachStartDate = $displayStartDate;
}
$coachEndDate = $params['coach_access_end_date']; $coachEndDate = $params['coach_access_end_date'];
$coach_username = intval($params['coach_username']); $coach_username = intval($params['coach_username']);
$id_session_category = $params['session_category']; $id_session_category = $params['session_category'];
@ -173,7 +170,7 @@ if ($form->validate()) {
$duration = isset($params['duration']) ? $params['duration'] : null; $duration = isset($params['duration']) ? $params['duration'] : null;
$description = $params['description']; $description = $params['description'];
$showDescription = isset($params['show_description']) ? 1: 0; $showDescription = isset($params['show_description']) ? 1: 0;
$sendSubscritionNotification = isset($params['send_subscription_notification']); $sendSubscriptionNotification = isset($params['send_subscription_notification']);
$extraFields = array(); $extraFields = array();
foreach ($params as $key => $value) { foreach ($params as $key => $value) {
@ -187,7 +184,7 @@ if ($form->validate()) {
$startDate, $startDate,
$endDate, $endDate,
$displayStartDate, $displayStartDate,
$displayendDate, $displayEndDate,
$coachStartDate, $coachStartDate,
$coachEndDate, $coachEndDate,
$coach_username, $coach_username,
@ -199,7 +196,7 @@ if ($form->validate()) {
$showDescription, $showDescription,
$extraFields, $extraFields,
null, null,
$sendSubscritionNotification $sendSubscriptionNotification
); );
if ($return == strval(intval($return))) { if ($return == strval(intval($return))) {
@ -212,7 +209,7 @@ if ($form->validate()) {
Display::display_header($tool_name); Display::display_header($tool_name);
if (!empty($return)) { if (!empty($return)) {
Display::display_error_message($return,false); Display::display_error_message($return, false);
} }
echo '<div class="actions">'; echo '<div class="actions">';

Loading…
Cancel
Save