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 的订阅包

部分

  1. 安装
  2. VIS-CMS
  3. 配置
  4. 使用示例
  5. 类描述

安装

执行

    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' => 'Удаление',
    ),

使用示例

  1. 创建带有订阅表单的处理器,例如
@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
  1. 通过视图组件将可能的订阅实体列表传递给订阅表单
    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();

类描述

  1. 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)
  1. 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)