luceos / minis
Flarum 的迷你扩展
Requires
- flarum/core: ^1.2.0
This package is auto-updated.
Last update: 2024-09-21 14:44:49 UTC
README
这不是一个真正的 Flarum 扩展。
每个 Flarum 安装都包含一个名为 extend.php
的文件,该文件允许您使用任何 Flarum 扩展器,而无需创建完整的扩展。在过去几年中,我编写了多个 示例 来展示如何使用它。我认为将这些示例移动到它们自己的扩展中是明智的,这样您就可以用更少的代码使用这些扩展器。
您的 extend.php
文件位于 Flarum 根安装路径中,与 config.php
和 flarum
位于同一位置。
安装
使用 composer 安装
composer require luceos/minis:"*"
更新
composer update luceos/minis:"*"
扩展器
如何使用
无需启用此扩展。只要使用 composer 安装,该扩展的所有内容都将“原样”工作。
在 Flarum 安装路径中的 extend.php
文件内,您会看到一些行,在底部您将找到类似的内容:
return [
];
在 [
和 ]
之间,您可以添加以下扩展器片段。我为每个都提供了示例。
用户 - 邮箱
Luceos\Minis\User\Email\RequireDomain
- 限制可以注册的电子邮件域。
new Luceos\Minis\User\Email\RequireDomain('@flarum.org', '@gmail.com'),
帖子 - 节流
Luceos\Minis\Post\Throttle\InTag
- 节流用户在一定标签中回复或创建讨论的速度
在标签 advertisements
中,每五分钟只允许一次回复和创建讨论。
(new Luceos\Minis\Post\Throttle\InTag('advertisements')) ->op(true) ->reply(true) ->interval(fn (\Carbon\Carbon $carbon, \Flarum\User\User $user) => $carbon->subMinutes(5)),
有关如何使用 carbon 的间隔设置,请参阅 Carbon 文档:https://carbon.nesbot.com/docs/#api-addsub。
在标签 advertisements
中,每天只允许一次创建讨论。
(new Luceos\Minis\Post\Throttle\InTag('advertisements')) ->op(true) ->interval(fn (\Carbon\Carbon $carbon, \Flarum\User\User $user) => $carbon->subDay()),
帖子 - 格式化
Luceos\Minis\Post\Formatting\AllowElement
- 允许在编辑器/作曲家中使用 HTML 元素
new Luceos\Minis\Post\Formatting\AllowElement('iframe'),
讨论 - Http
Luceos\Minis\Discussion\Http\Redirection
- 允许将请求重定向到某些讨论
将任何带有文字、连字符或数字的路径请求重定向到匹配的讨论并重定向到它。
(new Luceos\Minis\Discussion\Http\Redirect(match: '~(?<slug>[\w\d-]{4,})~'))->fromSlug(),
注意 fromSlug()
需要正则表达式中的名为 slug
的捕获组!
将任何匹配的路径请求重定向到特定的路径,其中我们替换匹配项。
(new Luceos\Minis\Discussion\Http\Redirect(match: '~wordpress\/([0-9]+)\/(.*)~', to: '$1/$2', status: 301)),
match
需要有效的正则表达式,有关如何使用正则表达式,请参阅在线正则表达式测试器: https://regex101.com/。to
可选参数,用于设置目标,您可以使用$1
用于第一个匹配的捕获组,也可以使用命名捕获组。