When is ExpressionEngine not the right fit? brought to you by META Q

When is ExpressionEngine not the right fit?

Carl Crawley was first introduced to ExpressionEngine (EE) at his last job. They had an in-house Content Management System (CMS) that was starting to get old and was "showing signs of its age." Crawley and his boss started looking at other pre-built platforms that would better suit their clients' needs. They looked at WordPress, Drupal, Joomla, DotNetNuke - even Ruby on Rails, but "nothing quite did everything we needed." That is, of course until they found ExpressionEngine. The rest was history.

 

For us, ExpressionEngine is the platform of choice - it's our bread and butter, and we're confident that we can make EE do anything it needs to. 

 

Crawley later left to start his own company, Made by Hippo, but brought ExpressionEngine with him (Fun fact: he had originally wanted to call his company just "Hippo," but registration restrictions in the UK prevent companies from being named as an animal). Made by Hippo works almost exclusively with other design and development agencies and provides them with everything from ad hoc consultancy, custom add-ons and technology solutions - all powered in ExpressionEngine, MojoMotor and/or CodeIgniter (CI).

The ExpressionEngine community has been a valuable resource for Crawley over the years - a place for him to bounce ideas off or converse about "hair-brained ideas," and as such Crawley was more than happy to share why he thinks ExpressionEngine is so fantastic.

Meta Q chatted with the man behind Made by Hippo to find out how it's possible to make ExpressionEngine work for for almost any project.

MQ: Could you think of any situation where ExpressionEngine wouldn’t be a fit for a project? 

CC: We haven't been able to find one yet. I personally started working with EE back in the 1.5.x release and since the release of 2.x, it's made our lives a whole lot easier (specifically the CodeIgniter injection). We specifically get called in on projects where an agency has already got a site in ExpressionEngine and need some custom functionality or they want some general consultancy and we gently guide them into the direction of ExpressionEngine. For us, ExpressionEngine is the platform of choice - it's our bread and butter, and we're confident that we can make EE do anything it needs to. 

MQ: What would be a situation where you’ve made ExpressionEngine work, where others couldn’t?

CC: I think one of the biggest obstacles is getting into the habit of is only looking at the whole add-on side of ExpressionEngine as a way to “extend existing functionality.” We look at add-ons as a way to “make ExpressionEngine do something it wasn't supposed to, with the ability to tie in existing functionality.” There have been cases where we have built modules to integrate with other platforms which have supposedly not been possible as well as rewriting whole CodeIgniter apps into the ExpressionEngine framework to take advantage of built in security, permissions, user access, etc.

The majority of our commissions these days are to extend functionality of existing modules and add-ons - as an add-on developer, it's virtually impossible to make your add-on do everything; you'll forever be coding and end up with a product that’s just bloated. We're constantly being asked to look at [Pixel and Tonic's] Matrix to make it do more, or to add functionality to Solspace calendar to make it read/write to an external system. That why ExpressionEngine is such a great framework to work with.

 

....and if all else fails, come see the big Hippo.

 

 

We have a whiteboard in our office with “add-on ideas,” and let me tell you, there's at least 15-20 ideas on the board that we're constantly looking at. Some will never see the light of day (partly due to time, partly due to having such a niche market viability), but we hope some of them will be developed at some point in the future - however, developing our own add-ons are not core to us at this moment in time, we are more interested in working with other agencies/studios to fulfill their requirements. 

MQ: What was your impression Fred Boyle’s EE + Web Conversations session at EECI 2011 where participants discussed “When Not to Use ExpressionEngine?” 

CC: Well, firstly Fred's talks are always great fun, I really enjoy listening to him - he interacts with the audience in a way that you normally don't experience at conferences. I found his talk at EECI extremely interesting actually, and as a result it sparked up quite a few conversations with other developers who had commented that “EE can't do X, so we built a CodeIgniter App for it” - when in reality, EE could have done it, essentially as a module written in CI, but without the need for authentication and security logic (since that’s already built in). 

My comments to Fred were pretty much as I put above; we firmly believe we can make ExpressionEngine do anything. You only have to look at devot-ee.com these days to see the vast array of different modules, extensions and plug-ins. I think this proves the point - the limitations of ExpressionEngine are only as far as the limitations of the developer and sometimes, you might just need to think outside of the box to make the project work.

MQ:  How can developers who are having a difficult time wrangling ExpressionEngine learn how to work with CodeIgniter to create their own applications?

CC: I think there's two separate things here - if a developer is having issues with EE - master that first before getting into CodeIgniter. You really don't want to confuse the two at this stage. I've recently taken on a developer who's fully proficient in PHP and I introduced him to EE - it wasn't until he'd built two or three sites in EE that I introduced him to CodeIgniter. The last thing you want to do is to be enabling PHP all over your templates and inserting PHP/CodeIgniter into your site just because it's the flavor of the month.

When you are ready to look to extend EE using CodeIgniter, there are a couple of resources that I would not do without:

  • http://pkg.io/ - Probably the easiest way to kick start your add-on development. Pascal (Kriete) and Greg (Aker) have done an awesome job with this and once you understand the differences between modules/extensions/plugins/accessories - this site will create the 'base' code structure for you to start developing your Add-on
  • http://codeigniter.com/user_guide/ - The CodeIgniter docs are a great way to understand how things work. The docs here made me understand ActiveRecord (CodeIgniters way of read/writing with the database http://codeigniter.com/user_guide/database/active_record.html) and is a valuable tool for development.
  • http://www.putyourlightson.net/projects/cheat_sheet - I had the fortune to meet Ben of Put your Lights on at EECI, when by some complete coincidence I was telling a fellow conference goer about this PDF cheat sheet that I use. The way that Ben has laid this out is a fantastic tool to remember all of the internal CI/EE functions for use within your app.
  • http://expressionengine.com/developers/- This is the official resource for EE developers particularly interested in add-on development. It details the hooks available in EE which you can use in your add-on as well as blog and documentation.

Once you're comfortable, I would just suggest setting yourself up with a sandbox environment with EE installed and start playing - make a plug-in to output some data to the screen, make an extension run a simple function on a hook event, build a module to simply output your currently logged in user data to a page... once you've done the first couple, you can then try some of the more complex bits of functionality.

Finally:  grab other people's add-ons. Don't be afraid to open the files and see if you can understand how they do certain things - you'll be surprised how easy it will all become.

....and if all else fails, come see the big Hippo.

 


Lindsay McComb's avatar

Lindsay McComb

Writer and Content Specialist at Q Digital Studio

Lindsay McComb is a writer and content specialist at Q Digital Studio. She's a wordsmith with a wicked sense of style and a serious case of Wanderlust. Lindsay can be found tweeting at @themetaq and off the clock (and at all hours) at @lindsaymccomb.

Posted

12.6.2011

Categories

Code > ExpressionEngine

Tags

ExpressionEngine

1 comment >

Speak your mind


Social Media Love

What others are saying

Awesome article, and I really love your site-design too ... As a matter of fact, I may have to steal your background-color and link-colors, they work really well together :-)

TOP