Установка пакета TinyMCE с помощью Composer для работы в Laravel
Использование пакета TinyMCE composer с фреймворком Laravel

Использование пакета TinyMCE composer с PHP-фреймворком Laravel

Старт! Честный VDS/VPS, на котором «Лунная База» живет уже 20+ лет

Задумываетесь о том, чтобы поднять свой pet-проект, сайт клиента или настроить окружение для разработки? Уже пора подумать, где арендовать железо.

Лунная База хостится на FirstVDS более 20 лет. Мыслей о том, чтобы перебраться на другой хостинг, не было ни разу (хотя опыт работы с другими вариантами, конечно, есть).

Бывали разные ситуации, но они бывают на любом железе. Главное, что нужно понять: здесь нет маркетинговой шелухи и сказок про «мы всё сделаем за вас». Если вы берете VDS — вам дают полный root, возможность накатить любую ОС и не лезут в ваши конфиги.

Если в саппорт написать с вопросом по вашему коду и получить ответ: «Читайте документацию и разбирайтесь сами» или «Обратитесь к профильному специалисту» — это не повод обижаться. Это повод углубить свои знания в DevOps и сайтостроении! Бегите от тех, кто пообещает: «Мы всё чиним и настраиваем абсолютно бесплатно!». Никто никогда не работает «по доброте душевной» в ущерб себе, а бесплатный сыр в администрировании обычно заканчивается сломанной базой данных.

Что по факту: Гибкое масштабирование ядер и RAM, экономия по сравнению с физическими серверами и адекватная панель ispmanager, если она вам нужна.



Для чего может понадобиться TinyMCE в Laravel

Laravel — это расширяемый php-фреймворк для веб-приложений, построенный на PHP. Это руководство поможет добавить TinyMCE из пакета TinyMCE Composer на страницы или представления в Laravel. Пример проекта Laravel, созданный в этой процедуре, основан на проекте Laravel, описанном в документации Laravel Docs, в разделе "Установка через Composer". В руководстве будет создано два шаблона blade: один для JavaScript, а другой - для редактора, чтобы показать, как TinyMCE должен использоваться в рабочих приложениях.

Требования для работы TinyMCE в Laravel

Эта инструкция предполагает, что выполнены следующие предварительные условия:

Процесс интеграции TinyMCE в Laravel

1. В командной строке создайте новый проект Laravel с именем my-example-app, выполнив следующую команду:

composer create-project laravel/laravel my-example-app

2. Перейдите в корневой каталог приложения Laravel, например такой:

cd my-example-app

3. Установите необходимые компоненты Node.js, включая Laravel Mix:

npm install

4. Установите TinyMCE в проект с помощью Composer:

composer require tinymce/tinymce

5. Добавьте задачу Laravel Mix для копирования TinyMCE в публичные файлы при запуске Mix, например:

Файл: webpack.mix.js

mix.copyDirectory('vendor/tinymce/tinymce', 'public/js/tinymce');

5.1. [Примечания переводчика]

Файл webpack.mix.js помещаем в корень проекта со следующим содержимым:

let mix = require('laravel-mix');
mix.copyDirectory('vendor/tinymce/tinymce', 'public/js/tinymce');

Иначе npx mix матерится. =)

6. Запустите Laravel Mix, чтобы скопировать TinyMCE в каталог public/js/:

npx mix

7. Создайте новый компонент (blade.php) для конфигурации TinyMCE, например так:

php artisan make:component Head/tinymceConfig

В результате будет создан файл конфигурации с шаблоном resources/views/components/head/tinymce-config.blade.php.

8. Откройте только что созданный файл tinymce-config.blade.php в текстовом редакторе и замените его содержимое на:

  • Исходный сценарий TinyMCE.
  • Конфигурация TinyMCE.

Например:
Файл: resources/views/components/head/tinymce-config.blade.php

<script src="/{{ asset('js/tinymce/tinymce.min.js') }}" referrerpolicy="origin"></script>
<script>
  tinymce.init({
    selector: 'textarea#myeditorinstance', // Replace this CSS selector to match the placeholder element for TinyMCE
    plugins: 'code table lists',
    toolbar: 'undo redo | blocks | bold italic | alignleft aligncenter alignright | indent outdent | bullist numlist | code | table'
  });
</script>

9. Создайте второй компонент blade, содержащий HTML-элемент формы для TinyMCE, например:

php artisan make:component Forms/tinymceEditor

В результате будет создан файл resources/views/components/forms/tinymce-editor.blade.php.

10. Откройте только что созданный файл tinymce-editor.blade.php в текстовом редакторе и замените его содержимое на объект, соответствующий CSS-селектору, указанному в параметре selector в конфигурации редактора.

Например:

Файл: resources/views/components/forms/tinymce-editor.blade.php

<form method="post">
  <textarea id="myeditorinstance">Hello, World!</textarea>
</form>

11. Добавьте компоненты blade на страницы или в представления, где требуется TinyMCE. Конфигурационный blade (Head/tinymceConfig в данном примере) может быть добавлен в <head> или в конец <body> на целевой странице или в представление. Место вставки (Forms/tinymceEditor) следует добавить там, где TinyMCE необходим на странице.

Например:

Файл: resources/views/welcome.blade.php

<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
  <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>TinyMCE in Laravel</title>
    <!-- Insert the blade containing the TinyMCE configuration and source script -->
    <x-head.tinymce-config/>
  </head>
  <body>
    <h1>TinyMCE in Laravel</h1>
    <!-- Insert the blade containing the TinyMCE placeholder HTML element -->
    <x-forms.tinymce-editor/>
  </body>
</html>

12. Запустите сервер Laravel для проверки загрузки TinyMCE на странице или представлении, например, выполните следующую команду и откройте страницу http://localhost.

php artisan serve

Поcледующие шаги по работе с TinyMCE в Laravel

Для получения дополнительной информации:

 

Перевод с английского официальной документации TinyMCE:
https://www.tiny.cloud/docs/tinymce/latest/laravel-composer-install/

Самый честный хостинг за 20+ лет существования Лунной Базы

Задумываешься о том, чтобы поднять свой сайт в Интернете? Уже пора подумать о том, какой хостинг выбрать?

Лунная База хостится 20+ лет на firstDVS. При этом, мыслей о том, чтобы перебраться на другой хостинг не было. (Но, при этом есть опыт работы с другими вариантами.)

Бывали с firstDVS разные ситуации, но, они бывают на всех хостингах. Единственное, что тут важно понять, - это то, что никто ничего тебе не будет впаривать... Но, и работать за тебя тоже никто не станет. Если в саппорт ответили: «Читайте по ссылке и разбирайтесь сами...» или вообще «Обратитесь за помощью к специалисту», - это повод углубить свои знания в области сайтостроения, а не бежать к тем, что пообещают: «Мы всё чиним и всё делаем за своих клиентов абсолютно бесплатно!» Никто никогда ничего ни за кого "по доброте душевной" не делал, не делает и не будет делать!

Старт! Горячий старт на просторы интернета
Старт! Горячий старт на просторы интернета
Старт! Меню