sholihin / chattersishop
为您的Laravel应用程序提供的简单论坛软件包
Requires
- luketowers/purifier: ~3.0
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-29 06:02:40 UTC
README
Laravel论坛软件包 - Chatter
安装
快速提示:如果您正在创建一个新的项目,请确保安装Laravel提供的默认用户身份验证。php artisan make:auth
-
将软件包包含到您的项目中
composer require "sholihin/chattersishop"
-
将服务提供者添加到您的
config/app.php
providers数组中如果您正在安装Laravel 5.5+,请跳过此步骤
Sholihin\Chattersishop\ChatterServiceProvider::class,
-
通过运行以下命令发布供应商资产文件
php artisan vendor:publish --provider="Sholihin\Chattersishop\ChatterServiceProvider"
-
现在,我们已经将一些新文件发布到我们的应用程序中,我们需要通过以下命令重新加载它们
composer dump-autoload
-
运行您的迁移
php artisan migrate --path=database/migrations/chatter/
快速提示:确保您已创建数据库并在您的
.env
文件中添加了数据库凭据。 -
最后,运行种子文件以在数据库中添加一些数据
php artisan db:seed --class=ChatterTableSeeder
-
在您的master.blade.php文件中,包括头部和尾部yield。在master或app.blade.php的头部添加以下内容
@yield('css')
然后,在master文件的
</body>
标签上方添加以下内容@yield('js')
现在,访问您的site.com/forums,您应该能在眼前看到您的新论坛!
升级
然后您将运行
composer update
接下来,您可能希望重新发布chatter资产、chatter配置和chatter迁移,通过运行以下命令
php artisan vendor:publish --tag=chatter_assets --force
php artisan vendor:publish --tag=chatter_config --force
php artisan vendor:publish --tag=chatter_migrations --force
接下来,为了确保您有最新的数据库模式,运行
php artisan migrate --path=database/migrations/chatter/
您现在将是最新的版本 :)
Markdown编辑器
如果您打算使用markdown编辑器而不是tinymce,您需要在config/chatter.php中进行更改
'editor' => 'simplemde',
为了正确显示帖子,您需要为Laravel包含graham-campbell/markdown
库
composer require graham-campbell/markdown
Trumbowyg编辑器
如果您打算使用Trumbowyg作为首选编辑器,您需要在config/chatter.php中进行更改
'editor' => 'trumbowyg',
Trumbowyg需要包含jQuery >= 1.8
视频
配置
当您发布供应商资产时,您在config文件夹中添加了一个新文件,该文件称为config/chatter.php。此文件包含许多配置选项,您可以使用它们来配置您的论坛
自定义
自定义CSS
如果您想添加额外的样式更改,您只需在master文件的头部@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友好的页面标题
由于论坛使用您的master布局文件,因此您需要包含必要的代码来显示页面SEO友好的标题。以下代码需要添加到master文件的<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 = [ 'Sholihin\Chattersishop\Events\ChatterBeforeNewDiscussion' => [ 'App\Listeners\HandleNewDiscussion', ], ];
其中 App\Listeners\HandleNewDiscussion
是您应用程序中的一个类,它在事件被触发时处理该事件。
您可以使用以下方式在监听器中访问触发事件的对象
public function handle(ChatterAfterNewDiscussion $event) { // $event->discussion // $event->post }
和
public function handle(ChatterAfterNewResponse $event) { // $event->post }