Wallogit.com
2017 © Pedro Peláez
Da epic widget-system for Laravel
laravel widget-system, (*1)
composer, (*2)
"greabock/widget-system": "dev-master"
facade, (*3)
'Widget'=> 'Greabock\Widget\Facade'
Example Widget, (*4)
<?php namespace App\Widgets;
class MyCustomWidget {
protected $something;
public function __construct(SomeRepository $repository)
{
$this->something = $repository->getSomething();
}
public function render($param)
{
$data = [
'something' => $this->something,
'someElse' => $param,
];
return view('view', $data);
}
}
Registration:, (*5)
Widget::register('App\Widgets\MyCustomWidget', 'myWidget' );
Template:, (*6)
{!! Widget::show('myWidget', 'param') !!}
{-- or --}
{!! Widget::myWidget('param') !!}
Positions, (*7)
Widget::register('App\Widgets\MyCustomWidget', 'myWidget', 'menu_position', 1 );
Widget::register('App\Widgets\OtherCustomWidget', 'OtherWidget', 'menu_position', 2 );
Template:, (*8)
{!! Widget::position('menu_position') !!}
// same as
{!! Widget::show('myWidget') !!}
{!! Widget::show('OtherWidget') !!}