Phil Norton

Phil Norton speaking at a conference

Expertise:

Years of experience: 20

Phil is the founder and administrator of #! code and is an IT professional working in the North West of the UK.

Graduating in 2003 from Aberystwyth University with an MSc in Computer Science Phil has previously worked as a database administrator, on an IT help desk, systems trainer, web architect, usability consultant, blogger and SEO specialist. Phil has lots of experience building and maintaining PHP websites as well as working with associated technologies like JavaScript, HTML, CSS, Apache, MySQL and Linux.

Phil's site credits include West Yorkshire Police, Walk4Life, Wave, Julia Gillard, BAFTA, People's History Museum, The Bookseller, The Macallan Whisky, Co-op Insurance, STEM, Wellcome Trust, WaterAid, First Class Holidays, WhatCar?, AutoCar, in addition to numerous other projects.

In his spare time Phil uses his skills to give something back to the web community by writing plugins for content management systems like Wordpress and Drupal, writing articles on #! code and contributing to local programming events.

His experience with numerous programming projects and apprentice mentoring over the years means he knows how to break down complex subjects into examples that you apply to your own projects.

Latest From Author

Argon Industria HMI 7C - Enclosure for 7" Touch Display 2: A Review

I've had a Raspberry Pi 5 with 16GB RAM sat on a shelf of my office for the last year so I decided to do something with it. It was originally intended to be used in an enclosure I had backed on Kickstarter, but that doesn't look like it will be released, so the Pi has been gathering dust.

Rather than just using the Pi in the open on my desk I like to put them in cases or enclosures. This makes sure they don't get damaged, but can also add additional features like cooling or extra drives and ports. I have a couple of different Raspberry Pi around the house, acting as network firewalls, or media servers so I'm familiar with different cases and allowing the use of NVMe drives.

Whilst looking for a decent case I stumbled upon the new Argon Industria HMI 7C enclosure with the 7 inch Touch Display 2. This case was compatible with the Raspberry Pi 5 and I just needed to also get a Raspberry Pi touch display 2.

Drupal 11: Migrating From Jadu Into LocalGov Drupal: Part 3

This is the second article in a series looking at migrating from Jadu into a LocalGov Drupal (LGD) site for Central Bedfordshire. In the first article we looked at the Jadu API and setting things up so that we could make calls to the API and parse the XML data using the migration systems available.

In the second article we looked at reproducing Jadu URLs to create redirects for migrated content, even though the Jadu API doesn't contain any URL information.

Now that we have a the Jadu connection created and redirects working we can start tackling other aspects of the migration, so let's look at migrating the main content of the site from Jadu. We can pull structured pages of content out of the Jadu API and apply them to the structure of a LGD site, maintaining the same hierarchical structure and order of pages.

Drupal 11: Migrating From Jadu Into LocalGov Drupal: Part 2

This is the second article in a series of articles looking at migrating from Jadu into a LocalGov Drupal (LGD) site for Central Bedfordshire. In the first article we looked at the Jadu API and setting things up so that we could make calls to the API and parse the XML data using the migration systems available.

In the last article I mentioned something about the Jadu API that caused me a lot of headaches. The API contains most of the information for a page, but critically, the Jadu API contains no information about the path of a page. There is basically no way to get the URL of a page in Jadu from the XML API.

I'm quire sure that this makes creating anything useful in the API a real pain since referring back to the site needs to be done with manually placed links, but it's clearly like this by design. I couldn't find any documentation on why it is like this, but it almost feels like vendor lock-in. Please correct me if I'm wrong here.

Drupal 11: Migrating From Jadu Into LocalGov Drupal: Part 1

This is the first article in a series of articles looking at migrating content from a Jadu site into a Drupal site running the LocalGov Drupal distribution. The site I was migrating content into was the new site for Central Bedfordshire, and whilst other implementations of Jadu may differ from what I describe here, it should be enough information for you to understand the process.

Jadu is a proprietary CMS application that is mostly written in PHP. Back in 2011 I went to a talk by one of the developers from Jadu at the PHPNW11 conference, so I was aware of the system. That talk, by the way, was interesting as they built a system called Phalanger that allowed PHP (and Jadu) to be run on a .NET environment. That project is now called PeachPie and it looks like it is still under active development.

LocalGov Drupal is a Drupal distribution that combines Drupal, some configuration, and a collection of modules with the aim of making it easier for councils to create websites.

LocalGov Drupal: Rewriting Waste Collection Data Provider Classes To Alter Data

LocalGov Drupal is a Drupal distribution that combines Drupal, some configuration, and a collection of modules with the aim of making it easier for councils to create websites. The functionality provided includes content pages, news pages, bus timetables, and waste collection systems. What's more, it's maintained by a vibrant community of people.

The LocalGov Drupal Waste Collection module is a module that allows local bin collection schedules to be displayed to users. This uses a combination of an address lookup and collection data to show users the bins collection schedule for that address for the next few months.

A plugin interface is used to allow different banks of data to be used in the bank end of the module, with CSV and Whitespace API integration coming with the module. Whitespace is a company used across the UK to manage waste collection systems and the Whitespace plugin interfaces with a SOAP API to pull bin collection data into the site.