socieboy / forum
Laravel 论坛集成包
Requires
- easy-slug/easy-slug: ~2.0
- league/commonmark: ~0.8
- pusher/pusher-php-server: ~2.0
README
不再维护此包。
Socieboy 论坛
为 Laravel 5.2 设计的包
特性
- 创建对话。
- 回复现有对话。
- 支持 Gravatar 和自定义头像。
- 当某个用户留下回复时,向对话所有者发送电子邮件。
- 当有人留下回复时,向对话所有者广播通知。
- 包含 LESS 文件。
安装
1. 将包添加到 composer.json 文件中
"socieboy/forum" : "2.0.*"
2. 安装此包后,您需要在 config/app.php 文件中设置服务提供者
Socieboy\Forum\Providers\ForumServiceProvider::class,
3. 在您的配置文件夹中发布论坛配置文件,并将默认模板发布到 resources/assets/less/ 文件夹中,执行以下命令。
php artisan vendor:publish
4. 为论坛创建迁移,确保您已经为用户创建了一个迁移。(在执行此步骤之前,您可能想要为论坛数据库表添加前缀,请参阅配置文件)
php artisan forum:migrate
此命令将创建迁移文件,用于对话、回复和 like_replies。然后只需执行您的迁移即可
php artisan migrate
配置
通用
论坛提供了一个简单的自定义模板,该模板已发布在 resources/assets 目录中,您可以自由编辑。
在 config/forum.php 文件中,设置您应用程序的正确信息。
模板
这是您项目的母版模板视图
'template' => 'app',
关键内容是您在主模板文件中想要显示论坛的 yield 标签的名称
'content' => 'content',
使用这些值,论坛可以非常容易地适应您的项目并匹配您的应用程序设计。
主题
定义您论坛的主题数组。现在您可以定义主题的键、名称和代表图标,您可以使用您偏好的任何字体类。您还可以设置此主题的代表颜色(颜色是可选的)。
'topics' => [
'general' => [
'name' => 'General',
'icon' => 'fa fa-tags',
'color' => 'rgb(78, 137, 218)'
]
],
数据库
自定义论坛数据库表的前缀。
'database' => [
'prefix' => 'forum'
],
用户设置
论坛包含用户配置。
模型键,设置用户模型的命名空间加类名。默认为 App\User,因为 Laravel 使用。
'model' => \App\User::class,
用户名键是您的用户表中用于显示发帖用户名称的字段。您可以设置任何字段,如 email、username、full_name、name 等,(必须是用户表上的字段)。
'username' => 'name',
您的项目中有用户的头像吗?(如果想要使用头像,请将键 avatar 设置为 true)。
'avatar' => true,
如果您想要使用 Gravatar 作为您的头像,请将键 gravatar 设置为 true。
'gravatar' => true,
如果您想要使用自己的头像,则定义您的用户表中存储图片 URL(头像)的字段。
'user-avatar' => 'avatar',
包含用户配置文件链接。
'profile' => true,
默认情况下,论坛包含一个简单的用户配置文件。如果您想实现自己的配置文件,只需在此键上设置路由名称,该路由应接收一个参数作为 slug。
'profile-route' => 'forum.user.profile'
指定用于作为 slug 的用户表列,默认情况下论坛使用用户 ID。
'profile-slug' => 'id',
现在如果用户未登录,开始对话的按钮将重定向用户到您的登录页面,只需在此键中设置您的登录页面 URL。
'auth' => [
'login-url' => 'auth/login'
],
如果您想要,可以更改点赞和选择最佳回复的图标。
'icons' => [
'tags' => 'glyphicon glyphicon-tags',
'like' => 'glyphicon glyphicon-thumbs-up',
'correct-answer' => 'glyphicon glyphicon-ok',
'edit' => 'glyphicon glyphicon-pencil',
'delete' => 'glyphicon glyphicon-trash'
'home' => 'glyphicon glyphicon-home',
],
电子邮件
在电子邮件数组中,有4个不同的值。
默认情况下,fire键设置为false,当有人回复时不会触发电子邮件。如果你想实现当某些用户回复时向对话所有者发送电子邮件,请将其更改为true。
'fire' => false,
from键是您应用管理员或用于发送电子邮件的任何账户的电子邮件。
'from' => '',
from-name键是论坛管理员或将要发送电子邮件的个人的真实姓名。
'from-name' => '',
最后,只需设置触发电子邮件的主题。
'subject' => 'My app Forum - you have a new reply on your post',
事件
当某个用户在对话中回复、开始新的对话或标记回复为最佳答案时,将触发一个事件,并按照您的设置进行广播。
默认情况下,fire键设置为true。只要它是true,就会为新的回复、新的对话和选择最佳答案触发事件。
'fire' => true,
在论坛配置文件中设置broadcast键为true,并将您的Pusher键添加到Laravel的广播配置文件中。一旦设置为true,事件也将发送广播,您可以将其获取。https://pusher.com/
'broadcast' => false,
此外,在您的应用底部或您的脚本部分所在位置添加此代码。
@include('Forum::Broadcasting.index');
就是这样,简单易行,您已经准备就绪了!
翻译
- 英语
- 西班牙语
- 丹麦语
- 法语
- 阿拉伯语
如果您想用您的母语为此包做出贡献,请复制src/Lang/en/文件夹,将所有键翻译成您的语言,并发送拉取请求。