UPD Репозитарий переехал на github https://github.com/noistudio/art_laravel.git
UPD 2
Новая версия той же идеи, располагается тут https://github.com/noistudio/art20
Библиотека создана в целях упрощения веб-разработки как таковой сведя всю основную рутину в утиль. Для этого доступен широкий арсенал средств и функционала.
Библиотека разработана для Laravel 6 и тестировалась только на нем. Поддерживаемые БД mysql\mongodb
Автор https://noi.studio
Библиотека включает в себя следующий функционал:
1.Отдельная админ.панель с настраиваемой ссылкой для доступа. Настраивается в /engine/.env BACKEND_ACCESS=/artadmin
BACKEND_ADMIN_LOGIN=admin
BACKEND_ADMIN_PASSWORD=admin
2.Возможность для конфигурирования меню в автоматическом режиме через событие /adminmenu\events\EventAdminLink
3.Возможность ручной настройки ссылок в админке через встроенный в админ.панель функционал управления меню
4.Система управления меню,которая включает в себя также возможность вызова меню по шорткоду [menu]
5.Функционал управления админстраторами,в котором имеется возможность создавать админские правила,как в ручном режиме редактирования через админ.панель, также и автоматически через событие \admins\events\EventAdminRule
6.Система блоков, которая включает в себя возможность создания различных типов блоков. В данный момент в системе имеются следующие основные типы блоков:
html блок - блок в котором вы можете вставить любой html код,и он выведется в любом месте где вы его вставите,например через шорткод [block] или через редактор https://editorjs.io/
динамический блок editor.js - блок в котором вы создаете разметку с помощью обычного html и используете внутренний синтаксис,который показан на скриншоте
На скриншоте показан пример создания слайдера из трех изображений. В редакторе это будет выглядеть следующим образом
редактор https://editorjs.io/ - блок в котором вы можете комбинировать между собой элементы editorjs.io а также блоков созданных в системе
показать форму - блок в котором вы можете вызвать созданную форму,к созданной
форме можно указать отдельный шаблон
показать раздел - показывает (таблицу или коллекцию) в зависимости от используемой базы данных (mysql\mongodb) в блоке можно настроить все основные параметры по которым должен фильтроваться контент
показать меню - созданное меню ,так же можно вывести с помощью блока,в блоке можно указать отдельный шаблон для меню
показать документ - показывает выбранный документ из (таблицы или коллекции) в зависимости от используемой базы данных (mysql\mongodb) в блоке можно настроить шаблон для блока.
Все блоки расширяются с помощью события \blocks\events\BlockType
7.Формы
При создании формы выбираете поля нужных типов,а дальше уже вам все сгенерируется с помощью встроенных подсказок.
При успешной отправке,имеется возможность указывать шаблон ответа как в админке ,так и через файл
Помимо этого имеется возможность создания своей бизнес логики,внутри одной формы
8.Контент
С помощью админки можно создать таблицу( или коллекцию) с нужными типами полей и связать их с другой таблицей. Пример как это делается на картинке ниже
Работает это с mysql\mongodb
При создании таблицы,автоматически создается список для просмотра в админке данных из таблицы,возможность создать документ,обновить документ,удалить документ.
Имеется возможность изменить логику фильтра в списке
mysql создать класс Table в директории /content/tables с наследованием от \content\tables_DefaultTable.php
mongodb создать класс Table в директории /mg/collections с наследованием от mg\collections_DefaultCollection.php
Вместо Table указывать название коллекции\таблицы которое название класса должно начинаться с большой буквы. 9.Файлы
Для управления файлами,используются модуль https://github.com/barryvdh/laravel-elfinder 10.Логи
Модуль для создания параметров логирования через админ.панель
Для просмотра файлов логов используется https://github.com/krishnakodoth/logEditor
11.Параметры
Хранения динамических параметров которые определяются с админ.панели
Для хранения используются файловая БД https://github.com/Greg0/Lazer-Database
12.Настройки SEO
Механизм с помощью которого можно настраивать SEO параметры для каждой отдельной страницы
Для вывода на фронте используется https://github.com/artesaos/seotools
Для начала вам нужно установить git,php7.3+,mysql,imagick
Дальше введите следующую комманду
git clone https://github.com/noistudio/art_laravel.git .
cd engine
composer create-project
После этого у вас все должно установиться.
Откройте ваш проект по адресу http://localsite/install
после установки ваша админка должна быть доступна по адресу
http://localsite/artadmin/index
логин admin пароль admin
Параметры доступа в админку можете поменять в /engine/.env
Для того чтобы установить монгу вам нужно подключить библиотеку https://github.com/jenssegers/laravel-mongodb
Скопировать папку /extra/mg в /engine/plugins/mg
После этого вам нужно раскоментировать все события связанные с /mg/
в файле /engine/Providers/EventServiceProvider.php
После этого в .env файле прописать данные для монги.
Если вам нужно сделать так чтобы все работало только на МонгоДБ в .env файле ,вам нужно поставить DB_CONNECTION=mongodb
После этого вам нужно закоментировать все события связанные с /content/ в файле /engine/Providers/EventServiceProvider.php Для того чтобы закрыть /install для доступа создайте пустой файл /engine/storage/installed
В данном продукте используются следующие компоненты :
https://editorjs.io/ - сам редактор и его плагины
https://github.com/artesaos/seotools
https://github.com/barryvdh/laravel-elfinder
https://packagist.org/packages/codex-team/editor.js
https://packagist.org/packages/froiden/laravel-installer
https://packagist.org/packages/greg0/lazer-database - без этого пакета ничего бы не было )
https://packagist.org/packages/krishnakodoth/log-editor
https://packagist.org/packages/laravelium/sitemap
https://github.com/pietrocinaglia/laraupdater
https://packagist.org/packages/silviolleite/laravelpwa
https://github.com/spatie/laravel-backup