admin/controller/extension/task_manager.php
Вот содержимое файла admin/controller/extension/task_manager.php
:
<?php
// Controller for Task Manager module in OpenCart Admin Panel
class ControllerExtensionTaskManager extends Controller {
private $error = array();
// Load necessary language files and models
public function __construct($registry) {
parent::__construct($registry);
$this->load->language('extension/task_manager');
$this->load->model('extension/task_manager');
}
// Index function to load task manager page
public function index() {
$this->load->language('extension/task_manager');
$this->document->setTitle($this->language->get('heading_title'));
// Get tasks from model
$data['tasks'] = $this->model_extension_task_manager->getTasks();
// Render the view template
$this->response->setOutput($this->load->view('extension/task_manager/index', $data));
}
// Add new task
public function add() {
$this->load->language('extension/task_manager');
$this->document->setTitle($this->language->get('heading_title'));
if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validateForm()) {
$this->model_extension_task_manager->addTask($this->request->post);
$this->session->data['success'] = $this->language->get('text_success_add');
$this->response->redirect($this->url->link('extension/task_manager', 'user_token=' . $this->session->data['user_token'], true));
}
// Get users and categories for task form
$data['users'] = $this->model_extension_task_manager->getUsers();
$data['categories'] = $this->model_extension_task_manager->getCategories();
// Show the task form
$this->response->setOutput($this->load->view('extension/task_manager/task_form', $data));
}
// Edit existing task
public function edit() {
$this->load->language('extension/task_manager');
$this->document->setTitle($this->language->get('heading_title'));
if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validateForm()) {
$this->model_extension_task_manager->editTask($this->request->get['task_id'], $this->request->post);
$this->session->data['success'] = $this->language->get('text_success_edit');
$this->response->redirect($this->url->link('extension/task_manager', 'user_token=' . $this->session->data['user_token'], true));
}
// Get task data for editing
$data['task'] = $this->model_extension_task_manager->getTask($this->request->get['task_id']);
$data['users'] = $this->model_extension_task_manager->getUsers();
$data['categories'] = $this->model_extension_task_manager->getCategories();
// Show the task form for editing
$this->response->setOutput($this->load->view('extension/task_manager/task_form', $data));
}
// Delete task
public function delete() {
$this->load->language('extension/task_manager');
if (isset($this->request->post['selected']) && $this->validateDelete()) {
foreach ($this->request->post['selected'] as $task_id) {
$this->model_extension_task_manager->deleteTask($task_id);
}
$this->session->data['success'] = $this->language->get('text_success_delete');
$this->response->redirect($this->url->link('extension/task_manager', 'user_token=' . $this->session->data['user_token'], true));
}
// Get tasks for deletion
$data['tasks'] = $this->model_extension_task_manager->getTasks();
// Show task list with delete option
$this->response->setOutput($this->load->view('extension/task_manager/task_list', $data));
}
// Validate form input
protected function validateForm() {
if (!$this->user->hasPermission('modify', 'extension/task_manager')) {
$this->error['warning'] = $this->language->get('error_permission');
}
if (empty($this->request->post['title'])) {
$this->error['title'] = $this->language->get('error_title');
}
return !$this->error;
}
// Validate delete permission
protected function validateDelete() {
if (!$this->user->hasPermission('modify', 'extension/task_manager')) {
$this->error['warning'] = $this->language->get('error_permission');
}
return !$this->error;
}
// Get task statistics for report
public function report() {
$this->load->language('extension/task_manager');
$this->document->setTitle($this->language->get('heading_report'));
$data['tasks'] = $this->model_extension_task_manager->getTasksForReport();
// Show report page
$this->response->setOutput($this->load->view('extension/task_manager/report', $data));
}
}
Объяснение:
-
Метод
index()
: Загружает список всех задач, используя модель и выводит его на странице администрирования. -
Метод
add()
: Позволяет добавить новую задачу. После отправки формы она проверяется и добавляется в базу данных. -
Метод
edit()
: Обрабатывает редактирование уже существующей задачи. Отображает форму с текущими данными задачи. -
Метод
delete()
: Позволяет удалить задачи, если они были выбраны в списке. -
Метод
validateForm()
: Проверка разрешений и валидности данных формы. -
Метод
validateDelete()
: Проверка разрешений перед удалением задач. -
Метод
report()
: Формирует отчет по задачам, статистика и метрики.
Это основной контроллер для управления задачами в панели администратора OpenCart. Он взаимодействует с моделью и отображает соответствующие страницы для администраторов.