mm_ddReadonly

Plugin Скачать 2 скачивания

Описание

Виджет для плагина ManagerManager, позволяющий сделать поля документа и TV доступными только для чтения (значения отображаются при редактировании, но их невозможно изменить).

Довольно редко, но иногда бывают случаи, когда мы храним какую-то информацию о документе в его TV (например, количество просмотров или скачиваний, рейтинг и т. д.). Такая информация обновляется автоматически (какой-нибудь сниппет/плагин просто сохраняет значение в TV соответствующего документа). И вот Петя вдруг решил отредактировать текст документа: открыл, начал писать, его отвлекли по работе, потом позвонили, потом срочно пришлось уехать, два часа ездил, вернулся, продолжил редактировать. Всё это время документ у него был открыт, данные о количестве скачиваний уже 100 раз успели поменяться (было 3, а стало 33), но у Пети до сих пор отображается 3. Петя закончил свою работу, нажимает «Сохранить» и… количество скачиваний перезаписывается на 3! Неприятная ситуация. Что можно сделать? Вариант 1: можно сделать какую-нибудь супер-системную группу и выставить её для тех TV, значения которых не должны редактироваться пользователями. Неплохой вариант, но не надёжный (может найтись кто-то, кто поставит себе эту группу и обязательно что-то испортит) и не подходит, если хочется видеть эти данные при редактировании документа. Именно для таких случаев и предназначен этот виджет.

Работа виджета делится на 3 части:

  1. Перед сохранением документа (OnBeforeDocFormSave) получаются и запоминаются актуальные значения необходимых полей (из базы).
  2. После сохранения (OnDocFormSave) записываются обратно.
  3. JS делает поля визуально не редактируемыми.

Скриншоты

Список изменений

  • Рефакторинг и незначительные изменения.

Документация

Для установки распакуйте архив в /assets/plungins/managermanager/widgets/.

Смотрите также документацию ManagerManager и модуль ddMMEditor.

Описание параметров

Название Описание Допустимые значения Значение по умолчанию
fields * Поля документа (или TV), которые необходимо сделать доступными только для чтения. {comma separated string}
roles Роли, для которых необходимо применить виждет, пустое значение — все роли. {comma separated string}
templates Id шаблонов, для которых необходимо применить виджет, пустое значение — все шаблоны. {comma separated string}