Додатково

    ManagerManager: Додатково

    Доповнення плагіну ManagerManager для налаштування зовнішнього вигляду ресурсу в бекенд сайту.

    Модуль ddMMEditor

    Модуль для зручного редагування файлу конфігурації плагіну ManagerManager.

    Можливості:

    • візуальне створення правил для MM;
    • застосування правил для необхідних шаблонів і ролей у два кліка;
    • autocomplete зі всіма іменами полів і TV;
    • об'єднання правил в групи по змісту (групи можна називати довільними іменами);
    • згортання-розгортання груп для зручного перегляду в спільному вигляді;
    • drag'n'drop правил і груп між собою;
    • можливість «ручної» вставки довільного коду в початок і кінець конфігураційного файлу.

    Установка

    Вміст файлу module.php повинен бути скопійований в поле «Код модулів» в меню створення нового модуля. Решта файлів повинні знаходитись в assets/modules/ddmmeditor/... (в архіві вже створена потрібна структура папок). Модуль змінює файл assets/plugins/managermanager/mm_rules.inc.php плагіна ManagerManager.

    Увага! Щоб ManagerManager використовував правила, створення модулів, параметр «Configuration Chunk» в конфігурації плагіну (вкладка «Конфігурація») повинен бути порожнім.

    Сніпет ddGetMultipleField

    Сніпет для виводу даних, розділених через визначені роздільники. Зручно використовувати для виклику значень полів документів, сформованих віджетом mm_ddMultipleFields. Можливості:

    • Отримання необхідного поля документу (і TV) по id. Параметри «docField» і «docId».
    • Вивід необхідної кількості значень за номерами рядків і за значенням. Параметри «startRow», «totalRows» і «filter».
    • Вивід необхідних значень за номерами колонок. Параметр «columns».
    • Сортування рядків за значенням колонок перед виводом ('ASC', 'DESC', 'RAND', 'REVERSE'), в тому числі і множинне сортування. Параметри «sortDir» і «sortBy».
    • Вивід значень через розділювач рядків і колонок. Параметри «rowGlue» і «colGlue».
    • Видалення порожніх значень колонок і рядків перед виводом. Параметри «removeEmptyRows» і «removeEmptyCols».
    • Типографування значень перед виводом (використовується сніпет ddTypograph). Приклад «typography».
    • URL-кодування результату перед виводом. Параметр «urlencode».
    • Вивід результату в JSON. Приклад «outputFormat».
    • Вивід значень за шаблонами (чанкам) рядків і колонок (в шаблоні рядків також доступний плейсхолдер [+rowNumber+] з номером рядку). Параметри «rowTpl» і «colTpl».
    • Вивід результату виконання в чанк «outerTpl» з передачею додаткових даних через параметр «placeholders»

    Увага! З пар параметрів «string»/«docField» необхідно передавати лише один.

    НазваОписДопустимі значенняЗначення за замовчуванням
    string * Вихідна стрічка рядка, яка має значення з розділювачами. {separated string}
    docField Ім'я поля документу / TV, що містить значення.В такому випадку параметр «string» ігнорується, значення виходить з поля документу. {string}
    docId ID документу, значення поля якого потрібно отримати. Якщо id не заданий, береться id поточного документа. {integer}
    rowDelimiter Розділювач між рядками у вихідній стрічці рядку. {string; regexp} '||'
    colDelimiter Розділювач між колонками у вихідній стрічці рядку. {string; regexp} '::'
    startRow Номер рядка, починаючи з якого необхідно повернути (нумерація рядків починається з 0). {integer} 0
    totalRows Кількість рядків, що повертаються. При значенні == 'all' будуть повернені всі наявні рядки. {integer; 'all'} 'all'
    columns Номери колонок через кому, які необхідно повернути (нумерація колонок починається з 0). При значенні == 'all' будуть повернуті всі колонки. {comma separated string; 'all'} 'all'
    filter Фільтр за значенням колонок. Наприклад, при '0::a||0::b||1::1' виводяться тільки рядки, в яких значення колонки 0 рівне 'a' або 'b' і значення колонки 1 рівне '1'. {separated string}
    removeEmptyRows Видаляти порожні рядки? {0; 1} 1
    removeEmptyCols Видаляти порожні колонки? {0; 1} 1
    sortBy Номер колонки (нумеруються з нуля), по якій необхідно сортувати. Для множинного сортування параметри вказуються через кому (наприклад: '0,1'). {comma separated string} 0
    sortDir Направлення сортування рядків. При значенні == 'REVERSE' рядку будуть повернуті в зворотному порядку. {'ASC'; 'DESC'; 'RAND'; 'REVERSE'; ''}
    typography Номери колонок через кому, значення яких потрібно типографувати (рядки нумеруються з 0). Якщо не задано, нічого не типографуються. {comma separated string}
    outputFormat Формат, в якому повертають результат. {'html'; 'JSON'; 'array'; 'htmlarray'} 'html'
    rowGlue Розділювач (об'єднувач) між рядками при виведенні. Може використовуватись спільно з шаблоном «rowTpl». {string}
    colGlue Розділювач (об'єднувач) між колонками при виведенні. Може використовуватись спільно з шаблоном «colTpl» (але не «rowTpl», зі зрозумілих причин). {string}
    rowTpl Шаблон для виводу рядків (приклад «outputFormat» повинен бути == 'html'). Допустимі плейсхолдери: [+rowNumber+] (номер рядку, починаючи з 1), [+total+] (загальна кількість рядків), [+resultTotal+] (кількість рядків, що повертаються), [+col0+], [+col1+], … (значення відповідних колонок). {string: chunkName}
    colTpl Список шаблонів для виводу колонок, через кому (параметр «outputFormat» повинен бути == 'html'). Якщо шаблонів менше, ніж колонок, для всіх відсутніх виставляється останній вказаний шаблон. Значення 'null' – без шаблону. Доступний плейсхолдер: [+val+]. {comma separated string: chunkName; 'null'}
    outerTpl Шаблон зовнішньої обгортки (при «outputFormat» != 'array'). Доступні плейсхолдери: [+result+], [+total+] (загальна кількість рядків), [+resultTotal+] (кількість рядків, що повертаються), [+rowY.colX+] (де «Y» – номер рядку, «X» – номер колонки). {string: chunkName}
    placeholders Додаткові дані, які необхідно передати в шаблон «outerTpl». Формат: рядок, розділений '::' між парою ключ-значення і '||' між парами. {separated string}
    urlencode Потрібно URL-кодувати результативний рядок (при «outputFormat» != 'array')? Рядок кодується згідно з RFC 3986. {0; 1} 0
    totalRowsToPlaceholder Ім'я зовнішнього плейсхолдера, в який потрібно вивести загальну кількість. Якщо параметр не заданий – не виводиться. {string}
    resultToPlaceholder Ім'я зовнішнього плейсхолдера, в який потрібно зберігати результати робіт сніпета замість звичайного виводу. Якщо параметр не заданий – сніпет просто повертає результат. {string}

    Приклади

    Вивід зображень с описом

    Вихідна стрічка рядку (шлях знаходиться в TV документа «images»):

    /assets/images/some_img1.jpg::Зображення 1||/assets/images/some_img2.jpg::Зображення 2

    Виклик сніпета в шаблоні документа:

    [[ddGetMultipleField?
    &string=`[*images*]`
    &rowTpl=`imgRow`
    ]]

    Код чанка «imgRow»:

    [+col1+]:
    <img src="[+col0+]" alt="[+col1+]" />

    Отримання і вивід даних з поля (TV) «prices» документа з id = 25 в вигляді таблиці, якщо щось є, якщо нічого немає

    Вихідні значення поля:

    Яблука смачні::100::кг||Цвяхи звичайні::5 000::центнер||Коти::865::шт

    Виклик сніпета (де зручно):

    [[ddGetMultipleField?
    &docField=`prices`
    &docId=`25`
    &rowTpl=`pricesRow`
    &outerTpl=`pricesWrap`
    ]]

    Код чанка «pricesRow»:

    <tr>
        <td>[+rowNumber+]</td>
        <td>[+col0+]</td>
        <td>[+col1+] руб./[+val2+]</td>
    </tr>

    Код чанка «pricesWrap»:

    <h1>Таблиця цін </h1>
    <table>
        [+result+]
    </table>

    Вивід тегів документа через кому з використовуванням регулярного вираження в «rowDelimiter»

    Шлях тегів документу у нас зберігаються в TV «tags» і до цього TV у нас заданий віджет mm_widget_tags. Користувач заповняє теги через кому, при цьому, може заповнюватися як з пробілами по краях, так і без них.

    Значення TV «tags»:

    Коти, Кішки, Собаки, Ведмеді, Слони

    Виклик сніпета в шаблоні документа:

    [[ddGetMultipleField?
    &string=`[*tags*]`
    &rowDelimiter=`/\s*,\s*/`
    &rowGlue=`, `
    &rowTpl=`tagsRow`
    ]]

    Код чанка «tagsRow»:

    <a href="[~[*parent*]~]?tags=[+col0+]">[+col0+]</a>

    Результат:

    <a href="[~[*parent*]~]?tags=Коти">Коти</a>,
    <a href="[~[*parent*]~]?tags=Кішки">Кішки</a>,
    <a href="[~[*parent*]~]?tags=Собаки">Собаки</a>,
    <a href="[~[*parent*]~]?tags=Ведмеді">Ведмеді</a>,
    <a href="[~[*parent*]~]?tags=Слони">Слони</a>

    Сніпет ddTypograph

    Сніпет типографується текст. Не використовує сторонніх сервісів, не відправляє ніяких запитів, все здійснюється на вашому сервері.

    НазваОписДопустимі значенняЗначення за замовчуванням
    text * Текст, який потрібно типографувати. {string}
    optAlign Оптичні вирівнювання (висяча пунктуація). {0; 1} 0
    text_paragraphs Простановка параграфів і переносів рядків. {0; 1} 0
    text_autoLinks Виділення силки з тексту (в тому числі email). {0; 1} 0
    etc_unicodeConvert Перетворювати html-суті в юнікод (– замість &mdash; і т.д.). {0; 1} 1
    noTags Не додавати теги. Бувають ситуації, коли використовування HTML-тегів в тексті недопустимо (наприклад, коли текст виводиться в значення атрибуту тега), для таких випадків і призначений цей параметр. {0; 1} 0

    Приклади

    Типографування анотації перед виводом

    [[ddTypograph? &text=`[*introtext*]`]]

    Типографування анотації з автоматичним розставленням абзаців, силок і адрес email

    [[ddTypograph? &text=`[*introtext*]` &text_paragraphs=`1` &text_autoLinks=`1`]]

    Типографування анотації з автоматичним оптичним вирівнюванням (висячі лапки і пр.)

    [[ddTypograph? &text=`[*introtext*]` &optAlign=`1`]]

    Сніпет ddYMap

    Сніпет для виводу на сторінку Яндекс. Карт у звичайному вигляді.

    Зручно використовувати спільно з віджетом mm_ddYMap.

    Увага! На сторінці вже повинен бути підключений jQuery.

    З пари параметрів «geoPos» / «docField» необхідно передавати лише один.

    Сніпет можна викликати в будь-якому місці сторінки, місце його виклику не має значення.

    НазваОписДопустимі значенняЗначення за замовчуванням
    geoPos * Координати на карті (широти і довготи, перечислені через кому). {comma separated string}
    docField Ім'я поля документа, що має координати, значення якого необхідно отримати. {string}
    docId ID документа, значення поля якого потрібно отримати. {integer} Поточний документ
    mapElement Селектор контейнера, де буде знаходитись карта. {string} '#map'
    defaultType Тип карти за замовчуванням: 'map' – схема, 'satellite' – супутник, 'hybrid' – гібрид, 'publicMap' – народна карта, 'publicMapHybrid' – народний гібрид. {'map'; 'satellite'; 'hybrid'; 'publicMap'; 'publicMapHybrid'} 'map'
    defaultZoom Масштаб карти за замовчуванням. {integer} 15
    icon Зображення іконки для мітки на карті. {string} без іконки (використовується стандартна)
    iconOffset Зміщення іконки в пікселях відносно базового положення, задається в вигляді пар чисел, розділених комою (x, y). Базові положення: іконка розташовується горизонтально по центру точки (geoPos), вертикально – над точкою. {comma separated string}
    scrollZoom Чи розширено зміни масштабу карти колесом миші? {0; 1} 0
    mapCenterOffset Зміщення центру карти відносно центру контейнера в пікселях. {comma separated string}

    Приклади

    [[ddYMap? &geoPos=`55.177446326764496,61.29041790962219`]]