Browse Source

More fixes due the single course DB changes

Julio Montoya 13 years ago
parent
commit
6da0586855
1 changed files with 25 additions and 22 deletions
  1. 25 22
      main/calendar/agenda.lib.php

+ 25 - 22
main/calendar/agenda.lib.php

@@ -1,34 +1,41 @@
 <?php 
 <?php 
+/* For licensing terms, see /license.txt */
+
+/**
+ *  @author: Julio Montoya <gugli100@gmail.com> Implementing a real agenda lib
+ */
 
 
 class Agenda {
 class Agenda {
+	var $events = array();
+	var $type   = 'personal'; // personal, admin or course
+	 
 	
 	
 	function __construct() {
 	function __construct() {
+		//Table definitions
 		$this->tbl_global_agenda 	= Database::get_main_table(TABLE_MAIN_SYSTEM_CALENDAR);  
 		$this->tbl_global_agenda 	= Database::get_main_table(TABLE_MAIN_SYSTEM_CALENDAR);  
-		$this->tbl_personal_agenda 	= Database::get_user_personal_table(TABLE_PERSONAL_AGENDA);
+		$this->tbl_personal_agenda 	= Database::get_user_personal_table(TABLE_PERSONAL_AGENDA);		
+		$this->tbl_course_agenda 	= Database::get_course_table(TABLE_AGENDA);
 		
 		
+		//Setting the course object if we are in a course
 		$this->course = null;
 		$this->course = null;
-		$this->tbl_course_agenda = null;
-		
 		$course_info = api_get_course_info();
 		$course_info = api_get_course_info();
-		if (!empty($course_info)) {
-			$this->course = $course_info;
-			$this->tbl_course_agenda 	= Database::get_course_table(TABLE_AGENDA, $course_info['db_name']);
+		if (!empty($course_info)) {			
+			$this->course = $course_info;			
 		}
 		}
 		
 		
 		$this->events				= array();
 		$this->events				= array();
 		
 		
+		//Event colors
 		$this->event_platform_color = 'red';//red
 		$this->event_platform_color = 'red';//red
 		$this->event_course_color 	= '#458B00'; //green
 		$this->event_course_color 	= '#458B00'; //green
 		$this->event_group_color 	= '#A0522D'; //siena
 		$this->event_group_color 	= '#A0522D'; //siena
 		$this->event_session_color 	= '#000080'; // blue
 		$this->event_session_color 	= '#000080'; // blue
 		$this->event_personal_color = 'steel blue'; //steel blue
 		$this->event_personal_color = 'steel blue'; //steel blue
-		$this->type 				= 'personal';
-		
 	}
 	}
 	
 	
 	/**
 	/**
 	 * 
 	 * 
-	 * Add an event
+	 * Adds an event
 	 * @param 	int		start tms
 	 * @param 	int		start tms
 	 * @param 	int		end tms
 	 * @param 	int		end tms
 	 * @param 	string	agendaDay, agendaWeek, month
 	 * @param 	string	agendaDay, agendaWeek, month
@@ -43,7 +50,7 @@ class Agenda {
 		$all_day 	= isset($all_day) && $all_day == 'true' ? 1:0;
 		$all_day 	= isset($all_day) && $all_day == 'true' ? 1:0;
 		
 		
 		$attributes = array();
 		$attributes = array();
-		$id = null;		
+		$id = null;
 		switch ($this->type) {
 		switch ($this->type) {
 			case 'personal':
 			case 'personal':
 				$attributes['user'] 	= api_get_user_id();
 				$attributes['user'] 	= api_get_user_id();
@@ -82,8 +89,7 @@ class Agenda {
 		return $id;				
 		return $id;				
 	}
 	}
 	
 	
-	function edit_event($id, $start, $end, $all_day, $view, $title, $content) {
-		
+	function edit_event($id, $start, $end, $all_day, $view, $title, $content) {		
 		$start 		= date('Y-m-d H:i:s', $start);
 		$start 		= date('Y-m-d H:i:s', $start);
 		$start 		= api_get_utc_datetime($start);
 		$start 		= api_get_utc_datetime($start);
 		
 		
@@ -94,7 +100,7 @@ class Agenda {
 		$all_day 	= isset($all_day) && $all_day == '1' ? 1:0;
 		$all_day 	= isset($all_day) && $all_day == '1' ? 1:0;
 		
 		
 		$attributes = array();
 		$attributes = array();
-		
+
 		switch($this->type) {
 		switch($this->type) {
 			case 'personal':
 			case 'personal':
 				$attributes['title'] 	= $title;
 				$attributes['title'] 	= $title;
@@ -199,7 +205,7 @@ class Agenda {
 					break;
 					break;
 				case 'course':
 				case 'course':
 					$sql = "UPDATE $this->tbl_course_agenda SET start_date = DATE_ADD(start_date,INTERVAL $delta MINUTE), end_date = DATE_ADD(end_date, INTERVAL $delta MINUTE)
 					$sql = "UPDATE $this->tbl_course_agenda SET start_date = DATE_ADD(start_date,INTERVAL $delta MINUTE), end_date = DATE_ADD(end_date, INTERVAL $delta MINUTE)
-							WHERE id=".intval($id);
+							WHERE c_id = ".$this->course['real_id']." AND id=".intval($id);
 					$result = Database::query($sql);					
 					$result = Database::query($sql);					
 					break;
 					break;
 				case 'admin':
 				case 'admin':
@@ -213,7 +219,7 @@ class Agenda {
 	}
 	}
 	
 	
 	/**
 	/**
-	 * Gets a single personal event	 
+	 * Gets a single event	 
 	 * @param int event id
 	 * @param int event id
 	 */
 	 */
 	function get_event($id) {
 	function get_event($id) {
@@ -304,9 +310,7 @@ class Agenda {
 	                		( ip.to_user_id=$user_id OR ip.to_group_id IN (0, ".implode(", ", $group_memberships).") ) AND 
 	                		( ip.to_user_id=$user_id OR ip.to_group_id IN (0, ".implode(", ", $group_memberships).") ) AND 
 	                		ip.visibility	= '1' AND
 	                		ip.visibility	= '1' AND
 	                		agenda.c_id = $course_id AND
 	                		agenda.c_id = $course_id AND
-	                		ip.c_id = $course_id
-	                		
-	            	";
+	                		ip.c_id = $course_id";
 		} else {
 		} else {
 			if (api_get_user_id()) {
 			if (api_get_user_id()) {
 				$sql="SELECT agenda.*, ip.visibility, ip.to_group_id, ip.insert_user_id, ip.ref
 				$sql="SELECT agenda.*, ip.visibility, ip.to_group_id, ip.insert_user_id, ip.ref
@@ -346,6 +350,7 @@ class Agenda {
 				$event['title'] 		= $row['title'];
 				$event['title'] 		= $row['title'];
 				$event['className'] 	= 'course';
 				$event['className'] 	= 'course';
 				$event['allDay'] 	  	= 'false';
 				$event['allDay'] 	  	= 'false';
+				
 				//	var_dump($row);
 				//	var_dump($row);
 				$event['borderColor'] 	= $event['backgroundColor'] = $this->event_course_color;
 				$event['borderColor'] 	= $event['backgroundColor'] = $this->event_course_color;
 				if (isset($row['session_id']) && !empty($row['session_id'])) {
 				if (isset($row['session_id']) && !empty($row['session_id'])) {
@@ -421,12 +426,10 @@ class Agenda {
 				$this->events[]= $event;
 				$this->events[]= $event;
 			}
 			}
 		}
 		}
-		return $my_events;
-		
+		return $my_events;		
 	}
 	}
 	
 	
-	
-	
+	//Format needed for the js lib	
 	function format_event_date($utc_time) {		
 	function format_event_date($utc_time) {		
 		return date('c', api_strtotime(api_get_local_time($utc_time)));
 		return date('c', api_strtotime(api_get_local_time($utc_time)));
 	}
 	}