2017 © Pedro PelΓ‘ez
 

library subscribe_manager_l5

Subscribe management package for VIS cms

image

vis/subscribe_manager_l5

Subscribe management package for VIS cms

  • Thursday, November 2, 2017
  • by KGluschenko
  • Repository
  • 1 Watchers
  • 0 Stars
  • 10 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 3 Versions
  • 0 % Grown

The README.md

Subscribing package for VIS cms, (*1)

Π Π°Π·Π΄Π΅Π»Ρ‹ 1. Установка 2. VIS-CMS 3. Настройка 4. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования 5. ОписаниС классов, (*2)

Установка

ВыполняСм, (*3)

    composer require "vis/subscribe_manager_l5":"1.*"

ДобавляСм SubscribeManagerServiceProvider Π² массив ServiceProviders Π² config/app.php, (*4)

    Vis\SubscribeManager\SubscribeManagerServiceProvider::class,

ВыполняСм ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΡŽ Ρ‚Π°Π±Π»ΠΈΡ†, (*5)

   php artisan migrate --path=vendor/vis/subscribe_manager_l5/src/Migrations

ΠŸΡƒΠ±Π»ΠΈΠΊΡƒΠ΅ΠΌ view, js, config, (*6)

    php artisan vendor:publish --provider="Vis\SubscribeManager\SubscribeManagerServiceProvider" --force

ДобавляСм Π² layouts.default(ΠΈΠ»ΠΈ Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ Π²ΡŒΡŽΡ…Ρƒ, Ссли подписка Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° ΠΎΠ΄Π½ΠΎΠΉ страницС) ΠΏΠ΅Ρ€Π΅Π΄ Π·Π°ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΌ Ρ‚Π΅Π³ΠΎΠΌ body, (*7)

    @include('subscribe_manager::subscribe_manager')

Настройка

Π’ Ρ„Π°ΠΉΠ»Π΅ public/js/subscriber_rules.js опрСдСляСм Ρ„ΠΎΡ€ΠΌΡƒ(Ρ‹), которая Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΈΠΌΠ΅ΠΉΠ»Ρ‹ Π½Π° подписку., (*8)

SubscribeManager.setForms(['quick_subscribe']);

Π’ Ρ„Π°ΠΉΠ»Π΅ public/js/subscriber_rules.js пСрСопрСдСляСм ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ Π² Π½ΠΈΡ… свои дСйствия(Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²Ρ‹Π·ΠΎΠ² ΠΏΠΎΠΏΠ°ΠΏΠ° с кастомным сообщСниСм) ΠΏΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ ajax запроса, (*9)

SubscribeManager.successCallback = function (message) {
};

SubscribeManager.failCallback = function (message) {
};

VIS-CMS

Π’ \config\builder\admin.php дописываСм массив, (*10)

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 ΠΈ добавляСм ΠΈΡ… ΠΊ Π³Ρ€ΡƒΠΏΠΏΠ°ΠΌ., (*11)

    'ΠŸΠΎΠ΄ΠΏΠΈΡΡ‡ΠΈΠΊΠΈ' => 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);
    });

Если Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΊΠ°ΠΊΠΈΡ…-Ρ‚ΠΎ своих цСлях, (*12)

    use Vis\SubscribeManager\Subscriber;

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ список подписчиков Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ Π½Π° Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΌ языкС:., (*13)

   $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';
    }

ОписаниС свойств:, (*14)

Имя ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: строка', (*15)

    protected $table = 'vis_subscribe_entities';

ОписаниС ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²:, (*16)

ΠœΠ΅Ρ‚ΠΎΠ΄ Eloquent ManyToMany связи с подписчиками Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: коллСкция связанных с ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒΡŽ подписчиков, (*17)

    public function subscribers()

ΠœΠ΅Ρ‚ΠΎΠ΄ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ ΠΏΠΎ слагу, (*18)

    public function scopeFilterSlug($query, $slug)

ΠœΠ΅Ρ‚ΠΎΠ΄ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ ΠΏΠΎ активности записСй, (*19)

    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'; }

ОписаниС свойств:, (*20)

Имя ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: строка', (*21)

    protected $table = 'vis_subscribers';

ОписаниС ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²:, (*22)

ΠœΠ΅Ρ‚ΠΎΠ΄ Eloquent ManyToMany связи с сущностями подписки Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: коллСкция связанных сущностСй ΠΊ подписчику, (*23)

    public function entities()

ΠœΠ΅Ρ‚ΠΎΠ΄ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ ΠΏΠΎ слагу, (*24)

    public function scopeFilterEntitySlug($query, $entitySlug)

ΠœΠ΅Ρ‚ΠΎΠ΄ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ ΠΏΠΎ активности подписки, (*25)

    public function scopeActive($query)

ΠœΠ΅Ρ‚ΠΎΠ΄ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ ΠΏΠΎ языку подписки, (*26)

    public function scopeFilterLang($query, $lang)

ΠœΠ΅Ρ‚ΠΎΠ΄ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ ΠΏΠΎ ΠΈΠΌΠ΅ΠΉΠ»Ρƒ подписки, (*27)

    public function scopeFilterEmail($query, $email)

The Versions

02/11 2017

dev-master

9999999-dev

Subscribe management package for VIS cms

  Sources   Download

proprietary

by K.Gluschenko

02/11 2017

1.0.1

1.0.1.0

Subscribe management package for VIS cms

  Sources   Download

proprietary

by K.Gluschenko

09/10 2017

1.0

1.0.0.0

Subscribe management package for VIS cms

  Sources   Download

proprietary

by K.Gluschenko