vis / subscribe_manager_l5
VIS cms 的订阅管理包
1.0.1
2017-11-02 15:24 UTC
This package is not auto-updated.
Last update: 2024-09-21 02:25:40 UTC
README
VIS cms 的订阅包
部分
安装
执行
composer require "vis/subscribe_manager_l5":"1.*"
将 SubscribeManagerServiceProvider 添加到 config/app.php 中的 ServiceProviders 数组
Vis\SubscribeManager\SubscribeManagerServiceProvider::class,
执行表迁移
php artisan migrate --path=vendor/vis/subscribe_manager_l5/src/Migrations
发布视图、js、配置
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 多对多关系方法与订阅者
返回值:与实体订阅相关联的订阅者集合
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 多对多关系方法与实体订阅
返回值:与订阅者相关联的实体集合
public function entities()
按别名过滤方法
public function scopeFilterEntitySlug($query, $entitySlug)
按订阅活动过滤方法
public function scopeActive($query)
按订阅语言过滤方法
public function scopeFilterLang($query, $lang)
按订阅邮箱过滤方法
public function scopeFilterEmail($query, $email)