Полноценные комментарии D7 под Битрикс
 

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

Управление формулами подписей

Не редко при настройке обсуждения ставится задача особенных подписей, зависящих от динамически изменяемых данных. Для того, чтобы это реализовать штатными средствами модуля, был разработан механизм «Формулы подписей». В формулах могут использоваться четыре вида данных: текст, поля комментария, стандартные поля пользователя, пользовательские поля пользователя.

Область применения данного механизма довольно обширна. Вот несколько примеров, где данный механизм оказывается очень полезным:
Пример 1. Необходимо к подписи выводить дополнительные данные: "Имя Фамилия (Город)".
Пример 2. Необходимо выводить: «Подпись комментатора (Уровень по рейтингу)»
Пример 3. Необходимо выводить: «Логин [на сайте / оффлайн] — электронный адрес».

Управление формулами подписей производится на специальной сервисной странице: Административный раздел / Сервис / Полноценные комментарии / Формулы подписей.

Полноценные комментарии под Битрикс. Документация. Формулы подписей

Элементы управления на странице:

  • Псевдоссылка на названии формулы. Ведёт на форму редактирования формулы. После названия уже внесённой в систему формулы отображён индивидуальный код в виде #CODE. Данный код уникальный и служит для указания в параметрах компонента. К изменению доступны все поля формулы, кроме кода.
  • Псевдо-ссылка «удалить» — удаляет указанную формулу.
  • Кнопка «Добавить формулу» — открывает форму для создания новой формулы.
  • Блок для тестирования формул — состоит из текстового поля и кнопки «Тестировать». Пока не создано ни одной формулы, блок не отображается. В текстовом поле тестового блока следует указать код комментария. В этом случае после нажатия на кнопку "Тестировать" на странице будут отображены сгенерённые по текущим формулам подписи, основанные на реальных данных. Код комментария можно увидеть в публичной части, по ссылке на комментарий, например:

    Полноценные комментарии под Битрикс. Документация. Формулы подписей

Форма добавления/редактирования формулы

Полноценные комментарии под Битрикс. Документация. Формулы подписей

Элементы управления в форме:

  • Псевдоссылка «[×] удалить» для удаления формулы.
  • Поле с названием формулы — указывается заголовок, который помогает администратору сориентироваться, о какой из формул идёт речь и в чём её специфика.
  • Блок составления формулы: составные части, связующие элементы управления для объединения (и разъединения) частей в группы, кнопка «+» для добавления одного из четырёх типов составных частей.
  • Кнопка «Сохранить» — для сохранения изменений.
  • Кнопка «Отменить редактирование» — для отмены внесённых изменений и закрытия формы.

Группировка частей формулы

Группировка определённых частей формулы необходима для того, чтобы в сложно-составных случаях результат — сгенерённая по формуле подпись — выглядела адекватно. Имеется в виду следующее: вернёмся к нашему Примеру 1 — «Имя Фамилия (Город)». Обратим внимание на финальную часть формулы. Она состоит из трёх частей: открывающаяся скобка + поле пользователя «Город» + закрывающаяся скобка. Для тех пользователей, у которых поле «Город» не установлено, результат будет выглядеть так: «Пётр Петров ()». Для того, чтобы пустых скобок не было, нам нужно, чтобы все три части зависели друг от друга. Для этого их нужно связать — объединить в одну группу. В этом случае, если одна из частей группы содержит пустое значение (для пользователя Пётр Петров — не указан город проживания), вся группа будет исключена из подписи.

Вот как данная связка будет выглядеть в форме редактирования формулы:

Полноценные комментарии под Битрикс. Документация. Формулы подписей

Отображение особых подписей на странице

После того, как в системе создана хотя бы одна формула, её можно указать в параметрах компонента.

После этого механизм построения дерева обсуждения переключится на составные подписи, собранные по указанной формуле. Если формула не найдена (например, код формулы указан в компоненте, но она после этого была удалена в админке) — будет применён обычный механизм подписи.

Особенности поля «Подпись комментатора»

При построении формулы следует учитывать тот факт, что «Подпись комментатора» — текст, который отображается в шапке каждого комментария — вычисляется по следующим условиям:

  • исходными данными подписи служит текст, который указывается комментатором во время публикации своего комментария;
  • подписи могут не собираться напрямую (например, скрыто поле с подписью вообще или скрыто для авторизованных пользователей), но при этом осуществляется привязка к пользователю-комментатору, если комментирует авторизованный пользователь. В этом случае подпись формируется из полей пользователя Имя + (если указано) Фамилия. Если в данных пользователя не указано ни имени ни фамилии, в качестве подписи берётся логин пользователя. То есть, если возвращаться к Примеру 1, администратору нужно учитывать специфику поля комментария «Подпись комментатора» с тем, чтобы в некоторых ситуациях отдать приоритет ему, вместо составной подписи из стандартных полей пользователя Имя+Фамилия. Особенно, если в обсуждении могут принимать участие как авторизованные пользователи, так и не зарегистрированные.

Детальный разбор примеров

Рассмотрим, каким образом можно использовать механизм составления подписей по формулам, применительно к описанным трём примерам.

Пример 1. Необходимо подписях к комментариям выводить дополнительные данные в виде: «Имя Фамилия (Город)». В этом случае формула может состоять из таких частей:

Полноценные комментарии под Битрикс. Документация. Формулы подписей

либо

Полноценные комментарии под Битрикс. Документация. Формулы подписей


Пример 2. Необходимо выводить подпись в виде: «Подпись комментатора (Уровень по рейтингу)»

Подготовительные работы, за рамками модуля «Полноценные комментарии»: для пользователей необходимо завести текстовое пользовательское свойство-маркер (например: UF_STATUS), которым каждому пользователю устанавливается определённый статус (звание, положение) на основе рейтинга.

В этом случае наша формула будет выглядеть например так:

Полноценные комментарии под Битрикс. Документация. Формулы подписей


Пример 3. Необходимо выводить: «Логин [на сайте / оффлайн] — электронный адрес».

Подготовительные работы, за рамками модуля «Полноценные комментарии»: для пользователей необходимо завести текстовое пользовательское свойство-маркер (например: UF_IS_ONLINE), которым устанавливается определённый статус (звание, положение) на основе рейтинга.

В этом случае наша формула будет выглядеть примерно так:

Полноценные комментарии под Битрикс. Документация. Формулы подписей