Skip to content

vigstudio/livewire-comments

Repository files navigation

Latest Version on Packagist Total Downloads

Livewire Comments Package

Features

  • Add comments to any model
  • Multiple comment systems on the same page
  • Multiple auth guards
  • Image and File upload support
  • Drag and drop, copy and paste upload files support
  • reCaptcha v3 support
  • Emoji support
  • Markdown support
  • NSFW image upload check support

Pending Features

  • Allow guest to comment
  • Admin panel
  • Mention user with @
  • Emoji Suggestion Popup
  • Delete Report comment
  • Ratting system
  • Toolbar for comment
  • Comment history
  • Show Nested comments
  • Unit test

Packages

Introduction

Package use Macroable trait to add comments to any model. It uses Livewire and AlpineJs to create a comment system with a lot of features.

Package support multiple comment systems on the same page.

Package support multiple auth guards.

Prerequisites

Install Livewire Comments Package

In your terminal run:

composer require vigstudio/livewire-comments

Publish the assets files with:

php artisan vendor:publish --tag=vgcomment-assets-livewire

You can publish the config with:

php artisan vendor:publish --tag=vgcomment-config

Edit prefix route in config/vgcomment.php file.

    /*
    |--------------------------------------------------------------------------
    | Route Prefix
    |--------------------------------------------------------------------------
    |
    | This is the URI path where VgComment will be accessible from. Feel free to
    | change this path to anything you like.
    |
    */
    'prefix' => 'vgcomment',

Edit connection name in config/vgcomment.php file.

    /*
    |--------------------------------------------------------------------------
    | Database Connection
    |--------------------------------------------------------------------------
    |
    | Here you may specify which of the database connections below you wish
    | to use as your default connection for all of your database work.
    |
    */
    'connection' => env('DB_CONNECTION', 'mysql'),

Edit table names in config/vgcomment.php file.

    /*
    |--------------------------------------------------------------------------
    | Name of Tables in Database
    |--------------------------------------------------------------------------
    |
    | This is the name of the table that will be created by the migration and
    | used by the Comment model shipped with this package.
    |
    | "comments"    : Comments Table
    | "files"       : Files Attachment Table
    | "reactions"   : Reactions Table
    | "reports"     : Reports Table
    | "settings"    : Settings Table
    |
    */
    'table' => [
        'comments' => 'vgcomments',
        'files' => 'vgcomment_files',
        'reactions' => 'vgcomment_reactions',
        'reports' => 'vgcomment_reports',
        'settings' => 'vgcomment_settings',
    ],

Config Column or Attribute User Model in config/vgcomment.php file.

        /*
    |--------------------------------------------------------------------------
    | Column of User Table for get Data
    |--------------------------------------------------------------------------
    |
    | This is the setting for column of user table for get data.
    | "user_column_name"  : Column name for get name user
    | "user_column_email" : Column name for get email user
    | "user_column_url"   : Column name for get url user
    |
    */
    'user_column_name' => 'name',
    'user_column_email' => 'email',
    'user_column_url' => 'url',
    'user_column_avatar_url' => 'avatar_url',

Set moderation user in config/vgcomment.php file.

        /*
    |--------------------------------------------------------------------------
    | Users Manager Comments
    |--------------------------------------------------------------------------
    |
    | This is the setting for users manager comments.
    | 'guard' => [user_id]
    |
    | Example:
    | 'web' => [1, 2, 3]
    | 'api' => [1, 2, 3]
    |
    */
    'moderation_users' => [
        'web' => [1],
    ],

Run the migrate command to create the necessary tables: Before running the migrate command, you can edit the config/vgcomment.php file to change the table names.

php artisan migrate

Additionally you may want to clear the config, cache, etc:

php artisan optimize:clear

"Buy Me A Coffee"

"Donate Me!"