EllisLab text mark

2.8 User Guide Additions: Advanced Templates


We thought it would be helpful to point out some of the additions and changes to the user guide that came with the release of ExpressionEngine 2.8. Today’s topic: advanced templates.

Relative Dates

Relative date formatting gives even greater control on how you present time-based information. There is a great deal of variety and control at your disposal with the relative date formatting parameters that you may not be aware of. For instance, did you know that the format= and timezone= parameters will take over when your stop= parameter kicks in? Or perhaps you even missed that all of your date variables can now be displayed in any timezone.

Modulus Operator for Conditionals

The modulus operator for conditionals was added in ExpressionEngine 2.7.1 last September, and we blogged about it but whoops! We neglected to add it to the user guide until December.

Multiple search:field= Parameter Clarification

In the example of using multiple search parameters in the Channel Entries tag:

{exp:channel:entries search:style="=ale" search:region="germany|belgium" search:rating="=3|4|5"

We added the following explanation to help clarify how they will interact:

When using multiple search parameters, all search parameters must be matched in order for an entry to be included. The above example would pull back only those entries where the style is ‘ale’, the region is ‘germany’ or ‘belgium’ and the rating is 3, 4 or 5.

Relationship Namespaced Variables

Did you know that inside a Relationship tag pair that you can namespace and use any variable available to the Channel Entries tag, including switch?

Continue Reading

2.8 User Guide Additions: Developer Interest


We thought it would be helpful to point out some of the additions and changes to the user guide that came with the release of ExpressionEngine 2.8. Today’s topic: advanced items of interest for developers.

System Configuration Overrides

Many of the system and site settings that are stored in the database can be overriden in config files. For power users, this can be handy to modify settings in different contexts. They are now fully documented with the config setting, allowed values, and an explanation of what they are for. This type of configuration is an advanced area of ExpressionEngine that you certainly don’t have to understand or use in order to build a site, but some people like tinkering under the hood and for those people we now have all of these parts documented.

RSS Parser Class

Developers, have you seen how simple it is to create SimplePie objects for working with Atom and RSS feeds? The new RSS Parser class allows you to do that. Say goodbye to Magpie.

Pages Module Warning

As a result of things we have encountered while providing support, we have added a warning against excessive use of the Pages module, to help alert site builders before they head down a long dark path that is difficult to maintain and untangle.

Caching Drivers

ExpressionEngine 2.8 added memory-based caching options, but if you haven’t changed your cache storage settings, you are still using files and disk I/O for caching. Are you up to speed on these new drivers, and what you need to ask your host to enable to take full advantage of them?

If you are an add-on developer, have you updated your add-ons to take advantage of the new Cache Class so that your users are able to benefit fully from utilizing memory-based caching?

Pagination Class

Third-party developers historically were left to their own devices to add pagination to their add-ons, often copying/pasting from first-party modules to do so. This worked okay, but each of our modules had collected slightly different ways of handling pagination, with slightly different featuresets.

So we took our first steps to abstract things out to a useful Pagination library in version 2.4.0. That was refined and improved while it was in use on Channel Entries, Comments, and the Search module. In 2.8.0, we moved all first-party add-ons to the unified Pagination library, and simultaneously released final developer documentation as it is now stabilized and recommended for all developers to use.

Continue Reading

2.8 User Guide Additions: Templates


We thought it would be helpful to point out some of the additions and changes to the user guide that came with the release of ExpressionEngine 2.8. Today’s topic: templates.

Template Layouts

Template Layouts are all new to ExpressionEngine 2.8. Have you read how to use them yet?

Template Routes

Template Routes are also new to ExpressionEngine 2.8. Visit this section of the user guide to see how to add advanced fine-grained control to your ExpressionEngine site’s URL structure. ExpressionEngine’s default URL structure is flexible and powerful, but some clients have very specific URL structures that have special needs. Now you can accommodate them without template tricks or a conditionals dance.


Previously the user guide only discussed Channel entry and Comment pagination, but now that pagination has been unified across all first-party modules, it was time to give its documentation some reorganization and refinement.

Path Variable tip

While providing support, we discovered that many users are implementing path variables like this:

<a href="{path='company/employees'}/customer-service/joe">JoeCustomer Service</a

So we thought we would highlight in the user guide that the {path=} variable can accept any number of segments, which makes for more readable templates.

<a href="{path='company/employees/customer-service/joe'}">JoeCustomer Service</a

Simple Conditional clarification

What variables are available in “simple” conditionals? No more guesswork or mistaken assumptions, we’ve documented what’s available at that stage of the parsing engine.

Continue Reading

ExpressionEngine 2.8.1 Released


ExpressionEngine 2.8.1 has been released, and is a minor update to fix one JavaScript bug that was fixed the day after 2.8.0’s release. Even though installations without add-ons are likely unaffected, we are considering this a required update for all 2.8.0 users because of the impact it has on so many popular add-ons.

If you’ve already updated to 2.8.0, you don’t have to go through the full update process, you simply need to replace one file (download):


Optionally, to ensure that your control panel accurately reflects the version and build you are running, you can replace


And in your config file, update $config['app_version'] to '281'.

Those last two changes are not required to benefit from the fix, and will not affect your ability to update properly to later releases. Since it impacts so many people, we thought an update that included just this fix with instructions on the simple patch to 2.8.0 was a good idea while we are working on a more substantial update.

As always, you can download the update from your Manage Purchases page.

Continue Reading

ExpressionEngine 2.8.0 Released


We’ve just released ExpressionEngine 2.8.0 which has new features and fixes—some of which we profiled earlier this week—but here are some of the high points…

Continue Reading

ExpressionEngine 2014 Conferences


While we eagerly await news about this year’s official ExpressionEngine Conference, we’ve received details about an exciting new conference in Europe: GeeUp. From GeeUp’s organizer Lodewijk Schutte:

During this two-day event — on 19 and 20 June 2014 in Leiden, the Netherlands…

Continue Reading

Template Routes in ExpressionEngine 2.8


When developing a website, designing the structure of your URLs and sitemap can be an important consideration. ExpressionEngine by default abstracts away a lot of this and automatically gives you pretty URLs based on your template group and template name. For example if your group name is “blog” and your template name is “entry” your URL will look like:


Most of the time this works well, but occasionally you want fine-grained control over your URLs. ExpressionEngine 2.8 introduces a new feature called Template Routes, which gives you all the control you need.

Continue Reading

Cleaner Control Panel URLs

1 comment

For ExpressionEngine 2.8 we are happy to begin rolling out a cleaner control panel URL structure.

Continue Reading

Consistent Pagination in ExpressionEngine 2.8


Pagination is essential to most ExpressionEngine sites. We give you the flexibility to have as many Channel entries as you’d like, but then you need a reasonable way to show all of those entries. Since ExpressionEngine 2.4.0, you’ve had the flexibility to style pagination in more ways than before. For example, you could style the first, last, next, and previous page links independently from each other and the numeric links. You also have the ability to call out the current page using a conditional. However, those features were only available to the Channel module, the Comment module, and the Search module. Well, starting with ExpressionEngine 2.8.0, all template pagination code uses the exact same syntax.

Continue Reading

Template Layouts in ExpressionEngine 2.8


In ExpressionEngine 2.8, we’re happy to introduce Template Layouts and if you know embeds, then this will be the easiest thing you learn all week.

{layout="site/.layout" title="The Title"

Continue Reading