Published by Mijingo

Learn ExpressionEngine TodayAdvertise Here

Over a series of 8 videos, watch and learn as Ryan builds an entire ExpressionEngine website from beginning to end. Get started now.

blog icon image

ExpressionEngine Demo Videos

Blog Entry

Marcus Neto of Blue Fish Design Studio has a YouTube Channel with demos of websites built on ExpressionEngine.

There’s also a demo of ExpressionEngine 2.9 (the latest version as of this post) and one of how they built a business directory in EE.

Idea: a community channel of video walk-thrus of websites/features you built on ExpressionEngine.

Posted on Jul 29, 2014 by Ryan Irelan

Filed Under: Community, ExpressionEngine 2

blog icon image

Patrick Pohler Builds an EE Add-on API

Blog Entry

Patrick Pohler penned an article on Medium on how to easily add an API to your ExpressionEngine add-on.

Adding an API can help you add-on be more useful and flexible because it can connect to other systems, and allow developer to extend it without hacking the add-on code.

So how are external apps going to communicate to our ExpressionEngine add-on? We’ll need to make sure we can expose API methods that respond correctly to GET and POST requests.

Patrick continues with API code samples for his “Mission Tracker” A-team sample add-on, including a detailed code walk-thru. Very helpful!

Read the entire how-to article

Posted on Jul 29, 2014 by Ryan Irelan

Filed Under: EE Add-ons

blog icon image

CTRL+CLICK CAST: Super Charging Text Editors with Sean Smith

Blog Entry

One thing every web developer has in common is a text editor of some kind or another. But how every web developer uses their text editor of choice couldn’t be more different. For this week’s episode, special guest Sean Smith joins the show to discuss making your text editor work harder for you, so you can work better and more efficiently.

We talk about the text editors we each have used throughout our careers and what our current favorites are (and why). Sean discusses some of the common features and customization for text editors that can make coding easier, including syntax highlighting, custom fonts, code collapsing and text expanders. He also details his collection of ExpressionEngine snippets for Emmet, which can be added to a variety of text editors including Sublime and Coda. Tune in now!

Thanks to Visual Chefs for sponsoring this episode!

Posted on Jul 24, 2014 by CTRL+CLICK CAST

Filed Under: CTRL+CLICK CAST

blog icon image

Updates on ExpressionEngine Conditionals

Blog Entry

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.

Posted on Jul 16, 2014 by Ryan Irelan

Filed Under: EE Add-ons, ExpressionEngine 2

blog icon image

ExpressionEngine 2.9 Released

Blog Entry

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.

Posted on Jul 15, 2014 by Ryan Irelan

Filed Under: EllisLab, ExpressionEngine 2

blog icon image

CTRL+CLICK CAST: Embracing the Suck with Chris Harrison

Blog Entry

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!

Posted on Jul 10, 2014 by CTRL+CLICK CAST

Filed Under: CTRL+CLICK CAST

blog icon image

ExpressionEngine Partials Talk Slides

Blog Entry

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

Posted on Jul 07, 2014 by Ryan Irelan

Filed Under: Development Tools, ExpressionEngine 2

blog icon image

Boyink on Binh

Blog Entry

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.

Posted on Jul 07, 2014 by Ryan Irelan

Filed Under: Community

blog icon image

Your Weekly devot:ee - July 3, 2014

Blog Entry

devot:ee

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!

Posted on Jul 03, 2014 by Ryan Masuga

Filed Under: Weekly Devot:ee

blog icon image

What They’re Saying About EE

Blog Entry

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.

Posted on Jul 02, 2014 by Ryan Irelan

Filed Under: Training, What They're Saying About EE

blog icon image

Pressing the Gas on Mijingo

Blog Entry

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).

Until now.

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.

Posted on Jul 02, 2014 by Ryan Irelan

Filed Under: News, Personal, Training

blog icon image

Matt Weinberg on SSL and Cookies

Blog Entry

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

Posted on Jul 02, 2014 by Ryan Irelan

Filed Under: Community, Stack Exchange, E-commerce

blog icon image

CTRL+CLICK CAST: Choosing a CMS

Blog Entry

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!

Posted on Jun 26, 2014 by CTRL+CLICK CAST

Filed Under: CTRL+CLICK CAST

blog icon image

Your Weekly devot:ee - June 26, 2014

Blog Entry

devot:ee

  • 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.

Posted on Jun 26, 2014 by Ryan Masuga

Filed Under: Weekly Devot:ee

blog icon image

Brad Parscale on Exp:resso Store Purchase

Blog Entry

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.”

Posted on Jun 24, 2014 by Ryan Irelan

Filed Under: EE Add-ons

blog icon image

DevDemon Acquires Exp:resso Store

Blog Entry

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.

Posted on Jun 24, 2014 by Ryan Irelan

Filed Under: EE Add-ons

blog icon image

Your Weekly devot:ee - June 19, 2014

Blog Entry

devot:ee

Posted on Jun 19, 2014 by Ryan Masuga

Filed Under: Weekly Devot:ee

blog icon image

CTRL+CLICK CAST: Outsourcing to Agencies with Carl Crawley

Blog Entry

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!

Posted on Jun 12, 2014 by CTRL+CLICK CAST

Filed Under: CTRL+CLICK CAST

blog icon image

A Comparison of Localization Solutions for ExpressionEngine

Blog Entry

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.

More Reading

Posted on Jun 08, 2014 by Tim FitzGerald

Filed Under: EE Add-ons

blog icon image

Your Weekly devot:ee - June 5, 2014

Blog Entry

devot:ee

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.

Posted on Jun 05, 2014 by Ryan Masuga

Filed Under: Weekly Devot:ee


Hosting by EngineHosting

ExpressionEngine Training Videos and Screencasts