All entries filed under “Development Tools”

Searching devot:ee from your computer

I’m sure a lot of us use quick launchers on our computers. Apps like Launchbar, Quicksilver, Alfred or Launchy. Mac or Windows, you can get set up with one of these quickly and for little to no cost. Now, thanks to the fine chaps at devot:ee you can also search for ExpressionEngine add-ons right from your computer.

searching devot:ee from launchbar

This won’t work with the standard EE search because it uses POST and doesn’t accept search parameters in the URL. It looks to me like devot:ee is using Super Search from Solspace to power this. Well done, guys.

Read the tutorial: Search devot:ee From Your Desktop

Posted on Sep 01, 2010 by Ryan Irelan

Filed Under: Development Tools, Life as a Web Professional

Work for Solspace

Long-time EE development shop Solspace is looking to expand their team with a new EE developer contract position:

We seek a skilled ExpressionEngine add-on / CI / LAMP stack developer to help with both client jobs and our extensive add-on library. You will be employed on an hourly remote contractor basis with flexible hours, but we expect you to be generally available during regular business hours. Our need is immediate.

Does it sound like something for you? Read the details and get in touch.

Posted on Aug 23, 2010 by Ryan Irelan

Filed Under: Development Tools, Life as a Web Professional

On Twitter: Best way to position images?

Earlier today Patrick Glynn posted the following question on Twitter about image positioning in ExpressionEngine:

What’s the best way to allow a client to position images in the EE backend? Can one dynamically apply a CSS class to the image?

I’ve done everything from creating custom formatting buttons to just using Wygwam. What’s your technique for allowing images to be easily positioned inside of content areas? Let us know in the comments.

Posted on Aug 23, 2010 by Ryan Irelan

Filed Under: Development Tools

Building Tweedee module

Good things are worth waiting for. And that’s certainly true with the newest installation of Stephen Lewis’ series of articles on building an add-on for ExpressionEngine 2.

This time he covers designing the user interface and walks you through the process of decisions and ends with a working wireframe/prototype.

I don’t want to waste your time reading what I have to say about it, so please click over to Stephen’s site: ExpressionEngine 2 Add-on Development

Another Relationships Example

There is no better way to learn than with some context. Reading the EE documentation is a thrilling way to spend your weekend (what?) but learning about EE concepts with real examples and code is even better.

Not long ago we published A Primer on Relationships by Noah Stokes and it walked you through a real-world application of relationships in EE.

Tony Geer posted a nice walk-through on his site about how he used relationships to make it easy to organize and display multimedia content (YouTube videos) on a client site.

I created one channel that captured only YouTube videos. Next, I created a new channel for the projects and took advantage of ExpressEngine’s freedom and flexibility to assign a field group with over 15 fields so that we could easily capture every bit of information that was needed for each project, but no field for videos. Why? Because I’ll use ExpressionEngine’s related entry functionality to link individual YouTube videos to particular projects.


Brush up on your relationships and read the entire post: ExpressionEngine Relationships and Related Entries by Tony Geer.

Posted on Aug 09, 2010 by Ryan Irelan

Filed Under: Development Tools

Brandon Kelly on Custom Fields

Some of you may have noticed by his inquiries on Twitter over the last week that Brandon Kelly was up to something. That something was a past, present and future write-up about custom fields in ExpressionEngine.

In my book, Custom Fields are ExpressionEngine’s strongest feature. They’re right at the core of what defines EE. And they’ve been bustling with innovation lately, from the add-on community as well as EllisLab.

But I don’t think we’ve seen their full potential yet, and I think Field Groups are partly to blame.

Brandon then launches into a history of custom fields (including some great quotes from Mike Boyink, Rick Ellis and Ryan Masuga) and how we go to where we are now: custom fields, organized by groups, which are assigned to a single channel.

The future of custom fields, according to Brandon, is that custom field groups “lose relevance” and the emphasis is put on allowing you to collect different fields into a publish layout. You could pull from any of the fields in the system, freeing you from having to re-create the same fields in different custom field groups.

I’ve been chatting with Brandon about this for several days and I couldn’t agree more. While I do like to organize fields into groups because different channels may need slightly different field settings and instructions (and I reject chaos and embrace order), we shouldn’t tie all fields down into this convention. In fact, there’s almost nothing stopping someone from implementing an idea like this right now. The fields and field groups aren’t bound in the database; you can create any associations you’d like.

Read the whole article (it’s worth it, believe me): Custom Fields and the Death of the Field Group

Validate Usernames Before Registration

Carl Crawley had a recent project that required the username be checked before the member registration form was submitted by the user. We’ve all seen this (Twitter is a good example) before but Carl made it happen with jQuery and the Query module.

Carl uses the Query module to do the actual check and jQuery to submit the data for processing. Very nice!

This is a technique you’ll probably want to use at some point, so be sure to bookmark it: ClientSide Username Checking, EE and jQuery

Posted on Jul 27, 2010 by Ryan Irelan

Filed Under: Development Tools

Automate Permissions on EE 2

George Ornbo (Shapeshed) updated his script for automating the file and directory permissions for EE 2.

It’s a shell script so it might not fit everyone’s tool belt; for those that are handy with the command line, you might find this useful when setting up new EE 2 installs or even moving a site between servers.

The script is stored at GitHub as a Gist and free for the taking: gist: 492089 - Sets permissions on an ExpressionEngine 2 install- GitHub

Posted on Jul 27, 2010 by Ryan Irelan

Filed Under: Development Tools, ExpressionEngine 2

iExpression iPhone App for EE

Last week RED When Excited launched a new iPhone app that allows you to publish to your EE-powered website right from your phone: iExpression. This is a native iPhone app, which you need to purchase and download through the Apple App Store (store link).

screenshot of iExpressionRWE sent me a promo copy of the app to test out. I would best describe it as a EE-focused version of MarsEdit (which I use to publish this blog) for the iPhone. Like MarsEdit, it also works using the Metaweblog API (there’s a module that ships with EE 1 & 2) and inherits all of its limitations. While you can use custom fields (you match them to basic Metaweblog API-supported fields), you cannot use specialized fields like Relationships, Playa, Matrix, checkboxes etc. This limitation is in the Metaweblog API implementation; even MarsEdit doesn’t support this functionality.

The app itself mostly uses the standard interface of an iPhone app. It supports multiple sites and multiple channels; you just have to set each one individually through the interface. I tested EE Insider on the app and it just took a few minutes to set up (I already had the Metaweblog API module in EE configured for MarsEdit).

Features and Function

iExpression lets choose images from your Photo Library or take a new photo to include with a new entry. The image uploads when you post the new entry and uses the upload destination you specify in the Metaweblog API configuration. It worked flawlessly for me but the iExpression did include some junk markup with the post, wrapping my image in a div and a br tag with a clear in it.

Whenever you post new entries from your iPhone app, you can have iExpression automatically tweet an announcement on your Twitter feed. This functionality doesn’t yet use OAuth, so I’m suspecting it’ll break within the next month when Twitter switches off their basic API authentication. I haven’t tested this part but the app claims to also track “tweet-backs” and click-throughs.

Additionally, iExpression will let you create offline drafts (on an airplane, for example) and then post those entries when you have a data connection again.

Requirements and Cost

The app works with both EE 1 and 2 (because the Metaweblog API module is included in both) and will run on any current iOS device (3.1.3 or later). Their website includes a photo of the iPad version of the app but that is not yet released as it is waiting on approval from Apple. It will be a free upgrade for existing customers.

As noted above, the app is only available through the Apple App Store and currently costs $9.99.

Final Thoughts

If you run a blog without the need for a lot of custom fields and like to publish on the go, this seems like a nice choice.  EE Mobile Admin (a mobile web interface for your control panel) has better support for EE 1.6 fieldtypes (it doesn’t support EE 2) and, I think, a nicer interface. It may be because of the screen size but I found iExpression hard to use at times, especially when trying to switch between fields while posting an entry. I had one or two other UI niggles but nothing that made the app unusable.

I don’t think I would use the iPhone version of iExpression very much simply because it’s too uncomfortable to write on the phone in portrait mode (iExpression doesn’t currently support landscape mode). If I did need to post something in a pinch, the EE 1.6 control panel works fine on Mobile Safari.

However, I am looking forward to trying out iExpression on the iPad. I spend a lot of time on my iPad reading and writing and it would be nice to have a dedicated app for drafting posts and articles for this website.

Learn more about iExpression from the RWE website.

Posted on Jul 26, 2010 by Ryan Irelan

Filed Under: Development Tools, EE Add-ons

In the Forums: Snippets and Embeds

There is a lot to be written about Snippets (new in EE 2) versus Embed Templates. But for now, I want to point you to a thread in the archived forums from earlier this year where Lisa Wess (EllisLab) explains some more about snippets and how they differ from Embeds.

[W]e recommend Snippets over Embeds unless you need to do something such as pass variables.  Snippets are treated exactly as if that code was directly in the template, whereas embeds are treated as entirely separate entities.  Embeds are absolutely “heavier” than snippets.

For more about Snippets, read the documentation for the why and what.

Enabling SAEF Edit Functionality in EE 2

It appears that Stand Alone Entry Forms (SAEFs) in EE 2 are not able to be used for editing functionality (like I have set up for the EE Insider Tips section of this site).

Ty Wangsness of eMarketSouth posted a work-around you can use while the editing capability is missing from EE 2.

Unfortunately in the latest version of EE 2.0 (2.0.1 Build 20100121 as of this writing) the SAEF core files are incapable of supporting edit functionality… this post will show you how to correct that shortcoming (and hopefully the core hack required here will be implemented in some future version of EE).

Ty notes in the comments that this work-around is still needed for the newly release EE 2.1. I’m not sure that using the SAEF as an edit form has ever been officially supported by EllisLab but it is definitely a useful feature.

The fix, I want to note, requires a hack to the core EE code. Anytime you alter the core code you run the risk of your site breaking during any future upgrades. So, if you do implement this just keep a note of it.

Follow the instructions in Ty’s post and you should be set: How to Create Standalone Edit Forms in ExpressionEngine 2.0

Posted on Jul 14, 2010 by Ryan Irelan

Filed Under: Development Tools, ExpressionEngine 2

Learn Principles of UI Design

Last month, Stephen Lewis at Experience Internet (and purveyor of fine EE add-ons) posted a survey asking what you wanted to know about add-on development. Stephen, you see, was planning a series of articles covering this nebulous topic.

The second post in his series is up and it covers the principles of UI design when doing add-on development. And just in case you were looking for a copy-and-paste article down the easy road to the EE Add-on Hall of Fame, you’ll be disappointed. Stephen has a higher goal:

The goal of this series is to give you the tools necessary to create shimmering add-on edifices of your own imagining, not simply to walk you through the creation of some ropey Twitter module. With that in mind, it makes sense to cover a few basic principles of good UI design, prior to doggy-paddling through the murky waters of my hoary-old design mind.

He walks through the principals of simplify, disambiguate, differentiate, prioritize, embrace conventions and be alert. It’s a nice read with information from people who have had success designing UIs for add-ons.

Give it a read: ExpressionEngine 2 Add-on Development : UI Design Principles

Posted on Jul 14, 2010 by Ryan Irelan

Filed Under: Development Tools, EE Add-ons

Looking for the EE 1.6 docs?

A lot of us are still working in EE 1.6 and referring to the documentation (even those of us that wrote a book on EE) but upon first glance the EE 1.6 docs are missing. After the site refresh the URL for the docs is now occupied by the new EE 2 docs.

Don’t fret, however, the docs aren’t hidden from you.

ExpressionEngine 1.6 legacy docs

Bookmark the new URL: http://expressionengine.com/legacy_docs/

Posted on Jul 14, 2010 by Ryan Irelan

Filed Under: Development Tools

Streamlined Asset Serving

Aaron Gustafson of Easy! Designs posted how they handle serving up multiple asset files (CSS, javascript) in the most efficient way possible. They are particular about organizing their CSS and javascript into multiple templates but serving that up as a dozen individual files isn’t very efficient.

A while back, it was not uncommon for us to include each of these assets into the document separately, but, as website optimization and performance folks will tell you, all of that separation leads to a lot of additional overhead because the browser must request each of those files individually. In the interest of streamlining the download process, we decided to merge all of the stylesheets together at the template level before sending them over the wire.

I keep all of the assets of sites I build outside of EE templates, but I really like this way of leveraging EE templates. It’s almost slick enough for me to rethink my ways.

Read the whole article: Template-based Asset Munging in ExpressionEngine

Posted on Jul 12, 2010 by Ryan Irelan

Filed Under: Development Tools, Site Performance

EE 2.1 Change for Third Party Devs

A quick note to third party EE developers. There is a small change to EE 2.1 and it may break your add-ons.

I wanted to make a quick broadcast to third party developers about a potential issue in the upcoming ExpressionEngine 2.1 release with your add-ons, depending on how you were building file paths with CodeIgniter.  If affected, your add-ons will break in ExpressionEngine 2.1, so it is very important for users of your add-ons to have updated code prior to its launch.  If you have been building your file paths with PATH_THIRD or APPPATH*, you should not be affected.

Read Derek Jones’ entire blog post to get all of the details: Important 2.1 info for third party devs: Building file paths to your add-ons


Search EE Insider
EE Screencasts