While upgrading the ITSSI website, the following story was compiled to provide a glimpse into the thought process behind this recent upgrade. It did not turn out to be the original technical write-up originally planned but this story provides titbits of the entire process. Perhaps at some point in the future a workshop or discussion can be organized to demonstrate how the upgrade was done.
Where did we start?
The ITSSI website was originally developed in Drupal 7 for the launch of the Society on 22nd August 2016. The original website was launched by Prime Minister Manasseh Sogavare who was also the guest of honour during that occassion.
Why upgrade?
Drupal 8 was released in 2018 and has since gained momentum as the CMS's flagship. With Drupal 9 already released and an end of life forecasted for Drupal 7 (and eventually Drupal 8), it was necessary to upgrade the website.
Drupal 8 was the first version that was built on Symphony and truly object oriented; an achievement that provided developers an array of exciting options for innovation. This website now includes many opportunities to build a truly dynamic and interactive website.
On the surface the website still looks and feels the same, only that it no longer is.
Here are some subtle changes:
- All images are now media entities. Entities are the core building blocks of Drupal and making images, videos media entities allows site builders to build better functionality when using them on their sites. With Media being built into the core, Drupal users now use media entities out of the box.
- Views is also now part of the Drupal core and brings the power of this excellent module to users out of the box.
- Twig has been adopted as Drupal's "flexible, fast, and secure template engine for PHP." This brings theming Drupal to a whole new realm.
- Drupal also adopted the CKEditor eliminating the need for the installation of a contributed module for content editing.
- Closer integration with Social Media (Twitter/Instagram/Facebook)
How did the upgrade happen?
In this regard there was not a lot of content or customization on the original website so it was easiest to use the core Drupal Migrate module to handle all the hard work. This was provided by a GUI and answering a few questions was all that was necessary before Drupal did the rest of the upgrade.
There are downsides:
- Views were not imported. But a decision was already made to optimize the views initially created so it was unnecessary to export original Views.
- Images did not automatically import into the core Media module in Drupal 8. Using a contributed module, most images were converted and became Media entities after migration.
The theme is a complete rewrite of the original theme since Twig was introduced. It is fully integrated with Bootstrap 4.5. Improvements in theming made this integration easy and support for future Bootstrap releases will be easier.
In the perfect world, it would have been that simple but it was not to be.
With the advantage of time many of the customization that were done on the original website were improved making them more flexible and future proof. Like what? Well in Drupal lingo - the abuse of Blocks! Removing custom blocks containing HTML and automating the display of content using Views is a major break from the old website. All content is now dynamically generated. With the use of Taxonomies and proper classification all content will just magically appear where they need to appear - with the theme handling the look and feel in a more robust and standard way.
Lessons learnt?
Perhaps a custom-migration based on a proper plan would have eliminated a lot of the manual work done later to correct many things but the cautionary tale should be that if you are handling a lot of content then it is absolutely critical that you plan an upgrade in advance.
Is Drupal really good?
Often asked this question so its perhaps the best way of ending this story.
There is a very steep learning curve. From a developer's perspective getting over that hump really opens up a whole different perspective of Content Management Systems. It is a necessary sacrifice if you want to have a framework that puts a lot of power in your hands.
For many people, the choices are much simpler and their criterias less ambitious. In this regard it would be perfectly fine to stick with more popular, much friendlier platforms.