📅 Posted 2014-08-23
Well it’s been a little while since I’ve posted here, mainly because I have so many projects on the go at once. More to be revealed later, of course.
But for this blog I would like to talk about a not so new project of mine, namely Hawkesbury History, People & Places or more easily just “www.hawkesbury.org”.
What is it?
Hawkesbury People and Places is an ongoing project which collects & locates places, buildings, organisations and people of the Hawkesbury Region.
Well it’s actually been going for a few years now, since 2006 in fact. That seems a lot longer than I thought! 8 years? Yikes.
Anyways, it was basically built on my custom php “cms” framework of sorts, which I might upload to GitHub one of these days. It was called NX2 (partly due to my obsession with the letter “x” but that story I will save for another blog). You can find the code for NX3 on GitHub but it’s so much more advanced than NX2 it’s not funny.
Right so back to the story.
Hawkesbury.org, it’s been around for 8 years and I finally upgraded it to Drupal. This was not such an easy task. I’ve tried converting it before, firstly to Drupal, then to Wordpress, then back to Drupal again. No luck it seemed.
The latest incarnation is fully responsive (yay) although there is a slight issue with the menu on mobile devices. No matter, it works, which is a lot better than the old site.
The real challenge with the site was trying to model many-to-many relationships in a nice way. You see, there is a M-M relationship between Names (places, organisations, buildings, clubs etc.) and sources of information, such as newspapers, government records, etc. One source can have lots of information about different Names, and one Name can have many different sources.
I managed to solve it this time with the following modules:
- Chaos Tools (of course, seems to be essential these days)
- Entity Reference (otherwise one node can’t relate to another node)
- Field Collection (this let me model M-M relationships
- Pathauto (for clean rewritten URLs)
- Path Redirect Import (to set up 301’s from the old url scheme to the new)
- Metatag (for SEO stuff)
- Honeypot (to prevent bots from submitting comment forms)
- Views (which is practically impossible to use but seems to get the job done after many hours of hacking around)
- XML Sitemap (to submit nice formatted xml sitemaps to Google Webmaster Tools)
The next task was to do some data migration. My goodness is Drupal 7 a nightmare to migrate data into! From my very simple database schema which did the job just fine, each field of data had to be submitted into about 6 tables. This caused an absolute explosion of SQL statements but thanks to Excel I was able to generate all of the required SQL to bring the data in.
I also used Redirect Import so that I could pre-bake the 301 redirection mapping and load that up (there was about 4200 URLs to redirect, so not an easy task).
After a sigh of relief, getting views to work in blocks AND interpreting the URL correctly - this involved many late nights of reading Stack Overflow and Drupal forums to figure out just how on earth Views should be configured. Nightmare.
Anyway, the site is live and it’s got over 4,000 pages of information.
Just a few items to do now:
- Transfer the remaining image data - I copied one image across as a proof of concept (and it works) but the old NX2 CMS stored all images as blobs in the database so I need to bring them across manually (there are about 12 in total)
- The menu doesn’t respond on mobiles
- Some views aren’t applying nice CSS styles because they are blocks and the block style isn’t great for all positions of blocks
- There are some character set encoding issues where the GBP pound symbol has some extra characters around it (thanks Boyter for picking that up)
Now to see the impact on searches and site use via Webmaster Tools / Google Analytics. Pre-upgrade, the site was getting around 12,000 impressions on search results a month, which is not too shabby for a little humble site. The Click Through Ratio (CTR) is about 6% so about 700 people are actually clicking on search results a month… which is also not bad, as you can see here:
Note the new site went live on 20th August 2014, so I’ll be keeping a close eye on the impact after this date. I’m hoping with a nicer, more modern CMS with clean URLs, better tagging, XML sitemap, 301’s from old links and (hopefully) more frequent updates of content, that we can see what happens over time with SEO. I should report back in a little while to see if anything improves.