admin/model/extension/task_manager.php
Вот содержимое файла admin/model/extension/task_manager.php
:
<?php
// Model for Task Manager module in OpenCart Admin Panel
class ModelExtensionTaskManager extends Model {
// Get all tasks
public function getTasks() {
$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "task_manager ORDER BY task_id DESC");
return $query->rows;
}
// Get a single task by ID
public function getTask($task_id) {
$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "task_manager WHERE task_id = '" . (int)$task_id . "'");
return $query->row;
}
// Add a new task
public function addTask($data) {
$this->db->query("INSERT INTO " . DB_PREFIX . "task_manager SET title = '" . $this->db->escape($data['title']) . "',
description = '" . $this->db->escape($data['description']) . "',
user_id = '" . (int)$data['user_id'] . "',
category_id = '" . (int)$data['category_id'] . "',
status = '" . (int)$data['status'] . "',
due_date = '" . $this->db->escape($data['due_date']) . "',
priority = '" . (int)$data['priority'] . "',
tags = '" . $this->db->escape($data['tags']) . "'");
}
// Edit an existing task
public function editTask($task_id, $data) {
$this->db->query("UPDATE " . DB_PREFIX . "task_manager SET title = '" . $this->db->escape($data['title']) . "',
description = '" . $this->db->escape($data['description']) . "',
user_id = '" . (int)$data['user_id'] . "',
category_id = '" . (int)$data['category_id'] . "',
status = '" . (int)$data['status'] . "',
due_date = '" . $this->db->escape($data['due_date']) . "',
priority = '" . (int)$data['priority'] . "',
tags = '" . $this->db->escape($data['tags']) . "'
WHERE task_id = '" . (int)$task_id . "'");
}
// Delete a task
public function deleteTask($task_id) {
$this->db->query("DELETE FROM " . DB_PREFIX . "task_manager WHERE task_id = '" . (int)$task_id . "'");
}
// Get all users for task assignment
public function getUsers() {
$query = $this->db->query("SELECT user_id, firstname, lastname FROM " . DB_PREFIX . "user");
return $query->rows;
}
// Get all categories for tasks
public function getCategories() {
$query = $this->db->query("SELECT category_id, name FROM " . DB_PREFIX . "task_category");
return $query->rows;
}
// Get tasks for report (optional, for reporting purposes)
public function getTasksForReport() {
$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "task_manager");
return $query->rows;
}
// Get tasks by user id
public function getTasksByUser($user_id) {
$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "task_manager WHERE user_id = '" . (int)$user_id . "'");
return $query->rows;
}
// Get tasks by category
public function getTasksByCategory($category_id) {
$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "task_manager WHERE category_id = '" . (int)$category_id . "'");
return $query->rows;
}
// Get tasks with specific filters (e.g. status, priority)
public function getTasksByFilters($data) {
$sql = "SELECT * FROM " . DB_PREFIX . "task_manager WHERE 1";
if (!empty($data['status'])) {
$sql .= " AND status = '" . (int)$data['status'] . "'";
}
if (!empty($data['priority'])) {
$sql .= " AND priority = '" . (int)$data['priority'] . "'";
}
if (!empty($data['due_date'])) {
$sql .= " AND due_date = '" . $this->db->escape($data['due_date']) . "'";
}
$sql .= " ORDER BY task_id DESC";
$query = $this->db->query($sql);
return $query->rows;
}
// Add log entry for task activity
public function addTaskLog($task_id, $action, $note) {
$this->db->query("INSERT INTO " . DB_PREFIX . "task_log SET task_id = '" . (int)$task_id . "',
action = '" . $this->db->escape($action) . "',
note = '" . $this->db->escape($note) . "',
date_added = NOW()");
}
// Get task logs
public function getTaskLogs($task_id) {
$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "task_log WHERE task_id = '" . (int)$task_id . "' ORDER BY date_added DESC");
return $query->rows;
}
}
Объяснение:
-
Методы для работы с задачами:
-
getTasks()
- Получение всех задач. -
getTask($task_id)
- Получение одной задачи по ID. -
addTask($data)
- Добавление новой задачи. -
editTask($task_id, $data)
- Редактирование существующей задачи. -
deleteTask($task_id)
- Удаление задачи. -
getTasksByUser($user_id)
- Получение задач по ID пользователя. -
getTasksByCategory($category_id)
- Получение задач по ID категории. -
getTasksByFilters($data)
- Получение задач с фильтрацией по статусу, приоритету и дате.
-
-
Методы для логирования:
-
addTaskLog($task_id, $action, $note)
- Добавление логов для задач. -
getTaskLogs($task_id)
- Получение логов для конкретной задачи.
-
-
Методы для пользователей и категорий:
-
getUsers()
- Получение списка пользователей. -
getCategories()
- Получение списка категорий задач.
-
Этот файл содержит основную логику для работы с задачами, пользователями и логированием действий в админской панели OpenCart.