KnackForge Homepage

Being a Drupal centric company, we (KnackForge Soft Solutions Pvt Ltd) would want to keep up with the latest arrivals in the Drupal community and Drupal 8 being the biggest ever thing to happen for Drupal is something we were looking forward to jump into. On the day of Drupal 8 release, we also released the D8 version of knackforge.com with a newly designed custom theme.

Thankfully, the migration process was made relatively simple by migrate_upgrade, drush and other releated modules.

We are really excited to see our site powered by Drupal 8 and look forward to the amount of opportunities that Drupal 8 has for its community all over the world.

Why Drupal was chosen: 

Drupal 8 is blazing fast, has a strong set of core modules that would serve for most sites and is much more secure than ever.

Describe the project (goals, requirements and outcome): 

The upgrade process

We followed the official migration documentation and the whole data migration process was done in just a few hours. We then recreated the menu system through views and other related modules. Final part was theming.

Challenges faced

  • Twig: is very new and takes time to get used to. Although, twig debugging feature in core and devel module's kint() fills in a lot of gap
  • Lack of documentation for core functions: api.drupal.org for many of core functions weren't filled with documentation / with community examples. In most cases, we had to read through a core module using such functions and apply that to our custom code. We're sure this would change as Drupal 8 adoption improves.
  • We miss contrib modules that are slow to upgrade. We were left with writing code to achieve the functionalities. To name a few: redirect, pathauto
  • We really miss a lot of quick utility functions like url(), l() - but we understand the thought process behind that and are in line with the community's forward thinking.
  • Block system not usable bug with PHP filter module kept us away from using the powerful Block system in Drupal 8 for several weeks.

Custom workarounds made

  • By use of the migrate scripts - Nodes and files were migrated successfully, but the association between nodes and the node's files were not migrated. We had a custom script to fix this.
  • Inline images in Drupal 7's WYSIWYG images broke on Drupal 8 version. It required custom scripts to fix.
  • Text filter machine names for old nodes / comments not matching with those on Drupal 8. Required us to run custom SQL queries to have these fixed. Until it is updated, the node view would prevent the page from loading and comments would just have titles available to print.
  • Overriding date format for nodes & comments weren't straight forward / automated through admin UI. Requires custom code.

Outcomes

  • Blazing fast & fresh Drupal 8 powered site
  • Completely responsive
  • Helped us leap right into the Drupal 8 mainstream
Modules/Themes/Distributions
Why these modules/theme/distribution were chosen: 
  • Classy was a preferred base theme to build upon, at the time of building the site. It offers a decent plain skeleton to easily theme up and customise.
  • Twig template variables are explored much effectively & efficiently with Devel's kint()
  • We badly needed a stable Webform to take our site live, which isn't the case. However Contact + Contact Storage offered us a decent alternative that we'll continue to use
  • Entityqueue: as nodequeue alternative in D8
  • Views: is an integral part for our site's components
Community contributions: 

Bug with PHP filter module prevented us from using block system. It took a lot of time and debugging for us to identify the module that causes issue. We filed a bug: https://www.drupal.org/node/2632534

Team members: 
Project team: 

Rajamohamed, Drupal Frontend Developer at KnackForge