Расширяет Textarea
- имеет те же функции
Создание
TinyMce - один из самых популярных веб-редакторов. Для его использования в админ-панели MoonShine есть одноименное поле.
Перед использованием этого поля вы должны зарегистрироваться на сайте Tiny.Cloud, получить токен и добавить его в конфигурацию config/moonshine.php.
'tinymce' => ['token' => 'ВАШ_ТОКЕН']'tinymce' => ['token' => 'ВАШ_ТОКЕН']
use MoonShine\Fields\TinyMce;//...public function fields(): array{return [TinyMce::make('Описание')];}//...use MoonShine\Fields\TinyMce;//...public function fields(): array{return [TinyMce::make('Описание')];}//...

Конфигурация
Язык
locale(string $locale)locale(string $locale)
Плагины
plugins(string|array $plugins)plugins(string|array $plugins)
addPlugins(string|array $plugins)addPlugins(string|array $plugins)
removePlugins(string|array $plugins)removePlugins(string|array $plugins)
Меню
menubar(string $menubar)menubar(string $menubar)
Панель инструментов
toolbar(string $toolbar)toolbar(string $toolbar)
addToolbar(string $toolbar)addToolbar(string $toolbar)
Опции
addConfig(string $name, mixed $value)addConfig(string $name, mixed $value)
Комментарии Tiny
commentAuthor(string $commentAuthor)commentAuthor(string $commentAuthor)
Теги
mergeTags(array $mergeTags)mergeTags(array $mergeTags)
use MoonShine\Fields\TinyMce;//...public function fields(): array{return [TinyMce::make('Описание')// Переопределение набора плагинов->plugins('anchor autoresize')// Добавление плагинов к базовому набору->addPlugins('code codesample')// Удаление плагинов из базового набора->removePlugins('autoresize')// Переопределение набора панели инструментов->toolbar('undo redo | blocks fontfamily fontsize')// Добавление панели инструментов к базовому набору->addToolbar('code codesample')// Изменение имени автора для плагина tinycomments->commentAuthor('Данил Шутский')// Теги->mergeTags([['value' => 'tag', 'title' => 'Заголовок']])// Добавление конфигурации->addConfig('codesample_languages', [['text' => 'HTML/XML', 'value' => 'markup']])->addConfig('force_br_newlines', true)// Переопределение текущей локали->locale('ru'),];}//...use MoonShine\Fields\TinyMce;//...public function fields(): array{return [TinyMce::make('Описание')// Переопределение набора плагинов->plugins('anchor autoresize')// Добавление плагинов к базовому набору->addPlugins('code codesample')// Удаление плагинов из базового набора->removePlugins('autoresize')// Переопределение набора панели инструментов->toolbar('undo redo | blocks fontfamily fontsize')// Добавление панели инструментов к базовому набору->addToolbar('code codesample')// Изменение имени автора для плагина tinycomments->commentAuthor('Данил Шутский')// Теги->mergeTags([['value' => 'tag', 'title' => 'Заголовок']])// Добавление конфигурации->addConfig('codesample_languages', [['text' => 'HTML/XML', 'value' => 'markup']])->addConfig('force_br_newlines', true)// Переопределение текущей локали->locale('ru'),];}//...
Файлы переводов находятся в директории public/vendor/moonshine/libs/tinymce/langs.
Дополнительные настройки
Метод addConfig() позволяет выполнить расширенную настройку TinyMce.
addConfig(string $name, bool|int|float|string $value);addConfig(string $name, bool|int|float|string $value);
use MoonShine\Fields\TinyMce;//...public function fields(): array{return [TinyMce::make('Описание')->addConfig('extended_valid_elements', 'script[src|async|defer|type|charset]')];}//...use MoonShine\Fields\TinyMce;//...public function fields(): array{return [TinyMce::make('Описание')->addConfig('extended_valid_elements', 'script[src|async|defer|type|charset]')];}//...
Файловый менеджер
Если вы хотите использовать файловый менеджер в TinyMce, то вам нужно установить пакет Laravel FileManager
Установка
composer require unisharp/laravel-filemanagerphp artisan vendor:publish --tag=lfm_configphp artisan vendor:publish --tag=lfm_publiccomposer require unisharp/laravel-filemanagerphp artisan vendor:publish --tag=lfm_configphp artisan vendor:publish --tag=lfm_public
Обязательно установите флаг 'use_package_routes' в конфигурации lfm в значение false, иначе кэширование маршрутов вызовет ошибку.
return [// ...'use_package_routes' => false,// ...];return [// ...'use_package_routes' => false,// ...];
Файл маршрутов
Создайте файл маршрутов, например routes/moonshine.php, и зарегистрируйте маршруты LaravelFilemanager.
use Illuminate\Support\Facades\Route;use UniSharp\LaravelFilemanager\Lfm;Route::prefix('laravel-filemanager')->group(function () {Lfm::routes();});use Illuminate\Support\Facades\Route;use UniSharp\LaravelFilemanager\Lfm;Route::prefix('laravel-filemanager')->group(function () {Lfm::routes();});
Регистрация файла
Зарегистрируйте созданный файл маршрутов в app/Providers/RouteServiceProvider.php.
Файл маршрутов должен быть в группе middleware moonshine!
// ...public function boot(){// ...$this->routes(function () {// ...Route::middleware('moonshine')->namespace($this->namespace)->group(base_path('routes/moonshine.php'));});}// ...// ...public function boot(){// ...$this->routes(function () {// ...Route::middleware('moonshine')->namespace($this->namespace)->group(base_path('routes/moonshine.php'));});}// ...
Чтобы разрешить доступ только авторизованным в админ-панели пользователям, необходимо добавить middleware MoonShine\Http\Middleware\Authenticate.
use MoonShine\Http\Middleware\Authenticate;// ...public function boot(){// ...$this->routes(function () {// ...Route::middleware(['moonshine', Authenticate::class])->namespace($this->namespace)->group(base_path('routes/moonshine.php'));});}// ...use MoonShine\Http\Middleware\Authenticate;// ...public function boot(){// ...$this->routes(function () {// ...Route::middleware(['moonshine', Authenticate::class])->namespace($this->namespace)->group(base_path('routes/moonshine.php'));});}// ...
Конфигурация
Необходимо добавить префикс в конфигурационный файл config/moonshine.php.
'tinymce' => ['file_manager' => 'laravel-filemanager',]'tinymce' => ['file_manager' => 'laravel-filemanager',]