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.
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.
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
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:
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.
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.
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.
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.
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.
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.
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.
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.
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).
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.
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.
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.
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.
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.
Nobody likes a lurker. Come join in the discussion.
Tweet This / StumbleUpon / Digg / Float / LinkedIn / Reddit / Technorati
Del.icio.us / Google / Live / Ma.gnolia / Yahoo
You may have noticed — it’s been pretty quiet round these parts.
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.
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.
I get a lot of emails asking how I output the comments in a column format. Here’s how.
Another super-simple shadow trick in Photoshop for looking down on objects.
A nifty trick for shadows on upright objects that’s dead simple in Photoshop.
Lately I’ve been getting pretty used to having my designs ripped. Doesn’t mean I dislike it any less.
I’ve been thinking more about Scott Stevenson’s great post debating Google’s approach to designing by data.
TweetDeck is a great application with a pretty average dock icon. This morning I decided I’d whip up an pair of alternatives.
So you’re reading this thinking it may be slightly interesting. Maybe because the title seemed catchy, but not because this applies to you.
So I just found out Digitalmash has been featured in last month’s MacUser ‘10 of the best online portfolios’. Huzzah!
So as I recently mentioned, I’ve finally made the move from WordPress across to ExpressionEngine.
Well after a wild couple of weeks, I’m back in action.
Introducing a minimalist, image-free, grid-based theme for WordPress in three tasty flavours.
I get a lot of people on either sides of a university degree asking me advice on how to establish themselves in the wide world of web design.
Here’s a tiny trick in Photoshop for having evenly spaced text items for things like horizontal navigation menus.
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.
I have a confession to make. Like quite a few designers, I’ve got a sprinkling of OCD about me.
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.
Nearly two-thirds of people know statistics are boring.
Isn’t it nice when people do nice things and ask for nothing in return?
So I recently had a scary realisation when I noticed a very familiar diagram on the back of the shampoo bottle in my shower.
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.
Well, a little over a week into the new site, we have our first rip of my design. Sigh…
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.
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.
So here we are. The first blog post on a fresh newly designed site. It’s like sliding into freshly pressed bed linen.
Sometimes (and I mean, only sometimes) the most grueling design jobs can be the most rewarding.
This is the story of how one idea can inform a whole campaign and visual identity.
What’s in a name? Well, I would argue that if your product’s good, then probably not that much.
How do you turn a 200-page manual into something athletes will want to interact with?
Sweet! Thanks for the tips. These should come in handy.
1 AndrewReply
March 17th, 2009 at 08:17 AMA 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 PMThanks 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 AMThere 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 AMRan 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@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@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 AMGreat 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@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 PMGreat 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@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 AMI’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 AMI 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 AMExcellent 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 AMi 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 PMHi Rob! It’s a very very good article. I like it!
Good job and thank you!
16 WishMyLoveReply
April 10th, 2009 at 03:03 PMGlad you’ve made the right choice for your needs.
17 Cem MericReply
April 16th, 2009 at 01:25 AMI’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 PMHi 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 PMHello,
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 PMI’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