clarkwinkelmann / flarum-local-extenders
为您的本地 extend.php 提供有用的扩展器
Requires
- ext-json: *
- flarum/core: ^1.2
README
本软件包为您本地的 Flarum extend.php 提供有用的扩展器
这不是一个实际的扩展,它不会出现在您的 Flarum 管理面板中。
安装
composer require clarkwinkelmann/flarum-local-extenders
配置
可以通过将它们添加到 Flarum 安装根目录下的 extend.php
文件中的数组来使用这些扩展器。
以下列出了功能摘要以及示例。有关完整文档和警告,请参阅源代码中的 PHPDoc 块。
在管理员中更改扩展列表
允许您自定义扩展列表在管理面板中的显示方式。
"隐藏扩展"和"隐藏版本"实际上隐藏了数据,但当扩展启用时,仍然可以猜测。
所有其他选项只是外观上的改变,只改变了外观,而没有隐藏原始值或功能。
始终可以通过 API 启用/禁用扩展或编辑其设置。
示例
(new ClarkWinkelmann\LocalExtenders\AlterExtensionListInAdmin()) ->extension('flarum-markdown', function ($extension) { // To Hide the extension completely $extension->hide(); // To hide select information or buttons $extension->hideVersion(); $extension->hideSettings(); // To change the look $extension->title = 'New title'; $extension->description = 'New description'; $extension->iconName = 'fas fa-tree'; $extension->iconColor = '#aa0000'; $extension->iconBackgroundColor = '#aa0000'; $extension->iconImage = __DIR__.'/path/to/image.png'; // SVG/PNG/JPG // You can also chain calls via the methods $extension ->title('New title') ->iconName('fas fa-tree'); }),
启动后跟
添加一个新用户首选项,该首选项控制一个新功能"跟紧行讨论"。
与包含在订阅中的"跟紧行讨论"功能的工作方式完全一样,但适用于讨论的启动。
示例
new ClarkWinkelmann\LocalExtenders\FollowAfterStart(),
默认情况下是启用的。要设置默认禁用,请向构造函数传递参数。
new ClarkWinkelmann\LocalExtenders\FollowAfterStart(false),
前端无模块
类似于 Flarum 的前端 extender for js & css,但有几个不同之处。
- 不处理 JavaScript 文件作为模块,允许添加不是为模块加载器设计的自定义代码。
- 允许使用单个扩展器添加多个 JavaScript 文件。
示例
(new ClarkWinkelmann\LocalExtenders\FrontendWithoutModule('admin')) ->js(__DIR__.'/local/one-file.js') ->js(__DIR__.'/local/one-other-file.js') ->css(__DIR__.'/local/you-can-also-import-css-but-its-identical-to-the-core-extender.less'),
在管理员中隐藏扩展版本
从管理员面板的数据负载中删除所有扩展的扩展版本。
示例
new ClarkWinkelmann\LocalExtenders\HideExtensionVersionInAdmin(),
在管理员中隐藏 Flarum 版本
从管理员面板的数据负载中删除 Flarum 版本。
示例
new ClarkWinkelmann\LocalExtenders\HideFlarumVersionInAdmin(),
在管理员中隐藏系统信息
从管理员面板的数据负载中删除 PHP 和 MySQL 版本。
示例
new ClarkWinkelmann\LocalExtenders\HideSystemInfoInAdmin(),
覆盖设置
设置一些键值对,以便通过 SettingsRepositoryInterface::get() 返回。即使通过管理员面板设置了其他值,通过此扩展器定义的值也将具有优先级。
示例
(new ClarkWinkelmann\LocalExtenders\OverrideSettings()) ->set('mail_driver', 'log') ->set('forum_title', 'Hello'),
从 SettingsRepositoryInterface::all() 负载中隐藏一些键。这仅隐藏来自数据库的值,因为通过此扩展器覆盖的值根本不会通过 ::all() 返回。
示例
(new ClarkWinkelmann\LocalExtenders\OverrideSettings()) ->hide('mail_driver'),
覆盖的值也可以通过传递给构造函数的关联数组设置。
new ClarkWinkelmann\LocalExtenders\OverrideSettings([ 'fof-stopforumspam.ip' => '1', 'fof-stopforumspam.email' => '0', 'fof-stopforumspam.api_key' => 'abcdefg', ]),
默认情况下记住我
当登录模态打开时检查"记住我"复选框。
示例
new ClarkWinkelmann\LocalExtenders\RememberMeByDefault(),
用 HTML 替换管理员组件视图
用给定的 HTML 替换管理员组件的视图方法。
示例
(new ClarkWinkelmann\LocalExtenders\ReplaceAdminComponentViewWithHtml()) ->string('MailPage', '<p>We have already configured email for you</p>'),
(new ClarkWinkelmann\LocalExtenders\ReplaceAdminComponentViewWithHtml()) ->file('MailPage', __DIR__.'/local/mail.html'),