dericktan / chatter
为您的laravel应用提供的简单论坛包
Requires (Dev)
- illuminate/cache: ~5.1.20|5.2.*|5.3.*
- illuminate/console: ~5.1.20|5.2.*|5.3.*
- mockery/mockery: ^0.9.5
- phpunit/phpunit: ~5.7.14
This package is auto-updated.
Last update: 2024-09-19 15:53:48 UTC
README
安装
快速提示:如果您正在创建一个新项目,请确保安装Laravel提供的默认用户认证。 php artisan make:auth
-
将包包含到您的项目中
composer require "dericktan/chatter=0.2.*"
-
将服务提供者添加到您的
config/app.php
提供者数组中DerickTan\Chatter\ChatterServiceProvider::class,
-
运行以下命令发布供应商资产文件
php artisan vendor:publish
-
现在我们已经向应用程序发布了几个新文件,我们需要通过以下命令重新加载它们
composer dump-autoload
-
运行您的迁移
php artisan migrate
快速提示:请确保您已创建数据库并在您的
.env
文件中添加了数据库凭证。 -
运行种子文件以在数据库中填充一些数据
php artisan db:seed --class=ChatterTableSeeder
-
Markdown编辑器
如果您打算使用markdown编辑器而不是tinymce,您需要在config/chatter.php中进行更改
'editor' => 'simplemde',
为了正确显示帖子,您需要包含Laravel的 graham-campbell/markdown
库
composer require graham-campbell/markdown
-
打开您的编辑器,将 vender/dericktan/chatter/src/Controllers/ChatterDiscussionController.php 和 vender/dericktan/chatter/src/Controllers/ChatterPostController.php 中的 Event::fire 更改为 Event::dispatch。
-
最后,运行
composer require laravel/helpers
现在,访问您的 site.com/forums,您应该会看到您的新论坛出现在您面前!!!
自定义
自定义CSS
如果您想添加额外的样式更改,您可以在主文件的头部 @yield('css')
语句的末尾添加另一个样式表。为了只在用户访问您的论坛时加载此文件,您可以在以下 if
语句中包含您的样式表
@if(Request::is( Config::get('chatter.routes.home') ) || Request::is( Config::get('chatter.routes.home') . '/*' ))
<!-- LINK TO YOUR CUSTOM STYLESHEET -->
<link rel="stylesheet" href="/assets/css/forums.css" />
@endif
SEO友好的页面标题
由于论坛使用您的主布局文件,您需要包含必要的代码以在页面上显示SEO友好的标题。以下代码需要添加到主文件的 <head>
中
@if( Request::is( Config::get('chatter.routes.home')) )
<title>Title for your forum homepage - Website Name</title>
@elseif( Request::is( Config::get('chatter.routes.home') . '/' . Config::get('chatter.routes.category') . '/*' ) && isset( $discussion ) )
<title>{{ $discussion->category->name }} - Website Name</title>
@elseif( Request::is( Config::get('chatter.routes.home') . '/*' ) && isset($discussion->title))
<title>{{ $discussion->title }} - Website Name</title>
@endif
覆盖视图
为了覆盖Chatter的内置视图,只需在您的 vendor
视图文件夹中创建一个 chatter
文件夹,例如 ROOT/resources/views/vendor/chatter
。然后只需将您想要覆盖的Chatter视图文件放入其中。
论坛的自定义功能钩子
有时您可能希望在用户创建新的讨论或添加新的回复时添加一些额外的功能。嗯,有一些内置的函数可以在您的脚本中创建以访问此功能
在用户添加新讨论之前 在您的脚本中创建一个名为
function chatter_before_new_discussion($request, $validator){}
注意:每个webhook都会传递带有用户输入的 $request
对象。如果您想使用它,请随意使用 :) 如果不想,没关系,只需添加您自定义的功能。
在用户添加新讨论之后 在您的脚本中创建一个名为
function chatter_after_new_discussion($request){}
在用户添加新回复之前 在您的脚本中创建一个名为
function chatter_before_new_response($request, $validator){}
在用户添加新回复之后 在您的脚本中创建一个名为
function chatter_after_new_response($request){}
Laravel 事件 用于论坛
此包提供了一些事件,允许您在用户操作发生时进行响应
监听事件
要注册这些事件的监听器,请参阅 Laravel关于注册事件和监听器的文档。例如,要注册“before new discussion”事件的监听器,请将以下内容添加到您的 EventServiceProvider
protected $listen = [ 'DerickTan\Chatter\Events\ChatterBeforeNewDiscussion' => [ 'App\Listeners\HandleNewDiscussion', ], ];
其中 App\Listeners\HandleNewDiscussion
是您应用程序中处理事件触发的类。