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;
}
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)
{
return '/(?<!\w)(\s*)@' . $function . '\(\s*(.*)\)/';
return '/(?<!\w)(\s*)@' . $function.'\(([^)]+)*\)/';
}
/**
@@ -65,6 +65,13 @@ class GlobalViewDataProvider extends ServiceProvider
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
Blade::extend(function ($view) {
$pattern = $this->createPattern('widgetArea');