Tasks 26.325.0, tasksmobile 26.800.0, crmmobile 26.400.0, calendarmobile 26.550.0: форматирование в чек-листах и запись визита в приложении
В коробочный Битрикс24 одним шагом встали tasks 26.325.0, tasksmobile 26.800.0, crmmobile 26.400.0 и calendarmobile 26.550.0. Пункты чек-листа теперь форматируются в новой карточке задачи и в приложении, а разметка хранится BB-кодами прямо в названии пункта. Если ваша интеграция показывает пункты чек-листа, её стоит проверить. В мобильной CRM можно скачать запись визита, а поля rich_text видны в карточке. crm, mobile и signmobile из того же обновления разбираем отдельно.
Новое
Форматируйте пункты чек-листа (tasks 26.325.0)
У пункта чек-листа в новой карточке задачи появилась панель форматирования: полужирный, курсив, подчёркнутый, зачёркнутый и ссылка. Работают и сочетания Ctrl/Cmd + B, I, U, S. Ссылку вставляют через попап. Адрес без схемы получает https://, а другие схемы и хосты без точки в имени (кроме localhost) редактор не примет.
Теги в названии пункта: [b], [i], [u], [s] и [URL=…]…[/URL]. Регистр у тегов разный ([b], но [URL=…]), разбирайте их без учёта регистра. Пункты с BB-кодами, созданные в обход карточки, например через task.checklistitem.add, она тоже понимает. В редакторе чек-листа теги видны как есть, отформатированным пункт показывается в превью чек-листа в карточке и у тех, кто не может его править.
Форматируйте и в приложении (tasksmobile 26.800.0)
На панели действий пункта в мобильном чек-листе появились кнопки B, I, U и S. Формат применяется прямо в поле ввода, а в название уходят те же BB-коды, что и в вебе, так что разметка с телефона и из браузера одна и та же. Кнопки ссылки в приложении нет, но ссылки из веба оно показывает.
Уберите теги, если выводите пункты у себя (tasks 26.325.0)
Поле TITLE из task.checklistitem.getlist и из ORM-таблицы Bitrix\Tasks\Internals\Task\CheckListTable теперь может прийти с разметкой. Отчёт или выгрузка, которые выводят название как есть, покажут [b]Согласовать[/b] вместо «Согласовать». Неразмеченных пунктов это не касается. Почистить название можно так:
<?php declare(strict_types=1);
namespace Vendor\Portal\Tasks;
final class ChecklistTitle
{
private const URL_TAG = '#\[url(?:=([^\]]*))?](.*?)\[/url]#is';
private const FORMAT_TAG = '#\[/?[bius]]#i';
public static function toPlainText(string $title): string
{
$text = preg_replace_callback(
self::URL_TAG,
static fn (array $m): string => $m[2] !== '' ? $m[2] : $m[1],
$title,
) ?? $title;
return trim(preg_replace(self::FORMAT_TAG, '', $text) ?? $text);
}
}
// в шаблоне
echo htmlspecialcharsbx(\Vendor\Portal\Tasks\ChecklistTitle::toPlainText($item['TITLE']));
Ссылка превращается в свой текст, а если текста нет, остаётся адрес.
В системных сообщениях чата задачи (чек-лист добавлен, выполнен или удалён, в него добавили соисполнителя, наблюдателя или файлы) модуль чистит название чек-листа сам. [URL] становится обычным текстом, голые адреса не кликаются, а [b], [i], [u] и [s] чат показывает форматированием.
Скачайте запись визита с телефона (crmmobile 26.400.0)
У дела «Визит» в таймлайне появился пункт меню «Скачать» для каждой записи разговора, при нескольких записях под ним подписано имя файла. Пункт приходит с сервера начиная с crm 26.900.0, а с crmmobile 26.400.0 приложение его обрабатывает. Файл скачивается на телефон, и сразу открывается меню «Поделиться».
Поля rich_text в мобильной карточке (crmmobile 26.400.0)
Пользовательские поля типа rich_text карточка CRM в приложении выводит многострочным полем. При просмотре BB-разметка показывается отформатированной.
Мелочи и находки
- Название задачи с
%(«Скидка 50%») больше не роняет новую карточку сURIError, когда её открывают с заполненными полями, например при создании задачи из события календаря.TITLE,MAIL_SUBJECTиMAIL_FROMизrequestParamsслайдера она теперь берёт как есть. Если ваш код открывает карточку с этими параметрами и заранее кодирует их черезencodeURIComponent, кодирование уберите, иначе в названии останется%D0%A1…(tasks 26.325.0). - С crm 26.900.0 по ссылке
/crm/activity/details/<id>/?act=…, которой делятся делом в чате, открывается и письмо CRM. Приложение теперь открывает такие ссылки у себя веб-страницей письма. Нативный экран для них заготовлен, но в mailmobile 26.400.0 на нашем эталоне его ещё нет (crmmobile 26.400.0). - calendarmobile 26.550.0 добавил только обработчик онбординг-пуша «открыть календарь». В коробке этот пуш не приходит, почему — в разборе mobile.