taskforcedev / laravel-forum by PrivateSniper

A forum module for Laravel 5 websites.
673
6
5
Package Data
Maintainer Username: PrivateSniper
Package Create Date: 2015-06-05
Package Last Update: 2016-12-30
Language: PHP
License: GPL-3.0
Last Refreshed: 2024-04-25 15:13:56
Package Statistics
Total Downloads: 673
Monthly Downloads: 0
Daily Downloads: 0
Total Stars: 6
Total Watchers: 5
Total Forks: 4
Total Open Issues: 1

Laravel Forum

A drop-in forum module for Laravel 5.

Code Style: Build Status Scrutinizer Code Quality

Integration Testing:

Laravel 5.3: Build Status

Requirements

  • Laravel 5.2+
  • jQuery is currently required for forum moderation features (lock/sticky).

What this package provides

  • Fully Functional Forum (/forum)

  • Admin Interface (/admin/forums)

  • Database Tables

    • forums
    • forum_posts
    • forum_categories
    • forum_post_replies

Installation

Step 1: Add the following package to your composer.json require (if not already present).

Laravel 5.2:

require {
  "taskforcedev/laravel-forum": "1.0.2"
}

Laravel 5.3+:

require {
    "taskforcedev/laravel-forum": "dev-master"
}

In development (steps for 5.0-5.2 may work as long as you dont require a package requiring the newer laravel-support package).

Step 2: Run composer update

composer update

Step 3: Add the following service provider(s) to config/app.php (if not already present)

'providers' => [
    Taskforcedev\LaravelSupport\ServiceProvider::class,
    Taskforcedev\LaravelForum\ServiceProvider::class,
]

Step 4: Migrate

Run the migrations

php artisan migrate

Step 5: Publish Config.

If you haven't previously published the config from the LaravelSupport package please do this also with the following command:

php artisan vendor:publish --tag="taskforce-support"

Step 6: Edit config.

If you haven't previously edited the config/taskforce-support.php file please add your sites details into this.

'layout' => 'layouts.master',
'sitename' => 'Your Site Name',

Usage

Once you have done the installation steps above in order to setup the forums for public use you must first create at least one category and a forum, you do this by visiting

/admin/forums

Once you have done this you can add the link to /forum into your sites navigation as you please.

Administration / Moderation

In order to provide administrators access to add/edit/manage the forums we use laravel policies.

The following must return true for a user to be able to visit the admin section:

$user->can('create', Forum::class);

We recommended you have a policy which proves a user has administration powers on your application:

see: https://laravel.com/docs/5.3/authorization#creating-policies

Then you can add the following to your app/Providers/AuthServiceProvider.php file

use Taskforcedev\LaravelForum\Models\Forum;
use Taskforcedev\LaravelForum\Models\ForumCategory;

Then apply your admin policy to each of the models [example:]

protected $policies = [
    ...
    
    Forum::class => AdminPolicy::class,
    ForumCategory::class => AdminPolicy::class,
];

As it stands any authenticated user is able to post or reply in any forum.

Events

The following events are fired within the package and can be listened for in your main application.

  • Taskforcedev\LaravelForum\Events\PostCreated
  • Taskforcedev\LaravelForum\Events\PostReply

Contributing / Feedback

  • We welcome any pull requests, please ensure code is to the PSR-2 Standard.
  • We check github issues frequently so please feel free to raise any comments or feedback there.

Versioning

Version 1.* follows the semantic version numbering system.

Future versions will use the laravel major and minor version numbers followed by release number.