Расширяет Textarea
TinyMce - один из самых популярных веб-редакторов. Для его использования в админ-панели MoonShine есть одноименное поле.
Перед использованием этого поля вы должны зарегистрироваться на сайте Tiny.Cloud, получить токен и добавить его в конфигурацию config/moonshine.php
.
'tinymce' => [
'token' => 'ВАШ_ТОКЕН'
]
'tinymce' => [
'token' => 'ВАШ_ТОКЕН'
]
'tinymce' => [
'token' => 'ВАШ_ТОКЕН'
]
'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('Описание')
];
}
//...
use MoonShine\Fields\TinyMce;
//...
public function fields(): array
{
return [
TinyMce::make('Описание')
];
}
//...
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)
locale(string $locale)
locale(string $locale)
locale(string $locale)
Плагины
plugins(string|array $plugins)
plugins(string|array $plugins)
plugins(string|array $plugins)
plugins(string|array $plugins)
plugins(string|array $plugins)
addPlugins(string|array $plugins)
addPlugins(string|array $plugins)
addPlugins(string|array $plugins)
addPlugins(string|array $plugins)
addPlugins(string|array $plugins)
removePlugins(string|array $plugins)
removePlugins(string|array $plugins)
removePlugins(string|array $plugins)
removePlugins(string|array $plugins)
removePlugins(string|array $plugins)
Меню
menubar(string $menubar)
menubar(string $menubar)
menubar(string $menubar)
menubar(string $menubar)
menubar(string $menubar)
Панель инструментов
toolbar(string $toolbar)
toolbar(string $toolbar)
toolbar(string $toolbar)
toolbar(string $toolbar)
toolbar(string $toolbar)
addToolbar(string $toolbar)
addToolbar(string $toolbar)
addToolbar(string $toolbar)
addToolbar(string $toolbar)
addToolbar(string $toolbar)
Опции
addConfig(string $name, mixed $value)
addConfig(string $name, mixed $value)
addConfig(string $name, mixed $value)
addConfig(string $name, mixed $value)
addConfig(string $name, mixed $value)
Комментарии Tiny
commentAuthor(string $commentAuthor)
commentAuthor(string $commentAuthor)
commentAuthor(string $commentAuthor)
commentAuthor(string $commentAuthor)
commentAuthor(string $commentAuthor)
Теги
mergeTags(array $mergeTags)
mergeTags(array $mergeTags)
mergeTags(array $mergeTags)
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')
->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'),
];
}
//...
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'),
];
}
//...
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);
addConfig(string $name, bool|int|float|string $value);
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]')
];
}
//...
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]')
];
}
//...
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-filemanager
php artisan vendor:publish --tag=lfm_config
php artisan vendor:publish --tag=lfm_public
composer require unisharp/laravel-filemanager
php artisan vendor:publish --tag=lfm_config
php artisan vendor:publish --tag=lfm_public
composer require unisharp/laravel-filemanager
php artisan vendor:publish --tag=lfm_config
php artisan vendor:publish --tag=lfm_public
composer require unisharp/laravel-filemanager
php artisan vendor:publish --tag=lfm_config
php artisan vendor:publish --tag=lfm_public
composer require unisharp/laravel-filemanager
php artisan vendor:publish --tag=lfm_config
php artisan vendor:publish --tag=lfm_public
Обязательно установите флаг 'use_package_routes' в конфигурации lfm в значение false, иначе кэширование маршрутов вызовет ошибку.
return [
'use_package_routes' => false,
];
return [
// ...
'use_package_routes' => false,
// ...
];
return [
// ...
'use_package_routes' => 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();
});
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();
});
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'));
});
}
// ...
// ...
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'));
});
}
// ...
// ...
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'));
});
}
// ...
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'));
});
}
// ...
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',
]
'tinymce' => [
'file_manager' => 'laravel-filemanager',
]
'tinymce' => [
'file_manager' => 'laravel-filemanager',
]
'tinymce' => [
'file_manager' => 'laravel-filemanager',
]