diff --git a/beike/Hook/HookServiceProvider.php b/beike/Hook/HookServiceProvider.php index e2f44f6b..4b6f590a 100644 --- a/beike/Hook/HookServiceProvider.php +++ b/beike/Hook/HookServiceProvider.php @@ -8,11 +8,6 @@ use Illuminate\Support\ServiceProvider; class HookServiceProvider extends ServiceProvider { - public function boot() - { - $this->bootDirectives(); - } - public function register() { $this->commands([ @@ -24,18 +19,26 @@ class HookServiceProvider extends ServiceProvider }); } - protected function bootDirectives() + + public function boot() + { + $this->bootHookDirectives(); + $this->bootWrapperHookDirectives(); + } + + /** + * 添加 blade hook 标签, 不需要 @endhook + * @hook('xxx'), 添加 hook 直接输出到页面 + */ + protected function bootHookDirectives() { Blade::directive('hook', function ($parameter) { - $parameter = trim($parameter, '()'); + $parameter = trim($parameter, '()'); $parameters = explode(',', $parameter); $name = trim($parameters[0], "'"); - // $parameters[1] => bool => is this wrapper component? - if (!isset($parameters[1])) { - return ' <'.'?php - + return ' $__definedVars],function($data) { return null; }); if ($output) echo $output; - ?'.'>'; - } else { - return ' <'.'?php - $__hook_name="'. $name .'"; + ?>'; + }); + } + + + /** + * 添加 blade wrapper hook 标签 + * + * @wrapperhook('xxx') --- @endwrapperhook, 将某段代码打包输出再添加 hook 输出 + */ + protected function bootWrapperHookDirectives() + { + Blade::directive('wrapperhook', function ($parameter) { + $parameter = trim($parameter, '()'); + $parameters = explode(',', $parameter); + $name = trim($parameters[0], "'"); + + return ' '; - } + ?>'; }); - Blade::directive('endhook', function ($parameter) { - return ' <'.'?php + Blade::directive('endwrapperhook', function () { + return ' '; + ?>'; }); } } diff --git a/resources/beike/admin/views/pages/products/form/form.blade.php b/resources/beike/admin/views/pages/products/form/form.blade.php index 409748eb..5b3d2069 100644 --- a/resources/beike/admin/views/pages/products/form/form.blade.php +++ b/resources/beike/admin/views/pages/products/form/form.blade.php @@ -76,12 +76,12 @@ {{-- --}} - @hook('admin.product.edit.brand', true) + @wrapperhook('admin.product.edit.brand') - @endhook + @endwrapperhook diff --git a/themes/default/layout/header.blade.php b/themes/default/layout/header.blade.php index 23176664..2b177899 100644 --- a/themes/default/layout/header.blade.php +++ b/themes/default/layout/header.blade.php @@ -2,7 +2,7 @@