Skip to content

Instantly share code, notes, and snippets.

@jamiepittock
Created May 16, 2012 06:42
Show Gist options
  • Save jamiepittock/2708107 to your computer and use it in GitHub Desktop.
Save jamiepittock/2708107 to your computer and use it in GitHub Desktop.
An old Jambor-ee article: A future recipe for ExpressionEngine?

Written by Simon Rudkin (@simonrudkin), this article was originally published on the now defunct, mythical EE fansite Jambor-ee (beautifully crafted by @jamiepittock for at least 3 weeks) back in January 2009.

I was reminded of it after reading the recent chatter on Twitter and various blogs about ExpressionEngine and themes so thought it was worth republishing.

A future recipe for ExpressionEngine?

January 28th 2009

I’ve just finished making a really tidy events calendar using ExpressionEngine. It keeps the events in one weblog, venues in another, uses custom fields to add a Google Maps link for each venue, and pulls it all together in a template group that splits events into upcoming and archived. Just the kind of project that EE handles with aplomb, and I’d love to share it with you but, erm… well, that’s the problem.

I suppose I could send you the templates as text files, and give you a description of how I’ve setup the relevant weblogs and fields. Or I could dig into MySQL, dump out all the relevant data and hope you can work out how to import it all into your ExpressionEngine site.

Sounds like a bit of a faff, right?

Let’s think about something else. How many of you professionals in the audience make website after website with a fair amount of common functionality? I’m sure a few hands went up. Could be a news section, could be a staff directory, could be the kind of events calendar I talked about previously.

If you work anything like I do, you might have a common install, maybe a set of standard start-off templates, but there’s no kit of parts that could give a new team member a flying start. No easy, friendly and ExpressionEngine-esque way to package-up the apartments-to-rent functionality from Site A and squirt it into Site B.

One more scenario to labour my point with. My friend has a great idea for a blog, she knows a little bit of HTML from a course about ten years ago, and she wants to get up-and-running before her inspiration heads for the hills. Most of the bloggers she knows use Wordpress, but I tell her about this ExpressionEngine thing which is like loads better, dude.

She does the ExpressionEngine install and then starts looking for some themes, skins, templates whatever they’re called, just like her Wordpress chums use to personalise their sites. But strangely, there aren’t any, and after two weeks faffing about, trying to mate ExpressionEngine to a three-column CSS layout, she installs Wordpress, downloads the Kubrick theme, makes the header pink and gets blogging.

When my hypothetical blogging friend asks me about this dearth of themes, skins, templates for ExpressionEngine, I’ve got an explanatory quote to hand:

You fall into the category of the rare user that does want a pre-cooked theme anyway.

Sound familiar? I’m sure this reminds me of an old anecdote about a steakhouse that thinks the world doesn’t like eating fish, but I can’t quite remember it.

OK. Perhaps it’s time I stopped the sarcastic bitching, and got down to some practicality. After all, “most of you are designer superheroes and would never use a stock theme anyway”.

As an aside, who would win in a fight between a designer superhero and a javascript rockstar?

Where was I? Practicalities, right. We all know how the open-ended, super-flexible, build-what-you-want nature of ExpressionEngine means that creating a skinning or theming setup is more problematic than doing the same for a system which uses more restrictive and fixed mark-up. And I’m sure we’ve all banged our collective heads against content management systems with a hard-baked structure. But as a fellow ExpressionEngine fanatic said to me, “you can build what you want with lego, and that doesn’t stop it being sold in kits”.

Now, come the launch of 2.0 the situation will hopefully be different. The forum post that I’ve been misquoting gives a tantalising glimpse of how we’ll all be bundling templates in and out of ExpressionEngine come the new version.

And I’m really hoping this extends to include all the elements that go together to make an ExpressionEngine site or setup. That’s right, I want to mash together not just templates, but also weblogs (and the data in them), custom fields, categories and even the odd status group, for good measure.

This isn’t just a personal wish-list; I’m absolutely convinced this would bring massive, massive benefits to the ExpressionEngine community. So let me count the ways.

  1. Firstly, it opens up a much wider ‘ecosystem’ of add-on developers and therefore available add-ons. Currently, the entry-bar is very high. To develop plugins, extensions and modules you need PHP skills, you need an understanding of how EE works internally and most importantly you need a comprehensive general knowledge about EE’s strengths and weaknesses. The very nature of these bolt-ons means developers are almost certainly scratching their own itch.
  2. Secondly, it increases the appeal of ExpressionEngine for non-technical or semi-technical users. The Wordpress install-and-theme crowd would have an easy entry and who knows what the might go on to do with ExpressionEngine? And giving a helping-hand to this potentially huge new market would do nothing to hinder the suitability of EE for the current more advanced audience.
  3. Thirdly, an expanded ExpressionEngine ecosystem benefits everyone involved. Think how the vast array of iPod accessories fuels iPod sales and vice-versa. And think what a large part of this market is made up from cases, sleeves and skins where it’s far more about adding personalisation than protection or more complex features.
  4. Fourthly, making ExpressionEngine more consumer-friendly differentiates it neatly from CodeIgniter. Does EllisLab really want two developer-only tools in its line-up?
  5. Fifthly, it makes things much easier for the current hard-core of EE users. I’d love to start a project by selecting and installing relevant templates / weblog / field / status / category bundles from my ready-to-roll library.
  6. Sixthly (is that really a word?) it provides a much better learning resource for new users. The whole ‘it can be anything you want’ nature of ExpressionEngine can makes things daunting for new users. What’s the best way to transform proposed site sections into weblogs and categories? How should I handle navigation? Human nature makes editing easier than creating, and digging into a stock library of ExpressionEngine setups would certainly turn on the lightbulb more quickly for new users.
  7. And finally, it presents ExpressionEngine as a tool for designers, as well as developers.

The current situation is liking arriving for a date with a super-model, only to find that she’s turned up in her gardening clothes. Like super-models really have gardening clothes, but you get the idea.

To round up my banging-on, here’s my dream functional spec.

I’ve just finished making a really tidy events calendar using ExpressionEngine. It keeps the events in one weblog, venues in another, uses custom fields to add a Google Maps link for each venue, and pulls it all together in a template group that splits events into upcoming and archived. Just the kind of project that EE handles with aplomb, and I’d love to share it with you.

  • So I click the Recipe tab and select ‘Make Recipe’.
  • I scroll down the list of templates, and select the template group I want to include in the recipe.
  • Then do the same for weblogs, status groups, field groups and categories.
  • I enter instructions for my recipe, and add a cover image.
  • I choose to include my sample data, and give the recipe a name (which gets appended to everything to cut down the overwriting risks).
  • I click ‘Make Recipe’, then download and email it to you.
  • Finally, I upload it to the ExpressionEngine Recipe Store, set my price, and listen out for the ker-ching of my 70% commission.

Just a thought.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment