All entries filed under “ExpressionEngine 2”
In a two part series at Metaq, Terris Kremer wrote up how to sort and order data with ExpressionEngine and Ajax. Terris takes a regular ol’ table of EE entries and makes them sortable.
The first step to making something work with Ajax is to make sure it works without Ajax. If a user doesn’t have JavaScript enabled I want to be sure they can still sort entries. Those users will just have to load the entire page.
Let’s start with a basic template that has a header, footer and content section.
He includes plenty of code snippets and explanations so you can adapt the code to your situation. The first article just gets the basics working…no Ajax implementation yet. In the second article Terris tackles making the entries sortable without requiring a page load.
If this type of functionality is new to you or you need it on an upcoming project, both articles are a good reference.
Wil Linssen put together a list of all ExpressionEngine 1 & 2 cookies organized by those that are essential and non-essential. Will helpfully also included a description of the cookies function.
This document outlines all of the cookies use by ExpressionEngine 1.x. With the EU cookie law coming into force on May 26th, it’s important to know what cookies are set, which are ‘essential’ and why they are there. Hopefully this will help advise your decision process when altering your site to adhere.
It all started (again) on Saturday when Marcus Neto tweeted:
Marcus may be a little biased. He did previously run EE Templates, which at one time had both paid and free themes.
A few people responded on Twitter and took issue with the idea that ExpressionEngine (and EllisLab) should ever embrace themes. They won’t work, right? WooThemes tried and it didn’t work out for them. They’re a group of smart people who have had a lot of success selling themes. A betting person would guess the reason is because there just weren’t enough potential customers. That betting person would probably be richer than someone trying to sell ExpressionEngine themes.
The other sentiment from those opposing more prominence in the theming world seemed to be rooted in either the desire to keep things as they are, (not “ruin” EE with themes) or some other curmudegeonly-driven reasoning. “Get off my lawn” is a valid reason, I suppose, but hardly one that should be taken seriously.
There are three reasons why ExpressionEngine themes haven’t worked.
First, the focus of the community using EE has been on developing custom websites. WordPress, as one example, has a long history of being themed. Many developers alter a base theme and use that to start their sites. ExpressionEngine developers typically (always?) start with a blank slate and implement custom static HTML templates.
Second, ExpressionEngine isn’t free, so people looking for cheaper themed sites might not pay for commercial software. Free software and free themes (or $50 themes) are tough to pass up if you don’t have a budget. And, let’s be honest, the majority of people needing websites don’t have a real budget. I don’t see anyone paying $200 for a license and then using a $50 theme. But, hey, maybe someone would.
The third reason, albeit much less of a factor, is that the ExpressionEngine user base isn’t big enough for EE to take off in a way where people theme it like crazy. Theme-focused WordPress and Drupal dominate usage statistics of the top 10,000 websites (with WordPress owning more than half). ExpressionEngine has an important place but at less than 10% (even if you remove vBulletin, primarily forum software, from consideration) it’s not big enough to attract the masses of people who build sites with themes.
EllisLab’s CEO Leslie Camacho has clearly stated his thoughts about some of those numbers and how it is no secret that an open source CMS would dominate the market while a commercial CMS would have less of a stronghold.
In terms of selling EE vs. open source, its true that open source’s reach is way beyond EE. It always has been. However, I want to point out that EE is the #1 commercial CMS and 3rd party tools like Built-with back up this claim. This is especially true in the top 10,000 websites. Note that they count vBulletin in there, but its a forum system first.
Should EllisLab focus on themes and making them easier to use and more popular? Yes. What would it take to make that happen?
- A lower ExpressionEngine license price tier ($39)
- More documentation on theming
- A EllisLab-supported theming vendor/community site
Why should they? Because why wouldn’t you want to reach as many people as possible who may enjoy using your product?
Along with the EE 2.5 release, EllisLab also released a new first party module to help EE developers make their websites compliant with the EU cookie legislation.
What is the Cookie Consent Module?
The Cookie Consent Module gives developers the option of disabling all cookies unless the site visitor specifically opted into them. Without the Cookie Consent Module disabling all cookies was not possible.
Without consent for cookies, visitors are unable to register for a member account or log in to their account.
Visitors can grant consent to cookies in two ways (from the docs):
The module makes two means of granting consent available: a direct link that can be used anywhere and form field that can be included on login and registration pages. Removing permission to set cookies is also provided for via a link.
You can find code samples and the available variables in the Cookie Consent Module documentation.
Does the module come with ExpressionEngine?
No. It is a free download from the ExpressionEngine Add-on Repository.
Update: I reported this as a EE 2.5 feature but it was actually introduced in EE 2.4. My search of the change log led me to believe it was new but I searched the wrong part. Apologies! Still, a nice addition. Thanks to Andy Gaunt for pointing that out to me.
A small but nice update to EE 2.4 is the simple link to create a new entry after publishing one and ending up on the (in my mind, nearly useless) View Entry screen.
Added link to publish another entry after publishing an entry.

Not a big addition but certainly one that makes a difference when you need to add multiple entries to the same channel.
Today EllisLab released ExpressionEngine 2.5. After delaying the original release date of March, the 2.5 version that contains the new rich text editor is now available for download and purchase.
From the blog post announcing the release:
ExpressionEngine 2.5.0 is a feature and security release. It features a new Rich Text Editor field type, a Rich Text Editor Module to allow use of the editor on the front end, and a Cookie Consent Module designed to help European Union (EU) users comply with privacy laws impacting cookie use. In addition to a number of new features, this release improves XSS filtering and redirect behavior. For developers there are a number of new hooks and improvements, and everyone will benefit from the stability improvements provided by over 50 bug fixes.
For developers there are some new hooks available and support for compliance with the EU cookie laws through the Cookie Consent Module.
Read all about it in the blog post or read the 2.5.0 changelog for all the details.
“We’ve always modeled content.”
That was the first thing I said to myself after reading the A List Apart article Content Modelling: A Master Skill by Rachel Lovinger.
Rachel details the idea and work behind breaking website content and pages into different data buckets (in our case this would be Channel Custom Fields and Channels). Content modelling is important because we need make sure the people managing the website have the control they need over the content. Does that sidebar paragraph about the site need to be edited on occasion? Make sure you store it in a way that the website team can update it.
As people who develop with and on ExpressionEngine, content modelling seems obvious to us. This is what we’ve always done. It is an important part of being a competent web developer. It is not something that we should just leave to someone else to do.
To demonstrate this, read through this article by Justin Reynolds on content modelling with ExpressionEngine.
If you’re going to model content effectively you need a content management system that makes it as painless as possible to organise information into well defined data containers. I thought I’d take a moment to outline why I think ExpressionEngine by EllisLabs (sic) does this so well. It’s the primary reason I use it as my standard content management solution for larger websites. The system was designed from the ground up with flexible content modelling in mind: it makes it very straightforward to define ‘channels’ of infomation built of any type of data that can be displayed on a website: single lines of text, body copy, images, multimedia files, PDFs and other downloadable files, dates, categories - and so on. I’ll stress from the outset that I’m sure there are other systems that also handle content modelling well - it’s just that I like the way ExpressionEngine does it.
Publish Layouts in ExpressionEngine are a great idea. But they haven’t been reliable for a lot of people…myself included. As I read through the Twitter streams about ExpressionEngine I see a lot of comments about having to reset Publish Layouts after an upgrade, after removing fields and more.
Marcus Neto of EllisLab put out a call to get some more bug reports and steps to reproduce:
Have you run into the Publish Layouts problem? Get in touch with Marcus or file a bug with steps to reproduce the problem.
Originally announced for a March release, EllisLab yesterday announced that they had to delay the release of EE 2.5 so they can deal with the EU cookie legislation and bringing ExpressionEngine in compliance with those new laws.
Robin Sowell of EllisLab writes:
2.5.0 is being pushed out to allow the inclusion of a new Cookie Consent module. The module will require consent before allowing any cookies to be set using ExpressionEngine’s native functions. Login and registration will also be restricted to those who have granted consent for cookies. Consent can be granted through the use of a link or through the inclusion of a form field on login and registration pages. The module will include conditionals for user consent, providing maximum flexibility for designers, who are free to create a ‘cookie consent’ interface that complements their site.
EllisLab is taking the module approach (using hooks in the core code) so that developers have the flexibility to “take their own approach to the new regulations.”
Also included in EE 2.5 is the new ExpressionEngine rich text editor that EllisLab previewed back in February.
In 80 days the new EU legislation on web browser cookies grace period will end in the UK. As of May 26, 2012 “if you are not compliant or visibly working towards compliance, you run the risk of enforcement action, which can include a fine of up to half a million pounds for a serious breach.” (via EU Cookie Law Explained)
In short, you need to get consent from your website visitors to store cookies on their computer. From The Cookie Collective:
It has been designed to protect online privacy, by making consumers aware of how information about them is collected by websites, and enable them to choose whether or not they want to allow it to take place.
It started as an EU Directive that was adopted by all EU countries on May 26th 2011. At the same time the UK updated its Privacy and Electronic Communications Regulations, which brought the EU Directive it into UK law.
Each EU member state has done or is doing the same thing. Although they all have their own approach and interpretation, the basic requirements of the directive remain the same.
EE developer Andy Marshall (you might know him as “moogaloo”) wrote about this on his blog and the implications it has for users of ExpressionEngine.
The law requires all non-essential cookies not be dropped until the user explicitly opts in. The definition of non-essential seems pretty vague - some people see eCommerce cart cookies as essential and therefore exempt from the laws, but I’m not sure if that’s been categorically confirmed. And what about ones that are hard coded into a CMS that, whilst largely benign, would be hard to argue are essential to the site’s functionality.
ExpressionEngine - our CMS of choice - for example uses 3 cookies to track a users recent activity, last visit and general site movements. None of these record a person’s email, name or other identifiable details, merely their browser session on your site, but are all non-essential to the site.
I do not live in the EU and I am not an expert on this law but it seems like is a lot of gray area here in how the law requirements are interpreted.
So, what is going to happen to sites running ExpressionEngine? I don’t know but hopefully everyone will be able to comply before the May deadline. In another blog post today, Andy Marshall again covers the topic of the legislation and EE. He wonders what EllisLab is doing about it (if anything).
The problem is, ExpressionEngine uses 3 cookies by default and they can’t be turned off. They don’t do anything that concerns me, but the fact they can’t be removed from the core EE installation does. By using an ExpressionEngine site, I am now making a site uncompliant with a very real law that will require sites to run without non-essential cookies.
Andy called on EllisLab to address this problem. In the comments Steven Grant linked to a EE support thread that shows that EllisLab is aware of the problem and, as of the last update in January, plan to work on the issue and address it so everyone who in affected by the EU leglisation can comply. Robin Sowell, a software engineer at EllisLab replied:
We’ve reached the discussion stage on it- it was already on our radar. We haven’t started coding on it, and our plans aren’t currently firmed up, but we do know the deadline is looming. But yes- we do intend to give our users a way to comply with the cookie requirement. At least on the frontend, EE will need to be able to run cookie free, and I’m thinking some posts on different ways to honor the requirement will likely be needed as well. And yes- right now, there’s no way to totally disable cookie setting.
Hopefully in the next 80 days we’ll have more updates about the progress EllisLab is making on making the frontend of EE cookie free.
The video from EllisLab featuring the new EE rich text editor is making the rounds and people are starting to chime in on what it means and how they see this playing out vis á vis third party add-ons.
I don’t think it does according to what we see in the video but I’m not sure if that’s planned or not.
What’s your reaction to this? Tweet EE Insider or hashtag your thoughts with #eecms and we’ll find it.
Last night in an email announcement, EllisLab pulled back the curtain on their new rich text editor. In a short preview video they give a look at some of the editor’s capabilities.
ExpressionEngine 2.5 Preview, the Rich Text Editor from EllisLab, Inc. on Vimeo.
Until I actually use this thing I can’t really comment much on it. Demos of software are different than actually using them. That being said it does look like this editor will be a nice default for ExpressionEngine and certainly has been a missing piece for a long time. Does it replace other third party editors like Wygwam? I don’t think so. If only for the lack of “Paste from Word.”
My full comment and review will be reserved for whenever it is I can use the editor myself. Until then, be sure to watch the video and leave your comment here about what you think (EllisLab closed comments on the video page).
Update: Wes Rice pointed out in the comments that some of the information in the PDF isn’t correct. He’s written up a nice list of information that addresses it. Lest I be a “fool,” I’m posting this update so everyone will scroll down to his excellent comment.
Earlier this week, Eric Lamb asked if there was sheet that showed the benefits of using ExpressionEngine versus WordPress. Well, apparently there is.
I hadn’t seen this one before but Alex Kendrick linked to to a PDF by Graham Huber that compares WordPress and ExpressionEngine in terms of how content is organized and some major features, including the number of security advisories (the PDF states 175 for WordPress vs. 2 for EE).
This type of content would be a helpful addition to the Pro Network. Many EE professionals would benefit from being able to log in to the Pro Network and access documents they need to help support their case for why ExpressionEngine is the best choice.
Read the entire PDF: WordPress vs ExpressionEngine
Here are the results of the poll I put up earlier this month. The idea behind the poll was to find out how many people are publishing with third party tools and how many just stick with the Control Panel.
The response rate was lower than what I had hoped for but the data still gives a glimpse at how people are publishing content to their ExpressionEngine sites.
The Results
I suspected that the majority publish their sites via the EE Control Panel and not with third party publishing tools like MarsEdit, Ecto, Textmate or even iExpression. My suspicions were proven true with the results.

As you can see, some do use external tools to publish content but their lack of support for mimicking the Control Panel publishing interface is surely whey they’re not more widely adopted. Additionally, with the introduction of customized publish layouts (no matter how fragile they still might be, 2 years later), developers and users of ExpressionEngine can now tailor their publish forms to be exactly what they need to them to be and therefore the entire Control Panel experience becomes more useful. This, perhaps, diminishes the need for another editor.

The biggest reason, of course, is that the web browser is cross platform. I can post content to my site from any computer or device with a web browser. Ultimately, this is the most flexible solution (and the most realistic if you’re building sites for clients).
However, the EE Control Panel still fails miserably on mobile devices (maybe one day EllisLab will create a responsive theme by default; until then, check out this one by Ben Croker) If you really need to post to your site from your iPhone, you should also check out iExpression, a native iOS app that lets you publish content to EE. For what it’s worth, the Control Panel works okay on the iPad if you just need to jump in for a quick tweak or edit. Anything beyond that will probably result in furstration.
Operating System
I asked for the primary operating system just to use it as a data point to measure the other results (like the use of MarsEdit, an OS X only application). Surprisingly, the usage of OS X among the respondants was almost 80% while the use of MarsEdit (any use at all in the past) was only 5%. That means even Mac users, despite such a great app like MarsEdit, are still favoring the Control Panel. That was surprising to me.

Why only the Control Panel?
The last question I asked in the survey was why the respondent preferred the Control Panel over other methods of publishing. I got a lot of responses that said they didn’t know about other offerings. Some felt that the Control Panel was the “easiest way” and “good enough.”
It’s readily available once EE is installed, and doesn’t require any extra configuration/development. It’s also the most “guaranteed to work” way to post content.
The ability of external editors to support fieldtypes also came up, like this one:
Full fieldtype support. No external editor supports fieldtypes like Matrix, Assets, Playa, etc.
and this one:
Why not? It’s a good overall experience with all the custom fieldtypes, publish page configurations, entry revisioning, etc. Keeping to just the Control Panel means I can jump on any system anywhere to post/edit content. Hooking up external sources is just another cost/hassle to install & keep up with as both platforms evolve.
This response addressed another tool I use but didn’t mention in the poll:
I actually use the control panel, but use QuickCursor to send any long content bits to my editor-of-choice, in this case MacVim. The reason I use the control panel is that in my experiences with other methods, it wasn’t always easy to get all the custom bits working properly when you go beyond just a simple blog. And now that I’m using the Structure plugin, I don’t think an external editor would be of much use to me at all.
I love QuickCursor and use it whenever I have to write something of length (like a message in Basecamp) in the web browser.
With publish layouts and Zoo Admin, I can quickly make a user-friendly workflow that’s easy to maintain.
I’ve used Zoo Admin and it is indeed a nice way to customize the CP for those who will be maintaining the site.
That was only a sampling of all of the responses but the general trend was that either people didn’t know about external editors or those that did thought it was just too much of hassle (or tradeoff ) to set one up. A few people even suggested I further cover external editors and how to use them. That sounds like a great idea, so look for something in the near future.
Thanks to everyone who participated in the survey!
I missed this when posting about the release of EE 2.4, but in the changelog for the EE 2.4 release the ExpressionEngine Reactor teams’ contributions to the release of called out (with [ExpressionEngine Reactor]) so everyone can see what the developers are working on. Excellent idea and a nice surprise.
Here’s what they worked on for EE 2.4:
- [ExpressionEngine Reactor] Added the list of Channels to dropdown under Edit.
- [ExpressionEngine Reactor] Added third_party_path config item.]
- [ExpressionEngine Reactor] Changed default text formatting from XHTML to none.
- [ExpressionEngine Reactor] Fixed a bug with autosave where the save() method would be called for third party add-ons on autosave.
- [ExpressionEngine Reactor] Added core_template_hook that lets you change the template to be loaded based on the uri_string.
- [ExpressionEngine Reactor] Added template_post_parse hook that lets you modify templates after parsing.
- [ExpressionEngine Reactor] Added template_fetch_template hook that lets you see what template is being loaded.
- [ExpressionEngine Reactor] Added option to suppress errors thrown by loading language files.
- [ExpressionEngine Reactor] Added all plugins to default text formatting list when creating a new field.
- [ExpressionEngine Reactor] Abstracted field edit/create logic to the Channel Fields API.
A good description of the team and the idea behind the reactor is available here in this blog post by Leslie Camacho.
Nice work, everyone!