当然,我可以帮你在Flarum的帖子页面上添加一个发帖按钮。这通常需要通过创建一个自定义扩展来实现。以下是大致的步骤和代码示例:
创建一个新的Flarum扩展。
在扩展中,你需要修改前端代码来添加新的按钮。
使用JavaScript来定位正确的位置并插入新按钮。
这里是一个基本的实现方法:
在你的扩展的 js/src/forum 目录下创建一个新的JavaScript文件,比如 addNewPostButton.js:
<JAVASCRIPT>
import { extend } from 'flarum/extend';
import DiscussionPage from 'flarum/components/DiscussionPage';
import Button from 'flarum/components/Button';
export default function() {
extend(DiscussionPage.prototype, 'sidebarItems', function(items) {
const newDiscussion = app.route('index');
items.add('newPost',
Button.component({
className: 'Button Button--primary',
icon: 'fas fa-plus',
onclick: () => app.modal.show(NewDiscussionModal),
}, app.translator.trans('core.forum.header.start_discussion_button')),
1 // 这会将按钮放在回复按钮之前
);
});
}
在你的扩展的主JavaScript文件(通常在 js/src/forum/index.js)中导入并初始化这个函数:
<JAVASCRIPT>
import addNewPostButton from './addNewPostButton';
app.initializers.add('your-extension-name', () => {
addNewPostButton();
});
重新构建你的扩展的资源:
在你的扩展的 composer.json 文件中确保你有正确的前端资源定义:
<JSON>
"extra": {
"flarum-extension": {
"title": "Your Extension Name",
"category": "feature",
"icon": {
"name": "fas fa-plus",
"backgroundColor": "#238c59",
"color": "#fff"
}
},
"flarum-assets": {
"forum": [
"js/forum.js"
]
}
}
最后,在Flarum管理面板中启用你的扩展。
这段代码会在侧边栏的回复按钮上方添加一个新的发帖按钮。按钮使用了Flarum核心的翻译字符串,所以它会自动适应当前语言设置。
请注意,这只是一个基本实现。你可能需要根据具体需求进行调整,比如修改按钮样式、处理权限检查等。此外,由于Flarum的更新可能会改变内部结构,确保在不同版本中测试你的扩展。
如果你不熟悉Flarum扩展开发,建议先阅读Flarum的官方开发文档,了解更多关于扩展开发的细节。