Институт истории науки входит в состав некоммерческой организации «Общество Макса Планка». Он был основан в 1994 году и является одним из более чем 80 научно-исследовательских институтов Общества.
Деятельность Института охватывает культуры всех времён, народов и географических направлений и ставит целью исследовать, как изменяются базовые научные концепции и определения и как культура влияет на науку.
Институту требовался сайт для исследовательской группы Epistemes of Modern Acoustics, изучающей акустику одновременно как объект и инструмент познания. Сайт должен:
Что мы сделали:
У информации на сайте есть своя специфика. Это и наличие библиографических данных, и обилие специфических полей различного типа, и кастомные поля, и связи между контентом. Это создало у администраторов потребность в особых рабочих инструментах. Drupal оказался наиболее подходящей для этого CMS.
У исследовательской группы уже был сайт, но в продакшн он не попал. В его основе лежала CMS Drupal 7, а для работы с библиографическими данными использовался модуль Bibliography. Со временем выяснилось, что такая комбинация технологий утыкается в ограничения и не может покрыть всех нужд группы. Его представители обратили внимание на молодой (для своего времени) и перспективный Drupal 8. Однако на тот момент модуль Bibliography не имел версии, совместимой с этой версией CMS, и планов по её реализации тоже не было. Тут-то и пригодился наш проект Bibliography & Citation, который стал альтернативной Bibliography.
Проект 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 выводил якоря и на другие поля и группы полей типа категорий, связанного контента и т. д.
Этот проект показал, как проектом Bibliography & Citation пользуются на самом деле, что позволило улучшить его работу и написать дополнения. В частности, несколько дополнений было сделано к модулю Bibliography & Citation — Migrate. Модули Field Group, Search API sorts и TOC API тоже лишились ряда недостатков после того, как мы предложили их разработчикам исправления.
Drupal 8 идеально подходит для сайтов с обилием контента: даёт для авторов большие возможности из коробки и расширяется для любых нужд. Проект Bibliography & Citation получил толчок в развитии, мы собрали обратную связь по его работе, а сообщество отреагировало всплеском интереса к нему.
Этот проект не похож на ваш? Посмотрите, что ещё мы сделали: