Blog Entry
Deploying EE sites has always been a topic that generates some good discussion. Erik Reagan posted some of his thoughts on his blog about the topic. His deployment strategy is very similar to ours at Happy Cog so it definitely caught my interest. He does mention some great things they use Beanstalk’s deployment requests for that improve their process.
It’s a good read and should get your juices flowing for thinking about how you deploy and possible ways to improve it.
Blog Entry

This week I’d like to draw your attention to the latest version of Socialee (1.2) from Shotwell Company, which is compatible with EE 2. With Socialee, you can accept registrations via Facebook, Twitter, Yahoo, Gmail, LinkedIn and more. Socially publish custom comments, entries, or any page to users’ status updates. You can also fill out profiles automatically with Facebook Connect. If you’re looking to add that Social Media Special Sauce to your site, you owe it to yourself to give this add-on a look.
Here is the list of new add-ons to come out over the past week:
- Safe Harbor (for EE1) by Tom Jaeger (EE Harbor)
Automated daily backups of your ExpressionEngine websites (Files & DB). Also includes the ability to create manual backups of your site on demand.
- Kyara (for EE2) by Nicolas Bottari
Kyara is an addon which performs small modification to your ExpressionEngine database to enable longer maximum characters in a number of control panel fields, such as entry title and custom field labels, changing database tables to specified collation/character sets, and backing up your database in an easy and flexible way.
- Mornin (for EE2) by ThoseGeeks
Depending on the server time, returns the string “morning”, “afternoon”, or “evening” into your template.
- Google/Yahoo Sitemap Ping (for EE1) by Media Cow
Pings Google and/or Yahoo.
- Static Fields (for EE1) by Media Cow
Pre-populate static fields on your publish page
- Hidee (for EE2) by Cem Meric
Hide some stuff in ExpressionEngine 2’s control panel
- Usability (for EE2) by Alex Kendrick
Higher contrast, monospace text for input and textarea in the CP. Correct cursor type for clickable or draggable elements. Restores field re-order handles for NSM Morphine Theme.
- Last Updated (for EE2) by Alex Kendrick
A simple plugin that returns the edit date of the most recently updated template or channel entry. Accepts EE date variable formatting.
- Mega Upload (for EE2) by DevDemon
Mega Upload allows you to take a single field and upload files of any size to an ExpressionEngine entry. The field shows upload progress and does not require the entry to be submitted to upload.
- Edit This (for EE2) by Thanh Vuong
Similar to Editor for EE1.x. This extension adds a little ‘one click away’ edit link or image next to your channel entries on your website.
- Current (for EE2) by Green Egg Media
Creates {current_url}, {total_url_segments}, and {last_url_segment} global variables based on the current page.
Blog Entry

The Fusion Ads network has put together what very well might be the most killer software bundle I’ve seen to date. Not only are there some really great apps for your Mac, but also a full freelancer license of ExpressionEngine. If that’s not enough, you get the entire Learning ExpressionEngine 2 screencast series by our very own Ryan Irelan.
The bundle costs just $79, so if all you care about is EE, it’s still a bargain. Heck, if you use a PC, and thus physically can’t even install the Mac software, you’re getting a deal—you still get some rad icons and the screencasts.
Anyway, I don’t normally get excited about the yearly deluge of software bundles, but this one caught my eye. I highly recommend checking it out.
Blog Entry
The latest release of ExpressionEngine, version 2.1.2 is out and ready for download.
ExpressionEngine 2.1.2, while not a very exciting version number, it does mark a big milestone in EE development: The complete removal of PHP 4 support. That’s not all though, Robin Sowell summarized the highlights in her post on the ExpressionEngine blog.
This release marks the return of the autosave, completely revamped since we saw it last, as well as saying goodbye to those pesky daylight saving time issues and a much more theme-able control panel.
All of these sound like great things and I’m encouraged by the work that the team is doing getting these releases out. Are there any of these updates which are particularly exciting for you guys, or are you just so thrilled about ditching PHP4 support that you don’t care about anything else?
Check out the change log or Robin’s post for more info on this release.
Blog Entry
I feel like this is something I should have known about by now. Either that, or I knew about it all along and just forgot. Did you know that ExpressionEngine 2 has the handy ability to create a bookmarklet for you to quickly and easily get an entry started? Well Wouter Vervloet did, and he blogged about it in his post Rapid content entry in ExpressionEngine 2.
You can create the bookmark based on which channel you want to post to and which custom field you want it to use. This makes a handy companion to Andy Johnson’s How to Build a Simple Tumblr Blog with ExpressionEngine.
Read Wouter’s post on this nice little gem, complete with screenshots and instructions for setting it up.
Blog Entry
I just double-checked: It is indeed Wednesday today, which means it’s EE Help Chat day! EE Help Chats are a great way to spend an hour talking shop, getting help figuring out something you’re been working on, or just spending time with the ever-so-helpful EE Community.
In our standard style of Choose Your Own Adventure for help chats, you get two options:
European EE Help Chat
Our European EE Help Chat takes place at 19:00 GMT. If you follow @eeinsider on Twitter, you’ll find a reminder tweet about 15 minutes before. Visit this URL at the time of the chat to gain access to the room: http://mijingo.com/europe-chat
EE Help Chat
The original chat still takes place at the regular time of 9 PM Eastern at http://mijingo.com/go-chat. As with the other chat, we typically post a reminder on Twitter about 15 minutes before.
See you there!
Blog Entry
Nicolas Bottari wrote up a how-to on developing a way to have file uploads stored above the webroot. At first I thought “Why on earth would someone want to do that?” Then I started thinking there might be occasion when you would want people uploading something somewhat private that you never want to be able to be downloaded via the web browser. That would be clever.
He uses Solspace’s Freeform Module to pull it off, but he goes on to say that’s not the only way to pull this off. I recommend reading this and putting it in your toolbox of tricks for when this need arises. Great stuff!
Blog Entry
This is a on-going series of entries where I highlight EE experiences. Bonus: it includes a tip!
if you change your cp_url, you will need to remove custom CP tabs and re-add them to reset the links.
Greg Ferrell via Twitter
Wow, I didn’t know that. What a pain! Hopefully that’s a bug that can get fixed at some point.
Blog Entry
Chris Brauckmuller at Nettuts+ wrote a great article about his approach to ExpressionEngine development called Apply the DRY Principle to Build Websites With ExpressionEngine 2. In it he shares a nice solid way to get a default ExpressionEngine installation set up and deployable across servers and groups of people.
His focus is, as you can expect, on not repeating tedious tasks:
I’m not a programmer. However, the programming mantra don’t repeat yourself, or the DRY principle for those acronym lovers among us, has really begun to resonate within me as I get more involved both with web development and running my own business.
Chris goes on to give a great tutorial, with code examples and everything, on using DRY principles in setting up your EE install. As we all know, there are lots of different approaches to EE installs, and for that reason alone I enjoy reading how people set up their systems. There’s always something to learn.
Check out Chris’ post on Nettuts+: Apply the DRY Principle to Build Websites With ExpressionEngine 2
Blog Entry

- MX Stop Spammers (for EE2) by Max Lazar
This module helps to find spammers easily by special member filters. Module also integrates with the Stop Forum Spam DB, so you can block a spammer automatically during registration, check members from your CP or post your own spammer’s list to SFS DB.
- CE Benchmark (for EE2) by Causing Effect
For developers to benchmark anything with {exp:…} tags.
- JP Read Another (for EE2) by Joe Paravisini
A fieldtype that shows the data of another fieldtype as read-only text.
- NDG Masked Input (for EE2) by Nico De Gols
Define a mask format for the field input, making sure the correct format has been entered with inline validation. A publish validation is added for fields that are marked as required. SafeCracker & Matrix Compatible.
- Count Entries (for EE1) by Isaac Raway (Airways)
Count entries authored by a given member in a given set of weblogs.
- Will Hunting (for EE1 & EE2) by Isaac Raway (Airways)
Provides a math template tag capable of performing relatively complex mathematical evaluations.
- NSM .htaccess Generator (for EE2) by Leevi Graham (Newism)
NSM .htaccess Generator is an extension that modifies your .htaccess file when an entry, page or template is created or updated. It was developed to easily remove index.php from URLs using the “include list method”.
- Japanese kana typing (for EE2) by Nicolas Bottari
A small extension that writes in romaji (roman letters) in the URL title as you type Japanese kana (hiragana and katakana) or zenkaku (full width) characters in the entry title field.
- NSM Email Login (for EE2) by Leevi Graham (Newism)
NSM Email Login is an ExpressionEngine 2 extension that allows members to login using their email or username.
- Countee (for EE2) by David Dexter (dpdexter)
Countee is an ExpressionEngine 2+ plugin that returns the number of channel entries for a member.
- SP Random StrEEng (for EE2) by Steven Peercy
Generates a random string using numbers 0-9 and upper and lower case letters A-Z.
- Birthdatee (for EE2) by Zachary Lang
This plugin provides a way to quickly calculate a member’s age based on the birthday info (month, date, and year) provided in the member registration process.
Blog Entry
Leevi Graham announced today on the Newism blog that his add-ons site, expressionengine-addons.com is now ee-garage.com. He goes on to list some of the painful stuff he’s had to deal with in working with Paypal and getting everything rolling with the site. It sounds like it’s been a pretty rough six months since expressionengine-addons.com.
At times I’ve considered throwing in the towel and stopping releasing addons publicly ... So what’s kept me going? The community and the positive feedback. Thanks to everyone for supporting our software and making sure we deliver the best addons for ExpressionEngine.
Leevi has given quite a bit to the EE Community with lots of fantastic add-ons. I doubt there’s many a developer who hasn’t installed at least a few LG or NSM add-ons on their sites over the years. Here’s hoping the worst is behind him and good times ahead!
Blog Entry
EE Help Chats are a great way to spend an hour talking shop, getting help figuring out something you’re been working on, or just spending time with the ever-so-helpful EE Community.
European EE Help Chat
Our European EE Help Chat takes place at 19:00 GMT. If you follow @eeinsider on Twitter, you’ll find a reminder tweet about 15 minutes before. Visit this URL at the time of the chat to gain access to the room: http://mijingo.com/europe-chat
EE Help Chat
The original chat still takes place at the regular time of 9 PM Eastern at http://mijingo.com/go-chat. As with the other chat, we typically post a reminder on Twitter about 15 minutes before.
See you there!
Blog Entry
Nicolas Bottari wrote an article that made me think “Why on earth have I never tried this before?”
He explains that you can add HTML right inside the field label of custom fields. I knew you could add HTML to the Field Instructions part of a custom field, but it never occurred to me to add HTML to the Field Label itself. Brilliant!
Nicolas includes some great examples of how to decorate field labels in very useful ways, and includes some caveats to keep you out of trouble too. Great tips!
Decorate your custom field labels in ExpressionEngine
Blog Entry
Russ Lipton posted a document to the Community News forum that looks to be a pretty useful tool in explaining the benefits of ExpressionEngine to potential clients.
In it, I share my take on why so many people report accelerated design and development productivity using EE - framed in words suitable for intelligent, but perhaps non-technical, decision makers.
I know there have been times where a potential client of mine wanted some more information to look over and share at their company to explain why I might be recommending EE to them for their website. This is pretty handy!
I’d like to see this expanded even further, or put together with another document or two that explain some of the technical aspects a bit more (some decision makers are very technical folks). I hope Russ either does this or decides to license this document in a way that people can take it and expand on it. Either way, this is a great tool for the community!
Read Russ’ post in the forums or head straight to his site to download the PDF.
Blog Entry
Leevi Graham released a nice extension that allows members to login using their email address instead of a regular ol’ username.
Previously if a developer wanted email login functionality they would need to use Solspaces User module and check “email is username”. However doing so would be limit the use of the “username” variable in templates. Example: Profile URLS with usernames would need to be created with unfriendly member id’s. http://yoursite.com/member/leevigraham - vs - http://yoursite.com/1
We had this exact problem when building Typedia and had to abandon using email addresses as logins as a result. Clearly, the key flaw in our plan is that we didn’t have a time machine that would take us to the future to download both EE2 and Leevi’s extension.
Check out Leevi’s extension at ExpressionEngineAddons.com
Blog Entry
Jesse Bunch wrote a nice tutorial on getting under the hood using CodeIgniter in ExpressionEngine 2.0. He describes his problem:
… [W]hen I needed to create a simple web service that would consume an XML post and update the ExpressionEngine database, I found myself in limbo—that is—not needing the control of a module, but needing more control than that offered by an accessory.… The idea here is to have the power of the CodeIgniter libraries and make use of the ExpressionEngine API. Choosing this method will prevent model redundancies and make for a much smoother upgrade day.
As always there are there are plenty of ways to do this. Some people would have just written a module or some sort of external script, but I like the idea of harnessing the EE API to do it without having to go all in with a module.
Read how he did it along with some code examples: Harnessing the Power of CodeIgniter in ExpressionEngine 2.0
Blog Entry
Just a quick note in case you missed it: Leslie Doherty from EllisLab posted a nice juicy news roundup this past Saturday on the ExpressionEngine blog. I really am glad she keeps calling these “weekly”, even though the last one was in October. I can’t wait to see these come more regularly.
There’s loads of great news in there, but make sure you check out the *Special* section. Yay!
One new thing is that Leslie is encouraging readers to submit their own news for the roundups posts:
As part of our weekly roundup series, you can now post your announcements, releases, podcasts, articles, books, and add-ons in our forum to be included. If you have something to submit, please do so!
There’s already a thread started for the next roundup post, so go add your news!
Blog Entry
Embrace the chilly weather with SnowEE:
SnowEE, an addon with no useful functionality whatsoever, it will only make you warm and fuzzy inside. Get your family in front of your control panel and start cracking out those Christmas carols!
I wonder if they make one with a nice animated fireplace gif and crackling sounds?
SnowEE: an ExpressionEngine accessory for the holidays
Blog Entry

This week, per user suggestions, we’re experimenting with adding the short description for each new add-on. This also coincides with an extra big dose of new add-ons because we missed a post last week due to Thanksgiving. This results in what is likely the most lengthy Weekly devot:ee ever. Let us know if you like the addition of the short descriptions.
- Shortee (for EE2) by David Dexter (dpdexter)
Shortee is an EE 2.0+ plug-in that caches and returns an is.gd url.
- Feed Parser (for EE2) by Andrew Weaver
Feed Parser is a free plugin to fetch and read XML-based feeds and API results for display in your templates.
- Inflector (for EE2) by Brett DeWoody
Inflector provides several functions to change words to plural, singular, camel case, etc.
- Page Helper (for EE2) by Conflux Group, Inc. (Jeremy Gimbel)
Helps users generate a Pages Module URI by allowing them to generate a Page URI by selecting a parent page and automatically pulling the URL Title from the entry.
- Add-on Order (for EE1) by Laisvunas
This extension alphabetically re-orders the list of extensions and the list of plugins in the CP.
- Scripturizer EE2 (for EE2) by w3care
Link scripture references to ESV at Good News Publisher or Bible Gateway.
- WB Explode (for EE2) by Wes Baker
Takes a list of items separated by pipes and returns either a modified version of that string or iterates over the content in the tag pair.
- Eencode (for EE2) by Micky Hulse
[Expression Engine 2.0] Eencode: [PHP5] Encoding plugin.
- Wallace (for EE2) by Isaac Raway (Airways)
Restores the show_full_control_panel_end hook in EE 2.0, allowing other extensions to make use of this useful functionality.
- Editee (for EE2) by Cem Meric
Source code editor for Template, Snippet and Database Query Form textareas using EditArea script right from the EE control panel.
- Hubbed (for EE2) by Joshua Kendall
Returns a list of Github or Bitbucket repos.
- AJAX Login (for EE1) by Laisvunas
Enables to login and logout using AJAX. This add-on has been designed to be fully compatible with AJAX Babble, AJAX Form Validator and AJAX Captcha.
- Clean HTML (for EE2) by kodegeek (Musa)
This plugin cleans dirty html code.
- Power Truncate (for EE1) by Charlie Hawker (dooper3)
Truncating plain text and HTML has never been easier thanks to this powerful, intuitive add-on for EE 1.
- PHP Text Format (for EE2) by w3care
This plugin takes whatever text is between the appropriate tags and formats it according to the formatting type you chose.
- Freeform to Sugar Integration (for EE2) by w3care
Provides a seamless way to integrate Freeform inputs to Sugar crms contact module automatically. Whenever a new entry is made via freeform based contact form all information will be passed to sugar CRM and a new entry will be made into contact module.
- Sugar Integration (for EE2) by w3care
This extension provides a seamless sync between EE member module and sugar crm’s contact module.
- MX Plural (for EE2) by Max Lazar
MX Plural allows you to choose correct plural form of words in different languages.
- Easy iCalendar (for EE2) by Crescendo
For too long, generating iCalendars with ExpressionEngine has been far too hard. Easy iCalendar simplifies all this down to one standard EE tag.
- BW Required Category (for EE2) by Wouter Vervloet (Baseworks)
Makes categories required for specified channels.
- Hacksaw (for EE2) by Brett DeWoody
Hacksaw takes your entry’s content and whittles it down to a more manageable size. It strips the HTML and limits the excerpts by character count, word count or cutoff marker.
- Entry Lottoree (for EE2) by Brett DeWoody
Entry Lottoree allows you to display X random entries from your exp:channel:entries loop. For example, a single random entry from your 5 most recent entries.
- WeatherIcon (for EE1 & EE2) by Dylan Smith (Context Designworks)
Show the current weather conditions from any NOAA station, with graphics. An update to the WeatherIcon plugin that automates sunrise/sunset times, and other new options.
- Remember Me (for EE1 & EE2) by Wouter Vervloet (Baseworks)
Save entries for a user during a session. This could be used for a ‘add to cart’ function or for a ‘product compare’ function (save entry_id’s for later use). Entries are only stored during a session.
- Channel Videos (for EE2) by DevDemon
Channel Videos allows for easy search and submission of YouTube and Vimeo videos. Easily attach videos from the two popular video sources for your EE entries.
- SAEF Field (for EE1) by Stephen Lewis (Experience Internet)
Make working with Stand-alone Entry Forms marginally less painful.
- Text Link Ads Plugin (for EE1 & EE2) by tla plugins
The Text Link Ads module allows you to sell advertising space on your site via Text-Link-Ads.com
- InLinks Ad Integration (for EE1 & EE2) by tla plugins
This will allow your EE sites to interact with the inLinks product from Text Link Ads. You sell simple text ads in the content of your posts. Monetizing your in content ads and generating a revenue stream.
Blog Entry
Jamie Rumbelow wrote a nice little article this week on Think Vitamin about Why You Need to Embrace ExpressionEngine. I know I don’t need to tell you, dear reader, why you need to embrace ExpressionEngine, but this article is definitely worth a read. It’s a great primer on the strengths of not only ExpressionEngine itself but the community around it as well. I don’t think this article will convince the most die hard (with a vengeance) Wordpress fan, but it might be handy for someone searching for a new CMS.
I’ll warn you, this article does have a lot of comments. You will find plenty of people going back and forth on whether EE is a nightmare or the best thing since sliced bread, and whether or not Wordpress is a silly little blog platform with loads of security issues. It’s up to you if you want to dig into that, but at least you have been warned.
Think Vitamin: Why You Need to Embrace ExpressionEngine