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