diff --git a/beike/Admin/Http/Controllers/MarketingController.php b/beike/Admin/Http/Controllers/MarketingController.php index edf5912c..92a1311e 100644 --- a/beike/Admin/Http/Controllers/MarketingController.php +++ b/beike/Admin/Http/Controllers/MarketingController.php @@ -37,6 +37,20 @@ class MarketingController } + /** + * 获取单个插件详情 + */ + public function show(Request $request) + { + $code = $request->code; + $plugin = MarketingService::getPlugin($code); + $data = [ + 'plugin' => $plugin, + ]; + return view('admin::pages.marketing.show', $data); + } + + /** * 下载插件安装包到本地 */ diff --git a/beike/Admin/Routes/admin.php b/beike/Admin/Routes/admin.php index b3f26a03..e5725b69 100644 --- a/beike/Admin/Routes/admin.php +++ b/beike/Admin/Routes/admin.php @@ -142,6 +142,7 @@ Route::prefix($adminName) // 插件市场 Route::middleware('can:marketing_index')->get('marketing', [Controllers\MarketingController::class, 'index'])->name('marketing.index'); + Route::middleware('can:marketing_show')->get('marketing/{code}', [Controllers\MarketingController::class, 'show'])->name('marketing.show'); Route::middleware('can:marketing_download')->get('marketing/{code}/download', [Controllers\MarketingController::class, 'download'])->name('marketing.download'); diff --git a/beike/Admin/Services/MarketingService.php b/beike/Admin/Services/MarketingService.php index a1f5be95..6f8fc5fb 100644 --- a/beike/Admin/Services/MarketingService.php +++ b/beike/Admin/Services/MarketingService.php @@ -20,4 +20,10 @@ class MarketingService $url = config('beike.api_url') . '/api/plugins'; return Http::get($url)->json(); } + + public static function getPlugin($code) + { + $url = config('beike.api_url') . '/api/plugins/' . $code; + return Http::get($url)->json(); + } } diff --git a/plugins/HeaderMenu/Bootstrap.php b/plugins/HeaderMenu/Bootstrap.php new file mode 100644 index 00000000..d066e2a2 --- /dev/null +++ b/plugins/HeaderMenu/Bootstrap.php @@ -0,0 +1,35 @@ + + * @created 2022-07-20 15:35:59 + * @modified 2022-07-20 15:35:59 + */ + +namespace Plugin\HeaderMenu; + +class Bootstrap +{ + public function boot() + { + add_filter('header.categories', function ($data) { + $data[] = [ + 'name' => '插件链接', + 'url' => shop_route('home.index'), + 'children' => [ + [ + "name" => "最新商品", + "url" => plugin_route('latest_products'), + ], [ + "name" => "百度", + "url" => "https://www.baidu.com", + ] + ], + ]; + return $data; + }); + } +} diff --git a/plugins/HeaderMenu/Controllers/MenusController.php b/plugins/HeaderMenu/Controllers/MenusController.php new file mode 100644 index 00000000..477e4c9e --- /dev/null +++ b/plugins/HeaderMenu/Controllers/MenusController.php @@ -0,0 +1,24 @@ + + * @created 2022-07-21 10:00:25 + * @modified 2022-07-21 10:00:25 + */ + +namespace Plugin\HeaderMenu\Controllers; + +use Beike\Repositories\ProductRepo; +use Beike\Shop\Http\Controllers\Controller; + +class MenusController extends Controller +{ + public function latestProducts() + { + $products = ProductRepo::getBuilder()->orderByDesc('updated_at')->paginate(40); + return view("HeaderMenu::latest_products", ['products' => $products]); + } +} diff --git a/plugins/HeaderMenu/Views/latest_products.blade.php b/plugins/HeaderMenu/Views/latest_products.blade.php new file mode 100644 index 00000000..f4c42b44 --- /dev/null +++ b/plugins/HeaderMenu/Views/latest_products.blade.php @@ -0,0 +1,21 @@ +@extends('layout.master') + +@section('content') +