Файловый менеджер + текстовый редактор для Laravel

Всем, привет! Недавно я создал сайт на Laravel (потом переделал его в блог), но столкнулся с проблемой, которая была связана с публикацией статей.

Из-за этого, я даже хотел переделать его под CMS-систему WordPress, но мои знания DOM, Ajax и PHP позволили избежать мне все эти трудности. И сегодня, я хочу поделиться с вами тем, как именно мне это удалось сделать.

Проблема

Я привык к WordPress, поэтому даже CMS-система на Node.js - Ghost казалась мне не такой удобной, как WP. Слишком много надо было писать своими руками, но любовь к высокой производительности была куда выше, чем любовь к тормозным сайтам на WordPress.

Поэтому в первую очередь, я установил пакет laravel-page-speed и
laravel-responsecache. Но процесс публикации статей был очень долгим, в силу того, что изначально я сделал все неправильно.

Тогда я снова создал сайт на WP для того, чтобы слизать оттуда некоторые фишки, которые пригодились бы мне в работе.

Задача

Я увидел, что когда пишешь статью на WordPress - текстовое поле textarea растягивается в зависимости от текста. Еще, когда скорлишь статью - редактор сайта прилипает к вверху и позволяет вставить любой файл в нужное место.

​Текстовый редактор сайта на WordPress DarkStack

По моему - это очень круто, поэтому точно такой же функционал я решил реализовать на своем сайте. Не точь в точь, но хотя бы более или менее таким же удобным, как на WordPress.

Решение

Стек моего сайта - Laravel 5.8 (это моя любимая версия данного PHP-фреймворка) + UIkit 3 и jQuery + Ajax.

Шаг 1. Установка текстового редактора

В качестве текстового редактора я выбрал также, как и на WordPress - TinyMCE. Скачал с официального сайта и установил.

​Текстовый редактор TimyMCE DarkStack

Шаг 2. Растягивание поля textarea

Для того, чтобы растянуть поле textarea в зависимости от текста, я воспользовался JS-плагином - autoResize();. Это простой плагин, который очень легко интегрировать на сайт даже обывателю в WEB.

Растягивание поля textarea по высоте DarkStack

Он позволяет задать как минимальную высоту для textarea, так и максимальную. По этой ссылке вы можете посмотреть примеры его работы, скачать, а также почитать инструкцию по интеграции.

Шаг 3. Файловый менеджер для TinyMCE

Динамическое сохранение постов у меня и до этого было настроено, но картинки в текстовый редактор я не мог вставлять до тех пор, пока не установил RESPONSIVE filemanager и FancyBox.

Файловый менеджер RESPONSIVE filemanager DarkStack

Таким образом, в текстовый редактор TinyMCE можно загрузить любые файлы, с контролируемыми расширениями.

Заключение

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

И еще, забыл упомянуть, - я прописал id'шнику редактора соответствующий стиль и атрибут от UIkit за счет DOM, поэтому при скорле страницы плагины редактора прилипают к меню.

Прижатые плагины TinyMCE к меню DarkStack

В моем случае - это выглядит примерно так:

<div class="uk-card uk-card-default uk-card-body" style="z-index: 980;" uk-sticky="offset: 100; bottom: #top"><!-- Code... --></div>
0
2 комментария
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Dark Stack
Автор

Это недавно произошло, после какого-то обновления Chromium: и в Yandex Browser, и в Chrome вся верстка полетела. Ну, а с картинками беда видимо из-за CDN. Однако на локальном сервере, я уже все поправил, обновил статьи, написал новые и в скором времени загружу его на хостинг.

Ответить
Развернуть ветку
-1 комментариев
Раскрывать всегда