Bläddra i källkod

Adding course int id see #3910

Julio Montoya 13 år sedan
förälder
incheckning
33e153c8a8
2 ändrade filer med 22 tillägg och 20 borttagningar
  1. 4 3
      main/inc/lib/usermanager.lib.php
  2. 18 17
      main/inc/lib/userportal.lib.php

+ 4 - 3
main/inc/lib/usermanager.lib.php

@@ -1868,7 +1868,8 @@ class UserManager {
 		$tbl_user_course_category = Database :: get_user_personal_table(TABLE_USER_COURSE_CATEGORY);
 
 		$personal_course_list_sql = "SELECT   course.code k, course.directory d, course.visual_code c, course.db_name db, course.title i, course.tutor_name t, 
-		                                      course.course_language l, course_rel_user.status s, course_rel_user.sort sort, course_rel_user.user_course_cat user_course_cat
+		                                      course.course_language l, course_rel_user.status s, course_rel_user.sort sort, course_rel_user.user_course_cat user_course_cat, 
+		                                      course.id as course_id
 			                         FROM ".$tbl_course_user." course_rel_user
 				                     LEFT JOIN ".$tbl_course." course
 					                 ON course.code = course_rel_user.course_code
@@ -1947,7 +1948,7 @@ class UserManager {
 				$id_session = $enreg['id'];
 				$personal_course_list_sql = "SELECT DISTINCT course.code k, course.directory d, course.visual_code c, course.db_name db, course.title i, 
 				                            ".(api_is_western_name_order() ? "CONCAT(user.firstname,' ',user.lastname)" : "CONCAT(user.lastname,' ',user.firstname)")." t, email, course.course_language l, 1 sort, 
-				                               category_code user_course_cat, date_start, date_end, session.id as id_session, session.name as session_name
+				                               category_code user_course_cat, date_start, date_end, session.id as id_session, session.name as session_name,  course.id as course_id
 					FROM $tbl_session_course_user as session_course_user
 						INNER JOIN $tbl_course AS course
 							ON course.code = session_course_user.course_code
@@ -1971,7 +1972,7 @@ class UserManager {
 		foreach ($sessions as $enreg) {
 			$id_session = $enreg['id'];
 			// this query is very similar to the above query, but it will check the session_rel_course_user table if there are courses registered to our user or not
-			$personal_course_list_sql = "SELECT distinct course.code k, course.directory d, course.visual_code c, course.db_name db, course.title i, CONCAT(user.lastname,' ',user.firstname) t, email, 
+			$personal_course_list_sql = "SELECT DISTINCT  course.id as course_id, course.code k, course.directory d, course.visual_code c, course.db_name db, course.title i, CONCAT(user.lastname,' ',user.firstname) t, email, 
 			                             course.course_language l, 1 sort, category_code user_course_cat, date_start, date_end, session.id as id_session, session.name as session_name, " .
                                         "IF((session_course_user.id_user = 3 AND session_course_user.status=2),'2', '5')
 										FROM $tbl_session_course_user as session_course_user

+ 18 - 17
main/inc/lib/userportal.lib.php

@@ -1119,27 +1119,29 @@ class IndexManager {
 			}
 		
 			/*  Announcements */
-		
-			$course_database = $my_course['db'];
-			$course_tool_table = Database::get_course_table(TABLE_TOOL_LIST, $course_database);
-			$query = "SELECT visibility FROM $course_tool_table WHERE link = 'announcements/announcements.php' AND visibility = 1";
+			
+            $course_id = $my_course['course_id'];
+            
+			$course_tool_table = Database::get_course_table(TABLE_TOOL_LIST);
+			$query = "SELECT visibility FROM $course_tool_table WHERE c_id = $course_id AND link = 'announcements/announcements.php' AND visibility = 1";
 			$result = Database::query($query);
+            
 			// Collect from announcements, but only if tool is visible for the course.
 			if ($result && $maxValvas > 0 && Database::num_rows($result) > 0) {
 				// Search announcements table.
 				// Take the entries listed at the top of advalvas/announcements tool.
 				$course_announcement_table = Database::get_course_table(TABLE_ANNOUNCEMENT);
 				$sqlGetLastAnnouncements = "SELECT end_date publicationDate, content
-		                                            FROM ".$course_announcement_table;
+		                                            FROM ".$course_announcement_table." WHERE c_id = $course_id ";
 				switch (CONFVAL_limitPreviewTo) {
 					case SCRIPTVAL_NewEntriesOfTheDay :
-						$sqlGetLastAnnouncements .= "WHERE DATE_FORMAT(end_date,'%Y %m %d') >= '".date('Y m d')."'";
+						$sqlGetLastAnnouncements .= " AND DATE_FORMAT(end_date,'%Y %m %d') >= '".date('Y m d')."'";
 						break;
 					case SCRIPTVAL_NoTimeLimit :
 						break;
 					case SCRIPTVAL_NewEntriesOfTheDayOfLastLogin :
 						// take care mysql -> DATE_FORMAT(time,format) php -> date(format,date)
-						$sqlGetLastAnnouncements .= "WHERE DATE_FORMAT(end_date,'%Y %m %d') >= '".date('Y m d', $_user['lastLogin'])."'";
+						$sqlGetLastAnnouncements .= " AND  DATE_FORMAT(end_date,'%Y %m %d') >= '".date('Y m d', $_user['lastLogin'])."'";
 				}
 				$sqlGetLastAnnouncements .= "ORDER BY end_date DESC LIMIT ".$maxValvas;
 				$resGetLastAnnouncements = Database::query($sqlGetLastAnnouncements);
@@ -1154,11 +1156,9 @@ class IndexManager {
 				}
 			}
 		
-			/* Agenda */
-		
-			$course_database = $my_course['db'];
-			$course_tool_table = Database :: get_course_table(TABLE_TOOL_LIST, $course_database);
-			$query = "SELECT visibility FROM $course_tool_table WHERE link = 'calendar/agenda.php' AND visibility = 1";
+			/* Agenda */		
+			$course_tool_table = Database :: get_course_table(TABLE_TOOL_LIST);
+			$query = "SELECT visibility FROM $course_tool_table WHERE c_id = $course_id AND link = 'calendar/agenda.php' AND visibility = 1";
 			$result = Database::query($query);
 			$thisAgenda = $maxCourse - $nbDigestEntries; // New max entries for agenda.
 			if ($maxAgenda < $thisAgenda) {
@@ -1166,12 +1166,13 @@ class IndexManager {
 			}
 			// Collect from agenda, but only if tool is visible for the course.
 			if ($result && $thisAgenda > 0 && Database::num_rows($result) > 0) {
-				$tableCal = $courseTablePrefix.$thisCourseDbName.$_configuration['db_glue'].'calendar_event';
+				//$tableCal = $courseTablePrefix.$thisCourseDbName.$_configuration['db_glue'].'calendar_event';
+                $course_table_agenda = Database::get_course_table(TABLE_AGENDA);
 				$sqlGetNextAgendaEvent = "SELECT start_date, title content, start_time
-		                                            FROM $tableCal
-		                                            WHERE start_date >= CURDATE()
-		                                            ORDER BY start_date, start_time
-		                                            LIMIT $maxAgenda";
+                                            FROM $course_table_agenda
+                                            WHERE c_id = $course_id AND start_date >= CURDATE()
+                                            ORDER BY start_date, start_time
+                                            LIMIT $maxAgenda";
 				$resGetNextAgendaEvent = Database::query($sqlGetNextAgendaEvent);
 				if ($resGetNextAgendaEvent) {
 					while ($agendaEvent = Database::fetch_array($resGetNextAgendaEvent)) {