Модуль Автосортировка материалов OpenCart 3.0.3.9
Структура файлов модуля:
pgsqlupload/
└── admin/
└── controller/
└── extension/
└── module/
└── autosort.php
└── language/
└── ru-ru/
└── extension/
└── module/
└── autosort.php
└── view/
└── template/
└── extension/
└── module/
└── autosort.twig
install.xml
README.txt
Содержимое файлов:
1. admin/controller/extension/module/autosort.php
php<?php
class ControllerExtensionModuleAutoSort extends Controller {
private $error = array();
public function index() {
$this->load->language('extension/module/autosort');
$this->document->setTitle($this->language->get('heading_title'));
$this->load->model('setting/setting');
if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validate()) {
$this->model_setting_setting->editSetting('autosort', $this->request->post);
$this->session->data['success'] = $this->language->get('text_success');
$this->response->redirect($this->url->link('marketplace/extension', 'user_token=' . $this->session->data['user_token'] . '&type=module', true));
}
$data['heading_title'] = $this->language->get('heading_title');
$data['text_edit'] = $this->language->get('text_edit');
$data['entry_status'] = $this->language->get('entry_status');
$data['button_save'] = $this->language->get('button_save');
$data['button_cancel'] = $this->language->get('button_cancel');
if (isset($this->error['warning'])) {
$data['error_warning'] = $this->error['warning'];
} else {
$data['error_warning'] = '';
}
$data['breadcrumbs'] = array();
$data['breadcrumbs'][] = array(
'text' => $this->language->get('text_home'),
'href' => $this->url->link('common/dashboard', 'user_token=' . $this->session->data['user_token'], true)
);
$data['breadcrumbs'][] = array(
'text' => $this->language->get('text_extension'),
'href' => $this->url->link('marketplace/extension', 'user_token=' . $this->session->data['user_token'] . '&type=module', true)
);
$data['breadcrumbs'][] = array(
'text' => $this->language->get('heading_title'),
'href' => $this->url->link('extension/module/autosort', 'user_token=' . $this->session->data['user_token'], true)
);
$data['action'] = $this->url->link('extension/module/autosort', 'user_token=' . $this->session->data['user_token'], true);
$data['cancel'] = $this->url->link('marketplace/extension', 'user_token=' . $this->session->data['user_token'] . '&type=module', true);
if (isset($this->request->post['autosort_status'])) {
$data['autosort_status'] = $this->request->post['autosort_status'];
} else {
$data['autosort_status'] = $this->config->get('autosort_status');
}
$data['header'] = $this->load->controller('common/header');
$data['column_left'] = $this->load->controller('common/column_left');
$data['footer'] = $this->load->controller('common/footer');
$this->response->setOutput($this->load->view('extension/module/autosort', $data));
}
protected function validate() {
if (!$this->user->hasPermission('modify', 'extension/module/autosort')) {
$this->error['warning'] = $this->language->get('error_permission');
}
return !$this->error;
}
}
2. admin/language/ru-ru/extension/module/autosort.php
php<?php
// Heading
$_['heading_title'] = 'Автосортировка Статей';
// Text
$_['text_extension'] = 'Расширения';
$_['text_success'] = 'Настройки успешно изменены!';
$_['text_edit'] = 'Редактировать модуль Автосортировки';
// Entry
$_['entry_status'] = 'Статус';
// Error
$_['error_permission'] = 'У вас нет прав для изменения модуля Автосортировки!';
3. admin/view/template/extension/module/autosort.twig
twig{{ header }} {{ column_left }} <div id="content"> <div class="page-header"> <div class="container-fluid"> <h1>{{ heading_title }}</h1> <ul class="breadcrumb"> {% for breadcrumb in breadcrumbs %} <li class="breadcrumb-item"><a href="{{ breadcrumb.href }}">{{ breadcrumb.text }}</a></li> {% endfor %} </ul> </div> </div> <div class="container-fluid"> {% if error_warning %} <div class="alert alert-danger alert-dismissible"><i class="fa fa-exclamation-circle"></i> {{ error_warning }} <button type="button" class="close" data-dismiss="alert">×</button> </div> {% endif %} <div class="card"> <div class="card-header"><i class="fa fa-pencil"></i> {{ text_edit }}</div> <div class="card-body"> <form action="{{ action }}" method="post" enctype="multipart/form-data" id="form-autosort" class="form-horizontal"> <div class="form-group row"> <label class="col-sm-2 control-label" for="input-status">{{ entry_status }}</label> <div class="col-sm-10"> <select name="autosort_status" id="input-status" class="form-control"> <option value="1" {% if autosort_status %} selected="selected" {% endif %}>{{ text_enabled }}</option> <option value="0" {% if not autosort_status %} selected="selected" {% endif %}>{{ text_disabled }}</option> </select> </div> </div> <div class="form-group row"> <div class="col-sm-10 offset-sm-2"> <button type="submit" class="btn btn-primary"><i class="fa fa-save"></i> {{ button_save }}</button> <a href="{{ cancel }}" class="btn btn-light"><i class="fa fa-reply"></i> {{ button_cancel }}</a> </div> </div> </form> </div> </div> </div> </div> {{ footer }}
4. install.xml
(для OCMOD)
xml<modification>
<name>AutoSort Order for Information Pages</name>
<code>autosort_information</code>
<version>1.0</version>
<author>CustomGPT</author>
<link>https://yourdomain.example</link>
<file path="admin/controller/catalog/information.php">
<operation>
<search><![CDATA[$this->load->model('catalog/information');]]></search>
<add position="after"><![CDATA[
$this->load->model('extension/module/autosort');
]]></add>
</operation>
</file>
</modification>
Плюс README.txtАвтосортировка материалов OpenCart 3.0.3.9
Установка:
1. Загрузить архив через "Установка расширений" -> "Загрузить OCMOD".
2. После установки активировать модуль через "Модули/Расширения".
3. Использовать в админке при добавлении и редактировании информационных страниц.