Restriction ddReadonly

    Віджет для плагіна ManagerManager, дозволяє зробити поля документа та TV доступними тільки для читання

    значення відображаються при редагуванні, але їх неможливо змінити.

    mm_ddReadonly(string $fields, string $roles, string $templates);

    Опис параметрів

    Назва Опис Допустимі значення Значення за замовчуванням Обов'язковий?
    fields Поля документа (або TV), які необхідно зробити доступними лише для читання. {comma separated string} true
    roles Ролі, для яких необхідно застосувати віджет, порожнє значення — всі ролі. {comma separated string} false
    templates Id шаблонів, для яких необхідно застосувати віджет, порожнє значення — всі шаблони. {comma separated string} false

    Пояснення

    Доволі рідко, але іноді бувають випадки, коли ми зберігаємо якусь інформацію про документ в його TV (наприклад, кількість переглядів або завантажень, рейтинг і т.д.). Така інформація оновлюється автоматично (який-небудь сніппет / плагін просто зберігає значення в TV відповідного документу). І ось Петя раптом вирішив відредагувати текст документу: відкрив, почав писати, його відволікли по роботі, потім подзвонили, потім терміново довелося виїхати, дві години їздив, повернувся, продовжив редагувати. Весь цей час документ у нього був відкритий, дані про кількість завантажень вже 100 раз встигли помінятися (було 3, а стало 33), але у Петі до сих пір відображається 3. Петя закінчив свою роботу, натискає «Сохранить» і… кількість завантажень перезаписується на 3! Неприємна ситуація. Що можна зробити? Варіант 1: можна зробити якусь супер-системну групу та виставити її для тих TV, значення яких не повинні редагуватися користувачами. Непоганий варіант, але не надійний (може знайтися хтось, хто поставить собі цю групу і обов'язково щось зіпсує) і не підходить, якщо хочеться бачити ці дані при редагуванні документу. Саме для таких випадків і призначений цей віджет. Робота віджета ділиться на 3 частини: Перед збереженням документа (OnBeforeDocFormSave) виходять і запам'ятовуються актуальні значення необхідних полів (з бази). Після збереження (OnDocFormSave) записуються назад. JS робить поля візуально не редагованими.