diff --git a/app/Http/Middleware/ShareViewData.php b/app/Http/Middleware/ShareViewData.php index 8ef56aff..ccaef35b 100644 --- a/app/Http/Middleware/ShareViewData.php +++ b/app/Http/Middleware/ShareViewData.php @@ -21,8 +21,8 @@ namespace App\Http\Middleware; use Closure; use Illuminate\Http\Request; -use Beike\Repositories\FooterRepo; use Beike\Repositories\MenuRepo; +use Beike\Repositories\FooterRepo; use Illuminate\Support\Facades\View; use Beike\Repositories\CategoryRepo; use Beike\Repositories\LanguageRepo; @@ -35,6 +35,9 @@ class ShareViewData return $next($request); } + /** + * @throws \Exception + */ protected function loadShopShareViewData() { if (is_admin()) { diff --git a/beike/Helpers.php b/beike/Helpers.php index 1090f0e6..5b1e383d 100644 --- a/beike/Helpers.php +++ b/beike/Helpers.php @@ -181,6 +181,25 @@ function type_label($type, $value, array $texts = []): string } +/** + * 处理配置链接 + * + * @param $link + * @return array + */ +function handle_link($link): array +{ + $type = $link['type'] ?? ''; + $value = $link['value'] ?? ''; + $texts = $link['text'] ?? []; + + $link['link'] = type_route($type, $value); + $link['text'] = type_label($type, $value, $texts); + + return $link; +} + + /** * 是否访问的后端 * @return bool diff --git a/beike/Repositories/FooterRepo.php b/beike/Repositories/FooterRepo.php index 8e38f302..e30810b3 100644 --- a/beike/Repositories/FooterRepo.php +++ b/beike/Repositories/FooterRepo.php @@ -31,20 +31,7 @@ class FooterRepo foreach ($contentLinkKeys as $contentLinkKey) { $links = $content[$contentLinkKey]['links']; $links = collect($links)->map(function ($link) { - if ($link['type'] == 'custom') { - $link['link'] = $link['value']; - } elseif ($link['type'] == 'static') { - $link['link'] = shop_route($link['value']); - $link['text'] = trans('shop/' . $link['value']); - } elseif ($link['type'] == 'page') { - $pageId = $link['value']; - $page = Page::query()->find($pageId); - if ($page) { - $link['link'] = type_route('page', $link['value']); - $link['text'] = $page->description->title; - } - } - return $link; + return handle_link($link); })->toArray(); $footerSetting['content'][$contentLinkKey]['links'] = $links; } diff --git a/beike/Repositories/MenuRepo.php b/beike/Repositories/MenuRepo.php index 3ad94b53..287fc5ca 100644 --- a/beike/Repositories/MenuRepo.php +++ b/beike/Repositories/MenuRepo.php @@ -38,7 +38,7 @@ class MenuRepo $menus = $MenuSetting['menus']; foreach ($menus as $index => $menu) { - $menus[$index]['link'] = self::handleLink($menu['link']); + $menus[$index]['link'] = handle_link($menu['link']); $menus[$index]['name'] = $menu['name'][$locale] ?? ''; $menus[$index]['badge']['name'] = $menu['badge']['name'][$locale] ?? ''; @@ -58,7 +58,7 @@ class MenuRepo } else { if ($childrenGroup['children']) { foreach ($childrenGroup['children'] as $children_index => $children) { - $menus[$index]['childrenGroup'][$group_index]['children'][$children_index]['link'] = self::handleLink($children['link']); + $menus[$index]['childrenGroup'][$group_index]['children'][$children_index]['link'] = handle_link($children['link']); } } } @@ -68,22 +68,4 @@ class MenuRepo return $menus; } - - /** - * 处理链接 - * - * @param $link - * @return array - */ - private static function handleLink($link): array - { - $type = $link['type'] ?? ''; - $value = $link['value'] ?? ''; - $texts = $link['text'] ?? []; - - $link['link'] = type_route($type, $value); - $link['text'] = type_label($type, $value, $texts); - - return $link; - } }