Как быстро внедрить на Drupal-сайт функциональность на Angular
Клиент
К нам обратилась независимая ассоциация по борьбе с аутоиммунными болезнями. Главная цель ассоциации — предупреждать заболеваемость на ранней стадии и улучшить качество жизни людей с такими заболеваниями.
Задача
Сайт клиента разработан на Drupal. На одной из страниц сайта есть форма с вопросами, ответив на которые, можно узнать, насколько велик риск возникновения аутоиммунной болезни. Форма работала на кастомном модуле, связанном с модулем Paragraphs.
Позже клиент решил, что форму пора обновить, начиная с порядка и содержания вопросов и заканчивая логикой подсчёта результатов. Прежнее решение не согласовывалось с новыми запросами, и перед клиентом встал выбор: либо переписать старый модуль под новую логику, либо написать новый и интегрировать в сайт.
Клиент выбрал второе. Он заказал на стороне разработку этого блока на Angular, чья структура и логика сильно отличалась от кастомного Drupal-модуля. Мы получили этот блок в виде архива с вёрсткой, скриптами и стилями, которые приближали его внешний к стилю сайта.
Нашей задачей было интегрировать блок на Angular с Drupal-сайтом.
Решение
Чтобы не тратить время на интеграцию логики в структуру сайта, было решено сделать для модуля отдельную страницу настроек, где клиент мог бы менять тексты и картинки.
Мы интегрировали новый Angular-модуль в Drupal-сайт, что оказалось быстрее переписывания старого модуля. При этом модуль работает независимо от Drupal и хранит логику расчёта результатов в JavaScript.
Angular — не совсем наша технология, поэтому разработчику пришлось поверхностно пробежаться по документации. В частности, по ходу работы приходилось залезать в код Angular-модуля, чтобы отслеживать возникновение конфликтов между скриптами и корректировать вопросы и ответы.
Результаты
Решение не было сложным и заняло меньше времени, чем если бы мы переписывали уже существующую логику модуля в самом сайте. Все работает отлично, клиент доволен.