diff --git a/app/Helpers/BladeDirectivesHelper.php b/app/Helpers/BladeDirectivesHelper.php new file mode 100644 index 0000000..ba14c2b --- /dev/null +++ b/app/Helpers/BladeDirectivesHelper.php @@ -0,0 +1,80 @@ +check()) + || config('bosettings.show_prices_guest') == "guest"; + } + + /** + * Format the sales unit according to configuration. + * Used for blade directive @fmt_sellunit. + * + * @param mixed $expression + * @return string + */ + public static function formatSellUnit($expression): string + { + if (config('bosettings.sell_unit_management') == "strict") { + return !empty($expression) ? sprintf('/ %s', SellUnit::make($expression)->label) : ''; + } + return !empty($expression) ? sprintf('/ %s', $expression) : ''; + } + + /** + * Extract a title produced according to the theme configuration. + * Used for blade directive @excerpt_product_title. + * + * @param string $expression + * @param int|null $limit + * @return string + */ + public static function excerptTitle(string $expression, $limit = null): string + { + $limit = $limit ?? config('theme.max_product_title_length'); + return Str::limit($expression, $limit); + } +} diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index 02d4a4b..1e64db1 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -71,58 +71,21 @@ class AppServiceProvider extends ServiceProvider View::share('published_tags', $tags); } + // Use blade directives helper to prevent blade files from being cached. Blade::directive('fmt_currency_without_auth', function ($expression) { - return ""; + return ""; }); - Blade::directive('fmt_currency', function ($expression) { - // Prix transmis en fonction du setting show_prices. - if ( - (config('bosettings.show_prices_authenticated') === "authenticated" && Auth::guard('customer')->check()) - || config('bosettings.show_prices_guest') == "guest" - ) { - return ""; - } - return "-.--"; + return ""; }); - Blade::directive('fmt_currency_without_ttc', function ($expression) { - // Prix transmis en fonction du setting show_prices. - if ( - (config('bosettings.show_prices_authenticated') === "authenticated" && Auth::guard('customer')->check()) - || config('bosettings.show_prices_guest') == "guest" - ) { - return ""; - } - return "-.--"; + return ""; }); - Blade::directive('fmt_sellunit', function ($expression) { - if (config('bosettings.sell_unit_management') == "strict") { - return "label); } ?>"; - } else { - return ""; - } + return ""; }); - Blade::directive('excerpt_product_title', function ($expression) { - $limit = config('theme.max_product_title_length'); - return ""; + return ""; }); // Default paginator template for back Office.