0
79
2019-09-27

Редактируем страницы из фронтенда в Grav при помощи ContentTools

Отличная новость друзья. Теперь мы можем редактировать свой контент не входя в редактор на стороне админки. А редактировать сразу, но с начала разберемся как же все это дело настроить.
Понравилась страница? Поставь свою оценку!
PLUGIN_STAR_RATINGS.SCORE_TEXTPLUGIN_STAR_RATINGS.VOTES_TEXT

Обновление от 27го сентября: Ребят не читайте дальше, лучше переходите на плагин Fred . Он куда лучше чем плагины о которых я здесь старался писать. Чуть позже "запилю" пост о Fred'e.

Редактируемые с ContentTools плагин для Grav CMS .

Плагин позволяет авторам редактировать содержимое страницы в веб-интерфейсе с помощью WYSIWYG-редактора ContentTools и сохранять его как Markdown.

Важно: плагин работает с простым контентом Markdown с обычных страниц Grav. Другими словами, он не может работать с контентом, который обрабатывается или вставляется динамически через Twig, шорткоды, через Javascript, с помощью плагина или любым другим способом.

Это может ограничить его использование в зависимости от ваших требований.

Демонстрация

Перед установкой не стесняйтесь попробовать демо .

Кстати, посетите веб-сайт ContentTools для получения советов по использованию редактора ContentTools, например, удерживайте нажатой клавишу Shift в течение примерно 3 секунд, чтобы увидеть, какие области на странице можно редактировать.


Снимок экрана Grav с использованием редактора ContentTools


Загрузить плагин

Ссылка на Editable with ContentTools Plugin в GitHub

Дополнение SimpleMDE

Плагин позволяет пользователям редактировать содержимое страницы в интерфейсе с помощью редактора SimpleMDE.

Ссылка на SimpleMDE в GitHub

Монтаж

Обычно плагин должен быть установлен через 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&cropResize=900,900&classes=figure-img,img-fluid?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 значение falsesystem.yamlпанели администратора или на панели администратора).

Пользователь бэкэнда или администратора должен иметь разрешение admin.superили admin.pagesразрешение на редактирование страницы.

Разработчиками запланировано

Добавить файл загрузки
Добавить надстрочный и подстрочный инструмент
Продумать обработку изображений

Решение проблем из личного опыта

С самого начала плагин не заработал как следует, точнее по внешнему виду он как бы совсем не заработал. Вот что нужно предпринять для его запуска:

  1. В файле *\user\accounts\ВАШ_ЛОГИН.yaml укажите данные параметры

    site: login: true editable: true
  2. В файле *\user\config\system.yaml укажите данные параметры

    session: split: false

    Так же может потребоваться отключение кеша для админа:

            admin:
                super: 'true'
                login: 'true'
                cache: 'false'
  3. Не забываем оборачивать код которы ходим редактировать из фронта в шорт коды например так:

    [editable name="PageWrapp"] # Загловок Вот как то так... [/editable]