Skip to content

numaxlab/nova-ckeditor5-classic

Repository files navigation

Introduction

CKEditor5 Classic editor field for Laravel Nova. Use the last version of the popular WYSIWYG editor as a Laravel Nova field.

Latest Version on Packagist Total Downloads

Installation

You can install the package into a Laravel application that uses Nova via composer:

composer require numaxlab/nova-ckeditor5-classic

After installing publish the config:

php artisan vendor:publish --tag=config --provider=NumaxLab\\NovaCKEditor5Classic\\FieldServiceProvider

Usage

Use the NumaxLab\NovaCKEditor5Classic\CKEditor5Classic field in your Nova resource:

namespace App\Nova;

use NumaxLab\NovaCKEditor5Classic\CKEditor5Classic;

class Post extends Resource
{
    // ...

    public function fields(Request $request)
    {
        return [
            // ...

            CKEditor5Classic::make('Content'),

            // ...
        ];
    }
}

Customizing CKEditor

If you want to change the Editor's settings, you can do so by editing the config file config/ckeditor5Classic.php or by setting it directly in your filed, if you need different setup per field:

CKEditor5Classic::make('Content')->withFiles('public')
->options([...]);

You can visit the CKEditor configuration reference to check the available options.

Image uploads

This Nova field provides native attachments driver which works similar to Trix File Uploads.

To use this attachments driver, publish and run the migration:

php artisan vendor:publish --tag=migrations --provider=NumaxLab\\NovaCKEditor5Classic\\\FieldServiceProvider 
php artisan migrate

Then, allow users to upload images, just like with Trix field, chaining the withFiles method onto the field's definition. When calling this method, you should pass the name of the filesystem disk that images should be stored on:

use NumaxLab\NovaCKEditor5Classic\CKEditor5Classic;

CKEditor5Classic::make('Content')->withFiles('public');

And also, in your app/Console/Kernel.php file, you should register a daily job to prune any stale attachments from the pending attachments table and storage:

use NumaxLab\NovaCKEditor5Classic\Jobs\PruneStaleAttachments;

/**
* Define the application's command schedule.
*
* @param  \Illuminate\Console\Scheduling\Schedule  $schedule
* @return void
*/
protected function schedule(Schedule $schedule)
{
    $schedule->call(function () {
        (new PruneStaleAttachments)();
    })->daily();
}

Credits

License

The MIT License (MIT). Please see License File for more information.