From f2b0d11e5bc655fd100fb1dddec594fa84b1b527 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E5=B0=8F=E7=99=BD=E5=93=A6?= Date: Sat, 30 Aug 2025 22:38:12 +0800 Subject: [PATCH] Update extend.php --- extend.php | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/extend.php b/extend.php index 3b7c563..4a9efc0 100644 --- a/extend.php +++ b/extend.php @@ -6,30 +6,31 @@ use Flarum\User\User; use Illuminate\Contracts\View\Factory; return [ - // 1. 给 UserSerializer 加字段 theme,方便前端读取 + // 把 theme 字段暴露给前端 (new Extend\ApiSerializer(UserSerializer::class)) - ->attribute('theme', fn ($serializer, User $user) => $user->getPreference('theme', 'default')), + ->attribute('theme', fn ($serializer, User $user) => $user->getPreference('theme', 'hubui')), - // 2. 允许前端修改 theme + // 允许前端修改 theme 偏好 (new Extend\User()) - ->registerPreference('theme', 'strval', 'default'), + ->registerPreference('theme', 'strval', 'hubui'), - // 3. 根据主题注入 CSS + // 根据当前主题注入对应的 less/css (new Extend\Frontend('forum')) ->css(function (Factory $view, User $user) { - $theme = $user->getPreference('theme', 'default'); - // 只注入存在的文件 - $path = "theme-switcher/less/{$theme}.less"; - if (file_exists(__DIR__ . "/resources/less/{$theme}.less")) { + $theme = $user->getPreference('theme', 'hubui'); + + // 只注入存在的文件;文件名与 $theme 同名 + $file = __DIR__ . "/resources/less/{$theme}.less"; + if (file_exists($file)) { + // 返回相对路径,Flarum 会自动编译 return $view->make('flarum.forum::frontend.content.css', [ - 'css' => [$path] + 'css' => ["theme-switcher/less/{$theme}.less"] ]); } return null; }), - // 4. 设置页组件挂载 + // 引入论坛 JS (new Extend\Frontend('forum')) - ->js(__DIR__ . '/js/dist/forum.js') - ->css(__DIR__ . '/resources/less/app.less'), // 公共样式(可选) + ->js(__DIR__ . '/js/dist/forum.js'), ];