unisharp/laravel-widgetify

help dealing with data in partial view with laravel.

dev-master 2015-11-10 03:17 UTC

This package is auto-updated.

Last update: 2024-12-15 15:33:20 UTC


README

  • 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') !!}