Update extend.php

这个提交包含在:
小小白哦
2025-08-30 22:38:12 +08:00
提交者 GitHub
父节点 c5163fe5e9
当前提交 f2b0d11e5b
+14 -13
查看文件
@@ -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'),
];