значення відображаються при редагуванні, але їх неможливо змінити.
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 робить поля візуально не редагованими.