slider-arr arrow-right fb vk key
Created by potrace 1.13, written by Peter Selinger 2001-2015

cooperation Начать сотрудничество

Выберите файл
+7 (8452) 46-70-10, 49-63-11

Инвар

другие работы
Инвар
инвар инвар инвар

Доработка списка задач в коробочной версии Битрикс24 - когда хочется чуть больше

Приобретая коробочную версию Битрикс24 Вы ожидаете, что теперь весь функционал портала в ваших руках. Но это и так и не совсем так. Дело в том, что портал это очень сложный организм, в котором функционалы разных модулей тесно переплетены, и внесение изменений даже в шаблоны может привести к нарушению работы портала.

Особенно это касается таких страниц, как список задач, которые построены на компонентах, относящихся к функциональности соцсети. Относительно нее разработчики Битрикс не рекомендуют даже копирование стандартных шаблонов, настолько сложный функционал в них заложен.

У одного нашего клиента возникла задача во внесении двух изменений в стандартный функционал вывода списка задач в коробочной версии Битрикс24:

  • 1Изменение сортировки задач одним сотрудником должно приводить к установке такой же сортировки у всех, кто зайдет в задачи следом.
  • 2При отображении списка задач в виде диаграммы Ганта на полосе времени выполнения задачи должно выводиться ее название, а также процент выполнения от общего времени, отведенного на задачу.

#1Изменение сортировки задач одним сотрудником должно приводить к установке такой же сортировки у всех, кто зайдет в задачи следом.

invar

Вариант копирования шаблонов компонентов отпал сразу по выше названным причинам. В итоге появилось решение, не затронувшее код ни единой страницы на портале.

Используя события Битрикс24, небольшой код, размещенный в init.php (это стандартный файл, который исполняется при любом обращении к Битрикс) определял, что сейчас открыта страница списка задач. Затем он проверял не изменена ли сейчас пользователем сортировка и, если это так, сохранял параметры сортировки. Если же параметры сортировки отсутствовали, брались сохраненные ранее параметры. Так решили первую задачу.

#2При отображении списка задач в виде диаграммы Ганта на полосе времени выполнения задачи должно выводиться ее название, а также процент выполнения от общего времени, отведенного на задачу.

invar

Для решения второй задачи без внесения изменений в шаблоны требовался запуск javascript кода, который бы выполнял на странице динамическое формирование нужных записей. Во-первых, был написан скрипт, который по запросу возвращал требуемую информацию по задачам, а именно название и процент выполнения для всех запрошенных задач. Во-вторых написан сам javascript, добавление которого на страницу производилось через стандартный API Битрикс в том коде, который решал первую задачу, поскольку в нем уже определялось, находится ли сейчас посетитель портала в списке задач.

В итоге оба пожелания клиента были выполнены. При этом не было внесено никаких изменений в страницы и шаблоны портала. И хотелось бы сказать, что все теперь будет у него хорошо, но все-таки это не так. Даже такие осторожные правки стандартного функционала, к сожалению, могут перестать функционировать в случае, если изменится наименование переменных, используемых в URL при смене сортировки, если поменяются в DOM-структуре списка задач признаки, по которым сейчас можно его модифицировать через javascript. Тем не менее, поскольку не копировались шаблоны компонентов, стандартный функционал не пострадает, а восстановить доработки не составит труда.

P.S.: Вот такие задачи иногда приходится решать нашим разработчикам.


Заказать сайт