FEATURE: add new blade macro @asset

This macro is used for loading path for assets on visitor page
This commit is contained in:
Michal Kváček
2016-03-31 15:35:23 +02:00
parent 7ef09ec326
commit 473342490c
2 changed files with 12 additions and 1 deletions
+4
View File
@@ -39,4 +39,8 @@ class Template
return $view; return $view;
} }
public static function asset($path) {
return env('SITE_URL').'/assets/'.config('app.theme').'/'.$path;
}
} }
+8 -1
View File
@@ -39,7 +39,7 @@ class GlobalViewDataProvider extends ServiceProvider
*/ */
private function createPattern($function) private function createPattern($function)
{ {
return '/(?<!\w)(\s*)@' . $function . '\(\s*(.*)\)/'; return '/(?<!\w)(\s*)@' . $function.'\(([^)]+)*\)/';
} }
/** /**
@@ -65,6 +65,13 @@ class GlobalViewDataProvider extends ServiceProvider
return preg_replace($pattern, $code, $view); return preg_replace($pattern, $code, $view);
}); });
Blade::extend(function ($view) {
$pattern = $this->createPattern('asset');
$code = '<?php echo \App\Helpers\Template::asset($2); ?>';
return preg_replace($pattern, $code, $view);
});
// register extension for rendering widget areas // register extension for rendering widget areas
Blade::extend(function ($view) { Blade::extend(function ($view) {
$pattern = $this->createPattern('widgetArea'); $pattern = $this->createPattern('widgetArea');