Обновление от 27го сентября: Ребят не читайте дальше, лучше переходите на плагин Fred . Он куда лучше чем плагины о которых я здесь старался писать. Чуть позже “запилю” пост о Fred‘e.
Редактируемые с ContentTools плагин для Grav CMS .
Плагин позволяет авторам редактировать содержимое страницы в веб-интерфейсе с помощью WYSIWYG-редактора ContentTools и сохранять его как Markdown.
Важно: плагин работает с простым контентом Markdown с обычных страниц Grav. Другими словами, он не может работать с контентом, который обрабатывается или вставляется динамически через Twig, шорткоды, через Javascript, с помощью плагина или любым другим способом.
Это может ограничить его использование в зависимости от ваших требований.
Демонстрация
Перед установкой не стесняйтесь попробовать демо .
Кстати, посетите веб-сайт ContentTools для получения советов по использованию редактора ContentTools, например, удерживайте нажатой клавишу Shift в течение примерно 3 секунд, чтобы увидеть, какие области на странице можно редактировать.
Загрузить плагин
Ссылка на Editable with ContentTools Plugin в GitHub
Дополнение SimpleMDE
Плагин позволяет пользователям редактировать содержимое страницы в интерфейсе с помощью редактора SimpleMDE.
Монтаж
Обычно плагин должен быть установлен через GPM (Grav Package Manager):
$ bin/gpm install editable-contenttools
Или вы можете установить его вручную, загрузив плагин в виде zip-файла. Скопируйте zip-файл в свой /user/plugins
каталог, разархивируйте его и переименуйте папку в editable-contenttools
.
Перед настройкой этого плагина вы должны скопировать user/plugins/editable-contenttool/editable-contenttools.yaml
в user/config/plugins/editable-contenttools.yaml
.
Внесите изменения в конфигурацию этой копии, чтобы ваши изменения были сохранены при установке новой версии плагина.
В качестве альтернативы плагин может быть установлен через плагин Admin. При использовании плагина администратора нет необходимости копировать файлы конфигурации вручную.
Конфигурация
Вот конфигурация по умолчанию и объяснение доступных опций:
enabled: true
git-sync: false
git-sync-mode: foreground
Установка enabled
для true
включения или активации плагина.
Когда git-sync
находится в true
и плагин Git Sync установлен (и включен), каждое действие сохранения запускает синхронизацию Git Sync.
Возможно ограниченное использование
Этот плагин работает только на чистом Markdown. Это ограничивает вариант использования, но является следствием преобразования Markdown в HTML и обратно.
Просто, чтобы оправдать ожидания, обратите внимание, что этот плагин не будет работать на странице или в контенте, который:
- обрабатывается шаблоном Twig, например, модульным
- внедряется плагинами, например плагин Page Inject
- изменен в браузере через Javascript
и повредит специальные теги Grav Markdown, такие, как:
![Sample Image](sample-image/jpg&lightbox=600?400&resize=200?200)
Смягчение проблем
Есть несколько простых правил для безопасности:
- Храните изображения и другие шорткоды вне ваших редактируемых регионов
- Создавайте небольшие редактируемые регионы; не важно сколько
- Экспериментируйте и тестируйте, чтобы убедиться, что он работает для вас, и вы не потеряете ценный контент
Шорткод [editable]
Содержание страницы, которое может быть отредактировано во внешнем интерфейсе, должно быть отмечено с помощью шорт кода [editable]
.
Например:
[editable]
# Chapter 1
Once upon a time ...
[/editable]
Страница может содержать любое количество таких редактируемых областей.
Параметр имени шорт кода (необязательно)
Чтобы редактор ContentTools работал, каждый редактируемый регион на странице должен быть однозначно идентифицирован параметром name. При желании вы можете дать каждому шорт коду имя, которое должно быть уникальным на странице.
Параметр name является необязательным. Если присутствует не пустой или пустой параметр имени шорт кода, плагин назначает такие имена, как «region-x», где x – это последовательный возрастающий номер.
Например:
[editable name="region-0"]
Once upon a time ...
[/editable]
Чтобы иметь возможность сохранять измененное содержимое обратно в нужные области, имена должны присутствовать в содержимом страницы и поэтому автоматически сохраняются на странице.
Пользовательские разрешения
Фронтенд пользователей
Чтобы пользователи могли редактировать контент в веб-интерфейсе, они должны иметь возможность войти в систему.
Доступ к веб интерфейсу требует отдельного входа в систему, как описано в плагине Grav Login или в плагине Private Grav.
Для редактирования страницы пользовательский интерфейс должен иметь разрешение site.editable
. Добавьте необходимую авторизацию для каждого пользователя в файле учетной записи пользователя:
access:
site:
login: 'true'
editable: 'true'
Бэкэнд-пользователи
По умолчанию Grav разделяет пользователей бэкэнда (Admin) и веб-интерфейса на отдельные сессии.
Чтобы разрешить внутренним пользователям редактировать страницы в веб-интерфейсе, необходимо session.split
установить для параметра Grav значение false
(в system.yaml
панели администратора или на панели администратора).
Пользователь бэкэнда или администратора должен иметь разрешение admin.super
или admin.pages
разрешение на редактирование страницы.
Разработчиками запланировано
Добавить файл загрузки
Добавить надстрочный и подстрочный инструмент
Продумать обработку изображений
Решение проблем из личного опыта
С самого начала плагин не заработал как следует, точнее по внешнему виду он как бы совсем не заработал. Вот что нужно предпринять для его запуска:
- В файле
*useraccountsВАШ_ЛОГИН.yaml
укажите данные параметрыsite: login: true editable: true
- В файле
*userconfigsystem.yaml
укажите данные параметрыsession: split: false
Так же может потребоваться отключение кеша для админа:
admin: super: 'true' login: 'true' cache: 'false'
- Не забываем оборачивать код которы ходим редактировать из фронта в шорт коды например так:
[editable name="PageWrapp"] # Загловок Вот как то так... [/editable]