| 
									
										
										
										
											2024-07-08 09:17:35 +00:00
										 |  |  | <?php | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class Component { | 
					
						
							|  |  |  |     private $db; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     public function __construct($database) { | 
					
						
							|  |  |  |         $this->db = $database->getConnection(); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     // list of component events
 | 
					
						
							| 
									
										
										
										
											2024-10-03 14:31:39 +00:00
										 |  |  |     public function jitsiComponents($jitsi_component, $component_id, $event_type, $from_time, $until_time, $offset=0, $items_per_page='') { | 
					
						
							| 
									
										
										
										
											2024-07-08 09:17:35 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |         // time period drill-down
 | 
					
						
							|  |  |  |         // FIXME make it similar to the bash version
 | 
					
						
							|  |  |  |         if (empty($from_time)) { | 
					
						
							|  |  |  |             $from_time = '0000-01-01'; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         if (empty($until_time)) { | 
					
						
							|  |  |  |             $until_time = '9999-12-31'; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         $from_time = htmlspecialchars(strip_tags($from_time)); | 
					
						
							|  |  |  |         $until_time = htmlspecialchars(strip_tags($until_time)); | 
					
						
							| 
									
										
										
										
											2024-08-21 19:11:28 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |         // list of jitsi component events
 | 
					
						
							| 
									
										
										
										
											2024-08-23 09:44:31 +00:00
										 |  |  |         $sql = "
 | 
					
						
							|  |  |  | SELECT | 
					
						
							|  |  |  |     jitsi_component, loglevel, time, component_id, event_type, event_param | 
					
						
							|  |  |  | FROM | 
					
						
							|  |  |  |     jitsi_components | 
					
						
							|  |  |  | WHERE | 
					
						
							|  |  |  |     jitsi_component = %s | 
					
						
							|  |  |  | AND | 
					
						
							| 
									
										
										
										
											2024-10-03 14:31:39 +00:00
										 |  |  |     component_id = %s";
 | 
					
						
							|  |  |  |         if ($event_type != '' && $event_type != 'event_type') { | 
					
						
							|  |  |  |             $sql .= "
 | 
					
						
							|  |  |  | AND | 
					
						
							|  |  |  |     event_type LIKE '%%%s%%'";
 | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         $sql .= "
 | 
					
						
							| 
									
										
										
										
											2024-08-23 09:44:31 +00:00
										 |  |  | AND | 
					
						
							|  |  |  |     (time >= '%s 00:00:00' AND time <= '%s 23:59:59') | 
					
						
							|  |  |  | ORDER BY | 
					
						
							|  |  |  |     time";
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-09-15 18:49:20 +00:00
										 |  |  |         if ($items_per_page) { | 
					
						
							|  |  |  |             $items_per_page = (int)$items_per_page; | 
					
						
							|  |  |  |             $sql .= ' LIMIT ' . $offset . ',' . $items_per_page; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-10-03 14:31:39 +00:00
										 |  |  |         // FIXME this needs to be done with bound params instead of sprintf
 | 
					
						
							|  |  |  |         if ($event_type != '' && $event_type != 'event_type') { | 
					
						
							|  |  |  |             $sql = sprintf($sql, $jitsi_component, $component_id, $event_type, $from_time, $until_time); | 
					
						
							|  |  |  |             $sql = str_replace("LIKE '%'", "LIKE '%", $sql); | 
					
						
							|  |  |  |             $sql = str_replace("'%'\nAND", "%' AND", $sql); | 
					
						
							|  |  |  |         } else { | 
					
						
							|  |  |  |             $sql = sprintf($sql, $jitsi_component, $component_id, $from_time, $until_time); | 
					
						
							|  |  |  |         } | 
					
						
							| 
									
										
										
										
											2024-07-08 09:17:35 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |         $query = $this->db->prepare($sql); | 
					
						
							| 
									
										
										
										
											2024-08-22 08:59:48 +00:00
										 |  |  |         $query->execute(); | 
					
						
							| 
									
										
										
										
											2024-07-08 09:17:35 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |         return $query->fetchAll(PDO::FETCH_ASSOC); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ?>
 |