Sidebar widgets

This commit is contained in:
2020-01-24 23:37:19 +01:00
parent 29a447005c
commit d6a3f5e119
12 changed files with 217 additions and 630 deletions

View File

@@ -8,6 +8,8 @@ use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Session;
use Illuminate\Support\Facades\Storage;
use Illuminate\Support\Facades\View;
class Controller extends BaseController
{
@@ -15,9 +17,44 @@ class Controller extends BaseController
protected $API_URL;
private function getDataFromFileAndConvert($file, $path, $class)
{
$data = json_decode(Storage::disk('local')->get($file));
foreach($path as $subobject) { $data = $data->$subobject; }
$items = [];
foreach($data as $item_data)
{
$items[] = new $class($item_data);
}
return $items;
}
public function __construct()
{
\Illuminate\Support\Facades\View::share('apiUrl', $this->API_URL = env('API_URL', 'http://api.6fm.nl/'));
View::share('apiUrl', $this->API_URL = env('API_URL', 'http://api.6fm.nl/'));
View::composer('widgets.laatstenieuws', function($view) {
$view->with('data', $this->getDataFromFileAndConvert('laatste_nieuws.json', ['news'], '\Model\NewsItem'));
});
View::composer('widgets.populairnieuws', function($view) {
$view->with('data', $this->getDataFromFileAndConvert('populair_nieuws.json', [], '\Model\NewsItem'));
});
View::composer('widgets.nustraks', function($view) {
$data = json_decode(Storage::disk('local')->get('nu_straks.json'))->schedule;
$programs = [];
foreach($data as $item_data)
{
$programs[] = $program = new \Model\Program($item_data->program);
$program->start = new \DateTimeImmutable($item_data->start->date, new \DateTimeZone($item_data->start->timezone));
$program->end = new \DateTimeImmutable($item_data->end->date, new \DateTimeZone($item_data->end->timezone));
}
$view->with('data', $programs);
});
View::composer('widgets.laatstepodcasts', function($view) {
$view->with('data', $this->getDataFromFileAndConvert('laatste_podcasts.json', ['podcasts'], '\Model\Podcast'));
});
}
protected function registerView(Request $request, $type, $id)