emilianotisato/nova-tinymce

此Nova包允许您在文本区域中使用TinyMCE编辑器。您可以自定义编辑器选项,并且...您可以直接上传图片到您的服务器,并在不离开文本编辑器的情况下将其放置在文本中!

安装量: 610,311

依赖关系: 4

建议者: 0

安全: 0

星标: 116

关注者: 6

分支: 38

开放问题: 16

语言:JavaScript

2.0.1 2023-06-29 15:23 UTC

This package is auto-updated.

Last update: 2024-09-06 18:13:04 UTC


README

此Nova包允许您使用 TinyMCE编辑器 对文本区域进行编辑。您可以自定义编辑器选项,并且...您可以直接 上传图片到您的服务器 并将其放置在内容中,而无需离开文本编辑器!! Editor

安装

(向后兼容)

composer require emilianotisato/nova-tinymce

运行以下命令,以发布TinyMCE JavaScript和CSS资产。

php artisan vendor:publish --provider="Emilianotisato\NovaTinyMCE\FieldServiceProvider"

用法

在您的Nova资源中添加use声明并使用NovaTinyMCE字段

use Emilianotisato\NovaTinyMCE\NovaTinyMCE;

// ...

    /**
     * Get the fields displayed by the resource.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return array
     */
    public function fields(Request $request)
    {
        return [
            ID::make()->sortable(),

            NovaTinyMCE::make('body'),
        ];
    }

默认情况下,编辑器附带一些基本选项和图像管理,没有文件管理器(仅作为链接插入)。

您可以使用自定义选项,例如

NovaTinyMCE::make('body')->options([
                'plugins' => [
                    'lists','preview','anchor','pagebreak','image','wordcount','fullscreen','directionality'
                ],
                'toolbar' => 'undo redo | styles | bold italic forecolor backcolor | alignleft aligncenter alignright alignjustify | image | bullist numlist outdent indent | link'
            ]),

使用LFM上传图片

现在,如果您需要从文本编辑器上传图片,我们需要安装 UniSharp Laravel Filemanager,并将 use_lfm => true 选项传递给您的选项数组

NovaTinyMCE::make('body')->options([
                'plugins' => [
                    'lists','preview','anchor','pagebreak','image','wordcount','fullscreen','directionality'
                ],
                'toolbar' => 'undo redo | styles | bold italic forecolor backcolor | alignleft aligncenter alignright alignjustify | image | bullist numlist outdent indent | link',
                'use_lfm' => true
            ]),

仅当您使用laravel-filemanager v1时

如果您使用LFM v1,则最后一个步骤是运行此命令以修复一些文件管理器文件

php artisan nova-tinymce:support-lfm

最后,您需要更新 lfm_url 键以匹配旧URL版本,如下所示 lfm_url' => 'laravel-filemanager

重要:如果您在laravel 6中使用laravel-filemanager v1,则需要导入辅助库,因为旧版文件管理器需要它们: composer require laravel/helpers

可选配置

Laravel文件管理器URL

可选,如果您在包配置文件(config/lmf.php)中更改了laravel-filemanager URL,您需要将此信息传递给此nova字段,使用选项数组中的 lfm_url 键。

// ...
    'use_lfm' => true,
    'lfm_url' => 'my-custom-filemanager-url'
// ...

覆盖配置文件

如果您有一个默认的 options 数组,您希望在每次实例化 NovaTinyMCE 字段时加载,您可以可选地发布配置文件并覆盖 default_options 数组

php artisan vendor:publish --provider="Emilianotisato\NovaTinyMCE\FieldServiceProvider" --tag="config"

这是已发布配置文件的内容

<?php

return [

    /*
    |--------------------------------------------------------------------------
    | Default Options
    |--------------------------------------------------------------------------
    |
    | Here you can define the options that are passed to all NovaTinyMCE
    | fields by default.
    |
    */

    'default_options' => [
        'content_css' => '/vendor/tinymce/skins/ui/oxide/content.min.css',
        'skin_url' => '/vendor/tinymce/skins/ui/oxide',
        'path_absolute' => '/',
        'plugins' => [
            'lists','preview','anchor','pagebreak','image','wordcount','fullscreen','directionality'
        ],
        'toolbar' => 'undo redo | styles | bold italic forecolor backcolor | alignleft aligncenter alignright alignjustify | image | bullist numlist outdent indent | link',
        'relative_urls' => false,
        'use_lfm' => false,
        'lfm_url' => 'filemanager'
    ],
];

插件自定义

您可以将任何配置选项传递给javascript SDK,并将其放入 options() 方法中的数组。

例如,您可能希望增加文本区域的高度

            NovaTinyMCE::make('body')->options([
                'height' => '980'
                ]),

您可以在文档中查看完整的参数列表:https://www.tiny.cloud/docs/configure/

在属性属性上使用JSON语法

如果您在属性名称上使用JSON语法,TinyMCE将无法初始化,因为默认的id将是一个无效的HTML id属性。为了解决这个问题,您可以定义一个自定义id。例如

    NovaTinyMCE::make('Value', 'text->en')->id('custom-id');