system/journal/task_manager_logs.php
Вот содержимое файла system/journal/task_manager_logs.php
:
<?php
// Task Manager Logs Class - Handles logging actions and events for the Task Manager module
class TaskManagerLogs {
private $db;
// Constructor to initialize the database connection
public function __construct($db) {
$this->db = $db;
}
// Method to log events in the Task Manager
public function logEvent($event_type, $user_id, $task_id, $details) {
// Prepare data for log entry
$data = array(
'event_type' => $event_type,
'user_id' => $user_id,
'task_id' => $task_id,
'details' => $details,
'date_added' => date('Y-m-d H:i:s')
);
// Insert log entry into the database
$this->db->query("INSERT INTO " . DB_PREFIX . "task_manager_logs SET event_type = '" . $this->db->escape($data['event_type']) . "',
user_id = '" . (int)$data['user_id'] . "', task_id = '" . (int)$data['task_id'] . "',
details = '" . $this->db->escape($data['details']) . "', date_added = '" . $this->db->escape($data['date_added']) . "'");
return true;
}
// Method to get logs from the database
public function getLogs($start = 0, $limit = 20) {
$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "task_manager_logs ORDER BY date_added DESC LIMIT " . (int)$start . ", " . (int)$limit);
return $query->rows;
}
// Method to get log count from the database
public function getLogCount() {
$query = $this->db->query("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "task_manager_logs");
return $query->row['total'];
}
// Method to clear all task logs
public function clearLogs() {
$this->db->query("DELETE FROM " . DB_PREFIX . "task_manager_logs");
return true;
}
// Method to get logs based on a specific user
public function getUserLogs($user_id, $start = 0, $limit = 20) {
$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "task_manager_logs WHERE user_id = '" . (int)$user_id . "'
ORDER BY date_added DESC LIMIT " . (int)$start . ", " . (int)$limit);
return $query->rows;
}
// Method to get logs based on a specific task
public function getTaskLogs($task_id, $start = 0, $limit = 20) {
$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "task_manager_logs WHERE task_id = '" . (int)$task_id . "'
ORDER BY date_added DESC LIMIT " . (int)$start . ", " . (int)$limit);
return $query->rows;
}
}
?>
Объяснение кода:
-
Класс
TaskManagerLogs
:-
Этот класс используется для работы с журналом событий, который сохраняет все действия и события, связанные с задачами. Он предоставляет методы для записи, получения, удаления и фильтрации журналов.
-
-
Методы класса:
-
logEvent($event_type, $user_id, $task_id, $details)
: Этот метод записывает новое событие в журнал. Сюда можно передавать тип события (например, создание задачи, завершение задачи и т.д.), ID пользователя, ID задачи и детали события. -
getLogs($start = 0, $limit = 20)
: Возвращает список всех журналов, начиная с позиции$start
, с лимитом в$limit
записей. -
getLogCount()
: Возвращает общее количество записей в журнале. -
clearLogs()
: Очищает все записи журнала. Это может быть полезно, если нужно очистить старые данные. -
getUserLogs($user_id, $start = 0, $limit = 20)
: Получает записи журнала для конкретного пользователя, фильтруя их поuser_id
. -
getTaskLogs($task_id, $start = 0, $limit = 20)
: Получает записи журнала для конкретной задачи, фильтруя их поtask_id
.
-
Примечания:
-
База данных: Все данные записываются в таблицу
task_manager_logs
в базе данных. Убедитесь, что эта таблица существует в вашей базе данных. -
Фильтрация: Для удобства использования, класс поддерживает фильтрацию журналов по пользователю и задаче. Вы можете настроить отображение записей по времени, пользователю или задаче.
Этот класс помогает в логировании всех действий и событий, связанных с задачами, и позволяет администраторам или пользователям просматривать историю изменений и событий в системе.