-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Для разработки модулей нужно развернуть ядро системы на платформе Linux с php8.0 (или выше), MySQL и Nginx (или Apache2). Ядро может быть размещено в домашней директории Nginx или директории виртуального хоста.
- Клонировать проект. Он включает в себя ядро core2 в виде субмодуля
git clone https://github.com/easterism/core2-front.git /var/www/htdocs
- Прописать секцию для своего хоста в файле
conf.iniв корне проекта. По умолчанию используются данные из секции [production].
[production]
system.timezone = Europe/Minsk
system.name = MyProject
system.logo = logo.png
system.host = MyProject.local
system.theme.name = material
system.theme.login_bg = login.png
log.on = true
log.path = ../logs/error.log
log.system.writer = file
log.system.file = ../logs/access.log
[localhost: production]
; пусть в папке с кешем
cache = ../cache
; настройки подключения к базе данных
database.params.host = localhost
database.params.username = <юзер базы данных>
database.params.password = <пароль базы данных>
database.params.dbname = <имя базы данных>
- Подтянуть зависимости ядра с помощью composer
cd /var/www/htdocs/core2
composer install
- Перейти по адресу своего хоста в браузере. Должна отобразиться форма для входа в систему
Все модули хранятся в папке mod в корне проекта. Имя папки - это идентификатор модуля (латинскими маленькими буквами без пробелов и спецсимволов). Идентификаторы модулей должны быть уникальны. Вложенная папка - это версия модуля. Например:
mod/newmodule/v1.0.0 - это домашняя папка модуля
Необходимым условием существования модуля является наличие двух файлов внутри папки с версией модуля mod/newmodule/v1.0.0:
- ModNewmoduleController.php - основной котроллер. Это PHP-класс и именем ModNewmoduleController
<?php
require_once DOC_ROOT . "core2/inc/classes/Common.php";
class ModNewmoduleController extends Common {
/**
* этот метод будет обрадатываться по умолчанию при обращении к модулю
* @return string|void
* @throws Zend_Exception
* @throws Exception
*/
public function action_index() {
echo "выводим содержимое модуля";
$var = " или сохраняем вывод в переменную";
return $var;
}
}
- ModAjax.php - файл будет обрабатывать ajax POST запросы с данными от стандартных форм. Этот способ позволяет не создавать дополнительны обработчиков на js
<?php
require_once DOC_ROOT . "core2/inc/ajax.func.php";
class ModAjax extends ajaxFunc {
/**
* специальный метод принимающий ajax POST
* @param array $data - данные формы
* @return xajaxResponse - ответ будет обработан js функцией ядра
*/
public function axSaveOrderFromBasket(array $data): xajaxResponse {
//выполняем обработку $data
//можно выполнить любой js в браузере после выполнения ajax запроса
$this->response->script("CoreUI.notice.create('Заказ сформирован');");
//завершаем обработку и возвращаем результат
$this->done($data);
return $this->response;
}
}
Модуль может автоматически подключать зависимости, указанные в файле composer.json, расположенном в домашней папке модуля. установить эти зависимости нужно выполнив composer install в папке модуля.
- Зайти в состему под учетной записью с правами администратора.
- Зайти в модуль Admin субмодуль Модули
- Нажать кнопку Добавить и в форму создания модуля ввести имя и идентификатор разработанного модуля (newmodule).
- После сохранения обновить страницу. Модуль появится в главном меню.
Under construction