FEATURE: add functionality for rendering widgets via shortcode [widget]

This commit is contained in:
Michal Kváček
2016-10-11 19:10:03 +02:00
parent d5f9e1fc2b
commit 625bdbb2e2
14 changed files with 217 additions and 43 deletions
+7 -1
View File
@@ -3,9 +3,11 @@
namespace App\Providers;
use App\Models\Settings;
use App\Shortcodes\Widget;
use Illuminate\Support\Facades\App;
use Illuminate\Support\Facades\Blade;
use Illuminate\Support\ServiceProvider;
use Webwizo\Shortcodes\Facades\Shortcode;
class GlobalViewDataProvider extends ServiceProvider
{
@@ -24,6 +26,8 @@ class GlobalViewDataProvider extends ServiceProvider
view()->share('currentUrl', \Request::url());
$this->extendBlade();
Shortcode::register('widget', Widget::class);
}
/**
@@ -129,9 +133,11 @@ class GlobalViewDataProvider extends ServiceProvider
<?php
if ($2 instanceof \App\Models\Widget) {
$handler = $2->widget_type_handler;
$2->settings = json_decode($2->settings);
$presenter = call_user_func([$handler, "getPresenter"]);
echo call_user_func([$presenter, "render"], json_decode($2->settings));
echo call_user_func([$presenter, "render"], $2);
}
?>
';