From 0f134169f5e8a158d0ba349fbc1e82569ded0818 Mon Sep 17 00:00:00 2001 From: Julio Montoya Date: Tue, 30 Jun 2015 15:59:37 +0200 Subject: [PATCH] Fix query. --- main/inc/lib/agenda.lib.php | 32 +++++++++++++++++++++++--------- 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/main/inc/lib/agenda.lib.php b/main/inc/lib/agenda.lib.php index cca8aaa67f..fb66117da6 100644 --- a/main/inc/lib/agenda.lib.php +++ b/main/inc/lib/agenda.lib.php @@ -1251,8 +1251,8 @@ class Agenda if (empty($course_id)) { return array(); } - $user_id = intval($user_id); + $user_id = intval($user_id); $groupList = GroupManager::get_group_list(null, $courseInfo['code']); $group_name_list = array(); @@ -1318,14 +1318,29 @@ class Agenda if ($user_id == 0) { $where_condition = ""; } else { - $where_condition = " ( ip.to_user_id = ".$user_id. " OR ip.to_group_id='0' OR ip.to_group_id IS NULL ) AND "; + $where_condition = " ( ip.to_user_id = ".$user_id. " OR (ip.to_group_id='0' OR ip.to_group_id IS NULL) ) AND "; } $visibilityCondition = " (ip.visibility IN ('1', '0')) AND "; } else { - $where_condition = " ( ip.to_user_id = $user_id OR ip.to_group_id='0' OR ip.to_group_id IS NULL) AND "; + $where_condition = " ( ip.to_user_id = $user_id OR (ip.to_group_id='0' OR ip.to_group_id IS NULL)) AND "; + } + + + $sessionCondition = " agenda.session_id = $session_id AND + ip.session_id = $session_id "; + if (empty($session_id)) { + $sessionCondition = " + (agenda.session_id = 0 OR agenda.session_id IS NULL) AND + (ip.session_id = 0 OR ip.session_id IS NULL) "; } - $sql = "SELECT DISTINCT agenda.*, ip.visibility, ip.to_group_id, ip.insert_user_id, ip.ref, to_user_id + $sql = "SELECT DISTINCT + agenda.*, + ip.visibility, + ip.to_group_id, + ip.insert_user_id, + ip.ref, + to_user_id FROM $tlb_course_agenda agenda INNER JOIN $tbl_property ip ON (agenda.id = ip.ref AND agenda.c_id = ip.c_id) @@ -1335,8 +1350,7 @@ class Agenda $visibilityCondition agenda.c_id = $course_id AND ip.c_id = $course_id AND - agenda.session_id = $session_id AND - ip.session_id = $session_id + $sessionCondition "; } @@ -1347,9 +1361,9 @@ class Agenda agenda.start_date BETWEEN '".$start."' AND '".$end."' OR agenda.end_date BETWEEN '".$start."' AND '".$end."' OR ( - agenda.start_date <> '' AND agenda.end_date <> '' AND - YEAR(agenda.start_date) = YEAR(agenda.end_date) AND - MONTH('$start') BETWEEN MONTH(agenda.start_date) AND MONTH(agenda.end_date) + agenda.start_date IS NOT NULL AND agenda.end_date IS NOT NULL AND + YEAR(agenda.start_date) = YEAR(agenda.end_date) AND + MONTH('$start') BETWEEN MONTH(agenda.start_date) AND MONTH(agenda.end_date) ) )"; }