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

How to Make a Bug Report

It’s nice to be back in the groove this week and fully recovered from the ExpressionEngine Conference in Portland. The Customer Advocates’ presentation on troubleshooting ExpressionEngine sites went great. In fact, I’d like to pick up where the presentation left off.

One thing I didn’t get to talk about at the conference was bugs and what to do if you think you’ve been bitten by one. Quinn and Seth have been doing some serious cleaning out of the bug tracker, so I thought this would be a good time to review when and how to submit a bug report.

Continue Reading

20% off Training at Mijingo until August 30th

Mijingo, a fantastic resource for web related video training, is running a Back to School promotion through August 30th. Use coupon code BACKTOSCHOOL for 20% off and load up on some highly professional and useful ExpressionEngine training.

Currently Mijingo offers the following video courses for ExpressionEngine:

Continue Reading

ExpressionEngine Conference 2013

EllisLab is participating in this year’s ExpressionEngine Conference in full force. Our entire staff will be on hand and available to talk to throughout the event and we are scheduled for four different sessions:

  • Opening remarks and the State of ExpressionEngine from EllisLab’s Chief Maker, Derek Jones.
  • A Q & A Session with the entire team, moderated by conference organizer Brad Parscale.
  • Gremlins in the Gears: Troubleshooting tips and tricks from EL’s own. The EllisLab Customer Advocate Team (CATs) will present hands on walk-throughs of real world troubleshooting.  Come discuss the tools, techniques and processes you can use to assess and resolve site problems on the fly.
  • Evolving a Large Codebase, presented by veteran Software Engineer Pascal Kriete. How to make sweeping changes quickly without sacrificing stability and backwards compatibility.

We also have a small reward for early bird registrants…

Continue Reading

Southern California ExpressionEngine Training

Are you an agency or freelancer in the Southern California area? There’s one week left to register for Train-ee’s Beginner to Intermediate training class in Pasadena, California (March 5th - 7th).

Train-ee is bringing its time-tested instructor-led live-in-the-flesh classroom training to Southern California. Come out to experience the mild spring weather and rub elbows with fellow developers while learning ExpressionEngine. Bring your projects and get some help and direction!

Train-ee has a tremendous track record teaching ExpressionEngine in-person, including EllisLab certified courses. That combined with the opportunity to brainstorm with fellow students from other agencies and schools of thought is priceless. If you’re in the area (or want to be for a few days), you should definitely sign up and attend.

Continue Reading

Content Strategy and ExpressionEngine: It All Starts with a Good Plan

Before you install ExpressionEngine and start tweaking preferences, it’s best to take some time to think about the content you’ll be managing with EE and plan out that content’s structure. It goes a long way in making that content valuable and reusable for years to come. (I’ve found it helps the design process immensely to know the chunks of content you’re designing for as well. Otherwise, you’re just designing your visual wish and cramming in content to fit the look.) In this overview, you’ll

Continue Reading

The Cookie Consent Module & EU Cookie Legislation

In November of 2009, the European Parliament issued EU Directive 2009/136/EC, an amendment to several prior directives concerning data protection and electronic privacy rights.  Of primary concern to this article were changes regarding the storing and accessing of personal data on a user’s device via cookies [1].  The amendment changed such storage to require opt-in rather than opt-out permission from end users.  EU member states were supposed to implement laws in accordance with the directive by May 2011.

Continue Reading

Making Sites Fly with Varnish

There comes a time in an ExpressionEngine site’s life when it needs to scale. The demand for it’s dynamically-generated pages becomes too much; you can throw more servers at the problem or tweak the ones you’ve got, but that has its own scaling issues.

Or, there’s Varnish Cache.

Continue Reading