Composers/WidgetViewComposer.php
<?php namespace Modules\Dashboard\Composers;
use Illuminate\Contracts\View\View;
class WidgetViewComposer
{
/**
* @var array
*/
private $subViews = [];
/**
* @param View $view
*/
public function compose(View $view)
{
$view->with(['widgets' => $this->subViews]);
}
/**
* Add the html of the widget view to the given widget name
* @param string $name
* @param string $view
* @return $this
*/
public function addSubview($name, $view)
{
$this->subViews[$name]['html'] = $view;
return $this;
}
/**
* Add widget options to the given widget name
* @param $name
* @param array $options
* @return $this
*/
public function addWidgetOptions($name, array $options)
{
$this->subViews[$name]['options'] = $options;
return $this;
}
/**
* Set the widget name
* @param string $name
* @return $this
*/
public function setWidgetName($name)
{
$this->subViews[$name]['id'] = $name;
return $this;
}
}