gusmanson / localtinymce
一个简单的、自托管的TinyMCE,用于Laravel Nova的图片上传。
dev-master
2024-04-19 13:35 UTC
Requires
- php: ^8.0
- laravel/nova: ^4.0
- tinymce/tinymce: >= 5
This package is auto-updated.
Last update: 2024-09-19 17:07:47 UTC
README
一个简单的、自托管的TinyMCE,用于Laravel Nova的图片上传。
我需要一个简单、零配置的WYSIWYG字段用于Laravel Nova。Trix太受限制,其他解决方案又太混乱。这是我找到的解决方案。它基于TinyMCE 5。此包支持图片上传(开箱即用,无需依赖或API密钥)并允许用户直接编辑HTML(因此视频嵌入工作正常)。工具栏可以配置。
安装
composer require gusmanson/localtinymce
发布TinyMCE的JS和CSS文件。
artisan vendor:publish --tag=public --force
使用
use Gusmanson\Localtinymce\Localtinymce;
public function fields(Request $request) { return [ ID::make('ID', 'id')->sortable(), Text::make('Name', 'name'), Localtinymce::make('Information', 'information')->withFiles('public') ]; }
选项
默认情况下,此工具使用合理的工具栏且没有文件上传。您可以使用withFiles()和withToolbar()来配置这些选项。
public function withFiles($disk = null, $dir = null) { // The default storage disk is 'public', the default storage dir is 'uploads'. } public function withToolbar($toolbar) { // The default toolbar is: 'undo redo | formatselect | bold italic backcolor | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | removeformat | link image code' // 'image' will be removed if file upload isn't enabled }
上传
上传应该可以开箱即用!通过在您的字段上使用->withFiles()来启用它。默认情况下,您需要符号链接公共磁盘。实现非常基本。以下是上传控制器中发生的事情:
$name = $request->file('attachment')->store($field->storageDir, $field->storageDisk); $url = Storage::disk( $field->storageDisk )->url( $name ); return response()->json([ 'url' => $url ]);;
TinyMCE
关于TinyMCE的更多信息请在这里。