The Third Most Popular CMS is....Website Tonight

Posted 15th August 2011

I noticed some­thing this week while look­ing at the lat­est CMS usage sta­tis­tics from BuiltWith Trends that sur­prised me. BuiltWith Trends pro­vides infor­ma­tion on the usage of var­i­ous tech­nolo­gies across the web — includ­ing CMS’s, — and it’s of lit­tle sur­prise that they have Word­press up there at no#1 and Joomla! a lit­tle way behind in sec­ond. What came as a sur­prise to me was that up in third was a CMS called “Web­site Tonight”. That’s ahead of Dru­pal, which I had always con­sid­ered one of the “Big Three”. Per­haps tellingly, in sep­a­rate sta­tis­tics for the Top Mil­lion sites (accord­ing to data from Quant­cast) it drops down to sev­enth, and out of the top ten CMS’s alto­gether when you get to the “top ten web­sites”. I’ll be hon­est — I’d never heard of Web­site Tonight. On its inaus­pi­cious web­site, Web­site Tonight to be: “an Internet-​based Web site cre­ation tool that enables users to build and pub­lish Web sites in a few sim­ple steps. An easy-​to-​use turnkey solu­tion, Web­Site Tonight guides the user through the entire process of out­lin­ing, build­ing, ana­lyz­ing, opti­miz­ing, and, ulti­mately, pub­lish­ing a Web site to the Inter­net.”. I sus­pect what’s key on this site is the but­ton enti­tled “Become a Reseller” — pre­sum­ably they pro­vide white-​label web­site cre­ation tools for these “build your own web­site” web­sites. It does appear that, amongst oth­ers, the prod­uct is avail­able as a ser­vice through the likes of GoDaddy. Either way, it’s a sur­pris­ing sta­tis­tic yet one which I don’t believe will affect my deci­sion as to what tech­nol­ogy to con­cen­trate on for now — on my head be it! If you hap­pen to know any more about Web­site Tonight, do let me know in the comments.

Facebook Canvas Pages to Require SSL Certificates

Posted 8th August 2011

On the first of Octo­ber, Face­book will make another change which could have a sig­nif­i­cant — and poten­tially costly — impact to your appli­ca­tions and pages. As part of its lat­est moves to increase secu­rity across the plat­form, in addi­tion to OAuth adop­tion they will expect that your can­vas appli­ca­tions to be hosted at a secure address (https). If a user browses to your page via https — and mil­lions are begin­ning to change their set­tings so that they are — instead of your lov­ingly crafted con­tent, they’ll see the fol­low­ing warning:

Facebook warning: We can't display this content while you're viewing Facebook over a secure connection (https)
When view­ing a page with a Can­vas appli­ca­tion hosted at a non-​secure address, but when the user uses https for Face­book, they will see this message.

The Laravel PHP Framework: A Walkthrough

Posted 5th August 2011

Lar­avel is the new kid on the block of PHP frame­works, and whilst in its early stages of evo­lu­tion (the author wrote it, he says, in the early part of 2011) it does promise — and deliv­ers, from what I can tell — an expres­sive syn­tax and an ele­gant (indeed, you might say elo­quent) ORM. Lar­avel is a fully Object Ori­ented MVC frame­work which makes exten­sive use of fea­tures new or recent to PHP — you can for­get about run­ning it on PHP4. With PHP5.3 com­pli­ant name­spacing mech­a­nisms as opposed to, for exam­ple, Zend Framework’s pseudo-​namespacing, it’s cer­tainly what you might call a mod­ern framework.


In Lar­avel you define routes — which, stay­ing true to the REST­ful par­a­digm, are defined not just as URI’s, but accord­ing to the HTTP oper­a­tion they are to react to. Thus, instead of defin­ing a route such as /about-us you would define a func­tion to respond to a GET request on that URI, which is done using a clo­sure which looks reas­sur­ingly like JavaScript:

A Concrete5 Development Tutorial; Creating a Quote Block

Posted 7th July 2011

I needed the means to add a quote to a web­site I was work­ing on — a sim­ple task, which could be acheieved by sim­ply adding a text or HTML block. How­ever this can be taken a step fur­ther by imple­ment­ing a sim­ple block type specif­i­cally for quotes, with the markup gen­er­ated for you.

To mark up a quote seman­ti­cally, we’ll want a blockquote for the con­tent and a cite for the source (or author), so the HTML needs to look some­thing like this:

<p>It is the mark of an educated mind to be able to entertain a thought without accepting it.</p>

…which will give us some­thing a lit­tle like this:

Creating a Concrete5 Package: Integrating the Craftyslide JQuery Plugin

Posted 5th July 2011

In this sim­ple tuto­r­ial, I’m going to show how Concrete5 can be extended to inte­grate a third-​party JQuery plu­gin to enhance an exist­ing mod­ule, and then how this can be encap­su­lated in a pack­age. I’m going to allow the slideshow mod­ule to dis­play images using the clean & light­weight Craftys­lide plu­gin, pic­tured below.

The Craftyslide JQuery Slider plugin in action
The Craftys­lide plu­gin in action

Concrete5 comes shipped with sim­ple slideshow func­tion­al­ity in the form of a block called, imag­i­na­tively enough, slideshow. As this is part of the core you can find it in /concrete/blocks/slideshow. It’s in the con­crete direc­tory to keep it sep­a­rate from cus­tom code. And some cus­tom code is what we’re going to pro­duce — to over­ride the out­put of that block, and then to encap­su­late this into a package.

Taxonomy Colour: Drupal Module Development Tutorial (Part Two)

Posted 4th July 2011

In the first part, I looked at cre­at­ing the data­base schema for a sim­ple Dru­pal mod­ule designed to allow you to asso­ciate colours with tax­on­omy terms. In this sec­ond part, I’ll look at the admin­is­tra­tion aspects of the mod­ule. In essence, what we need to do is as follows:

  • Since colour-​coding may only be appro­pri­ate to cer­tain vocab­u­lar­ies (e.g. cat­e­gories) and not oth­ers (tags, per­haps). We need to pro­vide the user with the option to spec­ify which vocab­u­lar­ies are applicable.
  • The user needs to be able to spec­ify a colour when adding or edit­ing a term, where appropriate.
  • We need to pro­vide a mech­a­nism which allows the colour asso­ci­ated with a term to be stored, retrieved, and to be displayed.

A Look at the Concrete5 CMS

Posted 28th June 2011

There are so many Con­tent Man­age­ment Sys­tems (CMS’s) out there that due to the sheer vol­ume of choice it’s easy to plump for the best known options, such as Dru­pal, Joomla! and Word­press. How­ever there are times when these “flag­ship” CMS’s might not be the best option. Dru­pal, for exam­ple, can be overly com­plex and bloated for fairly sim­ple web­sites (per­son­ally I’ve often thought of it more as a frame­work any­way), or Word­press might be too spe­cific for a site that’s not strictly a blog. I’ve long wanted a good, easy-​to-​use, stripped-​down but exten­si­ble — alter­na­tive, and one such option I’ve looked at recently is Concrete5. Concrete5 has gone from being a com­mer­cial prod­uct to MIT-​licensed Open Source and makes some pretty bold claims about being easier-​to-​use and bet­ter coded than Dru­pal or Joomla. But does it live up to these lofty ambi­tions? And how does it com­pare to Dru­pal, Joomla and so on?

Granting Ad-hoc Access to Drupal Content (Nodes)

Posted 16th June 2011

Drupal’s per­mis­sions sys­tem pro­vides suf­fi­cient flex­i­bil­ity to cre­ate an Edi­tor role or sim­i­lar, enabling a site user to review or option­ally edit con­tent prior to pub­li­ca­tion. But what if you sim­ply want to allow some­one to view unpub­lished con­tent on an ad-​hoc basis — per­haps you wish to get a col­league to look over a new blog post, for exam­ple — with­out hav­ing to cre­ate a role, or you sim­ply wish to restrict it to one par­tic­u­lar item of (unpub­lished) con­tent? Step for­ward Peek, which allows you to do just that. Sim­ply des­ig­nate a con­tent type “peek­able”, then depend­ing on the set­tings per-​content type, set your node as “peek­able” too. You can then grant a “peek” — a win­dow of time dur­ing which a spec­i­fied user can, by fol­low­ing a spe­cial link, gain read-​only access to that node. You can con­fig­ure an expiry time, the length of time it’s valid for and opt to be noti­fied when the con­tent is accessed. It’s a great lit­tle module.

Drupal Module Updates via iPhone Push Notifications

Posted 12th June 2011

If you’ve looked after a Dru­pal web­site for any length of time you’ll know that you should reg­u­larly update mod­ules, themes and most impor­tantly the Dru­pal core as-​and-​when updates become avail­able — secu­rity updates, at the very least. The Update Sta­tus mod­ule (now in core) is great for sum­maris­ing what needs updat­ing (if you haven’t enabled that mod­ule, you really should do), but if you really want to stay on top of those updates then there’s a fairly sim­ple way in which you can get them sent to your iPhone (or indeed iPad) as a push noti­fi­ca­tion. Here’s how. First, you’ll need to down­load Prowl from the App Store — at the time of writ­ing it costs £1.79, or $2.99 in the US. Next up, you’ll need to cre­ate an account on the Prowl web­site. Then, you will need to gen­er­ate an API key — you can cre­ate as many of these as you wish, and there’s no addi­tional charge for doing so. As you can see from the screen­shot below, the API Keys tab shows any exist­ing keys, and the form at the bot­tom is used to cre­ate a new one — all you need is a note to remind your­self what it’s for. Enter some­thing to do with the site you’re adding, e.g. “My Dru­pal Web­site” and hit Gen­er­ate Key

Creating a Mobile Drupal Website with Mobile Tools, Nokia Mobile and Browscap - Part One

Posted 8th June 2011

With a few handy con­tributed mod­ules, cre­at­ing a mobile ver­sion of a Dru­pal web­site can be sur­pris­ingly pain­less. In this series of posts, I’ll run through one approach for doing so, using a few of those mod­ules and themes.

Why cre­ate a sep­a­rate mobile version?

You don’t always need to cre­ate a sep­a­rate ver­sion at all, of course. Using respon­sive web design tech­niques — includ­ing media queries — sites can be re-​worked to dis­play bet­ter on mobile devices; how­ever to do so may not fully utilise the ben­e­fits of cer­tain mobile fea­tures, has a num­ber of key inef­fi­cien­cies and a one-​size-​fits-​all approach ignores the fact that mobile users might have dif­fer­ent moti­va­tions for access­ing and using your site. (I’ve writ­ten about this before.) Instead, it’s rel­a­tively easy to chan­nel your con­tent to mobile devices with­out just using respon­sive design tech­niques — which might help you tweak how you’re show­ing your site con­tent, but not what you’re showing.