jilo-web/app/classes/component.php

70 lines
1.9 KiB
PHP
Raw Normal View History

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
$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 .= "
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);
}
}
?>