С 9:00 до 21:00 Без выходных

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 в базе данных. Убедитесь, что эта таблица существует в вашей базе данных.

  • Фильтрация: Для удобства использования, класс поддерживает фильтрацию журналов по пользователю и задаче. Вы можете настроить отображение записей по времени, пользователю или задаче.

Этот класс помогает в логировании всех действий и событий, связанных с задачами, и позволяет администраторам или пользователям просматривать историю изменений и событий в системе.