vis / subscribe_manager_l5
Subscribe management package for VIS cms
This package is not auto-updated.
Last update: 2024-12-14 03:47:39 UTC
README
Subscribing package for VIS cms
Разделы
Установка
Выполняем
composer require "vis/subscribe_manager_l5":"1.*"
Добавляем SubscribeManagerServiceProvider в массив ServiceProviders в config/app.php
Vis\SubscribeManager\SubscribeManagerServiceProvider::class,
Выполняем миграцию таблиц
php artisan migrate --path=vendor/vis/subscribe_manager_l5/src/Migrations
Публикуем view, js, config
php artisan vendor:publish --provider="Vis\SubscribeManager\SubscribeManagerServiceProvider" --force
Добавляем в layouts.default(или на конкретную вьюху, если подписка только на одной странице) перед закрывающим тегом body
@include('subscribe_manager::subscribe_manager')
Настройка
В файле public/js/subscriber_rules.js определяем форму(ы), которая будет отправлять имейлы на подписку.
SubscribeManager.setForms(['quick_subscribe']);
В файле public/js/subscriber_rules.js переопределяем методы и указываем в них свои действия(например, вызов попапа с кастомным сообщением) по выполнению ajax запроса
SubscribeManager.successCallback = function (message) { }; SubscribeManager.failCallback = function (message) { };
VIS-CMS
В \config\builder\admin.php дописываем массив
array( 'title' => 'Подписки', 'icon' => 'group', 'check' => function() { return Sentinel::hasAccess('admin.vis_subscribers.view'); }, 'submenu' => array( array( 'title' => 'Подписчики', 'link' => '/vis_subscribers', 'check' => function() { return Sentinel::hasAccess('admin.vis_subscribers.view'); } ), array( 'title' => 'Типы подписок', 'link' => '/vis_subscribe_entities', 'check' => function() { return Sentinel::hasAccess('admin.vis_subscribe_entities.view'); } ), ) ),
Добавляем права доступа в config/builder/tb-definitions/groups.php и добавляем их к группам.
'Подписчики' => array( 'admin.vis_subscribers.view' => 'Просмотр', 'admin.vis_subscribers.create' => 'Создание', 'admin.vis_subscribers.update' => 'Редактирование', 'admin.vis_subscribers.delete' => 'Удаление', ), 'Типы подписок' => array( 'admin.vis_subscribe_entities.view' => 'Просмотр', 'admin.vis_subscribe_entities.create' => 'Создание', 'admin.vis_subscribe_entities.update' => 'Редактирование', 'admin.vis_subscribe_entities.delete' => 'Удаление', ),
Пример использования
- Создаем паршал с формой подписки, например:
@if(isset($subscribeEntities) && $subscribeEntities->count()) <section class="subscribe-block"> <div class="container"> <form id="quick_subscribe-form"> <input type="text" name="email" class="input-field" placeholder="E-mail" maxlength="255"> <select name="entity_id"> @foreach($subscribeEntities as $subscribeEntity) <option value="{{$subscribeEntity->id}}">{{$subscribeEntity->title}}</option> @endforeach </select> <button class="btn">{{__t('Підписатися')}}</button> </form> </div> </section> @endif
- Передаем в форму подписки список возможных сущностей на подписку через вью-композер
View::composer('partials.subscribe', function ($view) { $subscribeEntities = Cache::tags('vis_subscribe_entities')->rememberForever('vis_subscribe_entities', function() { return Vis\SubscribeManager\SubscribeEntity::active()->get(); }); $view->with('subscribeEntities', $subscribeEntities); });
Если нужно использовать в каких-то своих целях
use Vis\SubscribeManager\Subscriber;
Получить список подписчиков на определенную сущность на выбранном языке:.
$subscribers = Subscriber::filterEntitySlug($entitySlug)->filterLang($lang)->active->get();
Описание классов
- Vis\SubscribeManager\SubscribeEntity
Класс сущностей подписки, наследует Eloquent\Model и использует Vis\Builder\Helpers\Traits\TranslateTrait
namespace Vis\SubscribeManager; use Illuminate\Database\Eloquent\Model; class SubscribeEntity extends Model { use \Vis\Builder\Helpers\Traits\TranslateTrait; protected $table = 'vis_subscribe_entities'; }
Описание свойств:
Имя используемой таблицы
Значение: строка'
protected $table = 'vis_subscribe_entities';
Описание методов:
Метод Eloquent ManyToMany связи с подписчиками
Возвращаемое значение: коллекция связанных с сущностью подписчиков
public function subscribers()
Метод фильтр по слагу
public function scopeFilterSlug($query, $slug)
Метод фильтр по активности записей
public function scopeActive($query)
- Vis\SubscribeManager\Subscriber
Класс сущностей подписки, наследует Eloquent\Model и использует Vis\Builder\Helpers\Traits\TranslateTrait
namespace Vis\SubscribeManager; use Illuminate\Database\Eloquent\Model; class Subscriber extends Model { protected $table = 'vis_subscribers'; }
Описание свойств:
Имя используемой таблицы
Значение: строка'
protected $table = 'vis_subscribers';
Описание методов:
Метод Eloquent ManyToMany связи с сущностями подписки
Возвращаемое значение: коллекция связанных сущностей к подписчику
public function entities()
Метод фильтр по слагу
public function scopeFilterEntitySlug($query, $entitySlug)
Метод фильтр по активности подписки
public function scopeActive($query)
Метод фильтр по языку подписки
public function scopeFilterLang($query, $lang)
Метод фильтр по имейлу подписки
public function scopeFilterEmail($query, $email)