luceos/minis

Flarum 的迷你扩展

赞助包维护!
luceos
Patreon

安装: 6

依赖: 0

建议: 0

安全: 0

星标: 0

关注者: 1

分支: 0

开放问题: 0

类型:flarum-extension

0.1-beta.1 2024-08-19 09:46 UTC

This package is auto-updated.

Last update: 2024-09-21 14:44:49 UTC


README

License Latest Stable Version Total Downloads

这不是一个真正的 Flarum 扩展。

每个 Flarum 安装都包含一个名为 extend.php 的文件,该文件允许您使用任何 Flarum 扩展器,而无需创建完整的扩展。在过去几年中,我编写了多个 示例 来展示如何使用它。我认为将这些示例移动到它们自己的扩展中是明智的,这样您就可以用更少的代码使用这些扩展器。

您的 extend.php 文件位于 Flarum 根安装路径中,与 config.phpflarum 位于同一位置。

安装

使用 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 用于第一个匹配的捕获组,也可以使用命名捕获组。

链接