# Make
TinyMce - один из самых популярных веб-редакторов, для использования его в админ-панели MoonShine существует одноименное поле.
Перед тем как воспользоваться данным полем, необходимо зарегистрироваться на сайте на
Tiny.Cloud
,
получить токен и добавить его в конфиг config/moonshine.php
.
'tinymce' => [ 'token' => 'YOUR_TOKEN' ]
use MoonShine\Fields\TinyMce; //... public function fields(): array{ return [ TinyMce::make('Description') ];} //...
# Конфигурация
locale(string $locale)
plugins(string|array $plugins)
addPlugins(string|array $plugins)
removePlugins(string|array $plugins)
menubar(string $menubar)
toolbar(string $toolbar)
addToolbar(string $toolbar)
addConfig(string $name, mixed $value)
commentAuthor(string $commentAuthor)
mergeTags(array $mergeTags)
use MoonShine\Fields\TinyMce; //... public function fields(): array{ return [ TinyMce::make('Description') // Переопределить набор плагинов ->plugins('anchor autoresize') // Добавление плагинов в базовый набор ->addPlugins('code codesample') // Удаление плагинов из базовый набор ->removePlugins('autoresize') // Переопределить набор toolbar ->toolbar('undo redo | blocks fontfamily fontsize') // Добавление toolbar в базовый набор ->addToolbar('code codesample') // Для изменения имени автора для плагина tinycomments ->commentAuthor('Danil Shutsky') // Теги ->mergeTags([ ['value' => 'tag', 'title' => 'Title'] ]) // Добавление конфигурации ->addConfig('codesample_languages', [['text' => 'HTML/XML', 'value' => 'markup']]) ->addConfig('force_br_newlines', true) // Переопределение текущей локали ->locale('en'), ];} //...
Файлы переводов размещаются в директории public/vendor/moonshine/libs/tinymce/langs
.
# Дополнительные настройки
Метод addConfig()
позволяет расширенно сконфигурировать TinyMce.
addConfig(string $name, bool|int|float|string $value);
use MoonShine\Fields\TinyMce; //... public function fields(): array{ return [ TinyMce::make('Description') ->addConfig('extended_valid_elements', 'script[src|async|defer|type|charset]') ];} //...
# File manager
Если вы хотите использовать файловый менеджер в TinyMce, то вам необходимо установить пакет Laravel FileManager .
composer require unisharp/laravel-filemanager php artisan vendor:publish --tag=lfm_configphp artisan vendor:publish --tag=lfm_public
Обязательно установить флаг 'use_package_routes' в конфиге lfm в 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();});
Зарегистрируйте созданный файл маршрутов в app/Providers/RouteServiceProvider.php
.
Файл маршрутов обязательно должен быть в группе middleware moonshine
!
// ... 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')); });} // ...
В файле конфигурации config/moonshine.php
необходимо добавить префикс.
'tinymce' => [ 'file_manager' => 'laravel-filemanager', ]