Update extend.php
这个提交包含在:
+14
-13
@@ -6,30 +6,31 @@ use Flarum\User\User;
|
|||||||
use Illuminate\Contracts\View\Factory;
|
use Illuminate\Contracts\View\Factory;
|
||||||
|
|
||||||
return [
|
return [
|
||||||
// 1. 给 UserSerializer 加字段 theme,方便前端读取
|
// 把 theme 字段暴露给前端
|
||||||
(new Extend\ApiSerializer(UserSerializer::class))
|
(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())
|
(new Extend\User())
|
||||||
->registerPreference('theme', 'strval', 'default'),
|
->registerPreference('theme', 'strval', 'hubui'),
|
||||||
|
|
||||||
// 3. 根据主题注入 CSS
|
// 根据当前主题注入对应的 less/css
|
||||||
(new Extend\Frontend('forum'))
|
(new Extend\Frontend('forum'))
|
||||||
->css(function (Factory $view, User $user) {
|
->css(function (Factory $view, User $user) {
|
||||||
$theme = $user->getPreference('theme', 'default');
|
$theme = $user->getPreference('theme', 'hubui');
|
||||||
// 只注入存在的文件
|
|
||||||
$path = "theme-switcher/less/{$theme}.less";
|
// 只注入存在的文件;文件名与 $theme 同名
|
||||||
if (file_exists(__DIR__ . "/resources/less/{$theme}.less")) {
|
$file = __DIR__ . "/resources/less/{$theme}.less";
|
||||||
|
if (file_exists($file)) {
|
||||||
|
// 返回相对路径,Flarum 会自动编译
|
||||||
return $view->make('flarum.forum::frontend.content.css', [
|
return $view->make('flarum.forum::frontend.content.css', [
|
||||||
'css' => [$path]
|
'css' => ["theme-switcher/less/{$theme}.less"]
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}),
|
}),
|
||||||
|
|
||||||
// 4. 设置页组件挂载
|
// 引入论坛 JS
|
||||||
(new Extend\Frontend('forum'))
|
(new Extend\Frontend('forum'))
|
||||||
->js(__DIR__ . '/js/dist/forum.js')
|
->js(__DIR__ . '/js/dist/forum.js'),
|
||||||
->css(__DIR__ . '/resources/less/app.less'), // 公共样式(可选)
|
|
||||||
];
|
];
|
||||||
|
|||||||
在新工单中引用
屏蔽一个用户