The Physics and Astronomy Department at the University of British Columbia is one of the largest and most diverse physics and astronomy departments in Canada. As one of the founding departments of the university, UBC PHAS has developed a great breadth of research activities: from major international collaborations to unique local facilities.

The updated homepage of UBC Phas
The UBC PHAS website was developed off the UBC CLF (Common Look and Feel) Drupal 8 parent theme. Our design flowed from the standards outlined by the CLF, while the functionality exceeded expectations.

The Challenge

UBC PHAS requested a website to showcase its faculty and highlight department research.

The department had spent many years on the Drupal 6 content management system and had reached the limit of the system. Hammerhead was contracted to migrate the following from Drupal 6 into Drupal 8:

  • Image, page, news, blog content.
  • Users (600+), user groups (60+), complex multi-level permissions.
  • User profiles, with user-specific bibliographic (research) content.
  • Custom events view with the ability to query, sort, display by, and export for various calendars.

With the following requirements:

  • Implement CLF Drupal 8 theme, follow CLF specifications (https://clf.ubc.ca).
  • Update navigation, and optimize user flow through the system
  • Recreate critical existing functionality through custom programming, modules, or solutions.
  • Implement an automated system for user creation with LDAP integration.
  • Create a staff directory based on the user system.
The updated internal pages of UBC Phas
Drupal 8 allows administrators to create content types. Content types are reusable and can be displayed in various ways by blocks and views. Above we have reused users with the “Researcher” role to display this content in various ways throughout the site.

Our Approach

Our approach to this project differed from our usual process. Typically we move through discovery & definition, to design & development, to delivery. as the client wanted us to migrate the existing content in totality, and implement the CLF parent theme, which largely directed our design.

Discovery & Definition

Review of Drupal 6 data, review of UBC CLF Drupal theme, map and plan migration of Drupal 6 content, taxonomy & users into Drupal 8, create content types, plan for sub-theme implementation.

Data Migration

Data migration started in the discovery phase reviewing existing content, taxonomy & users, understanding their interaction & connection, and mapping their migration into the Drupal 8 eco-system. The fun part of this migration quickly became creating and executing on migration before something major would change in the Drupal 8 core, and we would have to re-plan the migration. During development, the Drupal 8 core was maturing so quickly that it was difficult for contributed modules to keep up. Luckily we were able to migrate most of the content through an automated process, with the exception of some of the images, and Research Articles. These items had to be migrated and attributed to users by hand.

Design & Development

Due to the fixed nature of the theme, the process for design & development was an adventure in agile. Multi-functional teams designed and developed in tandem ensuring designs could work within the functional constraints of the theme and developing Drupal 8 core. In many circumstances, we created custom modules to work-around these limitations.

Mock ups and wireframes for the UBC PHAS project
Drupal 8 Blocks and Views were used to create the structure for page templates on the site. We used Twig (a modern template engine for PHP), and vanilla javascript to power functionality on these templates.

Unique Features & Functionality

Drupal 8 is an awesome tool to use because of its incredibly modular nature. Drupal’s modularity allows us to easily create content types, assign fields and create unique connections to users, and display content items in various ways with blocks, views and twig.

Users, Permissions, and Content Moderation

Migrating 600+ Users into 60+ User Groups with complex multi-level permissions is bound to boggle the brain. We approached this problem by running batch migrations, auditing, deleting, and re-running. This was one of those tasks that you develop a love-hate relationship with. By the end of it, you are so immersed in the process that you keep a notepad by your bed because you’re resolving complex issues in your sleep.

Users (Researchers), Profiles & Publications

Researchers are a very important part of the department and a significant part of this build. The Researcher Directory is automatically populated when a user is given the Researcher role and assigned to a Research Group taxonomy. Researchers are also listed in directories on Research Group directories automatically. All tables, including directories, are mobile responsive.

Users with Researcher role are also provided access to an interactive form that they can use to build their researcher profile. These users are also able to create and submit citations and attach as publications.

Events, Categorization & Exports

The Events page features several customizations that are outside of the Drupal 8 view, block and twig display capabilities. This includes a custom javascript category toggle which allows the user to All, None or select from the Research Group categories (taxonomy). We forked an open-source project in order to create the export functionality on the Events Page and individual Event Page.

Summary

This project allowed our team to solve problems, and create the web presence of one of the most respected organizations in British Columbia. It also provided our team with the opportunity to become incredibly familiar with Drupal 8, and provide a better user experience for the students of UBC.