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.
This is only useful to the subset of ya’ll who use Alfred 2, a nice quick launcher utility for OS X.
It’s an Alfred workflow that makes it easy to search EE StackExchange and find what you need (hopefully a solution to a problem!).
The workflow was created by EllisLab and shared on their blog.
While we’re talking about EE StackExchange. If you have a moment, hop over to the site and answer any questions you can!
EE Conference recently added a new way that your agency can send a few people as attendees and sponsor the conference. The Agency Package consists of 3 conference tickets, a private Sunday night dinner, full conference access (including recordings) and 5 entries into the Best of Show awards. In addition, you get a conference sponsorship slot (which ends up only costing $500).
The package costs $2000 and is a great way to send a few people and support the conference.
- Related Open by Caddis
This extension adds links to related items in ExpressionEngine’s native multi-relationship field.
- PG by Caddis
A tag pair to loop through all GET/POST parameters in ExpressionEngine.
- Number by Rein de Vries
Create a real number field with the benefits of filtering due the nature of the field.
- Currency by Rein de Vries
Create a real currency field with the benefits of filtering due the nature of the field.
- Limitee by Caddis
Limit ExpressionEngine titles, text input field types, and textarea field types to a specific character count, with a counter to let you know how many characters are remaining.
- Snappy Concierge by UserScape
Deliver more than a CMS to your clients. Concierge integrates ExpressionEngine with the Snappy support system to manage your client support.
- Time From Now by jbueler (jbueler)
Time from now will let you add a string modifier to the current time and will return a datetime string in its place. This would be useful for performing channel entries loops with the start_on and stop_before parameters. This will let you use dynamic dates in situations where you may have had to enable PHP before.
- Hop Fasta ($) by Hop Studios
A Hop Studios Accessory that puts a Quick Update button on the Template editor.
- Resizer by Caddis
Use Resizer to to resize, cache, and retrieve images with a number of options.
- Codeebird by Dan Herd
An ExpressionEngine wrapper for the Codebird PHP Twitter library.
The nature of the web is constant change, and your code base should be no different. But updating your code shouldn’t be a one-time endeavor, and it shouldn’t be an all-or-nothing proposition. Instead, you should refactor iteratively as you need, whether it is to fix a bug or update a CSS vendor prefix.
For the latest CTRL+CLICK, Jina Bolton joins the show to discuss this process of refactoring, which involves iterative, narrow updates to the code base, without changing features or functionality. She shares her approach to refactoring by starting with the smallest element and keeping focused on a single change. She also suggests what areas can be commonly refactored, such as introducing a CSS preprocessor and establishing variables for CSS colors and typography. Jina also details her refactoring workflows, including using version control, documentation and supporting a “living” style guide.
We also comment on the paid support discussion going on in the Devot-ee forums. Tune in now!
Thanks to Hover for sponsoring this episode!
In an interview on Nublue, a web design agency, EllisLab Chief Creative Officer, shared a tiny bit about ExpressionEngine 3:
Are there any elements of the design within EllisLab applications that you are particularly proud of and why?
Yes. However, those elements aren’t public yet, as they are part of ExpressionEngine 3. I came to EllisLab after ExpressionEngine 2 was released, so aside from some small tweaks here and there, ExpressionEngine 2 is largely not my work. In the curious case of ExpressionEngine 3 I’ve taken my time trying to sculpt a user experience that will feel at once both new, and familiar. From that base, I plan to iterate and improve the control panel even further.
Read the entire (short) interview
Long-time community member Jim Wyse has an opening (or two):
That is a fine group of folks who do great work at the university. You could be part of the team.