ExpressionEngine:  Quick & dirty

So as I recently mentioned, I’ve finally made the move from WordPress across to ExpressionEngine.

After being hacked last week, I set out with the ambitious aim to learn ExpressionEngine and move my site across over the course of a weekend. I’m proud to say for the most part, I got there (although really I ended up needing most of Monday and Tuesday as well to smooth out the kinks).

After going through the whole business, I’d like to share a few concepts and resources that may save you some time and give you a bit of a general primer in EE. EllisLab do a great job with their user guide and forum, but at the time I remember being frustrated by how many different sources I had to use to get all the info I needed. I went in pretty much clueless about what I was doing, but having a site already built in WordPress definitely made things quicker.

Introduction

Is EE for me?

Before we get started, I thought this was worth mentioning: just because it's the right solution of one person / website, really doesn't mean it's the right fit for another. If I were setting up a basic blog which would just contain entries and a sidebar, WordPress or some such would probably be my weapon of choice.

Makin' screwdrivers

ExpressionEngine's flexibility makes it great when you've got specific needs that go beyond a basic blog, but if you don't, keep in mind it may end up being more work for less actual gain. All I'm saying is download the core and check it out for yourself before you fork out the money for it.

For me, I just needed little more flexiblity. I think Brad Dillon explained the difference between EE and something like WordPress best.

"WP is like a philips-head screwdriver. A beautiful, incredibly well-constructed screwdriver, made of solid gold, and encrusted with diamonds. It has a nice rubber grip that never slips and allows you to maneuver easily. EE, on the other hand, being that it has one foot in the CMS realm, is a much more modest, yet more powerful tool, which can be used to make screwdrivers. Screwdrivers of any kind or fashion. Flat-head, philips-head, torx, even hex-socket screwdrivers. It's a screwdriver factory, and you're in control."

Brad Dillon
Developer and recent convert

Step 1

Planning

Thinking in chunks

The first key concept I had to fathom was simply thinking about my website in terms of its groups of repeating information rather than its pages. So for me, instead of thinking in terms of Work, Journal, Bio, etc I broke up the site in terms of its chunks of information. Here's what I ended up with:

  • Journal articles (the blog)
  • Work items (the portfolio section)
  • Testimonials (bottom of a few pages)
  • Link lists (bottom of a few pages)

Pretty basic huh? Well that's because my site isn't all that complex. Which makes it great as an example. These are the groups of information in my site that can be broken down into individual repeating items (by repeating I mean they have multiple items that follow the same format). It's really a good idea to use weblogs as much as you can. The more you do, the more you'll be getting your money's worth from EE and the more dynamic and flexible your site will become.

Web...log?

In ExpressionEngine (pre 2.0) these groupings of information are called 'weblogs'. Now this is a major source of confusion starting out, so if it helps you, think of them as 'sections' or 'channels'. A weblog isn't the whole blog in EE, it's just a grouping of information. Of course, there are other things on my site that don't fit into these 4 'weblogs', but they're 'one off' items like a contact form, for example, so we'll leave them out for the moment.

Break it down

So the next step is breaking it down a little further. Each 'weblog' (group of information) can be broken down again into individual parts. For example if we look at the journal articles on the right, you can see the parts that make up each of my journal articles. Of course, mine's a little convoluted given my layout, but hopefully you can get an idea of how modular you're making the data.

If you're familiar with blogging systems like WordPress, you'll be thinking in terms of Title, Body and Excerpt. But if we've got another group of information that doesn't just follow this standard style format (for example a group of testimonials), we would normally run into trouble. This is where ExpressionEngine starts to earn its keep as we're free to make up the format ourselves.

Custom fields

Each individual input within our weblog is a 'custom field'. In EE, as you can see on the right, we can name these fields, choose whether they'll be made up of a little text (like a name) or a lot (like a blog entry) or even if they'll be a file or select list. These fields you've created will come together to make a form by which you can input your data in an organised way.

If you're still with us at this stage, you've really done more than you think. Now to really cement these concepts, check out ExpressionEngine's video tutorial on weblogs and custom weblog fields.

All the custom fields for the journal articles weblog.

Step 2

Inputting & migrating data

If you've planned things well, this stage should be pretty easy. Really, you just have to manually fill out the forms you've custom made for each entry within each weblog.

Movin' it over

However, in my case, I already had a bunch of journal articles I'd published in WordPress, so I had to migrate this data across to keep all the associated comments and details of each entry. For this I used the WordPress to Moveable Type exporter plugin. This plugin (more accurately a theme) outputs your blog in a flat text format which you can use to import directly into ExpressionEngine.

What's really cool here is if you've already planned out how the information is going to be broken up, you can edit the outputted HTML file to fit this format. Remember that while you've got all your old WordPress blog data in one HTML file, you can Find & Replace all the information that needs changing before you import it into ExpressionEngine (like convert links and paths for example). I got rid of a lot of WP-related css styles, all the image caption DIVs as well as sorted out the body text into left and right columns.

When it came time to import the data, I was able to simply match up the custom fields with the label on each entry and presto! we're migrated. Another thing to remember - when labeling your HTML file data, use up the provided fields (Body, Extended Body, Excerpt etc) before using the EXTRA FIELD-1 etc. EE will love you for it. You can find all the info you need on using the migration tool here.

If you're moving from somewhere other than WordPress or Moveable Type, ExpressionEngine has directions on that too.

Step 3

Templates

So for a quick-and-dirty on how templates fit into all this, I'd recommend heading back to the ExpressionEngine video tutorials for an explanation.

At their simplest, templates are just the pages which make up your site. As their name suggests, they don't have to be just single pages, as they have the ability be 'reused' depending on what is happening in the URL.

Embed and embed some more

A template also can also be embedded in other templates (much like PHP includes), which allows you to break up your pages into sections. For my site, I created a template group called 'includes' which were all the things that repeated in each page (header, footer, navigation and google analytics code). I then created another template group called 'modules' (which is a bit of a confusing name) for things like my testimonials panel, linklists panel, case studies panel etc).

These smaller templates can be uses many times throughout the site in other various templates. What's cool is if I want to change the site description in my header, for example, I only have to alter the single 'includes/header' file and that change will be reflected throughout the site.

Another really handy thing to know about is the ability to pass variables on to the embed. This adds yet another level of flexibility.

Using templates to grab certain pieces of information from your weblogs is where the magic of EE happens. I'd reallly recommend following EE's video tutorial on combining weblogs with templates (hopefully the penny will drop here).

I found it also really useful to save my templates as flat files so that I could edit them directly in Coda (my editor of choice). Incidentally, if you use Coda or another IDE, there's also a cool little .htaccess trick to allow live previewing of templates from inside the app.

Note the 'save template as file' at the bottom.

Step 4

Putting it all together

Training wheels come off

I've been moving pretty slowly up until now, but at this point, you really just need to dive in and go for it. The next thing to do is get properly acquainted with ExpressionEngine's modules and tags. To start off, you probably only need to worry about the weblog, and maybe comment modules.

You should have your weblogs stocked with data and now it's just a case of learning how to output this data amongst your HTML via your templates. When you start out working with ExpressionEngine code, some of the examples you'll find may look intimidating at first. You'll be surprised at how simple the whole thing is, especially if you've had any prior experience with using conditional statements, or variables (which you'll probably be using quite a bit here).

Handy extensions

So there are quite a few extensions out there. Some are free and some are quite pricey. Here are a few that I've found to be pretty handy:

PLAYA extends the number of fields you can associate with each other from one-to-one to one-to-many.

LG LIVE LOOK adds Live Look link to your sites edit pages.

LG DATA MATRIX lets you add multiple rows of information in one custom field. Very handy.

PUB PAGE IMPROVEMENTS lets you customise the publish page (and others in EE).

On this site, I'm also using Askimet Check and Linklist Module. This is a lovely change from the 14 odd plugins I was running with WordPress.

Getting date formating right

Cleaning up the URL

The header & footer

Navigation

Categories

Lastly

Final tips

Some extensions don't play nicely together

Just something to be aware of. If you notice you're suddenly getting a blank screen or an error after enabling a plugin, it may be the extension's fault, or perhaps a clash with another extension. The old disable-one-at-a-time method is probably the best way of finding the culprit.

Use more than 8MB memory in PHP

This isn't essential, but if you're getting a blank screen occasionally, this could be the cause (as it was for me). If this is a problem, you need to change to "memory_limit = 32M" in your php.ini, or add 'php_value memory_limit 32M' to your .htaccess file.

Use the Admin search function

You'll find yourself using the 'back' button a lot and getting lost in the many, similarly named admin option areas. The fact they offer a search field in the first place is a bit of a worry, but seeing it's there, save yourself some time and use it.

Add new tabs

If you find yourself going to the same pages within you EE admin, click the 'add tab' link to add that page as a top level tab so you can get to it directly.

Did this article tickle your fancy? If so, you can subscribe to receive new posts.

Comment

Nobody likes a lurker. Come join in the discussion.

MacUser Magazine   |   Back in business

Back to Journal home

21 Comments

  1. Sweet!  Thanks for the tips.  These should come in handy.

    1 AndrewReply
    March 17th, 2009 at 08:17 AM
  2. A really fantastic article with enough detail to whet the appetite of anyone just starting out with EE. Look forward to reading more of your thoughts as you continue using ExpressionEngine.

    2 Richard AngstmannReply
    March 17th, 2009 at 09:16 PM
  3. Thanks a lot for the article. After fondling with WP I was looking towards EE but felt kinda shy to start :)

    3 Victoria PavlovaReply
    March 18th, 2009 at 12:06 AM
  4. There is always a WordPress vs ExpressionEngine argument going on and I always see people making the change to ExpressionEngine but still saying that for a basic blog, they would probably use WordPress? Are you saying that if you were using a ready made theme you would go with WordPress (since ExpressionEngine’s themes aren’t as many as WordPress)? If you’re using a ready made theme that will get you online withing a few minutes WordPress might be the answer but I’ve never understood this argument when ExpressionEngine Core exists out there and is great for basic blogs.

    4 Deron SizemoreReply
    March 18th, 2009 at 06:15 AM
  5. Ran out of characters in my last reply. ;) Anyway, assuming I’ve got the HTML/CSS ready to go, I could have a blog setup in ExpressionEngine quickly so I don’t fully understand the argument that WordPress is better for basic blogs?

    Great post though on an introduction to ExpressionEngine! This will no doubt help a lot of people out.

    5 Deron SizemoreReply
    March 18th, 2009 at 06:18 AM
  6. @Deron: This post isn’t about what’s better. I made the very point that it’s really a personal thing. But I think most people will agree that WordPress is easier for a novice to use. I’d probably use EE with a simple blog, but if I were building a simple blog for a client, I’d maybe opt for WP.

    6 Rob MorrisReply
    March 18th, 2009 at 04:50 PM
  7. @Rob: Definitely didn’t mean to bring up the “which one is better” topic. For me, I’ve always found EE to be easier. I took a peek at WordPress and was scared away by the use of PHP type tags. Just seemed confusing to me with no PHP background. That may not be the case though once I actually got into deeper. So, that’s really the basis for my opinion. All the best.

    7 Deron SizemoreReply
    March 19th, 2009 at 02:09 AM
  8. Great article!  This is a great resource.  It’s given me some ideas on how to work my pitch to potentials clients on using EE.

    By the way, ExpressionEngine and EllisLab are both compound words (i.e. no space in between).  :)

    8 B. KatzReply
    March 19th, 2009 at 12:00 PM
  9. @B. Katz: That’s great to hear. And thanks for the heads up on the spaces - all fixed now.

    9 Rob MorrisReply
    March 19th, 2009 at 03:03 PM
  10. Great work Rob!  I’ve admired your site before.  It’s good to hear that you’re running solid software to back it up.

    Care to inform shed some light on how you did the “REPLY” links at the bottom of each comment?

    10 Neil HaranReply
    March 20th, 2009 at 02:26 AM
  11. @Neil: Thanks mate. Maybe I should write a little post on how the replies are done. I can’t claim much credit on it, my amazing cousin Justin did most (basically all) of the jquery heavy lifting. It basically takes the comment’s containing ID when you click ‘reply’ and throws it into the comment textarea with a direct link. What’s really cool is when you click the link the comment lights up using the :target pseudo class.

    11 Rob MorrisReply
    March 20th, 2009 at 03:20 AM
  12. I’ve been using WP for quite a while. I’ve looked at EE but guess I’ve never found a solid reason (or had a complicated enough site) to move away from WP.

    Thanks for the article though. It’s an interesting read that I’ll refer back to if I get around to using EE.

    12 John RawsterneReply
    March 24th, 2009 at 01:44 AM
  13. I SOOOOO needed to read this. I have a couple of client sites that I’m thinking of setting up in EE instead of WP. So great to hear from someone who’s been through it. Thanks so much!!

    13 MandaReply
    March 24th, 2009 at 10:50 AM
  14. Excellent article, good info to start with on the input migration of data - and I LOVE the layout on the comments section!
    Would love to see this updated when EE2 comes to light.
    thanks!

    14 KelReply
    March 26th, 2009 at 05:06 AM
  15. i was just looking for such a “quick and dirty” lesson/tutorial to migrate to EE! thank you much!

    15 hasnainReply
    March 26th, 2009 at 01:51 PM
  16. Hi Rob! It’s a very very good article. I like it!
    Good job and thank you!

    16 WishMyLoveReply
    April 10th, 2009 at 03:03 PM
  17. Glad you’ve made the right choice for your needs.

    17 Cem MericReply
    April 16th, 2009 at 01:25 AM
  18. I’m knee deep in the transition to EE from WP, and while I’m having some difficulty getting my mind around the structure of it I’m really enjoying the increased flexibility.

    I think in the long run I’ll steadily expand the way I use EE, giving me a far more useful and deep website.

    18 Ian P. HinesReply
    July 18th, 2009 at 10:10 PM
  19. Hi Rob,
    LUV your site and journal. I’m interested in knowing how EE compares to Joomla. What is your opinion on the role of each one for projects and clients?

    You are right about finding the right fit for each designer/developer or client. Do you think it’s important to offer many different options for clients (static sites, EE or CMS) or do you feel it’s better to specialize in one solution? I know this goes back to what is right for each person. I’m trying to figure this out for myself and wondered what your experience has shown you.

    19 Stacy Vanden HeuvelReply
    September 26th, 2009 at 11:48 PM
  20. Hello,
    generic zithromax
    Zithromax antibiotic wonder pill  
    Order low cost Zithromax medication at one of the trusted online pharmacies and save money!
    Zithromax, is a macrolide antibiotic associated to erythromycin.
    zithromax azithromycin
    However, Zithromax is not good enough for treating the viral infections, such as flu or common cold.
    http://www.imajsalon.com/ - zithromax pills
    This is why you should inform your physician about the entire prescriptions and medications you prefer.

    20 rasharcarieReply
    September 30th, 2009 at 07:30 PM
  21. I’ve been using WP as a blogging platform and a CMS for my clients for a couple of years now and i do love it. However, as you, my clients’ sites have been hacked on a couple of occasions and that is terrible for business. I use a lot of security plugins for all my sites for WP, but that has not stopped things like the gumblar attack and the recent reemergence of that.  So, I’m thinking about switching to EE. I wonder how secure EE is in comparision to WP. Any thoughts? Have you read any articles about EE security? Thanks.

    21 nirzReply
    November 14th, 2009 at 03:56 AM

Leave a Reply +

So what do you think?

Reactions, responses or just feedback. Keep it short and sweet — you've got 100 words to do your thing.

Alternatively, if you're after instant contact, let me know your thoughts via twitter.

 (optional)

Recent Entries

  • A New Page (+ Year)

    Wednesday, January 6th, 2010

    You may have noticed — it’s been pretty quiet round these parts.

  • Portfolio Building

    Saturday, November 14th, 2009

    So I’m being lazy by sharing emails instead of writing blog posts — but it’s been a busy time and with any luck there should be some exciting news at the end of it.

  • Ignorance Avoidance

    Friday, August 21st, 2009

    Well that was the title of an email I received last week. I thought I’d share it because I get a lot of emails asking this sort of stuff.

  • Dynamic Columns

    Monday, May 25th, 2009

    I get a lot of emails asking how I output the comments in a column format. Here’s how.

  • TweetDeck icons

    Monday, March 30th, 2009

    TweetDeck is a great application with a pretty average dock icon. This morning I decided I’d whip up an pair of alternatives.

  • Get creative, you hack

    Tuesday, March 24th, 2009

    So you’re reading this thinking it may be slightly interesting. Maybe because the title seemed catchy, but not because this applies to you.

  • MacUser Magazine

    Monday, March 23rd, 2009

    So I just found out Digitalmash has been featured in last month’s MacUser ‘10 of the best online portfolios’. Huzzah!

  • ExpressionEngine:  Quick & dirty

    Monday, March 16th, 2009

    So as I recently mentioned, I’ve finally made the move from WordPress across to ExpressionEngine.

  • .NET mag fame

    Saturday, January 24th, 2009

    So the lovely folks at .NET magazine got in touch recently to ask if they could include Digitalmash.com in the gallery section of their mag.

  • Design by numbers

    Wednesday, January 7th, 2009

    I have a confession to make. Like quite a few designers, I’ve got a sprinkling of OCD about me.

  • Proper propaganda

    Friday, December 26th, 2008

    Well it’s that time of year again. Things are winding up and for most of us, we’ll have a little time away from the grindstone.

  • Stats: One month in

    Sunday, December 14th, 2008

    Nearly two-thirds of people know statistics are boring.

  • Pimped!

    Thursday, December 4th, 2008

    Isn’t it nice when people do nice things and ask for nothing in return?

  • The ever-watchful subconscious

    Tuesday, November 25th, 2008

    So I recently had a scary realisation when I noticed a very familiar diagram on the back of the shampoo bottle in my shower.

  • Designing for the web: 5 things I love & hate

    Tuesday, November 18th, 2008

    For anyone thinking about starting a career in web design, I’d like to share 5 things I’ve come to love and hate about designing for the web.

  • Ripped!

    Sunday, November 16th, 2008

    Well, a little over a week into the new site, we have our first rip of my design. Sigh…

  • Fun with a tablet

    Wednesday, November 12th, 2008

    No, I’m not talking about drugs. I picked up a cheap drawing tablet recently and thought I’d share my first experiments with it in Photoshop.

  • Incestuous design

    Friday, November 7th, 2008

    Ok, I admit — it’s a title that could turn some people off. It’s going to be a nightmare searching for it on google. But dammit, if nothing else, it’s original.

  • A New Beginning

    Saturday, November 1st, 2008

    So here we are. The first blog post on a fresh newly designed site. It’s like sliding into freshly pressed bed linen.

  • Logo marathon

    Wednesday, October 15th, 2008

    Sometimes (and I mean, only sometimes) the most grueling design jobs can be the most rewarding.

  • Making it real

    Monday, October 13th, 2008

    This is the story of how one idea can inform a whole campaign and visual identity.

  • What’s in a name?

    Sunday, October 12th, 2008

    What’s in a name? Well, I would argue that if your product’s good, then probably not that much.

  • Tippin’ the Balance

    Sunday, October 12th, 2008

    How do you turn a 200-page manual into something athletes will want to interact with?

1 / 82 / 83 / 84 / 85 / 86 / 87 / 88 / 8