Разработка сайта для Общества научных исследований имени Макса Планка

Главные вкладки

Аватар пользователя ADCI_Solutions ADCI_Solutions 3 ноября 2020 в 8:48
3

О клиенте

Институт истории науки входит в состав некоммерческой организации «Общество Макса Планка». Он был основан в 1994 году и является одним из более чем 80 научно-исследовательских институтов Общества.

Деятельность Института охватывает культуры всех времён, народов и географических направлений и ставит целью исследовать, как изменяются базовые научные концепции и определения и как культура влияет на науку.

Цели

Институту требовался сайт для исследовательской группы Epistemes of Modern Acoustics, изучающей акустику одновременно как объект и инструмент познания. Сайт должен:

  • позволять загружать в себя разные виды данных (в первую очередь результаты исследований) и показывать их пользователям,
  • быть удобным при создании и модерации контента,
  • иметь инструменты для работы с научными данными и цитированием (ссылками на ресурсы, использованными при подготовке научных работ).

Что мы сделали:

  • разработали cайт на Drupal 8,
  • сделали админ-панель с удобным UI,
  • внедрили инструменты для работы с библиографическими данными и цитированием,
  • использовали несколько кастомных решений.

Почему Drupal и почему именно Drupal 8

У информации на сайте есть своя специфика. Это и наличие библиографических данных, и обилие специфических полей различного типа, и кастомные поля, и связи между контентом. Это создало у администраторов потребность в особых рабочих инструментах. Drupal оказался наиболее подходящей для этого CMS.

У исследовательской группы уже был сайт, но в продакшн он не попал. В его основе лежала CMS Drupal 7, а для работы с библиографическими данными использовался модуль Bibliography. Со временем выяснилось, что такая комбинация технологий утыкается в ограничения и не может покрыть всех нужд группы. Его представители обратили внимание на молодой (для своего времени) и перспективный Drupal 8. Однако на тот момент модуль Bibliography не имел версии, совместимой с этой версией CMS, и планов по её реализации тоже не было. Тут-то и пригодился наш проект Bibliography & Citation, который стал альтернативной Bibliography.

Что такое Bibliography & Citation

Проект Bibliography & Citation (или BibCite), созданный в ADCI Solutions, помогает организовывать, систематизировать и хранить библиографические данные о контенте в спектре от интернет-страниц до научных работ и оформлять цитирование этих источников согласно множеству стандартов, принятых в разное время и в разных организациях.

По данным drupal.org, на момент публикации кейса проект используется на более чем 282 сайтах. Его задачи уникальны, поэтому каждое использование — с высокой долей вероятности осмысленное. Будучи компанией-создателем проекта, мы это очень ценим.

О том, кто и как использует проект, читайте в статье Five use cases that highlight the benefits of the Bibliography & Citation project.

Контент

Drupal — это прежде всего одна из самых удобных и безопасных систем управления контентом. И в процессе работы мы задействовали весь свой опыт, чтобы поддержать доброе имя Drupal: создали типы контента, перенесли содержимое старого сайта на новый, внедрили специальные инструменты для работы с библиографическими данными и переработали UI админ-панели с помощью виджетов Inline Entity Form, Field Group и других. И клиент, и администраторы сайта остались довольны.

ТИПЫ КОНТЕНТА

Структура контента, которого на сайте очень много, играла важнейшую роль. Многие из типов контента прямо связаны с научной работой, поэтому необходимы. Кроме таких привычных типов, как «текст», «изображения», «аудио» и «видео» включили типы «личность», «эксперимент», «инструмент», «локация», «эссе».

МИГРАЦИЯ КОНТЕНТА

Перенести огромное количество контента с одного сайта на другой помог встроенный в Drupal 8 модуль Migrate и вспомогательные модули Migrate Tools и Migrate Plus.

ОТОБРАЖЕНИЕ КОНТЕНТА

Модуль Display Suite помог фронтенд-разработчику создать страницы с учётом дизайнерских макетов. Другой модуль, Field Group, даёт возможность объединять поля в группы по какому-либо признаку. Блок «Оглавление», помогающий быстро перемещаться между разным частями контента на странице, построен на модулях TOC API и TOC Filter. Всё вместе упрощает фронтенд-разработчику работу со стилями.

ПОИСК

Самая часто используемая функция. Работает на модуле Search API, поисковой платформе Solr на серверной стороне и модуле Facets.

Результаты поиска строятся на основных типах, их свойствах и тегах. Перемещаться по страницам можно с помощью тегов, группирующих разные виды контента.

Модерация контента

Размещать контент могут и администраторы, и обычные пользователи, что облегчает жизнь контент-менеджеров сайта. Им, в свою очередь, остаётся только проверить контент, оставить по нему замечания и опубликовать.

Если вам нужна такая же функциональность, в ядре Drupal есть модуль Content Moderation.

Научные данные и цитирование

Библиографические данные хранятся в сущностях Reference, Contributor и Keyword. За хранение данных отвечает модуль Bibliography & Citation — Entity. Обращаем внимание, что библиографические данные отделены от контента, но в определённых случаях они могут легко ссылаться друг на друга с помощью поля Entity Reference.

Модуль Inline Entity Form уменьшает количество действий, которые администратор должен тратить на работу с контентом и библиографическими данными. Благодаря модулю он может создавать и редактировать библиографические данные в форме с тем самым контентом, к которому эти библиографические данные относятся.

Сборка сайта из готовых программных решений

Планировалось, что некоторые функциональные части сайта, типы контента и т. д. будут заново использоваться на других сайтах института. Для этого необходимо держать соответствующие настройки не только в базе данных, но и в коде. Вообще же экспорт в кодовую базу разных настроек вроде типов контента с полями, пользовательских ролей с правами доступа, представлений, макетов страниц и т. д. — очень распространённая практика в Drupal, дающая кучу преимуществ.
Эти возможности были реализованы как с помощью функциональности Configuration Management из ядра Drupal, так и с помощью дополнительного модуля Features. Этот модуль позволяет запаковывать связанные конфигурации (например, контент-тип и привязанные к нему поля, отображения контента типа Teaser или Full View и т. д.) в обычные Drupal-модули. Эти модули содержит в себе необходимые конфигурации и при установке на Drupal-сайте разворачивают содержащийся в нём кусок функциональности.

Кастомные решения

Для каждой страницы с научным материалом создан QR-код со ссылкой, ведущей на соответствующую страницу. QR-код можно скачать в виде изображения и вставлять в документы.

Администраторам нужна была функциональность для связывания разных типов контента. В результате связанный контент отображается в секции Related Objects на страницах контента.

Некоторые сущности могут относиться друг к другу.Для решения подобной задачи вполне подходит модуль Relation. Но, во-первых, у него не было и нет рабочей версии для Drupal 8, а во-вторых, использовать его для связи всего двух сущностей было бы избыточно — он создан для куда более сложных задач. Поэтому мы реализовали простую связь между двумя сущностями.

Для удобства навигации по странице мы расширили функциональность модуля TOC Filter. Этот модуль нужен для создания оглавления, и по умолчанию он использует для этого встречающиеся в тексте заголовки H2 и H3. Мы же сделали так, чтобы TOC Filter выводил якоря и на другие поля и группы полей типа категорий, связанного контента и т. д.

Вклад в Drupal

Этот проект показал, как проектом Bibliography & Citation пользуются на самом деле, что позволило улучшить его работу и написать дополнения. В частности, несколько дополнений было сделано к модулю Bibliography & Citation — Migrate. Модули Field Group, Search API sorts и TOC API тоже лишились ряда недостатков после того, как мы предложили их разработчикам исправления.

Заключение

Drupal 8 идеально подходит для сайтов с обилием контента: даёт для авторов большие возможности из коробки и расширяется для любых нужд. Проект Bibliography & Citation получил толчок в развитии, мы собрали обратную связь по его работе, а сообщество отреагировало всплеском интереса к нему.

Комментарии