diff --git a/beike/Services/DesignService.php b/beike/Services/DesignService.php index a0d0ff02..dfc3bda4 100644 --- a/beike/Services/DesignService.php +++ b/beike/Services/DesignService.php @@ -11,6 +11,8 @@ namespace Beike\Services; +use Beike\Models\Product; +use Beike\Repositories\ProductRepo; use Illuminate\Support\Str; class DesignService @@ -42,8 +44,47 @@ class DesignService } - private static function handleSlideShow($content) + /** + * 处理 SlideShow 模块 + * + * @param $content + * @return array + * @throws \Exception + */ + private static function handleSlideShow($content): array { + foreach ($content['images'] as $index => $image) { + $content['images'][$index]['image'] = image_resize($image[current_language_code()] ?? ''); + + $link = $image['link']; + if (empty($link)) { + continue; + } + $type = $link['type'] ?? ''; + $value = (int)$link['value'] ?? 0; + if ($type && $value) { + $content['images'][$index]['link']['link'] = self::handleLink($type, $value); + } + } return $content; } + + + /** + * 处理链接 + * + * @param $type + * @param $value + * @return string + */ + private static function handleLink($type, $value): string + { + if ($type == 'product') { + return shop_route('products.show', ['product' => $value]); + } + if ($type == 'category') { + return shop_route('categories.show', ['category' => $value]); + } + return ''; + } } diff --git a/beike/Shop/Providers/ShopServiceProvider.php b/beike/Shop/Providers/ShopServiceProvider.php index c29215c6..8cab219e 100644 --- a/beike/Shop/Providers/ShopServiceProvider.php +++ b/beike/Shop/Providers/ShopServiceProvider.php @@ -18,6 +18,8 @@ class ShopServiceProvider extends ServiceProvider */ public function boot() { + $this->loadRoutesFrom(__DIR__ . '/../Routes/shop.php'); + $uri = request()->getRequestUri(); load_settings(); @@ -25,7 +27,6 @@ class ShopServiceProvider extends ServiceProvider return; } - $this->loadRoutesFrom(__DIR__ . '/../Routes/shop.php'); $this->mergeConfigFrom(__DIR__ . '/../../Config/beike.php', 'beike'); $this->registerGuard();