All Projects → thedevdojo → Chatter

thedevdojo / Chatter

Licence: mit
Chatter is a Simple Laravel Forum Package

Projects that are alternatives of or similar to Chatter

Elkarte
ElkArte Forum. A free, open source, PHP-based discussion forum.
Stars: ✭ 128 (-84.87%)
Mutual labels:  forum, discussion
Icarus
🕊️ An opensource community/forum project write with python3 aiohttp and vue.js. 一个开源的社区程序,临时测试站:https://t.myrpg.cn
Stars: ✭ 644 (-23.88%)
Mutual labels:  forum, discussion
Airesis
The Social Network for eDemocracy
Stars: ✭ 116 (-86.29%)
Mutual labels:  forum, discussion
Symphony
🎶 一款用 Java 实现的现代化社区(论坛/问答/BBS/社交网络/博客)系统平台。A modern community (forum/Q&A/BBS/SNS/blog) system platform implemented in Java. https://ld246.com
Stars: ✭ 883 (+4.37%)
Mutual labels:  forum, discussion
sic
link aggregator community organised by tags (with no javascript)
Stars: ✭ 82 (-90.31%)
Mutual labels:  discussion, forum
Yii2 Podium
Yii 2 forum module project
Stars: ✭ 172 (-79.67%)
Mutual labels:  forum, discussion
Starfire
🌟 一个分布式的内容分享讨论社区,星星之火可以燎原。
Stars: ✭ 130 (-84.63%)
Mutual labels:  forum, discussion
Flowchat
A reddit alternative featuring communities and live-updating threaded conversations.
Stars: ✭ 296 (-65.01%)
Mutual labels:  forum, discussion
ConsiderIt
For deliberation and opinion visualization
Stars: ✭ 62 (-92.67%)
Mutual labels:  discussion, forum
Symphony
🎶 一款用 Java 实现的现代化社区(论坛/BBS/社交网络/博客)平台。
Stars: ✭ 13,080 (+1446.1%)
Mutual labels:  forum, discussion
dillo
Free and open web platform created to support crowd-driven content.
Stars: ✭ 62 (-92.67%)
Mutual labels:  discussion, forum
Forum
🍺 Portando discussões feitas em grupos (Facebook, Google Groups, Slack, Disqus) para o GitHub Discussions
Stars: ✭ 3,868 (+357.21%)
Mutual labels:  forum, discussion
Netcorebbs
ASP.NET Core Light forum NETCoreBBS
Stars: ✭ 483 (-42.91%)
Mutual labels:  forum
Mybb
MyBB is a free and open source forum software.
Stars: ✭ 750 (-11.35%)
Mutual labels:  forum
Itranswarp
Full-featured CMS including blog, wiki, discussion, etc. powered by SpringBoot.
Stars: ✭ 465 (-45.04%)
Mutual labels:  discussion
Scoold
A Stack Overflow clone for teams (self-hosted)
Stars: ✭ 463 (-45.27%)
Mutual labels:  forum
Js Kongress Munich Deep Track
Munich, 2020, April 15-16: This repository collects all session proposals for the #DeepTrack at JS Kongress Munich on 2020, April 15-16. Take a look on our website for more details.
Stars: ✭ 24 (-97.16%)
Mutual labels:  discussion
Bbs
巡云轻论坛系统包含论坛、问答模块。系统采用JAVA+MYSQL架构,自适应手机端和电脑端,界面简洁,性能高效。数据库表结构设计使用分表方案,提高系统的负载能力。后台数据库备份/还原、全站指定目录打包、一键自动升级等功能使维护简单方便。系统拥有强大的模板管理功能,布局版块支持设置输出条件,让前端页面展示方便快捷。
Stars: ✭ 712 (-15.84%)
Mutual labels:  forum
Satellity
Yet another open source forum written in Golang, React and PostgreSQL.
Stars: ✭ 455 (-46.22%)
Mutual labels:  forum
Rfcs
Public change requests/proposals & ideation
Stars: ✭ 428 (-49.41%)
Mutual labels:  discussion

Build Status Build Status Total Downloads Latest Stable Version License

Laravel Forum Package - Chatter

Installation

Quick Note: If this is a new project, make sure to install the default user authentication provided with Laravel. php artisan make:auth

  1. Include the package in your project

    composer require "devdojo/chatter=0.2.*"
    
  2. Add the service provider to your config/app.php providers array:

    If you're installing on Laravel 5.5+ skip this step

    DevDojo\Chatter\ChatterServiceProvider::class,
    
  3. Publish the Vendor Assets files by running:

    php artisan vendor:publish --provider="DevDojo\Chatter\ChatterServiceProvider"
    
  4. Now that we have published a few new files to our application we need to reload them with the following command:

    composer dump-autoload
    
  5. Run Your migrations:

    php artisan migrate
    

    Quick tip: Make sure that you've created a database and added your database credentials in your .env file.

  6. Lastly, run the seed files to seed your database with a little data:

    php artisan db:seed --class=ChatterTableSeeder
    
  7. Inside of your master.blade.php file include a header and footer yield. Inside the head of your master or app.blade.php add the following:

    @yield('css')
    

    Then, right above the </body> tag of your master file add the following:

    @yield('js')
    

Now, visit your site.com/forums and you should see your new forum in front of you!

Upgrading

Make sure that your composer.json file is requiring the latest version of chatter:

"devdojo/chatter": "0.2.*"

Then you'll run:

composer update

Next, you may want to re-publish the chatter assets, chatter config, and the chatter migrations by running the following:

php artisan vendor:publish --tag=chatter_assets --force
php artisan vendor:publish --tag=chatter_config --force
php artisan vendor:publish --tag=chatter_migrations --force

Next to make sure you have the latest database schema run:

php artisan migrate

And you'll be up-to-date with the latest version :)

Markdown editor

If you are going to make use of the markdown editor instead of tinymce you will need to change that in your config/chatter.php:

'editor' => 'simplemde',

In order to properly display the posts you will need to include the graham-campbell/markdown library for Laravel:

composer require graham-campbell/markdown

Trumbowyg editor

If you are going to use Trumbowyg as your editor of choice you will need to change that in your config/chatter.php:

'editor' => 'trumbowyg',

Trumbowyg requires jQuery >= 1.8 to be included.

VIDEOS

Introduction and Installation of Chatter

Configuration

When you published the vendor assets you added a new file inside of your config folder which is called config/chatter.php. This file contains a bunch of configuration you can use to configure your forums

Customization

CUSTOM CSS

If you want to add additional style changes you can simply add another stylesheet at the end of your @yield('css') statement in the head of your master file. In order to only load this file when a user is accessing your forums you can include your stylesheet in the following if statement:

@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 FRIENDLY PAGE TITLES

Since the forum uses your master layout file, you will need to include the necessary code in order to display an SEO friendly title for your page. The following code will need to be added to the <head> of your master file:

@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

OVERRIDING VIEWS

In order to override Chatter's built in views, simply create a chatter folder in your vendor views folder, i.e. ROOT/resources/views/vendor/chatter. Then simply drop in the Chatter view files you would like to override.

Custom Function Hooks for the forum

Sometimes you may want to add some additional functionality when a user creates a new discussion or adds a new response. Well, there are a few built in functions that you can create in your script to access this functionality:

Before User Adds New Discussion Create a new global function in your script called:

function chatter_before_new_discussion($request, $validator){}

Note: that the $request object is passed with the user input for each webhook. You can use it if you would like :) If not, no worries just add your custom functionality.

After User Adds New Discussion Create a new global function in your script called:

function chatter_after_new_discussion($request){}

Before User Adds New Response Create a new global function in your script called:

function chatter_before_new_response($request, $validator){}

After User Adds New Response Create a new global function in your script called:

function chatter_after_new_response($request){}

Laravel Events for the forum

This package provides a number of events allowing you to respond to user actions as they happen:

Event Available properties Description
ChatterBeforeNewDiscussion Illuminate\Http\Request ($request), Illuminate\Validation\Validator ($validator) This event is fired before a discussion is validated and created
ChatterAfterNewDiscussion Illuminate\Http\Request ($request), Models::discussion() ($discussion), Models::post() ($post) This event is fired after a discussion has been validated and created
ChatterBeforeNewResponse Illuminate\Http\Request ($request), Illuminate\Validation\Validator ($validator) This event is fired before a response is validated and created
ChatterAfterNewResponse Illuminate\Http\Request ($request), Models::post() ($post) This event is fired after a response is validated and created

Listening for Events

To register your listeners for these events, follow the Laravel documentation for registering events and listeners. For example, to register a listener for the "before new discussion" event, add the following to your EventServiceProvider:

protected $listen = [
    'DevDojo\Chatter\Events\ChatterBeforeNewDiscussion' => [
        'App\Listeners\HandleNewDiscussion',
    ],
];

where App\Listeners\HandleNewDiscussion is a class in your application which handles the event when it's fired.

You can access the object that triggered the event in your listener with

    public function handle(ChatterAfterNewDiscussion $event)
    {
        // $event->discussion
        // $event->post
    }

and

    public function handle(ChatterAfterNewResponse $event)
    {
        // $event->post
    }

Screenshots

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].