All entries filed under “EE Extensions”
Coverage of newly released EE extensions.
Jesse Bunch describes a problem that you’ve probably faced before. You have a great workflow set up with Git, SVN or another VCS and then someone goes into the EE Control Panel and edits the templates, completely bypassing the workflow.
Obviously, this is a huge problem because our production severs don’t commit changes back to the repository for obvious reasons. So when someone edits a template on the production server, nobody knows it happened and when we deploy a change to that template, it is very likely that the change will be lost or our working copy will become out of sync (depending on how we deploy the project).
To help fix this problem, Jesse created an extension that disables the template editor in the Control Panel.
This extension makes the templates and template groups in EE read-only. It doesn’t affect things like synchronization, PHP input/output parsing, and access control.
You can get the extension at Devot-ee. It’s only available for EE2 right now (although a EE1 version is planned) and is free to download.
Mega Error by Electric Putty seeks to solve the problem of hidden errors across tabs in the publish form. In the forum post where Rob Hodges announced the free add-on he described it like this:
You have a channel with lots of fields. You’ve spent ages making a beautiful custom publish layout for your client to make their life easy. You’ve separated your fields across multiple tabs and everything looks great. Your client then creates a new entry and leaves a required field empty. EE captures the error and adds a warning, but the field is on the second tab and the client can’t see it. They have no way of knowing there is a problem; they don’t even know the entry hasn’t been saved.
Mega Error displays a giant message at the top of the publish page with a summary of errors and then an error with each field across all tabs.

(Image from Mega Error product page)
Mega Error is free and available now only for EE2 from the Electric Putty website.
Is “cracker” the new “-ee”?
Maybe.
Regardless, CacheCracker is a new extension from Issac Raway and it boasts the ability to “give you complete control over caching in your ExpressionEngine system.”
The extension, which is available via Github while in beta testing, has forced caching for all templates, expiring caches for edited templates, caching of global embeds and more.
Read the documentation for the entire list of functionality and download the public beta to help Issac test out the new extension.
Adam Fairholm finds use for a (still undocumented) CP hook (as discovered by Rob Sanchez):
A few days ago Rob Sanchez tweeted a screenshot that caught my eye – a hook called cp_menu_array that is hanging out in expressionengine/libraries/Menu.php like it’s nothing special. It was added in EE 2.1.5.
/* -------------------------------------------
/* 'cp_menu_array' hook.
/* - Modify menu array
/* - Added: 2.1.5
*/
if ($this->EE->extensions->active_hook('cp_menu_array') === TRUE)
{
$menu = $this->EE->extensions->call('cp_menu_array', $menu);
}
/*
/* -------------------------------------------*/
Adam takes the hooks, builds an extension and shows you how to use it to customize the EE CP menus. Kaboom?
Elivan Zoeren created a spam blocking extension for EE2 that uses the Bad Behavior script to weed out spam submissions. In a clarification in the comments to his post, Elivan notes:
Bad Behavior works before Expression Engine starts generating the page, so spammers won’t be able to see your website at all. So it keeps them from spamming SafeCracker, FreeForm, EE contact forms, etc.
The Bad Behavior EE2 extension is free and available now: Bad Behavior for EE2
The description says it all:
[I]magine an online application using a channel with many fields. Some are suitable for submission from a Safecracker form and some are not (perhaps ‘admin notes’ or ‘store credits’. Could be anything). With SafeCracker in it’s current state, if the name of a sensitive field can be established, it can be updated by injecting a hidden field into the edit form. This amounts to, at best, Security through obscurity and at worst a gaping security hole.
If you have fields that you don’t want to ever be accessed via SafeCracker, you should either not put those fields in the custom field group at all or use something like SafeSharpener. The developer, Darren Miller, is asking that something similar to this be added into SafeCracker.
It’s a free add-on and available now at the SafeSharpener website.
The man we know as “Low” (Lodewijk Schutte) released yet another add-on today and it’s a great one: Low Search.
Low Search is a simple yet powerful search tool for ExpressionEngine. It uses search collections based on channels to create an index, which is searched and returns channel entries. Per search collection, you can apply weight to each searchable field, adding importance to that field. Once an index is built, it is kept up to date automatically.
Just like the built-in search module you have template tags for the search form and results. Additionally Low Search keeps a search log, so you can review recent search queries “including keywords, member (if applicable), ip address, search date and parameters (eg. search mode, collection, etc.).” Wow! That’s a great way to see what your visitors are looking for so you can help them more easily find that content.
Low Search will also do “loose ends” search so you can have partial word matches returned.
A normal search will match exact words only, a fuzzy search will also return partial matches, eg. Lion will also match Lions and Lioness, but not Dandelion. Exact matches will still be rated higher than partial matches.

At 35 Euros (about $51 US), it’s worth the purchase just to see what the add-on can do and how you can flex its muscles in your next EE2 project.
Over at the Erskine Labs blog, Jamie Pittock walked through the building of his language switcher extension. His extension needed to allow a default language, limit the number of languages, allow users to set a preferred language that will be remembered on subsequent visits and a way to display or access the language choice in the EE templates.
He came up with a language switcher add-on (freely available on Github) that does just that. Jamie paired his add-on with NSM Multi Language to make it easy to input content in multiple languages.
Read Jamie’s write-up: EE2 language switcher extension at Erskine Labs.
If you’re old like Ryan Masuga, you’ve probably used Leevi Graham’s original Twitter add-on that allowed you to easily post to Twitter from inside the Control Panel.
Today Leevi and Newsim released a brand new version of the add-on for EE2: NSM Twitter.
NSM Twitter is an oAuth authenticated ExpressionEngine addon that allows you to post Tweets to one or more Twitter accounts when an entry is modified or from a handy accessory.
The add-on is customizable to control which member groups are allowed to access it. Learn more NSM Twitter at the EE Garage website.
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
When I saw that EllisLab was going to add {last_segment} to EE 2.1.1, I thought that would surely make obsolete any add-ons developers have made to pull off the same trick. I headed over to Devot:ee and found Bjorn Borresen’s free Last Segment add-on to take a look.
When I compared Borresen’s add-on to the new built-in functionality, I saw that Borresen’s Last Segment appears to do quite a bit more with additional options, such as showing the last segment with or without pagination.
I have to imagine that Borresen will update his Last Segment add-on to work with EE 2.1.1. Since they both use the {last_segment} variable, I’d shy away from using them together. And if you depend on some of the features of Borresen’s Last Segment add-on, wait till he does update it before upgrading to 2.1.1.
In the last EE Podcast, we talked about the problem of member spam and the steps you can take to protect your site and weed out the member spam. I jokingly said that Low should update his Low NoSpam to support member registrations. Well, now it does.
If you don’t know about Low NoSpam, here’s a description from his site:
This ExpressionEngine add-on will check comments to see if they’re considered to be spam by the chosen service, either Akismet or TypePad AntiSpam. But it doesn’t end there. It can also check incoming trackbacks (EE1), gallery comments (also EE1), forum posts, wiki articles and member registrations. Caught comments will be set to Closed for further moderation. Caught trackbacks, forum posts, wiki articles and member registrations will be discarded, since these do not have a proper native moderating system in EE.
Low NoSpam is free and if you find it useful consider dropping Low some beer money.
Erik Reagan has posted a new extension on GitHub, called CP Pad Lock, that allows you to easily lock all member groups out of your control panel except Super Administrators.
This extension is not intended to take the place of the normal member group access permissions, but instead as a way to temporarily block out member groups while some maintenance work or updates are happening.
All none super admin users would get the following message:

CP Pad Lock is only available for EE 1.6 and is a free download. Download now: CP Pad Lock
In a post in the EE forums, Brandon Jones released the reCAPTCHA extension.
reCAPTCHA is an ExpressionEngine 2 extension that replaces the built-in captcha with the reCAPTCHA system on member registration and comment forms. If you don’t already have reCAPTCHA keys, you can sign up and get them here.
With reCAPTCHA you can have CAPTCHAs that are accessible to the visually impaired, work with javascript disabled and supports multiple languages.
The extension is currently only available for EE 2. Read Brandon’s announcement post for some FAQs and a download link.
Today Pixel and Tonic released Playa 3, which (drumroll, please!) now supports ExpressionEngine 2! This is an add-on that a lot of people have been waiting for before they make the jump to EE 2. Well, it’s here, so what are you waiting for?
Until the next release of the EE 2 public beta is out there is a minor code adjustment needed to get Playa 3 to work on EE 2 but that will go away with the impending release of EE 2.02.
If you’re already a license holder for Playa 2, this is a free upgrade.
More to come on Playa 3 this week!