Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sashagm/themes
Пакет для поддержки и управления тем для Laravel +10.x
https://github.com/sashagm/themes
laravel laravel-middleware laravel-package laravel-themes php phpunit
Last synced: 23 days ago
JSON representation
Пакет для поддержки и управления тем для Laravel +10.x
- Host: GitHub
- URL: https://github.com/sashagm/themes
- Owner: sashagm
- License: mit
- Created: 2023-04-17T21:51:32.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2024-09-11T18:21:32.000Z (about 2 months ago)
- Last Synced: 2024-10-01T08:01:59.843Z (about 1 month ago)
- Topics: laravel, laravel-middleware, laravel-package, laravel-themes, php, phpunit
- Language: PHP
- Homepage:
- Size: 49.8 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
[![PHP Version](https://img.shields.io/badge/PHP-%2B8-blue)](https://www.php.net/)
[![Laravel Version](https://img.shields.io/badge/Laravel-%2B10-red)](https://laravel.com/)## Управление темами сайта с помощью пакета для Laravel
Наш пакет предоставляет удобный способ работы с мульти темами для вашего сайта. Вы можете легко создавать и изменять темы, а также управлять ими через наш интерфейс. Вы можете быстро переключаться между темами выбрав любую из ваших добавленых вариантов.
### Оглавление:
- [Требования](#требования)
- [Установка](#установка)
- [Использование](#использование)
- [Настройка маршрутов](#настройка-маршрутов)
- [Добавление ассетов](#добавление-ассетов)
- [Настройка рендора](#настройка-рендора)
- [Права доступа](#права-доступа)
- [Кастомный гард](#кастомный-гард)
- [Получение данных](#получение-данных)
- [Способ вывода](#способ-вывода)
- [Дополнительные возможности](#дополнительные-возможности)
- [Тестирование](#тестирование)
- [Лицензия](#лицензия)#### Требования
Основные требования для установки и корректной работы:
- `PHP` >= 8.0
- `Laravel` >= 10.x || 11.x
- `Composer` >= 2.4.x#### Установка
Для установки пакета необходимо выполнить команды:
- composer require sashagm/themes
- php artisan themes:install#### Использование
1. Для начала давайте определим нашу вспомогательную конфигурацию в `/config/custom.php`:
```php
'admin_prefix' => 'admin', // Префикс для маршрутов'check' => [
'active' => true, // True Разрешить проверку или false Пропускать проверку
'guard' => 'web', // Укажите через какой гард будет работать'save_colum' => 'id', // Поле для группы/роли или прав
'save_value' => [
1, 2, 3
], // добавляем массив значений],
```2. Вспомогательная конфигурация `/config/themes.php` будет автоматически пересобираться каждый раз при активации ативной темы. Её лучше не трогать и не изменять для корректной работы.
3. Настроить тему в соответствии с вашими потребностями.
4. Активируйте вашу тему.
5. Чтобы понять какая текущая тема установлена просто вызовете константу `Themes`.
#### Настройка маршрутов
Для удобства и группировки маршрутов можно добавить данный код в `/routes/web.php`.
Данный код будет подключать файл маршрутов в зависимости от выбранной текущей темы.```php
if (Themes){ require __DIR__ ."/". Themes .".php"; }
```
#### Настройка рендора
Для контроллеров так же все просто настраивается, для метода рендора можно использовать такой подход:
В данном случае подключит файл `Название темы/main/index.blade.php`.```php
view(Themes.'main.index');
```
#### Добавление ассетов
Если у вас используется один шаблон и несколько тем можно указать добавление ассетов:
```php
```
#### Права доступа
Если необходимо ограничить доступ можно в конфигурации `/config/custom.php` изменить права доступа в разделе `check`:
```php
'check' => [
'active' => true, // True Разрешить проверку или false Пропускать проверку
'guard' => 'web', // Укажите через какой гард будет работать'save_colum' => 'id', // Поле для группы/роли или прав
'save_value' => [
1, 2, 3
], // добавляем массив значений],
```
Добавляем массив с значениями для разных вариаций. Например для данного примера показано что пользователи с id `1,2,3` имеют права доступа.
Так же можно указать не id а roles, тогда можно настроить на группы/роли пользователей например `Админ, Модер, Редактор`.#### Кастомный гард
Если необходимо использовать кастомный гард можно в конфигурации `/config/custom.php` изменить в разделе `check` за это отвечает параметр `guard` по дефолту настроен на `web` и возвращает текущего аутентифицированного пользователя для стандартной охраны web. Это используется для аутентификации пользователей, которые входят через веб-интерфейс.
Если указать кастомный гард то будет возвращать текущего аутентифицированного пользователя для охраны с именем кастомного гарда. Охрана с именем кастомного гарда может быть настроена в файле конфигурации Laravel для использования другой базы данных или другой модели пользователя.
Таким образом можно изменять подходящий гард для проверки прав доступа для Middleware тем.
#### Получение данных
Метод `getActiveThemeTitle()` возвращает заголовок текущей активной темы, если она существует.
Метод `getActiveThemeDescription()` возвращает описание текущей активной темы, если она существует.
Метод `getThemeInfo()` возвращает общую информацию о текущей активной теме, включая заголовок, описание, автора и версию.
Для вызова этих методов можно использовать следующий код:
```php
// получить заголовок текущей активной темы
$title = Themes::getActiveThemeTitle();// получить описание текущей активной темы
$description = Themes::getActiveThemeDescription();// получить общую информацию о текущей активной теме
$info = Themes::getThemeInfo();
```Здесь мы используем статические методы модели Themes, чтобы получить нужную информацию о текущей активной теме. Для каждого метода мы вызываем соответствующий статический метод и сохраняем результат в переменную.
#### Способ вывода
Теперь вы можете дополнительно использовать варианты вызовов: `Themes`, `$app->themes()`, `$app->themes->get()` для получения текущей темы.
#### Дополнительные возможности
Наш пакет предоставляет ряд дополнительных возможностей, которые могут быть полезны при работе с темами:
- `php artisan themes:install` - Данная команда установит все необходимые компоненты пакета (Управление темами).
- `php artisan themes:create` - Данная команда создаст описание новой темы для сайта.
- `php artisan themes:delete {id}` - Данная команда удалит тему сайта.'.
- `php artisan themes:get {id}` - Данная команда выведет информацию о тему сайта.#### Тестирование
Для проверки работоспособности можно выполнить специальную команду:
- ./vendor/bin/phpunit --configuration phpunit.xml
#### Лицензия
Themes - это программное обеспечение с открытым исходным кодом, лицензированное по [MIT license](LICENSE.md).