🛠️Other Options
You can find all the configurable options in our self-explanatory configuration file. By default, this file will be published as comments.config
in the config directory after you run the commenter:install command.
If you need to manually publish the configuration file, you can use the following command:
php artisan vendor:publish --tag=comments-config
The contents of the configuration file are as follows:
<?php
use App\Models\User;
use LakM\Comments\Enums\Sort;
use LakM\Comments\Models\Comment;
use LakM\Comments\Models\Reaction;
use LakM\Comments\Policies\CommentPolicy;
use LakM\Comments\Policies\ReplyPolicy;
return [
/**
* Available themes default,github
*/
'theme' => 'default',
/**
* Comment Model
* Must extend base model LakM\Comments\Models\Comment
*/
'model' => Comment::class,
/**
* Comment owner model
* Must extend Illuminate\Contracts\Auth\Authenticatable
* Must implement LakM\Comments\Contracts\CommentableContract
*/
'user_model' => User::class,
/**
* Database column or model accessor name to
* get the name of the user.
*/
'user_name_column' => 'name',
/**
* Database column or model accessor email to
* get the email of the user.
*/
'user_email_column' => 'email',
/**
* Reaction model
* Must extend LakM\Comments\Models\Reaction
*/
'reaction_model' => Reaction::class,
// When guest mode unable no authentication required
'guest_mode' => [
'enabled' => true,
'email_enabled' => true,
],
'auth_guard' => 'default',
/**
* In Auth mode unauthenticated users will be redirected to this route for login
*/
'login_route' => 'login',
/**
* When set to true only approved commands will be displayed.
* To approve a comment, approved column must be set to true in comments table.
*/
'approval_required' => false,
'profile_photo' => [
/**
* Database column or model accessor name to
* get the url of profile photo.
* Leave null if profile photo is not supported
*/
'url_column' => '',
'default' => [
/**
* when profile photo url haven't been set
* this url is used.
*/
'url' => '',
/**
* if this is empty
* gravatar service (https://docs.gravatar.com/api/avatars/images/) is used
* to generate an avatar.
*/
'gravatar' => [
'default' => 'mp',
],
],
],
/**
* In Auth mode clicking profile photo will be redirected to this url
* Keep null to disable this feature.
* This can be table column name or accessor
*/
'profile_url_column' => 'name',
// When set to false filters won't be displayed in comments list
'show_filters' => true,
// Default comments sort order, See Sort::class for available values
'default_sort' => Sort::TOP,
// Comments pagination
'pagination' => [
'enabled' => true,
'per_page' => 15,
],
'permissions' => [
'create-comment' => [CommentPolicy::class, 'create'],
'update-comment' => [CommentPolicy::class, 'update'],
'delete-comment' => [CommentPolicy::class, 'delete'],
'create-reply' => [ReplyPolicy::class, 'create'],
'update-reply' => [ReplyPolicy::class, 'update'],
'delete-reply' => [ReplyPolicy::class, 'delete'],
],
/**
* Limit no of comments a user make for a model
* keep null means unlimited
*/
'limit' => null,
// Control comment's replies
'reply' => [
'enabled' => true,
/** when enabled email field is required to reply in guest mode */
'email_enabled' => true,
/** Keep null to allow unlimited replies for a comment */
'limit' => null,
/**
* When set to true only approved replies will be displayed.
* To approve a comment, approved column must be set to true in comments table.
*/
'approval_required' => false,
'pagination' => [
'enabled' => true,
'per_page' => 10,
],
// Default comments sort order, available values: Sort::LATEST->value, Sort::OLDEST
'default_sort' => Sort::LATEST,
],
/**
* Quill editor configs
* @see https://quilljs.com/docs/configuration
*/
'editor_config' => [
'debug' => false,
'modules' => [
'toolbar' => [
[['header' => [1, 2, false]]],
['bold', 'italic', 'underline'],
['link', 'code-block'],
],
],
'placeholder' => 'Your message here',
'theme' => 'snow',
],
'should_confirm_link_visit' => true,
'reactions' => [
'like' => ['position' => 'left', 'fill' => 'gray'],
'dislike' => ['position' => 'left', 'fill' => 'gray'],
'happy' => ['position' => 'right', 'fill' => 'orange'],
'love' => ['position' => 'right', 'fill' => 'red'],
'sad' => ['position' => 'right', 'fill' => 'orange'],
],
/**
* available options
* 'diff' (hour ago), 'standard' (2024/5/2 17:48)
*/
'date_format' => 'diff',
];
Last updated