About the Institute
The Max Planck Institute for the History of Science (MPIWG) was established in March 1994. It is one of more than 80 research institutes administered by the Max Planck Society - an independent non-governmental and non-profit association of German research institutes founded in 1911.
The Institute’s research projects span all eras of human history, as well as all cultures north, south, east, and west. Putting it simply, the Max Planck Institute explores how basic scientific concepts and terms are changing, how culture affects science, and conducts researches on those topics.
The Institute needed a site for the "Epistemes of Modern Acoustics" research group to host different articles and other publications about acoustics, including historical data. The website should have met the following criteria:
- have different kinds of data inputted and shown;
- have convenient content authoring capabilities, also, content moderation was needed;
- should provide tools to deal with a scholarly data and citations.
Why Drupal and Drupal 8
The Institute’s content, which is to be published on the site, is rather specific, and the MPIWG needed tools for dealing with a bibliographic data, working with citations and related services. And Drupal has been chosen as the most suitable content management platform for such demands.
When the work on the project started, the Institute had already had some progress with the Drupal 7 instance implementation, which utilized the Bibliography module for managing bibliographic data. Later, it was realized that this combination doesn't satisfy all the needs well and has some limitations, so the Institute’s team decided to move on and try a relatively new (by that moment) but very promising Drupal 8. The Bibliography Module didn’t exist for the Drupal 8 version - fortunately, we had the Bibliography & Citation module under development. Thus the choice was made.
Giving you the heads-up, we can say that a huge amount of work was done: from content types creation, content migration to the specific tools for dealing with a bibliographic data and even reworking the admin UI: it was improved with the help of Inline Entity Form, Field Group, and other widgets. The client is really happy with the results.
The website is content-heavy, and content is the most important part of it, so a content structure plays a significant role. There are several content types implemented and used on the website for storing and managing content: text, image, audio, video. Also, types include: person, experiment, instrument, location, contributor essay.
A lot of efforts were put into filling the Drupal 7 instance with content, so we had to migrate already created content from Drupal 7 to a new Drupal 8 instance. As you know, Drupal 8 has popular Drupal 7 contrib modules added into its core, and Migrate is one of them. With the addition of the Migrate Tools and the Migrate Plus contrib modules, the content migration from Drupal 7 to Drupal 8 was successfully managed.
View modes are widely utilized to provide outputs for nodes and other entities, and Display Suite is used to build layouts for nodes in different view modes. Related fields are combined into groups with the help of the Field Group module on view providing the needed markup structure, classes, and headers. Each object node page has the Table of Contents block for a quick navigation between different parts of content: it's built using TOC API in a combination with TOC filter.
All this provides a great flexibility for an overall development process and helps a front-end developer a lot with styles writing.
Site's search capabilities are the biggest functionality part for average users. The Search is divided into 2 main sections:
- Browse Objects - provides search results based on the main types and their properties and tags.
- Browse categories - based on the division of content into categories and subcategories, such as Sites (Cities, Concert Halls, etc.), Scientific Practices & Techniques (Experimenting, Listening, etc.), Objects, Instruments and Technologies (Objects, Instruments, Technologies).
For Search functionality implementation the Search API module is used, with the Solr search platform as back end and with the addition of Facets - well-known Facet API but for Drupal 8.
From content pages, a user may conveniently navigate to the search page with appropriately applied filters by clicking on tags related to content.
Both administrators/editors and regular users can submit content: that makes the life of the website content managers much easier. A content manager can review content, ask for corrections, and then publish the submitted content.
If you need the same functionality, Drupal has the Content Moderation module in the core.
Scholarly data and citations
Bibliographic data is stored in Reference, Contributor, and Keyword entities provided by the Bibliography & Citation - Entity module which is a part of Bibliography & Citation (Bibcite). A good point here is that bibliographic data is separated from content but can be easily related to it via the core's entity reference field. Furthermore, Inline Entity Form can be used for more convenient content and bibliographic data management. Data display on content pages is also highly configurable and customizable - thanks to storing of bibliographic data in Drupal entities.
It was planned to re-use site's functionality parts, content types, etc., for other sites creation for the Institute needs. To make it possible, corresponding configurations should be contained in code, not just a database, and export of different configurations like content types with fields, roles with permissions, views, layouts, etc. into the code is a very common practice in Drupal and provides many benefits.
This whole thing was realized with the core’s functionality (Configuration Management) and with the contrib Features module: it packs related configurations together in a form of regular modules and allows to re-use these modules in other Drupal installations.
A QR code with an encoded permalink to a corresponding page is added to each object node page and can be downloaded for further embedding into documents. Some entities can be related to each other: basically, the Relation module provides needed functionality but unfortunately hadn't had the working Drupal 8 version back then, so a simple version for just two endpoints was implemented. The Table of Contents block on content pages contains customization to allow navigation not only between body parts but also between groups of fields.
Contribution to Drupal
First of all, this work helped to understand the real needs and use cases for such a specific module as Bibliography and Citation better, and many improvements and additions were introduced to the module as a result. Since some data migration was needed, several adjustments to Bibliography Citation - Migrate were done as well. Several issues were reported and fixed in the following modules:
- Field Group
- Search API sorts
- TOC API
Drupal 8 is a great system for such content-heavy websites. It provides great content authoring capabilities from the box, it's very flexible and extendable for any specific needs. Drupal 8 fitted the MPIWG needs very well in the result. And it was a great experience which allowed us to make major progress in the Bibliography & Citation module development, receive feedback, and generate a real interest in the community. Let's start a new project together.