Create extend.php

这个提交包含在:
小小白哦
2025-08-30 22:30:39 +08:00
提交者 GitHub
父节点 1550bbeba9
当前提交 12402582d4
+35
查看文件
@@ -0,0 +1,35 @@
<?php
use Flarum\Extend;
use Flarum\Api\Serializer\UserSerializer;
use Flarum\User\User;
use Illuminate\Contracts\View\Factory;
return [
// 1. 给 UserSerializer 加字段 theme,方便前端读取
(new Extend\ApiSerializer(UserSerializer::class))
->attribute('theme', fn ($serializer, User $user) => $user->getPreference('theme', 'default')),
// 2. 允许前端修改 theme
(new Extend\User())
->registerPreference('theme', 'strval', 'default'),
// 3. 根据主题注入 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")) {
return $view->make('flarum.forum::frontend.content.css', [
'css' => [$path]
]);
}
return null;
}),
// 4. 设置页组件挂载
(new Extend\Frontend('forum'))
->js(__DIR__ . '/js/dist/forum.js')
->css(__DIR__ . '/resources/less/app.less'), // 公共样式(可选)
];