Bibliography Function Integration Into Drupal 8
CLIENT:
US-based Agency for Healthcare Research
INDUSTRY
Healthcare and Human Services
DELIVERY:
Developed Bibliography function
TECHNOLOGY
Drupal 8/ Bibcite module
Introduction
Our client’s main focus is improving the safety and quality standards of America’s healthcare system by investing in research and collecting useful knowledge, data, and tools for healthcare professionals and policymakers. They made the decision to upgrade their Content Management System (CMS) from Drupal 7 to Drupal 8 to capitalize on the superior capabilities and features of the latter.
They hired our services to develop the Bibliography functionality for the ‘Literature Collection’ section – the most essential component of their website. Unlike Drupal 7, the Bibliography contributed module for Drupal 8 is not yet available. Therefore, we chose to use the Bibcite module to develop the Bibliography function.
Challenge
Our task was to develop the ‘Literature Collection’ page on their website while we had access to their latest design along with 5300 references in the RIS format.
However, we found several bugs in the Bibcite module for Drupal 8 which we needed to fix by creating a patch as per the requirements of the client. The main challenge was that the Bibcite module neither supported the mapping of the custom fields nor the term reference fields via RIS import.
Another challenge was implementing their custom design which required two different layouts for the main search page and the search results page, using the same Drupal Views core module.
Solution
First, we launched a patch for the Bibcite module to support custom fields mapping. In this patch, we modified the ‘modules/bibcite_entity/src/Form/MappingForm.php’ file to get all the fields using the ‘getReferenceFieldOptions()’ function and then, configured the filter to return only the custom or desired fields.
Next, we tackled the problem of term reference field mapping. Our solution was simple: We would get the value of the specific tag from the RIS import file and match those values with the specific vocabulary available to determine if the term exists in the system or not. If it exists, then the system will return the term IDs and those term IDs will be placed as a value of term reference field.
Finally, we developed a full width design for the main search page, while the search results page was divided into 2 columns. We did this by using two different conditions in the template, based on the query string in the URL of the search results page.
Solution
Our solution has resulted in three main benefits for the client:
- We were able to successfully develop, modify and integrate the Bibliography function or, more specifically, the ‘Literature Collection’ page into the client’s Drupal 8 website.
- We were also able to ‘smooth out’ background processes to optimize the loading speed of the ‘Literature Collection’ page.
- We were able to complete the project within the designated time-frame and ensure 100% client satisfaction.
Benefits
- The development of the ‘Literature Collection’ page ensures that the visitors have full and easy access to useful and relevant information.
- The new design of the search results page ensures that visitors can view results in a more readable manner and access relevant links.
- The loading speed optimization of the Bibliography page ensures a seamless user experience for people who visit the website.
- Our client was able to save their precious time and resources by outsourcing the task to our experienced developers.