EEUK held at the Bridgewater Hall Manchester

Expression Engine UK 13 Conference Highlights

Unbelievably it's been over 1 year and 8 months since the last (and first EE UK [11] conference). I have fond memories of EEUK as I met many fellow EE developers during the day – more in the pub after, and made a few new friends. As EE is my CMS of choice, getting to meet the community in person, including the 'stars', is something not to be missed. As ElisLab is a US company the 'big' conferences for EE and CI are in the US, the closest to me is in Amsterdam. It's also it's important to support something that's, 'on your doorstep'. Conferences are a lot of work, so as long as I'm developing in EE, for me EEUK is a no-brainer – I bought a ticket on the day of release.

At the last EEUK I met among others Geoff, the guys at Electric Putty, Carl from Hippo, Richard and Ian.

Of particular note: that night, over a few pints, Mr Wiggins talked about starting his own conference. Since then Richard and David have setup and run the highly successful MKGeekNight. I keep meeting so many awesome people!

I can't say enough how much I was looking forward to EEUK 13.

Venue

This year the conference was held at the Bridgewater Hall in Manchester, a venue Ian was really pleased to get. Last time it was at Manchester's Old Town Hall, although I'm a modernist at heart, the Old Town Hall was quite special with it's miles of wood panelling and stained glass windows. Like last time there was about 100 attendees, a perfect amount. With those numbers if you're really keen to it's possible to talk to everyone! Either way it felt like an intimate affair. As nice as Bridgewater Hall is, I did prefer the Town Hall.

As usual when trying to find places in Manchester I walked past it twice – it's not a small building but I always manage to end up at the back of where I'm going – tradesman's entrance again. The morning started at 9.00, first speaker at 10.00. The foyer had tea and coffee at the start and in each break, so everyone could chatter about the presentations and get to know each other (or that hideous word – network).

The conference room was grand in a different way to the Town Hall. High ceilings, not just high, really high ceilings (see image below, the wall went up about an screen again). All the boxes were ticked: descent sound system, mega projector, seats! There was wireless internet but I didn't bother as my 3G signal was good enough, it was apparently patchy at best.

Ian opening EEUK

Speakers

Ian Ebden

Ian comes across as the reluctant host and joked that he wouldn't do this again. Maybe he was like the proverbial duck (frantic below the surface) but as a delegate everything felt calm and worked like clockwork. He said he was nervous but it didn't show. A 10 minute hello and we were on to the 1st speaker.

John Henry Donovan

Learn how you can make the largely underused Dashboard a useful stop for your clients, using add-ons and custom widgets.

John's talk in 2011 was excellent, a talk I still reference now and then. For the 1st half John talked about his working methods, leading on to how to customise the EE CP for your clients benefit. I very much share his ethos on working practices - going that, 'extra-mile' is an important part of delivering a quality product. John had researched the available Themes like: Republic CP and Nerdery, CP enhancements like: Zenbu, Zoo Flexible Admin, and finally how to make use of EEs awful Home Page using Dash-ee, that screen we tell all clients to ignore! I researched most of these including Dash-ee earlier this year, the results of which are going out latest site build. Hopefully they'll be a rush of Dash-ee Widgets, it's a great Add-on.

My only criticism was with John's delivery, no one expects a dance-show but it was a very subdued start.

Slides: ‘Bending the EE Control Panel’ Slides and Resources'

Ben Croker

What happens when you step outside of the box that is the CP? Ben demonstrates what he believes is EE’s missing feature, and makes you rethink how you can manage content.

Quite simply this was a revelation. At first I was unsure what the problem was or what this was solving. I've made a few Addon's for projects and EE 2's Channel API has been perfect, much easier than EE 1. I've only ever wanted to get data out of EE, and apparently that's the problem! Ben released OpenAPI, which really opens EE up to get data in and out, awesome work.

Ben's Developer Addon is a default install for me, so it was great to have a long chat in the pub after.

Slides: ‘Expression Engine's Missing API'

Joel Bradbury

Joel takes a look at ExpressionEngine hybrids, and explores how EE can work with or alongside other tools like Laravel.

I'm sure we all related to Joel's talk, the twisted Frankenstein's monster that large scale sites turn in to. It's not ideal but it's common as business decisions dictate tech choices, throw away and rebuild/refactor everything or add on something new? Joel showed how to get WordPress running inside EE's templates – nasty but possible!

Tim Mahoney

Get some great ExpressionEngine database optimisation and performance tips, techniques and advice.

This was a surprise presentation, outwardly really dry material, so Tim did a great job of keeping us engaged (kudos as I think this was his first presentation). Chatting about this in the coffee break with other delegates it was generally agreed this is an area none of us realised we could optimise. Along with crushing images, minifying code, caching EE, you can add to the list tackle MySQL!

Slides: 'MySQL & Expression Engine'

Chris Mills

Don’t know your CSS Columns from your Flexbox? Don’t worry. W3C Fellow, Opera dev and author Chris Mills has you covered.

Chris was another non EE related speaker (hat-tip to Ian and Joel for the diverse talks). Chris focused on Front-end Dev. I'd guess it's far more unusual to be an EE only dev, I'm sure most of us are all round Web Developers. As EE is a paid product it's biased to the professional Developer. That was my only criticism, there was a room full of experienced, senior devs and the 1st half of the talk was just too basic. It has to be difficult judging a rooms level though. Once we started getting in to un-finalised CSS modules like Flexbox and Grid, things picked up. Lots of useful insight on how these are likely to work. Same height columns – hallelujah!

Slides: 'Future Layouts'

Carl Crawley

Carl offers his thoughts on the best ways to approach multilingual setup and content management.

Ah, the perennial issue of multilingual sites. Carl did a great job of listing out the issues and decisions to make. As usual, it's all in the planning – knowing how the site will work once live. Interesting to see that Carl wasn't keen on Transcribe due to it's performance.

Christopher Imrie

Chris shares some simple configuration and performance wins, covers some great add-ons to maximise client productivity, and even some unique mobile templates.

It's always good to have something brand new unveiled for the first time at a conference, and EEUK ended with a grand finale. Chris Imrie (and Eric Lamb, but not talking) unveiled [Entry Analytics] (have http://devot-ee.com/add-ons/entry-analytics). A lovely designed in-CP dashboard of Google Analytics. Not just simply a re-show of the standard Google Analytics Dashboard though, this can be fine-tuned to individual entries. It was very impressive and in Apple style, available to download as the talk finished!

Slides: 'Boundaries & Ideas'

After Party

It's a UK conference so obviously the after party was in the pub, Rain Bar. There was more buffet food to stop us getting absolutely hammered, and lots of conversation. At one point I realised we'd gathered an impromptu Londoneers meet-up with John, Sam, Simon etc but I managed to chat with quite a few familiar online faces, a few for the first time. I had a really good conversation with Mr Croker about EE's poor help guide, hopefully something will come of that as we were both keen on some collaborative coding.

Conference Badge

Conclusion

Yet again the conference was really well organised, Ian Ebden and Joel Bradbury did a great job. Everything was spot-on: venue, talks, refreshments, etc. I learnt a few things and had a great time meeting fellow EE devs. Ian joked that this was the last one (again), I really hope it was a joke – here's to EEUK14!

Up and running in 5 mins

https://developers.google.com/analytics/devguides/collection/gajs/gaTrackingEcommerce

http://online-behavior.com/googleanalytics/tracking-ecommerce 24:00

Be very careful with Google's requirements. You must have an SKU, and it must be unique. Commas in a number will be read as decimal points. Currency signs create problems. Don't use them.

Some common issues include non-unique SKUs. JS errors, programming errors, reloads of receipt page, and users who have JS or cookies turned off.

The below code is for CartThrob and ExpressionEngine.

{exp:weblog:entries weblog="orders" limit="1" parse="inward" disable="categories|member_data|pagination|trackbacks" entry_id="{embed:entry_id}"}

    {!-- <!-- 
        Google Analytics tracking code
     --> --}
    <script type="text/javascript"> 
    _gaq.push(['_addTrans',
    '{entry_id}',               // order ID - required
    'Client Site',              // affiliation or store name
    '{order_total}',            // total - required
    '{order_tax}',              // tax
    '{order_shipping}',         // shipping
    '{order_billing_city}',     // city
    '{order_billing_state}',    // state or province
    '{order_billing_country}'   // country
    ]);

    // add item might be called for every item in the shopping cart
    // where your ecommerce engine loops through each item in the cart and
    // prints out _addItem for each 
    {order_items}
    _gaq.push(['_addItem',
    '{entry_id}',               // order ID - required
    '{item:title}',             // SKU/code
    '{item:products_title}',    // product name
    '{item:size}',              // category or variation
    '{item:price}',             // unit price - required
    '{item:quantity}'           // quantity - required
    ]);
    {/order_items}

    _gaq.push(['_trackTrans']); //submits transaction to the Analytics servers

    </script>

{/exp:weblog:entries}