CKEditor5 Classic editor field for Laravel Nova. Use the last version of the popular WYSIWYG editor as a Laravel Nova field.
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
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'),
// ...
];
}
}
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.
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();
}
The MIT License (MIT). Please see License File for more information.