unisharp/laravel-widgetify

help dealing with data in partial view with laravel.
12 1
Install
composer require unisharp/laravel-widgetify
PHP:>=5.5.0
License:MIT
Last Updated:Nov 10, 2015
Links: GitHub  ·  Packagist
Maintainer: g0110280

Widget generator for Laravel

  • Help you get partial views as widgets

Installation

  1. install package

        composer require unisharp/laravel-widgetify
    
  2. edit config/app.php

    service provider :

        Unisharp\Widget\WidgetServiceProvider::class,
    

    class aliases :

        'Widget' => Unisharp\Widget\WidgetFacade::class,
    
  3. publish widget template class

        php artisan vendor:publish --tag=widget_example
    

Usage

    Widget::set('side', 'widget-class-name', $args = []]);
    // set widgets with position

    Widget::get('side');
    // get all widgets of a position

Example

  1. in App\Widgets\Block.php :

        class Block implements WidgetInterface
        {
            public $view = 'home.widgets.side_html';
    
            public function getData($args)
            {
                return ['html' => \App\Utility::getPageByAlias($args['alias'])];
            }
        }
    
  2. in home.widgets.side_html.blade.php :

        @if(!empty($html->content))
            <section class="facebook-plugin">
                {!! $html->content !!}
            </section>
        @endif
    
  3. set widgets in in controller :

        \Widget::set('side', 'block', ['alias' => 'side_top_html']);
        \Widget::set('side', 'facebook');
        \Widget::set('side', 'block', ['alias' => 'side_mid_html']);
        \Widget::set('side', 'subscription');
        \Widget::set('side', 'block', ['alias' => 'side_buttom_html']);
    
  4. display widgets in view :

        {!! \Widget::get('side') !!}