gusmanson/localtinymce

一个简单的、自托管的TinyMCE,用于Laravel Nova的图片上传。

dev-master 2024-04-19 13:35 UTC

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的更多信息请在这里