First Looks At Expression Engine
To make a long story short, I caught this article ’Are you a CodeIgniter using Wordpress?‘ over at Derek Allard’s website and was finally inspired to go dig deeper at Expression Engine. Despite never having used Wordpress, what I found out in the end was that if you need a blog system for a personal site, complete with all the blogging extras, and your a CodeIgniter junkie who wants to stay in the family, Expression Engine is the way to go. As I learned later, it can do way more than just blogs too.
After several comings and goings with Expression Engine over the past few months, the latest one even involving writing a small module for it, I have now dedicated myself at learning this great app inside and out. One of my initial concerns with it would probably be the same as most time constrained part-time developers, just a hesitancy on learning yet another system only to later move away from it because the application couldn’t live up your expectations. However at this point, I have yet to find anything Expression Engine will not let me do.
Expression Engine is available in three different versions, a free core version, personal, and commercial. All versions come with a solid base of modules each having a few extras as you move up in price. The base features are excellent, and really contain all you need. Additional third party modules are light but seem to be growing. This hesitancy by developers might be due to the vague licensing requirements specifically restricting sites that might host a ‘service’ to users. The included weblog module is extremely multi-functional, in that some possible module ideas that came to mind, could actually be done simply using it. I started with and have been using the free core version, but I have already decided that I will be buying the personal version, and will eventually upgrade to the commercial version.
Coding within Expression Engine is extremely simple and straight forward. Initially looking at scripts for it’s modules you would not think that there were many, if any, similarity’s between it and CodeIgniter. However this is far from the truth. Looking at just mainly the core classes so far, they seem straight from CodeIgniter if not just flat out copied. Loading them and initializing them is somewhat different, and follows more along straight object oriented php, which I prefer. I found writing a module for Expression Engine much easier than writing in CodeIgniter. Now I know Code Igniter is trying to follow a more Model-View-Controller approach, and is also targeted to a broader audience, but coding an app for Expression Engine is just as easy as it is for CodeIgniter, if not easier.
The template system is the meat and bones of this application. The urls, module content, permissions, are all handled by it. Creating a template is actually pretty easy, but to first look at the documentation one can feel overwhelmed. I at times still feel that way, but now I think it’s more of that feeling like a kid in a candy store, and I can’t decide what to start on next. The template system also compliments a module with so many possibilities. One could make a simple module with few tags, or a complex one with a large assortment of tags, which in the end gives a template designer endless options. And thats exactly what Ellis Labs did with all the base modules. You have so many different ways to present the content it’s mind boggling, but at the same time extremely liberating.
As I mentioned before, one module that stands out is the weblog module. It is truly one of the most versatile features of Expression Engine. With this single module, you can use the three different default areas to enter content and then show them however you want. You can also add fields if you need to show more data. You can also link two entries together and show information from either one in the same entry. This would allow you to set up and show a variety of different types of information. You could use this method to set up your static content pages or practically anything else. For instance, say you had a real estate site that listed properties. You could set up one web log for properties and enter the address(weblog title), price(weblog summary), its features(weblog body), and listing number(weblog extended text). And in another weblog you would store each agent by thier name, maybe a bio, experience, ect. in each entry. As you add property you then create a relationship to the agent, the templates will be ready using generic links between these two blogs. In the end you get a property listing complete with agent info, laid out however you want.
I have just barely tapped into this application but with just these few features I’ve talked about, plus a lot more that perhaps I can explore later, you can see that Expression Engine is extremely versatile from the get go. So far, we got a simple yet thorough template system, flexible modules, and easy extensibility. That’s a very good start. They say all that matters is the first impression, if this true, then I’ll be working with Expression Engine for a while.
Derek Allard said
on 9 Dec 2007 @ 7:55pm
Great writeup Hugh, you’ve captured the essence of EE right off the bat. Wonderful work! I love your site also. If you threw an RSS feed up I can promise you one more subscriber
Hugh said
on 11 Dec 2007 @ 9:48pm
Very flattering to have the Mr Derek Allard visit my site, and make the site’s very first comment at that! Thank you for the feedback. I enjoy your site as well. I’ll push the RSS feed ‘to do’ to top of my list for ya. And btw...congrats on the promotion at EllisLabs.
apartments in edinburgh said
on 24 Sep 2008 @ 8:44am
Thanks for your nice article on expression engine. I really like it very much. Keep up the good work.