The ABC’s of EE Add-on Development
Photo provided by the beautiful Nikkie Reagan
Are you trying to get into add-on development for ExpressionEngine? For those who are, I thought it might be handy to come up with a list of tools or concepts you’ll need to be familiar with when approaching add-ons. Some of these items are specific to EE while others are more general to PHP or CodeIgniter. The list will be delivered in a series of posts in which we will encourage you to look at the new terms and post any thoughts or followup questions in the comments.
To kick off the series I wanted to provide an introduction to the format you can expect.
Series Format
Since this is an ABC series, we will talk about one tool or concept for each letter in the alphabet. Going forward, each post will contain five entries important to add-on development. We'll write a little about what the term means to us as developers and how it can be practically applied. Some entries will have code samples and some will just be formatted like definitions.
After considering how many stinking letters there are in the alphabet, I figured it wouldn’t hurt to have some help in this endeavor. Enter my friend Tom Jaeger of EE Harbor. They are the guys behind awesome add-ons like Safe Harbor and Transcribe. Tom's knowledge will be invaluable to this series, and I'm thrilled to have him helping out. Thanks, Tom!
So without further ado, here’s a taste of what to expect. The entry for letter A:
A: Add-on
How convenient is it that “add-on” starts with the letter A?!
Add-ons are a large part of what ExpressionEngine is today. When creating ExpressionEngine, one of Rick Ellis’ goals was to make a product that was more robust and extendable than its predecessor, pMachine Pro. When ExpressionEngine 1.0 shipped in 2004 there were two "types" of add-ons supported: Modules and Plugins. Then with the release of EE 1.4 Extensions, a new add-on "type", were added in. This version of EE shipped with around 150 hooks in the system. Wow!
Fast-forward to March of 2009 when Brandon Kelly released a beta of a then-new add-on called FieldFrame. This was an add-on that allowed anyone to create a fieldtype for use within the publish/edit form (and saef's) within ExpressionEngine. Many considered this to extend the definition of an add-on which added another "type" of add-on to the mix. This, combined with existing plans from EllisLab eventually led to FieldTypes also being released as a part of EE2's core. Lastly, with the release of EE2 EllisLab added in Accessories which are little tabs that show up in the footer area of the Control Panel, and are another “type” of add-on.
Different people may define an add-on in different ways because of how they work within ExpressionEngine. For the intents of this series, we will be referring to an add-on as any package containing one or more of these "types" that extend ExpressionEngine's core functionality. I personally would love to do away with the public-facing terms of Module, Extension, FieldType, Accessory and Plugin. My thought is that the end user should just know these all as "add-ons" to simplify things. I won't go into detail, but you can read more here in this add-on feature request.
Stay tuned for the next installment of our series where we'll cover the letters B through F. Let us know what you think in the comments!
Wouter Vervloet on May 17th, 2011 4:09 pm
Oohh… this is gonna be fun! Can’t wait what you’ve got in store for us…
I’m gonna do a wild guess as to what ‘B’ is gonna be…. “B” is for Brandon Kelly?
Regards,
Wouter
Erik Reagan on May 17th, 2011 4:12 pm
Haha nice. Perhaps we can have a part deux that showcases the rockstars in the EE world. :)
Natetronn on May 17th, 2011 6:24 pm
Can’t wait till you get to “N” that way you can talk about how you took ->Natetronn the Add-on ->Noob (A-M) and converted him into a Add-on ->Natural.
No pressure of course ;)
Sebastián Jaramillo on May 18th, 2011 12:17 am
Awesome. Have been looking all over for a descent tutorial on how to approach EE add-ons. This ones will sure be great.
Sean on May 26th, 2011 6:30 pm
Looking forward to this series and am wondering what you are going to do for some of the more difficult letters like J, Q, V, Z
Roger Glenn on May 31st, 2011 10:56 pm
Really looking forward to learning more about add-on development from devs who’ve done it a few times, enlightening us noobs to some common pitfalls and clueing us in to some handy tricks ;-)