A couple of relevant updates for you on the changes with how ExpressionEngine 2.9+ handles conditionals.
Yesterday, I wrote:
Conditionals are parsed better, simple vs. advanced conditional is now a thing of the past, and there are some nice new operators; you can do simple math and more robust comparisons.
I was, admittedly, glossing over a big change in EE and one that impacts some third party developers. Fortunately, because of the Developer Preview Program all developers who participate had plenty of warning on this change. But it doesn’t mean that this will be a simple transition.
(A month ago, EllisLab wrote a good explanation of the changes to conditionals that is required reading for anyone working with EE.)
Already developers are posting updates for their add-ons to support the new conditional handling and they are trying to get the word out about how their add-ons are affected.
Low Schutte pondered:
As I wrote in last week’s Content Mgmt Outlook email:
The forever problem of moving forward versus not leaving people behind.
Low also wrote up some instructions on how to use his Low Search add-on going forward:
And Mark Croxton, the wizard behind Stash, tweeted:
Stash in 2.9 still works the same but Mark highlights an important workaround.
Mark also has an excellent explanation of the conditional parsing:
In 2.9 EE attempts to parse if/else conditionals before each pass and after the very last pass (or you can think of it as after each pass and before the very first pass), and will do so only if they are “ready” - the variables being evaluated actually exist. Previously, simple conditionals were parsed just before the first pass only, and advanced conditionals were parsed at the end of the very last pass only.
Some add-on updates may be backward incompatible (i.e. not support EE prior to 2.9), so always check the release notes before upgrading an add-on and not EE.
The changes were enough that EllisLab bumped the version a full point release. ExpressionEngine 2.9, available today, includes an overhaul of the conditionals parser.
Conditionals are parsed better, simple vs. advanced conditional is now a thing of the past, and there are some nice new operators; you can do simple math and more robust comparisons.
A few other nuggets:
- The hidden template indicator is now an underscore instead of a period.
- A software license page in the control panel
- Better Markdown support using Markdown Extra (yay Markdown!)
- EE requires PHP 5.3.10 now
Read their blog post for all of the changes and, if you’re into that kind of thing, I’d also recommend perusing the changelog.
There’s a reason they call it work: it’s not play. And sometimes the work we have to do sucks. For this week’s episode, Chris Harrison joins the show to encourage “embracing the suck,” AKA doing what you don’t want to do in order to grow and move forward. A WordPress developer, Chris shares his own experience embracing the suck when he started a new job and had to work with Drupal and Joomla. He discusses how he shifted his mindset and saw benefits (for both himself and his employer) from “sucking it up.” Chris also offers suggestions for anyone stuck in the suck, including side projects, creative outlets and helping others. Tune in now!
Thanks to CodePen for sponsoring this episode!
John D. Wells posted the slides from his GeeUp talk called “Partials: A DRY template pattern. Now part of EE core.”
That about says it all. John gives an informative walk-thru of how partials will help you. Even without seeing John give the talk, the slides are very helpful.
The addition of real layout support in EE is a huge step forward. No more hack arounds needed. And, layouts even support dynamic variables that you can set similar to embed variables. But better because it’s not embeds.
The update to my ExpressionEngine training course (coming out tomorrow) covers layouts and it was a joy to be able to teach that instead of the old embed way, which was easily abused at the expense of the performance of your website.
Page through John’s slides to learn more about layouts
Or is it Binh on Boyink?
Either way, earlier in June Mike Boyink and his family were featured on the Tom Binh blog about their traveling RV lifestyle.
The Boyinks downsized and began a year-long odyssey traveling the country, towing a fifth wheel. Within that first year, they decided to sell their house and make the road their home for the foreseeable future. The family has chronicled their path to full-time travel on their blog, which they author collaboratively.
This is a great read for the lessons learned and how a shift in perspective (and environment) can help you realize what you really need.
It’s a huge paradigm shift. We are so ingrained in a consumer culture that when you try to remove that goal of stuff ownership people don’t know what to do.
Mike maintains his EE consulting work and training business while on the road.
Bookmark or read the entire interview with Mike.
There weren't any new add-ons this week, but we'll take this opportunity to remind you that if you're thinking of going to ExpressionEngine Conference, you should register early. The conference takes place October 5 through October 7 in Alexandria, Virginia.
Room nights at the Crowne Plaza Old Town Alexandria start as low as $169/night. You'll want to book a room early so you can take advantage of conference rates and to be as close as you can to all the action.
The speaker lineup looks great, and the Schedule is really shaping up. If you haven't been before, this is the year to go!
If you're in the U.S., have a safe and happy holiday weekend!
This is a on-going series of entries where I highlight EE experiences.
Build a sample site during the 7-part course, which covers the latest additions to ExpressionEngine, including using template layouts, layout variables, dynamic layout variables, and the relationships field. It has everything you need to know to start using ExpressionEngine.
Get ready for a summer of CMSes.
Indulge me, if you will, for a little personal/business news.
EE Insider has been around for 5+ years. Since beginning it’s been a publication that is part of Mijingo, my business for creating quality learning materials for designers and developers.
For Mijingo’s entire existence it has been a side project, a thing I do during my downtime (with the exception of last year when I partnered with Happy Cog).
I was diligent in balancing everything; I worked every evening and weekend for a few years so I could continue to publish learning materials while maintaining a full-time job.
But I was pulled in two directions and saw the time I had for something I was passionate about diminish. I’m sure you’ve noticed the lack of posting here.
So I made a change.
Starting on Monday, June 30th, I will be working full-time on Mijingo, following my passion to build training materials that help people, and growing a business that means a tremendous amount to me.
I’m on day 3 of doing this thing full-time and I think you’ll like what I’m working on.
Matt Weinberg (Vector Media Group), who gave a great talk a few years ago on e-commerce and PCI compliance at EECI in San Francisco, chimes in on the EE StackExchange about variable SSL and cookies.
The full set of cookies for matching domains is transmitted by the browser with each page request to that domain, even if the original cookies were set using HTTPS/SSL and the current page is HTTP.
One way around this is by setting the “secure” flag on cookies you set. Any cookies set with the “secure” flag will only get transmitted by browsers when connecting to HTTPS pages.
Read the entire thread on StackExchange
Whether you are a company looking to automate your content management or you are a front-end developer building a CMS for your client or employer, choosing a CMS isn’t just a decision. Finding the “right” CMS is (and should be) a process of research and evaluation. For the latest CTRL+CLICK, Stephanie Sullivan Rewis joins the show to share her process of choosing a CMS for her employer, Contatta.
She talks about requirements, from what she needs as a front-end developer to what her creative team needs to maintain content. And she discusses how her requirements evolved as she did more research. Stef also shares what she looked for beyond core functionality to get to her CMS shortlist: documentation, support and community. Tune in now!
Thanks to Visual Chefs for sponsoring this episode!
- Learning Tools Integration by Paul Sijpkes
Provides template tags to access IMS Global’s LTI Specification version 1.0. The user is automatically added to the Members table based on the LTI context sent from the LMS. Control panel access allows addition of an unlimited amount of LTI consumers, each on a different template url segment.
Earlier today, DevDemon announced that they purchased the ExpressionEngine e-commerce add-on Store by Exp:resso.
Brad Parscale, whose company Parscale Media owns DevDemon, is no stranger to buying EE stuff. Last year he bought the rights to the EECI conference (relaunched as the ExpressionEngine Conference) and put on his first event this past Fall in Portland. The next installment of the ExpressionEngine Conference will be October 5-7, 2014 in Alexandria, VA.
He obviously cares about the ExpressionEngine community and tools, so I wanted to find out more about his plans.
About Store, Brad says:
I think Store is a great product and with some new life can make ecommerce on ExpressionEngine more competitive with hosted stores. We are already prepared to announce several new pieces including new add-ons to work with Store.
Brad and DevDemon already have plans for Store, including working toward a Store 2.4 release and a membership module.
The purchase of Store helps create “a stronger DevDemon” and that will result in, according to Brad, “better support, more add-ons and overall a stronger provider of [ExpressionEngine] technology.”
DevDemon added a new add-on to its portfolio: Store by Exp:resso.
DevDemon is thrilled to announce that Parscale Media, the parent company of DevDemon, has acquired Exp:resso, including Expresso Store and Freemember. The acquisition expands DevDemon’s growing product line and efficiencies to provide the very best in customer support and emerging technologies for ExpressionEngine.
From Exp:resso on existing customers:
What does this mean for our existing customers? Nothing will change in the short term. Existing licenses will remain valid, and we will still be providing the same excellent support we always have.
Not all web agencies “own” their clients. Some are hired guns for other agencies. For the latest CTRL+CLICK CAST, special guest Carl Crawley returns to the show, this time to talk about how his agency, Made By Hippo, operates as an outsourcing company.
From the reasons behind his company name to why he chose to focus exclusively on outsourcing, Carl shares how outsourcing helps him be more professionally satisfied and Hippo more profitable. He details how he finds and chooses agencies to work with, including those who outsource to him. He also discusses nuances of outsourcing such as when and what terms are outlined in contracts vs. what he handles with “gentleman’s agreements.” Tune in now!
Thanks to Hover for sponsoring this episode! Tune in for a special discount code!
This is a guest post by Tim FitzGerald and is being published along with his detailed chart of localization add-ons for ExpressionEngine. Bookmark both pieces so you can refer to them during your next project. –Ryan
A recurring use case for an ExpressionEngine site is to provide content in two or more languages. EE’s framework includes the ability to translate its own control panel interface, but it doesn’t offer much help when it comes to the site itself.
This article explores the third-party add-ons that exist and compares their features. It may also help you ask important questions as you plan the development of your site.
Full disclosure: I’m not an entirely disinterested party here. I’ve started writing my own open-source add-on, listed my objectives, and wanted to see how it stacked up. I decided to share this list because I thought it could also help others evaluate the different options and find the tool that best meets their need. My goal was not to compete but complement the marketplace; you can find out more on my add-on’s wiki.
Specifically, I looked at:
- How they decide what language to serve (taking into consideration Google’s recommendations, among others);
- How they handle URLs (important for SEO in your target language overall);
- How they translate strings (i.e. form labels, banners, tag lines, and other content that isn’t served from entries); and
- How they manage translated content.
My results (see my comparison table) are based on documentation found online, personal experience when I have some, and in the case of open-source add-ons, inspection of the code. I invite add-on developers and users to report any inaccuracies to @tfitzgee and I will correct.
Remember that there is no one solution; it’s all a question of how important each of these factors are to you, how you like to resolve them, and the time and money you (or your client) are willing to invest.
We’re All Getting it Wrong to Some Degree
One thought that occurred to me while finishing up this census, and was reinforced by a recent article by John Faulds, is that we’re all talking about multilingual (actually most EE developers write “multi-lingual” with a hyphen)… Should we not instead be talking about localization (L10N)?
This is more than a semantic argument. Multi-language assumes that the only variation you need to address is language. But ask a New Zealander if American content is appropriate for him? Maybe yes, if you’re reading reviews on technology products; maybe not, if you’re looking to buy. Currency, store locations, timezones, units of measure (metric vs US/Imperial), legal framework, cultural reference, even spelling… these are all facets beyond just language that may lead you to having different content for different contexts. That is localization. (Or localisation with an s, if you’re a Kiwi.)
Faulds demonstrates these multilingual tools can serve the purpose of L10N, to some extent, but it’s not fully there.
The assumption may be that if you are so concerned about localizing your content to that degree, you should be running multiple sites with different templates altogether. Perhaps so. But I contend that there are scenarios where it makes sense to have it in a single site, and we should be designing our tools with that expanded goal in mind.
Two Real Turnkey Solutions; You Get Your Money’s Worth
There are, to the best of my knowledge, two add-ons that come close to delivering the whole package: Transcribe and Publisher. Both have their shortcomings, but none of those are so great as to rule them out. Both, it should also be said, are paid add-ons. I think that’s fair for the value of the polishing they provide.
I can personally recommend Transcribe, having used it for two sites now. I have not used Publisher as of yet, but it looks promising, and if it’s as complete and if the workflow aspect works as well as advertised, it offers you more than Transcribe for your dollar.
Both of these solutions are database-centric. That is to say any new strings or variables are not in config files. Not that’s a bad thing per se, but a design consideration as your sites development goes through its workflow.
The only gap is that neither of these cover the other localization needs beyond translating strings and entries. You’ll need something else to convert numbers and dates.
Other Add-ons Can Fill the Gaps Left in Native
When it comes to freeware, there’s a hodgepodge of solutions out there. I’ve covered the main ones in this table, but there are other add-ons that can help, like Low Variables and Republic Variables.
To use most of these add-ons, you’ll need a way to tell what language to serve, and you’ll need to structure your entries. The more notable approaches:
All of these approaches you creating subdirectories for each language at your site’s root folder with duplicates of EE’s
index.php, setting a language global variable. With EE 2.8’s template routing you may have a way around this.
- Multi-lingual sites on different domains with ExpressionEngine and Transcribe, July 2013,by John Faulds
- News: Multi Language Module Now Free For Everyone, by Ben Croker
- ExpressionEngine & Multi-language: General approaches, pitfalls, brick walls and RTL languages, Sep 2012, by Peter Lewis
- Intro to multi-lingual sites in ExpressionEngine, May 2012, by Steven Grant
- EE Insider ExpressionEngine How-to Articles, “Multi-language Solutions for ExpressionEngine”, Oct 2011, by Christopher Sandin
- MultiLingual Websites in ExpressionEngine, Jan 2010, by Carl Crawley
We sent out our first devot:ee newsletter this past week. It only took us five years to get around to sending out an email! We’ll do our best to do a monthly recap of all the add-ons that have come out and to inform you of any other tidbits we find important. If you’re not already subscribed and want to see the contents of the first one, it is online here.
- CUHO Categories Groups ($) by Customhost
Change your categories groups in two easy steps: drag and save. This module will helps you to re-organize your categories structure by changing categories-to-groups assignment.
- Retina Already ($) by Evan R. Thompson
Retina Already is a simple to use solution for caching and serving retina and standard resolution images to the user.
Have a pending ecommerce project and don’t know where to start? What are the considerations for implementing an ecommerce solution for a client? Don’t fear—Jason Varga, creator of the Bison ecommerce add-on for Statamic is here for this week’s episode, to discuss ecommerce considerations in general, while breaking down what questions to ask clients, and to dispel myths regarding ecommerce, databases and flat files! We also talk about all these items through three perspectives: the client facing developer, the third-party add-on developer, as well as the developer of a CMS!
Tune in now! Thanks to Visual Chefs for sponsoring!
- In by Causing Effect (Aaron Waldon)
Include or Insert template files. A light alternative to snippets and embeds.
- Link Vault Logger by Ron Hickson
A simple plugin to extend the great Link Vault module. The plugin merely logs a download without generating a link which can be useful in some situations (like dynamic PDF creation).
A big update to Dash-ee was released today and it sports a a lot of improvements, like multiple dashboards and a new interface.
What’s Dash-ee? It’s a module that allows you to create a completely customizable EE control panel dashboard.
Watch the overview video to learn more.