Feb 14 2019
Feb 14

Please enable cookies

This website is using a security service to protect itself from online attacks. The service requires full cookie support in order to view the website.

Please enable cookies on your browser and try again.

Reference ID: 4b112b72a690ea41f60c3bc142d5366f

This website is using a security service to protect itself from online attacks.

This process is automatic, you will be redirected to the requested URL once the validation process is complete.

Jun 13 2017
Jun 13

Please enable cookies

This website is using a security service to protect itself from online attacks. The service requires full cookie support in order to view the website.

Please enable cookies on your browser and try again.

Reference ID: 4b112b72a690ea41f60c3bc142d5366f

This website is using a security service to protect itself from online attacks.

This process is automatic, you will be redirected to the requested URL once the validation process is complete.

Jan 12 2017
Jan 12

Please enable cookies

This website is using a security service to protect itself from online attacks. The service requires full cookie support in order to view the website.

Please enable cookies on your browser and try again.

Reference ID: 4b112b72a690ea41f60c3bc142d5366f

This website is using a security service to protect itself from online attacks.

This process is automatic, you will be redirected to the requested URL once the validation process is complete.

May 18 2016
May 18
teaser image for blog post

Members of the British Council Digital team were delighted to receive the RITA2016 award last Thursday for the huge change in IT cloud infrastructure that Ixis delivered in the summer of 2015.

The award for "Infrastructure as an Enabler" reflected the innovative change in the way the British Council undertook their hosting requirement for the initial 120 sites operating in over 100 countries across the globe and delivering a clear business benefit. Moving away from dedicated infrastructure to virtual containers provided the ability to tightly control and guarantee server resources to an individual site and a quick and easy way to duplicate an environment for QA, testing, staging and feature branch development.

Ixis partnered with Drupal container expert Platform.sh to provide the underlying infrastructure and API. We'll publish further detail on our integration as a case study.

Congratulations also go another of our clients: Westminster City Council, for their award and further two highly commended positions in this years awards.

Photo courtesy of Chaudhry Javed Iqbal on Twitter.

Feb 11 2016
Feb 11
teaser image for blog post

This months Northwest Drupal User Group (NWDUG) in Manchester had a lovely visit from a non developer to talk about how the Internet has changed his life and the challenges of using the Internet as a blind person.

Being blind since he was a child has meant that some activities weren't possible before the Internet became accessible to everyday people - such as reading the news or magazine articles. Now Sunil works with the Internet everyday at his job in the British Red Cross.

Many years ago JAWS was the defacto screen reader that accessible sites were tested against and made the Windows operating system more popular amongst the blind community. Since Apples VoiceOver capabilities have been baked in to their OS X software its opened up better applications to navigate the web. It was also noted that nearly all blind people tend to prefer iPads and iPhones because of their mature and built in accessibility features - and the interface controlled with flicks and swipes to the touch screen.

The group were given a demo of navigating the Guardian news website being navigated in the Safari web browser. The VoiceOver facility describing all the elements on the page read out the descriptions at a high speed to transmit the vast amount of information needed.

Sunil said he used headings to jump to content he's looking for - H1 etc. HTML tags.  Interestingly the "skip to main content" link right at the top of the page (and often found in Drupal base themes) wasn't used! A comment from the audience did suggest that those links are great for sighted users navigating sites with the keyboard.

He found the ALT attribute on images useful, if present, although TITLE attributes should contain the descriptions of what is in the image.

Forms with clearly labeled fields help associate form validation error messages with the bad input. 

The CAPTCHA anti spam systems still create a mixed problem - implementations that offer disability support are hard to hear and so difficult to solve. Sunil's favorite are the logic questions such as maths or odd word in a list. Google's more recent ReCAPTCHA now removes all these problems and replaces it with a simple tick box. A Drupal module is also available to support this service on forms.

In recent years the European cookie compliance policy pop ups have invaded many of our websites -- ones which appear at the top of the page tend to be a mild irritant but once accepted they don't re-appear - so just as relevant to all of us. Prehaps putting the cookie warning at the bottom of the site is a better solution?

In a similar vein the topic of pop-up banner advertising was asked by the group -- is it a problem or inconvenience when browsing a site? Sunil mentioned he had previously used Ad blocking software years ago but these days banners don't get in the way of his reading -- although he doesn't know what the advertising is due to it usually being image based (advertising networks take note!).

One gripe that still exists even in modern website builds is the use of PDF files for text information such as restaurant menus. if that information could be duplicated as HTML page content it would make consumption of the information possible for all.

It seemed that there's not much else that can stop Sunil from navigating the web in 2015 - which is great news as Drupal site builders!

We've had general web accessibility guidelines (WCAG) for many years but it's refreshing to see how that translates in to the real world, and a great thanks to @SunilPeck for giving up his evening to visit the Drupal usergroup.

The full evenings talks are available every month on YouTube on the NWDUG channel. You can watch Sunil in the February 2016 session.

Photo at NWDUG thanks to @ChandeepKhosa.

Nov 11 2015
Nov 11
teaser image for blog post

Launched in 2008 Drupal 6 has served a large base of sites for the past 7 years even with the more recent Drupal 7 launched in 2011.

As a provider of Drupal support and hosting services Ixis still look after a number of clients who are running the latest up to date Drupal 6 codebase. However, with the announcement of Drupal 8 launching on November 19th 2015 this starts the countdown to the end of the extended support policy - which is 3 months after the launch of Drupal 8. The final 3 months will only cover security updates - not functionality or bug fixes.

Drupal 6 Security Updates end on February 24th 2016

The 3 month window won't be long enough to allow upgrading of Drupal 6 sites to Drupal 8, especially as we'd always advise allowing a new major Drupal Core release to be tested by early adopters before upgrading and migrated your site to it.

What are the implications of this?

From Drupal.org

  • The security team will no longer provide support or Security Advisories for Drupal 6.
  • All Drupal 6 releases on project pages will be flagged as not supported.
  • At some point in the future update status may stop working for Drupal 6 sites.

From Ixis

  • We will continue to provide our support services to Drupal 6 sites and where necessary apply any security updates provided by 3rd parties.
  • We cannot guarantee your Drupal 6 site would not become vulnerable over the coming years as new attack vectors are discovered in web based applications and applied to old Drupal 6 sites.

What if I have a Drupal 6 site still?

If not already in progress, begin planning a site upgrade or rebuild. Web technologies have progressed a lot since 2008 which may mean reviewing how your Drupal 6 site works and what the business needs are - which may be better addressed in a more modern techniques thanks to the functionality of Drupal 8.

As with many of our long standing clients Ixis can assist with your journey from Drupal 6 to Drupal 8 with our in-house development team services. Now is the time to be making plans!

Any short term solutions?

  1. Reducing your sites functionality to content only would allow a quicker path to migrate to Drupal 8, and then as contrib modules are upgraded to 8.x re-introduce the functionality during 2016.
  2. Archive the site as static HTML pages - although this will remove interactive elements such as logins and comments.

What about upgrading to Drupal 7?

Depending on the timeframe and functionality required for site delivery Drupal 7 may still be the better option due to the sheer number of stable additional contributed module components available, such as Ecommerce.  At Ixis we're still developing Drupal 7 solutions for the next few months at least.

Speak to us

If you're unsure where the Drupal 6 support end of life announcement leaves you and your business website please do get in touch with us to discuss how Ixis can help in the short and long term. We're happy to chat!

Mar 11 2015
Mar 11

Come and join our well established UK team as a senior Drupal support engineer. We support interactive sites and applications of all kinds, so every client can offer different challenges and solutions each month.

You'll have the opportunity to be involved with projects ranging from international brands, enterprise public sector organisations through to charities and media sites. We also run several internal projects which you'll have chance to provide input and development for if you wish - this is where we often experiment with new ideas, techniques and technologies first!

The technical skills we're looking for:

  • Excellent knowledge of Drupal & its configuration.
  • Extensive experience with Panels, Views, Features.
  • Experience of working with a source code version control system.
  • Comfortable using a terminal command line.

The type of person we’re looking for:

  • Strong analytical, problem solving, and debugging skills.
  • Ability to forge strong relationships with colleagues, clients and suppliers.
  • Calm, considered and methodical.
  • Excellent verbal and written communication.
  • Excellent time management with the ability to handle a varying workload, while maintaining a high quality of wor

Ideally you'll have 1+ years commercial experience of working as part of a team.

Your work will cover a variety of areas, including:

  • 3rd line support for complex cases from our clients.
  • On-boarding of large Drupal sites to our service desk and platform.
  • Preparation and participation in regular client Service Reviews.
  • Extending existing Drupal projects which may have been designed and developed by a 3rd party agency.
  • Internal projects to create or improve our services.

As you may notice, we love Drupal! There's a chance to play with the latest tools and contribute back to the Drupal open source community as part of your daily work.

Most importantly we’re looking for somebody who is friendly, positive, enthusiastic and hungry to learn as part of our team.

Training

We actively encourage staff to further their web skills by attending and presenting at conferences, camps and training days.

Ixis have sponsored, organised and attended Drupalcon Europe, DrupalCamps and DrupalDevDays.

Location

Ideally we would like your work to be carried out on-site at our lovely office in Warrington, Cheshire, UK, but we may consider remote working depending on experience and ability. You will be required to visit the office throughout the year so ability to travel is necessary.

There may also be some occasional travel involved for client meetings from Scotland to the South East and anywhere in-between. Therefore this position will only be suitable for UK residents.

Why Work For Ixis?

We've been in the Drupal business for over 10 years, it's all we do, whether it's providing consultancy, architecting solutions, providing support services, developing sites or hosting large scale projects. We think it keeps our staff focused and highly skilled experts in our industry. We care about the open source software we use - and ensure we contribute our time and code back to the projects in our day to day job.

Our business is always growing and this is the perfect time to get onboard, helping us to shape the future of Drupal and its implementation in the UK and Europe.

We work with a wide range of high calibre clients and are well respected by both the Public and Private sector in consultancy, development, support and hosting. We host and support some of the biggest UK public sector sites.

We run a fun, friendly, and relaxed office environment as well as regular evening and weekend activities with the team.
As a perk of working on site you’ll be treated to the very best development environment hardware in the shape of a well specced 27” display iMac.

The Details

Position: Full-time.
Apply: Submit your cover letter and CV using the form at http://www.ixis.co.uk/job-application
Hours: We work 35 hours per week with a flexible start or finish time to fit around busy traffic periods and family commitments.
Holidays: 33 paid days per year.
Salary: £25,000 - £32,000
Training: An individual budget for training/conference/event ticket fees, accommodation, travel and time off for learning is provided each year.

No recruitment consultants to contact us please.

Jan 06 2015
Jan 06
teaser image for blog post

It was an exciting and busy year here at Ixis in 2014 as we continued to build our portfolio of Drupal clients

Highlights have included celebrating our tenth birthday and building on and growing the team’s expertise which has allowed the company to win more clients across a variety of sectors. We also celebrated one of our best financial quarter since Ixis was founded in 2004. 

Having won a string of new clients last year including national consultancies, local authorities and leading charities, our focus in 2015 will be on expanding our reach within these sectors. We are also developing plans to collaborate with our clients to deliver long term value which increasingly means investing sensibly in research and development.

The G-Cloud has had a big impact on our business so this will still remain central to our growth strategy. We also truly value retaining our clients and this of course will remain one of our biggest priorities as laid out in our core strengths.

This year, we want to continue to grow our business whilst maintaining one of the strongest and most diverse Drupal specific portfolios in the UK. Here’s to an exciting and prosperous year to all.

Interested in Ixis? You can find out what it’s like working with us here.

Sep 05 2014
Sep 05
teaser image for blog post

With the 2014 European Drupal conference fast approaching, the Ixis team members attending this year have scoured the schedule for their must see see sessions this year, and why.

For the Developers

Content Staging in Drupal 8 (Wednesday 10:45) - moving content about from dev to production has always been a huge pain in Drupal, so hopefully we'll get a chance to see how this might work in Drupal 8 and finally put an end to the question of when and where the client should start adding their conent during the development phase.

Drupal's PHP Component Future (Wednesday 14:15) - we're already using and developing modules for our work with Codeception, so we would benefit from learning how this might apply to Drupal 8, or even 9.

A Decoupled Drupal with Silex (Thursday 14:15) - decoupling Drupal from the front end has been a topic for a few years now. Learn from others who have jumped on early and ironed out the development problems. Relevant to Drupal 7and 8.

Drupal 8 CMI on Managed Workflow (Wednesday 13:00) - as projects get more complex the pain of the Features module becomes well known, CMI holds much hope for the future of automated repeatable builds.

Future-Proof your Drupal 7 site (Wednesday 14:15) - Until Drupal 8 is out and under some real world use we can ensure our Drupal 7 development choices make the upgrade path less painful. We'll see what's in Drupal 8 and how that maps back to the available Drupal 7 modules that are currenly available.

Twig and the new Drupal 8 Theme System (Tuesday 10:45) as we all know Drupal 8 will be using a new theme system called Twig. This session should provide an insight into what to expect from a support point of view.

For Business Owners / Project Managers

Project Train Wrecks (Wednesday 14:15) promises to be an insight from other agencies on the problems faced and solutions to keep projects running smoothly.

The Myth of the Meerkat: Organising Self-Organising Teams (Tuesday 13:00) finding the balance between processes and control when working on a project as a team in order to get things done. Leaving everybody to get on with it rarely works.

There's plenty more to attend during the week to keep everybodies minds happy - the countdown to September 29th begins, and tickets are still available at the slightly discounted rate until September 16th.

Sep 05 2014
Sep 05

With the 2014 European Drupal conference fast approaching, the Ixis team members attending this year have scoured the schedule for their must see see sessions this year, and why.

For the Developers

Content Staging in Drupal 8 (Wednesday 10:45) - moving content about from dev to production has always been a huge pain in Drupal, so hopefully we'll get a chance to see how this might work in Drupal 8 and finally put an end to the question of when and where the client should start adding their conent during the development phase.

Drupal's PHP Component Future (Wednesday 14:15) - we're already using and developing modules for our work with Codeception, so we would benefit from learning how this might apply to Drupal 8, or even 9.

A Decoupled Drupal with Silex (Thursday 14:15) - decoupling Drupal from the front end has been a topic for a few years now. Learn from others who have jumped on early and ironed out the development problems. Relevant to Drupal 7and 8.

Panels, Display Suite, and Context - oh my! What to use when, why, and how (Tuesday 10:45) - as projects get more complex the pain of the Features module becomes well known, CMI holds much hope for the future of automated repeatable builds.

Future-Proof your Drupal 7 site (Wednesday 14:15) - Until Drupal 8 is out and under some real world use we can ensure our Drupal 7 development choices make the upgrade path less painful. We'll see what's in Drupal 8 and how that maps back to the available Drupal 7 modules that are currenly available.

Twig and the new Drupal 8 Theme System (Tuesday 10:45) as we all know Drupal 8 will be using a new theme system called Twig. This session should provide an insight into what to expect from a support point of view.

For Business Owners / Project Managers

Project Train Wrecks (Wednesday 14:15) promises to be an insight from other agencies on the problems faced and solutions to keep projects running smoothly.

The Myth of the Meerkat: Organising Self-Organising Teams (Tuesday 13:00) finding the balance between processes and control when working on a project as a team in order to get things done. Leaving everybody to get on with it rarely works.

There's plenty more to attend during the week to keep everybodies minds happy - the countdown to September 29th begins, and tickets are still available at the slightly discounted rate until September 16th.

Jul 16 2014
Jul 16
teaser image for blog post

Since we integrated the EdgeCast CDN for one of our clients, and released a related EdgeCast Drupal module we have been encouraging more and more clients to consider a CDN layer to accelerate performance to multiple geographic locations and maintain an excellent uptime even during site maintenance periods.

A recent international client who is running many domains with federated content using the Domain module needed to make use of the content delivery network to improve performance and resiliance for their sites.

The use of the Domain module created a problem with the purge process employed in the EdgeCast v1.x module. As with most of the cache purging modules available for Drupal it sent each URL individually and waited for confirmation back to say it the request had been successful.

With a large multi domain site this multiplied the page load time upon submitting a node edit form to the point of a PHP timeout and Ngnix HTTP 500 errors. Increasing the timeouts was a short term fix, but it still meant content editors were slowed down waiting for forms to submit.

There was also another effect cause by external feed aggregation which created nodes, which in turn triggered URL purge requests, and slowed down each node creation step.

We toyed with the idea of using a Drupal batch queue to process the purge requests during the regular cron call but this delayed the refreshing of content pages far too long for the content editors.

We settled on what appears to be the little used Multi Curl facility. This allowed us to build up an array of all the URLs using the Expire module and then send a single HTTP request to the EdgeCast API followed by ignoring the response back from the API. This created a much faster content editing experience for the users.

Note: The Expire module doesn't currently implement Domain module purging - the code class is empty. See issue #2293217 for details. We worked around this using the Cache Expiration Alias module.

The side effect of the Multi Curl development work was the speeding up of the single domain sites purge requests too!

The v2.0 EdgeCast module is available now for Drupal 7.

Find out more about the content delivery network from Edgecast.

Jul 16 2014
Jul 16

Since we integrated the EdgeCast CDN for one of our clients, and released a related EdgeCast Drupal module we have been encouraging more and more clients to consider a CDN layer to accelerate performance to multiple geographic locations and maintain an excellent uptime even during site maintenance periods.

A recent international client who is running many domains with federated content using the Domain module needed to make use of the content delivery network to improve performance and resiliance for their sites.

Aug 08 2013
Aug 08
teaser image for blog post

With some seasoned and new members of the Ixis team attending Drupalcon in Prague this coming September we wanted to share our suggestions on essential sessions to attend from our teams point of view.

Matt P in our support team has been working with Drupal 6 & 7 for the past year and feels brushing up on what's coming in Drupal 8 for a site builder will be helpful as a primer when existing clients are begining to plan their site upgrades.

Also in our support team Adam T is keen to begin contributing back to the project so the session on becoming a contributor to the Drupal project looks like a good kickstarter coupled with the introduction to Your First Drupal 8 Module.

For the developers Paul B thoroughly recommends Alex Pott's talk about Not Invented Here a Drupal 8 Story which he previously saw at Drupal Dev Days Dublin. For those seasoned Drupal "developers" moving to Symfony and a more OO Drupal 8 framework will hopefully benefit from the Don't be Stupid Grasp Solid introduction to OOP talk.

In our DevOps team Michael A picked out some sessions around the current hot topic of containers with the Docker and Vagrant session by Acquia's Senior Cloud Systems Engineer Ricardo. We're looking forward to seeing where it goes when it eventually becomes production ready.

Designing Distributed Systems from CommerceGuys CTO looks to provide a good understanding the hard problems at play in distributed systems.

For myself there's so much variety on offer - from undestanding and making sure Ixis will be ready for Drupal 8 next year through to learning from others on how to ensure doing Support is a Blast for the team looking after our clients.

If it's all getting a bit much for your brain then we can definetly recommended the light hearted look at the history of Drupal Blocks which got a lot of great feedback at DrupalDevDays Dublin earlier in the summer.

If you've not yet decided on attending Drupalcon Prague then there's still time to grab a ticket. We'll hopefully see some of you there in September!

Mar 12 2013
Mar 12

If you're trying to trouble shoot problems on a Drupal site and need to get some information out of Drupal then using the command line can get you answers quick.

Traditionally calling any of the Drupal API functions to diagnose something would require peppering your modules with temporary debug code, or writing a whole new module to call API functions and display results.

The command line tool drush is a swiss army knife of useful Drupal functionality, and to make our life easier in calling Drupal API functions for a specific site we can use the 'php-ev' command, often abbreviated to 'ev'. With this command we remove the need to create new modules or adding temporary code to existing modules.

Because the PHP code being run is executed in the context of the Drupal site who's DocumentRoot you are in, you can pull information from the database about entities, users and the inner workings of Drupal.

Examples of useful things you can do:

  • Print a list of all modules which are reacting to a hook being called. Here we're finding all modules that hook in to the cron system to find one which could be executing a drupal_goto() or something equally naughty.
drush ev "print_r(module_implements('cron'))"
  • determine the alias of a system path.
drush ev "print_r(drupal_get_path_alias('node/3614'))"

If you come up with any handy clever ones share them on DropBucket.

Feb 24 2013
Feb 24
teaser image for blog post

Drupal 8 needs as much prodding along as it can get to make the anticipated winter 2013 launch.

With the launch in mind the next worldwide sprint weekend is coming up just after the London DrupalCamp weekend - on the 9th & 10th of March. Yes Mothering Sunday is also on the 10th in the UK so make sure you don't forget those ladies in your life inbetween git pushing code.

The global Drupal event calendar Drupical is doing a nice job of keeping a record of the sprint events coming up over the next few months.

In The UK you've currently got a choice of two venues to meet up and sprint together on Drupal 8 Core issues. Brighton and Somerset user groups are both hosting events across the two days.

If you're new to the idea of collaboratively code sprinting then you'd be well looked after over at the Drupal Ladder project site which aims to get 1% of the huge Drupal community contributing to Drupal core by 2014.

If you're involved with a user group and have some time on March the 9th and 10th to organise your own contribution to the global sprint then you should jump over to the Issue Sprint Guide for a quick read and then get it promoted on Drupal Groups UK as soon as possible.

If you don't live near a publisised sprint venue then fear not - you can still contribute to Drupal 8 issues through the Drupal Office Hours initiative which does a superb job of categorising problems for different types and levels of user wanting to get involved - you don't need to be a developer!

May 17 2012
May 17

Following on from last months initial release of the Cookie Control module for Drupal 7 there has been an increase in blog posts and talk both in and outside of the Drupal world about the implications and solutions to getting sites compliant in time for May 26th 2012.

This week the UK Government revealed that their own sites (some running on Drupal) will not be compliant in time for the deadline! While government websites do not carry advertising, cookies are still used to carry out various tasks, such as helping site administrators monitor levels of traffic.

If people listen to our advice and are prepared to take steps towards compliance there shouldn't be a problem," Dave Evans, the ICO's group manager for business and industry, told E-Consultancy last month. "However, if businesses deliberately stop short of total compliance, then there is a risk."

With under 10 days until the deadline we've been working on improving the Drupal Cookie Control module to provide a more flexible system and allow other Drupal modules which set cookies to be controlled by the central consent button in the Cookie Control pop-up.

Web Analytics now classed ‘Essential’ by UK Government?

As part of the latest Drupal Cookie Control release we've included a sub-module that disables Google Analytics tracking until a visitor gives consent to store cookies.

The other purpose of the Google Analytics sub module for Cookie Control was to demonstrate how to use the new callback integrations from 1.4+ and something I wanted to cover now to help get other modules conforming to the EU Directive too.

But it might not be needed now...

In a recent turn in the news it was suggested that analytics services may be exempt from the privacy directive after all. "It could, in some cases, be seen as an essential part of the relationship."

The UK’s Government Digital Service has taken a contrary stance on Analytics compared to the rest of the EU. It issued guidance to public sector websites that refers to analytics cookies as ‘minimally intrusive’ and ‘essential.’

The consensus was, especially in the case of first-party analytics cookies, these types of cookies are “minimally intrusive” (in line with the ICO guidance) and that the bulk of your efforts to rationalise your use of cookies should be focused on cookies classified as “moderately intrusive”.”

Integrating with Drupal Modules

Modules are most likely adding JavaScript code to the page using drupal_add_js() which in turn is adding cookies. This is how the Google Analytics module and AddThis module work. Other things modules often do is saving data in the global $_SESSION array.

To ensure your module isn't creating cookies on a users machine if they haven't given consent there's a few options. From the PHP side simply checking if the consent cookie has been set for the site works perfectly fine. Each site that has Cookie Control installed will use a unique cookie based on the site name. The cookie name can be obtained by calling the cookiecontrol_generatesitecookie() function. Wrap your code in some logic along the lines of:

<?php
if ($_COOKIE[cookiecontrol_generatesitecookie()]) {
  
$_SESSION['a_variable'] = '...';
}
?>

The same logic and $_COOKIE[] check can be done in a theme to wrap around snippets of JavaScript if a module is not being used.

It is worth noting that the use of server side cookie detection logic will be useless for pages which are cached for anonymous visitors. And as an authenticated user has already had to give consent to just login - consent can be assumed for any non cached page for a logged in user.

If the module is laying down some JavaScript on the client side there's more options. The first thing to do is wrap the existing JavaScript up inside a function. The function name can be anything, although a convention of prefixing it with 'cc' is suggested.

<?php
function ccAddAnalytics() { /* original script code goes in here */ }
?>

If you're trying to modify the script implemented by another module then hook_js_alter() is your friend.

Once the original script code is wrapped in a new function it needs to be added to the list of callback functions to be executed depending on the visitors interaction.

A visitor can choose to to agree to cookies being used, or close the pop-up - effectively not agreeing.

Cookie Control provides three callback list integration points:

  1. hook_cookieaccept_alter(&$callbacks)
    When a visitor clicks the consent button on the pop-up all functions registered here are executed and a consent cookie is created. The main use of this is to trigger analytics for the current page or to reveal on page content that may require cookies such as social widget buttons, Facebook Like buttons etc.
  2. hook_cookiesallowed_alter(&$callbacks)
    If a visitor has a consent cookie set already then whatever functions are registered in this callback list are executed on page load. This is where analytics code should be run. The JavaScript functions registered here can often be the same as used in the hook_cookieaccept_alter() list.
  3. hook_cookiesnotallowed_alter(&$callbacks)
    If a visitor has not given consent then any functions registered here are executed on each page load. This can be used to pop-up a reminder to the visitor about what they are missing, or redirect a user to an information page.

Registering a JavaScript function in any of the above hooks is simple:

<?php
function cookie_googleanalytics_cookieaccept_alter(&amp;$callbacks) {
  
$callbacks[] = 'ccAddAnalytics();';
}
?>

Clearing Up The Cookies

Use of the Drupal module is growing steadily over the past few weeks and is expected to continue growing as webmasters realise how close the deadline is getting.

Drupal still has a few challenges in complying as a CMS. Anonymous visitors are sometimes allocated a session cookie. Something which might not be possible to fix fully soon. However just by installing the Cookie Control module shows that you are take steps towards compliance - and that's what ICO (UK) are wanting to see.

As more sites begin using the module support for more varied cookie control blocking modules may be needed - so get in touch with Ixis if you need assistance in complying.

Cookies in the photo baked by Dries and Karlijn back when Drupal was 6 years old.

Mar 24 2012
Mar 24

The EU Privacy Directive was announced in May 2011 to much groans and disagreement. In 2012 we see the rule being enforced from May 26th - but are you prepared yet?

The UK government has updated the Privacy and Electronic Communications Regulations in response to the EU Privacy Directive but many UK websites have probably forgotten, or chosen to ignore, the upcoming changes with a risk of being fined up to £500,000 for a serious breach of the law.

What is the EU cookie directive?

The aim of this legislation is to increase online security and data privacy, giving users more control over what data can be held about them. It addresses how personal information is held and used.

The legislation forces websites to be transparent about how they are using cookies, detailing exactly what information each cookie holds and how long it will be held, and requires them to actively request permission from their users before cookies can be used.

Previously, the law dictated that websites had to explain how they were using cookies and how users can ‘opt out’. Most sites did so in their Privacy Policies, but this isn’t enough under the new law:  users now have to ‘opt in’, having been made fully aware of the implications of doing so.

How sites reacted to the new requirements has been mixed, and even more difficult for organisations who have had their site custom built long ago and no longer have access to the same developers to shoe horn in the changes.

Thankfully open source content management systems like Drupal bring a number of bonuses to the user:

  • You're not alone having to support the new changes as there's thousands in the same position as you on the same platform as you.
  • It's quite likely somebody has already done the research and solved the problem and can be used as a reference point for others.
  • Use of APIs make it easier to integrate new features around existing functionality on the website.

What cookies are used for

Popular cookies on a large number of sites come from a few sources:

  1. Web analytics software, such as Google Analytics, counts the number of visitors to each page of a website as well as how often the same person returns to a website.
  2. Banner advertising often employed to fund the websites content and development often use cookies.
  3. Having the ability for visitors to log in to the website and customise their experience.

There are lots more - from simple things like having a YouTube video or Google Map embedded on your site, sharing pages with social networking sites, to simple things like allowing the text on pages to be made bigger or smaller and remembering the selected size.

For more in-depth details read the different types of cookie usage and what "level" they fall in to blog post at cookielaw.org

To find out what cookies your site is setting enter your website url on the Cookie Cert database site. It can take as long as two hours for your site to be checked, so don't expect an instant result!

What others are doing

We've taken a look at some UK Government sites to see how they are implementing their own rules.

gov.uk - includes a 'beta warning' modal pop-up which includes a message "N.B. This site uses ‘cookies’ and Google Analytics. Closing this page sets a cookie so you don’t see it again. There’s more information on cookies at AboutCookies.org." Every page also contains a link in the footer pointing to their very clear and helpful cookie information page.

bt.com - this is a really slick and informative user experience for cookies. Click the 'change cookie settings' link in the footer to reveal a pop-up detailing all the cookies being set, their purpose, and a nifty slider to control how many cookies are used.

ico.gov.uk - displays a drab almost hacked in like message box at the top of their site with a consent tick box. A good example of how the cookie consent requirments could damage your sites nice design.

The Solution

cookie control pop-up user interfaceTo address the requirements of the cookie law we need to have consent from the site visitor before any cookies are set. Before consent is granted by a user they should be provided with information about what the cookies will be used for and your sites privacy policy.

The Cookie Control widget from Edinburgh based CivicUK appeared to be an elegant and consistent answer to the cookie requirements. The user interface provided a simple pop-up in the bottom corner of a visitors web browser with minimal options to complicate things.

The Cookie Control is added to any site using JavaScript along with some configuration options to fit with your site.

Drupal gets it easy

For Drupal 7 powered websites Ixis made it even easier with the development and release of the Cookie Control module on drupal.org to wrap up all the configuration options and Javascript code embedding in to a Drupal administration web page, easy!

For developers there's a few JavaScript callbacks to hook in to. These should be used to only execute JavaScript which uses cookies if the user has already given consent. Details can be found on the Cookie Control project page and in the README.txt file provided with the module. One example use for these functions is to only run the analytic tracking code when consent is granted.

CivicUK are working on some new additions to the Cookie Control project which we'll be integrating in to the Drupal module as soon as possible. In the mean time - if you're running a Drupal 7 site for EU visitors it would be well worth considering installing the module earlier than May 26th to ensure you comply.

To find out more about the Drupal module and download the code visit http://drupal.org/project/cookiecontrol

Jan 19 2012
Jan 19

The Nuclear Skills Academy corporate website has grown over the years in to a commerce platform supporting their industry certification alongside their service and corporate information. 

As their virtual learning service has expanded Ixis were briefed to create a more flexible and improved foundation for the Nuclear Skills Academy web platform.

We decided on a combination of Drupal 7 and the Commerce project to re-create the site on.

The original site was based on Drupal 5 and Ubercart for the commerce transactions - along with organic groups with a lot of content and users. The virtual learning was and still is based on the Moodle system which is tightly integrated in to Drupal and Commerce with some custom integration modules.

The project involved a great deal of content and user migration along with discovering many gaps in the Drupal Commerce project. It was the first time we'd undertaken a Drupal 5 straight to Drupal 7 upgrade on a large site and it became apparent that the contributed modules can leave holes in the upgrade process which had to be manually filled with custom migration scripts.

The outcome was a vastly improved content administration environment for the Nuclear web editing team and a neatly integrated commerce system which will enable growth in the virtual learning space.

There are clearly still areas of Commerce which need to be polished off to make it a great viable product for clients to use to the fullest, but the beauty of Drupal allows us to work on and deploy the improvements over the coming weeks and months thanks to Features.

The Nuclear Skills Academy website is the first in a series of client upgrades to Drupal 7 for Ixis.

Sep 12 2011
Sep 12

The Drupal Association Community Cultivation Grants handed out their first round of funding to produce a nice video short from the Brighton Area Drupal Association usergroup (UK).

The video gives a brief introduction to reasons people have chosen Drupal as their content management system of choice for business and pleasure.

If you're local to Brighton and fancy joining these guys each month - find out more about the meet-up on the BAD Ass website.

Aug 18 2011
Aug 18

Designed by Mark D, the Drupalcon London 2011 edition comes in 3 limited edition Union Flag colours and features the grinning Drupalicon on the front and our new branding on the reverse.

Come visit us at our 1st floor booth area where we'll have sofas for a sit down to re-charge your batteries and chat about our support, hosting and development services.

For anybody attending the conference we're also offering 12 months Drupal managed hosting for the price of 10 on our shared Rackspace platform.

The conference exhibitor area runs from August 23rd-25th 2011.

Jun 21 2011
Jun 21

Having been a Drupal exclusive business since inception 7 years ago we've seen Drupal evolve from version 4.6 in to the power of Drupal 7.

We've treated previous Drupal Camps and Drupalcon more as a staff training opportunity - especially for staff moving in to the Drupal field full-time. It's been a great success for learning about new ideas, techniques and even for crash courses on existing components we've not yet had chance to play with at the Ixis office. This year will be no different as we take the whole company down to London for a week of mixing with fellow Drupal users and businesses.

drupalcon gold sponsorFor the London 2011 conference we're a gold sponsor which brings with it booth space to promote our business services of developmentmanaged hosting and Drupal support. If you'd like to learn more about our services, meet us in person for a chat or to simply sit on our sofas and charge your laptop - then hunt us down at the conference.

We will be located at the top of the stairs on the mezzanine level this August.

See you there!

May 17 2011
May 17

The web game Quizible originated from the popular Microsoft Excel spreadsheet picture based games from the late 90's.

The Drupal powered site was developed as part of an in-house training month at Ixis. The mobile project came about as we looked for a new way to utilise the data Quizible had collected.

The Drupal Benefit

Drupal allowed us to offer users the ability to make their own quizzes and for everyone else to play them whilst achieving a score on the leaderboard. Over the next two years Quizible was featured on Techcrunch, it became popular on social sites such as Stumbleupon and Facebook - gaining over 20,000 users and hundreds of user generated quizzes.

The quiz data held in Drupal is built on the node system - each question is a single node and in turn a collection of nodes were attached to a quiz node by means of multiple node reference fields. The storage of quiz data like this meant it's very easy to re-cycle the data for other uses.

Over the years we noticed the Quizible website was being accessed using various Apple iOS devices using the Google Analytics module. Playing a quiz on the Apple iPad was reasonable but the iPhone was awkward to enter text in to the answer box due to the standard iPhone pop-over keyboard.

The Mobile Interface

When the mobile development began the alternative frameworks such as PhoneGap and Titanium Appcelerator were very rough and incomplete. So we opted for the traditional route of Apples Objective-C programming language.

The Apple user interface already has a common image browser control known as "cover flow" in the iPod application. We made use of this and populated it with the images for each question - simply using a different ImageCache preset to resize the original image to fit the small screen.

Taking on board the problems of text entry on a small screen we devised a new answer input system for the mobile device. The hangman style letter input cut the amount of key presses required to input the answer.

The Data Integration

The Quizible mobile game was to be distributed with no quiz data bundle - meaning users could pick what quiz they wanted to try before downloading all the image data. We needed to keep the over-the-air data transfer as small as possible to make it playable over 3G networks whilst players are on traveling to work or idling out in public.

The Drupal node data is served over HTTP using a combination of the Services package and Views with Views Datasource providing the JSON output style. The iOS application was given an authentication key used to authorise itself against the Quizible RPC server when requesting data. We chose the JSON-RPC server module for encoding the data during transit - this version of the JSON server was selected for its compatibility with the JSON framework for iOS.

As the Quizible website already has a number of Views configured to return latest quizzes, list of taxonomy categories, top rated quizzes etc we built on these by simply adding a new View Display with a JSON style formatter. These views provided the read-only data consumed by the mobile application to power all its main screen menus.

The RPC Services provides user login capability and access to actual quiz data - including the answers, hence the need for key based authentication for this data. Score submissions for the mobile leaderboard are also carried out with the RPC service.

The development of a custom RPC service module was relatively straight forward as it's nothing more than a hook_menu() like structure of methods and associated callback functions accepting arguments in hook_services() and processing data before returning it for encoding as JSON data and sending to the mobile device.

User Authentication

We'd built up a considerable Drupal user database over the year - so it was essential we allowed these users to login and use their existing account on the new mobile application. However we didn't have time to create a user registration process for the phone and we still wanted users to be able to record their scores on our leaderboard.

Facebook connect was the obvious integration, allowing us to provide new Quizible users with a quick way to get going without having to visit the quizible.com site to register for an account. When a user authenticated with Facebook we get their Facebook unique ID and send it to a custom login RPC web service which checked to see if the Facebook ID maps to a Drupal user ID. If a match is found the Drupal $user account object  is returned. If no association to a Drupal user is found, a new Drupal user account is created and a mapping to the Facebook ID is added. The login service then returns the Drupal $user account object back to the mobile application for use with the mobile leaderboard.

Keeping Score

Our mobile game didn't have the same user interface as the web based version so the scoring system had to work in a completely different manner. This meant providing a dedicated leaderboard for users to compete on.

Two types of score leadboard exist - the per quiz leaderboard, and the main global leaderboard. We also needed to keep the score per quiz-question as users could re-visit any quiz to see their previous progress - and the score per question was based on how many right and wrong letters they had guessed so far. We left the per question score calculation to the iPhone app as it would prove to expensive to be calculating this on the server during submission.

When scores were submitted back to the Drupal webservice it triggered a re-calculation of the users overall score for the global leaderboard, and cleared the leaderboard cache to show the new scores.

Keeping the leaderboard up to date posed some challenges for us. 

There was never a definitive end to a quiz, so when should the score be added to the leaderboard? We opted to cache the score in the iPhone application and resync when a user exited a quiz.

What if the user was off-line when they finished a quiz? The application stores a list of all quizes and scores. The network connection was checked regularly in the background and when a connection is made the scores are submitted back to the Drupal site via a custom webservice. The actual leaderboards are still visible whilst offline by using a HTML5 Manifest cache.

Performance

We've read many stories about how iPhone applications had exploded in popularity and killed servers due to traffic overload. The problem was in the back of our mind whilst building the Drupal backend of the iPhone application.

The main Quizible website is backed by Varnish caching for the pages - but this wasn't possible for the JSON web service calls to be cached so all webservice communication is carried out on a sub domain aliased to the same server. This allowed Varnish caching to be ommitted from the domain and gave us scope for moving the mobile API off to its own front end server in the future if traffic demanded it.

Launch

The approval process was mostly painless - the initial rejection from Apple was regarding user generated content of questionable copyright content - mainly Disney and Pixar movie stills (I wonder why? :-) )

Thankfully Drupal's CCK, Views & Rules tools made it easy to build a Quiz moderation queue, flagging to indicate the Quiz was "mobile friendly", and an email notification system to alert moderators that new Quizes were available for review! After showing our co-operation to Apple the app was approved for sale.

Our launch timing could not be more perfect - we hit the Apple AppStore Christmas eve deadline perfectly - meaning no other apps would be approved until after the Christmas holidays, giving us some opportunity to get noticed in the new releases ... maybe. 

Marketing

The app went live just before Christmas, we submitted a press release and posted various promo codes on popular forums such as Touch Arcade and twitter.

On the existing Quizible site we decided to redirect users using iPhones or iPads to the dedicated promo splash page by simply checking the useragent of the client. Little tweaks like this have helped to bring in additional sales each day.

After the initial launch we managed to hit the top 10 in the trivia games category which resulted in a large increase in sales, we also gave the application away for free for one day which saw it jump to number 1 in the free trivia section (and as a knock on effect we went to #1 in the trivia section in Taiwan!)

Quizible hasn't quite had the success of say Angry Birds but continues to make modest revenue which is nice given the project was initially a proof of concept in Drupal!

Sep 09 2010
Sep 09

Come and join our well established web development studio as the lead developer of our PHP based team.

We build interactive sites of no fixed type, so every project can be very different to keep you on your toes! You'll be involved with a number of projects at any one time ranging from international brands to charities and start-ups. We also run several internal projects which you'll have chance to provide input and development for - this is where we often experiment with new ideas first.

Ideally you'll have several years (3+) PHP experience, but also the knowledge of best practices when working as a team on projects. It will be your responsibility to take the lead on technical decisions for projects.

Key Skills we're looking for are:

  • PHP 5, OOP.
  • Javascript & frameworks such as jQuery.
  • SQL & query performance analysis.
  • Development methodologies & code control for iterative release processes. We're moving to Git for SCM.
  • Performance and scalability techniques.
  • Strong problem solving and debugging skills
  • Excellent verbal and written communication skills for client interaction.
  • Excellent organisational skills, including the ability to work under pressure in a fast paced environment across multiple small and large scale projects.

Your work will cover a variety of areas, including:

  • Building new applications and sites in PHP from the ground up with the Drupal framework.
  • Extending existing Drupal projects which may have been developed outside of the company previously.
  • Providing email and phone technical support around Drupal projects we've built for clients.
  • Experimental mobile application development using web technologies.

As you may notice, we love Drupal! So previous experience of the technology and API is helpful but everybody in the team is on hand to provide help when needed. There's a chance to play with the latest technologies and contribute back to the Drupal open source community as part of your daily work.

The majority of your work will be carried out on-site in our office1 in Daresbury, Cheshire, UK, but there will occasionally be some travel involved for client meetings in London and anywhere in-between. Therefore this position will only be suitable for UK residents who are already located in the North West of England or who are willing to relocate to the area.

Why Work For Ixis?

We've been in the Drupal business for over 6 years, it's all we do. We think it keeps our staff focused and highly skilled by avoiding the distraction of Wordpress, Magento or Joomla.

We run a fun, friendly, and relaxed office environment as well as beer in the evening opportunities outside of work. Our office hours are flexible to work around busy traffic periods.

We aim to give all staff members as much opportunity for suitable training as possible. This year we took the whole development team to the Drupal conference in Copenhagen for a week. PHP5 Zend certification is also available.

Salary: £negotiable - Tell us what you're worth and why.
Hours: 8 hours a day to be taken between 8:30am and 6pm.
Apply: Submit a short cover letter, salary expectation and a copy of your CV via our online application form.

1 ability to play Pool is not a requirement for the job.
NOTE: Job agencies need not apply. We're not interested. Thanks.

Job position filled

Jul 07 2010
Jul 07

That's right - the Ixis team will be descending on Copenhagen for a week of all things Drupal. The twice a year international conference for all things Drupal is being held in Copenhagen between 23rd and 27th of August.

We'll be in Copenhagen from the 20th August until the 27th and would love to meet anybody who we've worked with or spoken to over our six years of Drupal goodness - so please track us down or send a message to arrange a meet-up.

If you'd like to talk to us about building your next project, our fully managed Drupal hosting or our support service for your next Drupal project then give us a shout by email or Twitter @ixisit.

Mar 19 2010
Mar 19

A recent request from a client was to improve the Views 2 exposed taxonomy filter so that it intelligently hides taxonomy terms which aren't related to any of the content returned by the View query. As anybody who has spent time poking about in Views vast configuration panel will know, this isn't possible through the existing Taxonomy handler.

Stackoverflow.com had a few posts from users requesting the same functionality, and replies from others saying it wasn't possible with Views 2. Well the good news is: it is possible, right now, without hacking Views.

For our specific project then taxonomy list was to only list the terms which related to the nodes returned by the initial (un-filtered) View display query. Once taxonomy terms are selected and the filter applied the taxonomy term list still needs to show a list of terms from the original query of nodes, not the currently filtered list. This prevents the taxonomy term filter from slowly shrinking down without providing a means to go back to other taxonomy terms.

The solution was to take the default taxonomy filter handler in Views core and modify it as a replacement handler.

To make the traditional multiple select list more user friendly (no CTRL click rubbish) we added a layer of jquery thanks to the Simple Multi Select plugin and some CSS in the sites theme to show tick box images next to the selected items.

The developed code is now available on drupal.org. Be sure to pay attention to the side effects of using this filter.

Mar 19 2010
Mar 19

Ixis worked with Manchester based agency Worship Digital to produce a great multi-media based community site for the legendary Haçienda club brand in Manchester (UK).

The project included the usual News section for promoting upcoming activities and history of the nightclub, and alongside this an events area which allowed pinning an event on the world map using a custom Drupal CCK field.

Media from the past and present was a big requirement to present an archive to the public. Old video footage from as far back as twenty years ago was collated from YouTube and presented as a thumbnail gallery through the use of the YouTube API. The photo gallery provided a categorised collection of the 'then' and 'now' clubbing photos with the fans, artists and DJs which performed. We built the gallery using Views, Attachments, CCK and some custom jQuery for the meta data pop-ups.

Ubercart was used to sell digital downloads of audio singles, mixes and full albums, as well as physical products such as CDs and books. We combined Ubercart with affiliated links to off-site suppliers for some products but kept the look of the Shop as streamlined as possible.

The Haçienda has been well known for its music, so it was important to give visitors a taste of past and present mixes from the famous artists. Using some custom code we provided a voting count as people listened to the audio mixes on-site. Mixes are categories and include links to the artist/DJ bio which also ties in with the same Artist bio for the future events.

The project was a great experience in doing a lot of custom theme building from the many superb page designs. It shows how you can make Drupals output look a lot different from the normal linear web forms and blog-like content lists.

The project needed to cater for spikes in traffic as events are promoted in addition to the 24/7 streaming of hour long audio mixes. It was recommended that the project was hosted on transparent scalable hosting from Rackspace in the cloud. To help with the slower speeds of Cloud based hosting in the US we provided additional performance enhancing using the Boost component for Drupal.

About Drupal Sun

Drupal Sun is an Evolving Web project. It allows you to:

  • Do full-text search on all the articles in Drupal Planet (thanks to Apache Solr)
  • Facet based on tags, author, or feed
  • Flip through articles quickly (with j/k or arrow keys) to find what you're interested in
  • View the entire article text inline, or in the context of the site where it was created

See the blog post at Evolving Web

Evolving Web