getForView() as $key => $value) { // view()->share($key, $value); // } $this->extendBlade(); } /** * Creates pattern for matching Blade directives * * @param $function * * @return string */ private function createPattern($function) { return '/(?createPattern('extendVisitor'); $code = '@extends(\App\Helpers\Template::name($2))'; return preg_replace($pattern, $code, $view); }); // shortcut for loading uploaded files Blade::extend(function ($view) { $pattern = $this->createPattern('upload'); $code = ''; return preg_replace($pattern, $code, $view); }); // shortcut for loading thumbnails of uploaded images Blade::extend(function ($view) { $pattern = $this->createPattern('thumbnail'); $code = ''; return preg_replace($pattern, $code, $view); }); // shortcut for displaying Gravatar Blade::extend(function ($view) { $pattern = $this->createPattern('gravatar'); $code = ''; return preg_replace($pattern, $code, $view); }); // shortcut for assets (placed in /public/assets/ Blade::extend(function ($view) { $pattern = $this->createPattern('asset'); $code = ''; return preg_replace($pattern, $code, $view); }); Blade::extend(function ($view) { $pattern = $this->createPattern('date'); $code = ''; return preg_replace($pattern, $code, $view); }); // register extension for rendering widget areas Blade::extend(function ($view) { $pattern = $this->createPattern('widgetArea'); return preg_replace($pattern, '', $view); }); // register extension for preview of widget Blade::extend(function ($view) { $pattern = $this->createPattern('widgetPreview'); $code = ' widget_type_handler; $presenter = call_user_func([$handler, "getPresenter"]); echo call_user_func([$presenter, "render"], json_decode($2->settings)); } ?> '; return preg_replace($pattern, $code, $view); }); } }