First Looks At Expression Engine
10.29.2007 | My Blog
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 ExpressionEngine. 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, ExpressionEngine is the way to go. As I learned later, it can do way more than just blogs too.
After several comings and goings with ExpressionEngine 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 ExpressionEngine will not let me do.
ExpressionEngine 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 ExpressionEngine is extremely simple and straight forward. Initially looking at scripts for it’s modules you would not think that there were many, if any, similaritys 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 ExpressionEngine much easier than writing in CodeIgniter. Now I know CodeIgniter 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 its 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 EllisLabs 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 ExpressionEngine. 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 ExpressionEngine 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 ExpressionEngine for a while.
12.09.2007
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
12.11.2007
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.
9.24.2008
Thanks for your nice article on expression engine. I really like it very much. Keep up the good work.
12.22.2008
yea, it’s very great works
3.17.2009
Thank you for another great article. Where else could anyone get that kind of information in such a perfect way of presentation.
4.09.2009
Expression Engine has many good features also.Few features are here.Expression Engine comes with an integrated double opt-in/opt-out mailing list module that supports multiple lists and a custom template for each list.
The member profile system permits you to add your own fields. Build your own data model and collect the information you need from your users.
Expression Engine Discussion Forum module is a complete community building solution that integrates seamlessly.
6.01.2009
Great post! Just wanted to let you know you have a new subscriber- me!