Laravel Forum 3.0 Pre-Release

Written by Riari 1 year ago. Last updated 1 year ago.

Laravel-5 Laravel-4

Laravel Forum, a drop-in forum package for Laravel 4/5 originally created by Atrakeur, is a project we've been building on for the past year. Version 2 for Laravel 5 started gaining some traction while we began on a total rewrite.

The list of changes and new features in version 3 is quite extensive, but here are some highlights:

  • Category creation and management
  • "Private" categories (using Laravel Authorisation)
  • Bulk and singular thread actions (including pinning and locking)
  • Soft and hard deletion capabilities on threads and posts
  • New internal API with REST interface and multiple authentication methods
  • User interaction events
  • Support for 8 languages
  • Many small tweaks, additions and removals

Let's take a look at some of these new features in detail.

Feature Highlights

Category Creation & Management

Out of the box, you now have the ability to create, rename, move and change the properties of categories instead of having to delve into your database schema and define categories by hand.

Two new properties have also been added:

  • Enable threads: If enabled, threads can be created and seen in the category. If disabled, new threads can no longer be created and existing ones are hidden.
  • Private: If enabled, authorisation will kick in for the category and prevent it from being viewed or listed anywhere for the current user based on the ForumPolicy::view ability.

Category creation

Categories can be nested to any level and may be set to disallow new threads or behave as a "private" category.

Thread Management & Direct Replies

Thread locking and pinning

Thread actions include a few new additions such as moving to new categories and deleting, which behaves in much the same way as category deletion.

Replying directly to a post also links it to the new reply, automatically including a quote and link in the post body.

Thread creation and replying

Bulk Actions

Actions in general have been redesigned to work in a more unified way, but we've also introduced the ability to apply actions to threads and posts in bulk. Moving, renaming, locking, pinning, deleting, restoring, and so on are all possible through the new interface additions - all of which are integrated neatly with authorisation.

API

The new API is written to be consumed internally for all data querying and persistence, allowing much tidier, consistent frontend controllers with minimal extra overhead.

It's also available RESTfully, so anything from creating a category to deleting a post is possible for custom integrations.

Language Support

Thanks to contributors, Laravel Forum supports 8 languages:

  • German
  • English
  • Spanish
  • French
  • Italian
  • Romanian
  • Russian
  • Swedish

All of the translations have been reorganised and updated to support newly added features.

What's Next

Pre-releases of 3.0.0 are available on GitHub and we hope to release the first stable version by the end of November.

The included migrations are compatible with version 2, so when the time comes, upgrading the schema should be relatively painless. That said, everything else has been replaced or changed in some way, so removing any existing published files (views, config and translations) and publishing the new files to re-apply your customisations will be necessary. The documentation will outline key changes in detail to make this easier.

Once the new documentation is written, it will be made available on this site prior to the first stable release and will cover all aspects of the package, including usage on the frontend, code customisation/integration, and the REST API endpoints. We'll upgrade the demo at the same time.

In the meantime, we're continuing work to improve code quality and API optimisation, as well as correcting any outstanding issues.

Contributing

If you feel like contributing, feel free explore the latest releases, read the source and try it out. Remember to report issues on the repository.

Pull requests are also encouraged (especially for translation fixes, since most of the new translations have been done with Google Translate and may not be accurate).

If you have an idea for a new feature, feel free to create an issue detailing it and we'll consider it for a future release. Pull requests for new features and improvements are also welcome and are considered individually.


Thanks for looking, and remember to take a look at the readme for more info, including installation steps.

~ Riari