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

A List of All ExpressionEngine Cookies

Blog Entry

Wil Linssen put together a list of all ExpressionEngine 1 & 2 cookies organized by those that are essential and non-essential. Will helpfully also included a description of the cookies function.

This document outlines all of the cookies use by ExpressionEngine 1.x. With the EU cookie law coming into force on May 26th, it’s important to know what cookies are set, which are ‘essential’ and why they are there. Hopefully this will help advise your decision process when altering your site to adhere.

Posted on May 22, 2012 by Ryan Irelan

Filed Under: Development Tools, ExpressionEngine 2

how-to article icon image

Automatic Add-on Builds Powered by Source Control

How-to Article

Add-on Builds Powered by Source Control Article Image

For the last two years I’ve been involved in the development and maintenance of large, feature rich add-ons for ExpressionEngine. These started out as primarily being internal projects for individual clients, but have since moved into my own work in the form of add-ons such as [ProForm][proform]. During this process of managing add-ons that have a rich set of features, I’ve run into a number of issues.

The add-ons that were developed internally at work were in use by multiple developers for multiple clients at the same time. Thus, each of these developers had competing and slightly incompatible goals and feature requests—features which all had to be done now, features that I had no reason (or ability) to say no to. This situation is the same that most add-on developers go through—we want to be able to say yes to all reasonable feature requests in a timely manner. Especially when first starting out as an add-on developer, one of the most important things you can do (aside from being generally helpful) is to say “yes” as often as possible.

This behavior can lead to a lot of stress. In my early experience with this kind of complexity, I was managing the same code base in multiple code bases then manually moving changes for each version between these separate projects. For most add-on developers the situation would be slightly different, but you can indeed end up with multiple versions of the same add-on. One for important client A, one for your own site, one for the default buyers.

The time scheduling issues aside (how exactly do you get two 100 hour features done in a week?) there was, at first, no way that I could manage the competing requests.

Implementing support for one critical feature would break an older feature, which had to be rewritten to use the new API provided by the first feature and so forth. At one point, things had gotten even worse with a separate developer implementing additions and changes directly to their own copy of an add-on, while I was receiving the same requests from other projects. So I’d then have to take the time to figure out how to merge those features back into the main version, while not taking other features along that those separate projects did not need.

Add-ons top of this that projects might still be running a very old version for weeks (the same is true for typical external customers), and then suddenly discover a bug that needs to be fixed in a very old version of the code. Is it easier to fix the old version, manually merge the changes into the current version, and move on? Or would it be better for them to upgrade to the latest version?

This whole situation was extremely unpleasant, and clearly unsustainable. It also wasn’t something I wanted to repeat with my own projects.

Read the Article

Posted on May 22, 2012 by Isaac Raway

Filed Under: How-To, Add-on Development, ExpressionEngine Development, Version Control

blog icon image

Your Weekly Devot:ee - May 17, 2012

Blog Entry

devot:ee

  • BSD PublishEEr (for EE2) by Blue State Digital
    This Control Panel accessory adds the ability to filter channels in the publish menu.
  • CP Analytics (10-site license) ($, for EE2) by Derek Hogue (Amphibian Design)
    Beautifully display your Google Analytics statistics in the control panel using an accessory tab, widescreen homepage line chart, and dashEE widget. 10-site license pack.
  • Twittero (for EE2) by Simon Willans
    We can already hear you thinking “not another Twitter plugin?!” Don’t worry – this is one with a difference.
  • Low Options (for EE2) by Lodewijk Schutte (Low)
    Low Options displays the list items or options for a given channel field. Compatible with native Select DropDown and Checkboxes fields, as well as Pixel & Tonic’s channel fields that use options.
  • Login Backup Developer ($, for EE2) by Rein de Vries
    The Login Backup module is a module where you can make full backups of your EE installation. The backups can be started manually as via a CRON job. Beside that there is also a function that will trigger the backup on login. It is FTP ready and in the future it will support other cloud servers as well.
  • Cipher (for EE2) by Chris Monnat
    Cipher is a plain text EE fieldtype that displays content correctly in the publish screen and on the font-end of your website but stores the value as an encrypted string within your EE database. This fieldtype uses CodeIgniters encrypt library and allows you to provide a unique encryption key for each field you add using this type for ultimate security.
  • Nyan (for EE2) by Kyle Weiner (Kylemade)
    Nyan displays a list of categories in a tag cloud format, where each category is assigned a CSS class based on its popularity.
  • Hop Limit Login ($, for EE2) by Hop Studios
    Do you have a site that you want to protect from overuse? Would you like to cut down on the amount of passing around of logins that people can do? One way to solve that problem is to limit the number of times people can login to ExpressionEngine, and this add-on does exactly that. It’s an extension.
  • ProForm - 10 License Pack ($, for EE2) by Isaac Raway (Airways)
    ProForm is the first ever drag and drop form builder for EE 2.0. It’s easy to use, powerful, and extremely customizable. This is a 10 license pack that you can apply to multiple projects.

Posted on May 17, 2012 by Ryan Masuga

Filed Under: Weekly Devot:ee

blog icon image

EE Podcast: ExpressionEngine v2.5 with EllisLab

Blog Entry

EllisLab is back on the show to chat about their latest release! James Mathias joins us again and also brings with him Director of Technology at EllisLab, Wes Baker. We jump right in and discuss the new enhancements and bug fixes for 2.5 including the Rich Text Editor and Cookie Consent Module. Tune in and find out what you may have missed about the new release!

Listener Survey

Also, the relaunched EE Podcast is nearing its one year mark! Time flies when you’re having fun. To mark the anniversary, we want to know what our listeners think! We’ve put together an EE Podcast Listener Survey. FIVE lucky respondents will be treated to an EE Podcast t-shirt, but you need to fill out the survey to be eligible to win. smile We would love it if you could fill it out and let us know your thoughts so we could further improve the show. Thanks for a wonderful year of podcasting and listening!

Posted on May 17, 2012 by CTRL+CLICK CAST

Filed Under: EE Podcast

blog icon image

Setting Up Varnish for ExpressionEngine

Blog Entry

Over on the ExpressionEngine blog, software developer Kevin Cupp wrote about what Varnish is and how to install and configure it.

The idea of caching is familiar: why waste resources regenerating the same content from scratch on each page view? But Varnish takes it a bit further by stepping in before the request even makes it to ExpressionEngine or Apache (or your favorite HTTP server). Even better, it can intercept a request before it hits the disk!

It’s a nicely done, in-depth article for people who are running their own servers and have the capability to install software–or for people like me who just want to learn more about how Varnish works.

If you don’t run your own server (like me) and need Varnish, you should look to see if your host has it available. As an example, I run on the great EngineHosting and Varnish is an add-on to their managed service.

Posted on May 17, 2012 by Ryan Irelan

Filed Under: Development Tools, EllisLab

blog icon image

Devot:ee’s New Add-on Quick Store

Blog Entry

Today, the fellas at Devot:ee added a new Add-on Quick Store, which is a single page listing of every add-on they currently have for sale. 282 add-ons at the time I’m writing this.

A quick ?f in your browser to search for what you need and then add it to the cart.

Very nice!

Posted on May 16, 2012 by Ryan Irelan

Filed Under: EE Add-ons

blog icon image

Will ExpressionEngine Be Popular for Themers?

Blog Entry

It all started (again) on Saturday when Marcus Neto tweeted:

Marcus may be a little biased. He did previously run EE Templates, which at one time had both paid and free themes.

A few people responded on Twitter and took issue with the idea that ExpressionEngine (and EllisLab) should ever embrace themes. They won’t work, right? WooThemes tried and it didn’t work out for them. They’re a group of smart people who have had a lot of success selling themes. A betting person would guess the reason is because there just weren’t enough potential customers. That betting person would probably be richer than someone trying to sell ExpressionEngine themes.

The other sentiment from those opposing more prominence in the theming world seemed to be rooted in either the desire to keep things as they are, (not “ruin” EE with themes) or some other curmudegeonly-driven reasoning. “Get off my lawn” is a valid reason, I suppose, but hardly one that should be taken seriously.

There are three reasons why ExpressionEngine themes haven’t worked.

First, the focus of the community using EE has been on developing custom websites. WordPress, as one example, has a long history of being themed. Many developers alter a base theme and use that to start their sites. ExpressionEngine developers typically (always?) start with a blank slate and implement custom static HTML templates.

Second, ExpressionEngine isn’t free, so people looking for cheaper themed sites might not pay for commercial software. Free software and free themes (or $50 themes) are tough to pass up if you don’t have a budget. And, let’s be honest, the majority of people needing websites don’t have a real budget. I don’t see anyone paying $200 for a license and then using a $50 theme. But, hey, maybe someone would.

The third reason, albeit much less of a factor, is that the ExpressionEngine user base isn’t big enough for EE to take off in a way where people theme it like crazy. Theme-focused WordPress and Drupal dominate usage statistics of the top 10,000 websites (with WordPress owning more than half). ExpressionEngine has an important place but at less than 10% (even if you remove vBulletin, primarily forum software, from consideration) it’s not big enough to attract the masses of people who build sites with themes.

EllisLab’s CEO Leslie Camacho has clearly stated his thoughts about some of those numbers and how it is no secret that an open source CMS would dominate the market while a commercial CMS would have less of a stronghold.

In terms of selling EE vs. open source, its true that open source’s reach is way beyond EE. It always has been. However, I want to point out that EE is the #1 commercial CMS and 3rd party tools like Built-with back up this claim. This is especially true in the top 10,000 websites. Note that they count vBulletin in there, but its a forum system first.

Should EllisLab focus on themes and making them easier to use and more popular? Yes. What would it take to make that happen?

  • A lower ExpressionEngine license price tier ($39)
  • More documentation on theming
  • A EllisLab-supported theming vendor/community site

Why should they? Because why wouldn’t you want to reach as many people as possible who may enjoy using your product?

Posted on May 15, 2012 by Ryan Irelan

Filed Under: EllisLab, ExpressionEngine 2

blog icon image

What They’re Saying About EE

Blog Entry

This is a on-going series of entries where I highlight EE experiences.

I believe the proper term is tweakalicious.

Isn’t that why you use ExpressionEngine? Because of its extensibility and relative ease of use when developing add-ons?

Posted on May 14, 2012 by Ryan Irelan

Filed Under: What They're Saying About EE

blog icon image

Work for Vector Media Group

Blog Entry

I don’t post about many job openings, but sometimes I just have to share because of the opportunity. This is one of those times.

Today Matt Weinberg announced on Twitter that Vector Media Group is hiring a full time web developer to work in their New York City office.

The team at Vector Media Group is already 10 people strong and they work with great clients and, yes, ExpressionEngine and CodeIgniter.

A week in this role will require many skills: on Monday you might be turning PSDs into HTML, while on Tuesday you might be setting up templates and fields in a project’s CMS.

Our office is in the Union Square area of Manhattan. You’d be working in our office 5 days a week but we’re flexible with hours. The important thing is getting your work done and having some fun.

They offer benefits, including free lunch every day. And knowing Matt I bet the lunches are damn good.

Does this sound like a good fit for you? Read the entire job posting and get in touch with them.

Posted on May 10, 2012 by Ryan Irelan

Filed Under: Life as a Web Professional

blog icon image

Your Weekly Devot:ee - May 10, 2012

Blog Entry

devot:ee

  • Zenbu Tag formatting (for EE2) by Nicolas Bottari
    Formats Solspace’s Tag Fieldtypes in Zenbu entry results and modifies how tags are displayed in Zenbu columns.
  • Suggest Field (for EE2) by Eoghan O’Brien
    ExpressionEngine fieldtype, almost identical to the native text field with the added benefit that it will search previous values and autosuggest them to the editor.
  • MX Select Plus ($, for EE2) by Max Lazar
    This add-on makes long, unwieldy select boxes much more user-friendly with Chosen plugin. It is also opens the option to the user to add new items into the list “on the fly”. You can setup to save new options on field level (to be available for choosing in all entrees) or just once. Support Matrix-like fields, Low Variables, SafeCracker.
  • MX Lone Star (for EE2) by Max Lazar
    MX Lone Star is small fieldtype which you can use to replace standard checkbox. But the real power of this fieldtypes is opened in Matrix-like fields - you can limited choosing in this fieldtype per row or/and per column. Look on screenshots and video.
  • YQL (for EE2) by Paramore (Jesse Bunch)
    The YQL plugin will make it easy to consume and cache your YQL queries directly from your ExpressionEngine templates.
  • MX GetID3 (for EE2) by Max Lazar
    MX GetID3() extracts useful information from MP3s & other multimedia file formats (based on GetID3 library).
  • CE Tweet ($, for EE2) by Causing Effect (Aaron Waldon)
    CE Tweet enables you to display and consume Twitter in your ExpressionEngine templates
  • Show Once (for EE2) by Yuri Salimovskiy (IntoEEtive)
    Show Once is the module for ExpressionEngine 2 that allows showing certain content to a user only once (during their first visit).
  • JC Redirect (for EE2) by Jensa
    Needed a redirect after login based on group_id and couldn’t make other plugins work since they all send the redirect when the plugin is parsed the first time. This one does that to, but allows you to set different locations for group_id’s 1 to 10 as well as a default. That way it’s dead easy to use.

Posted on May 10, 2012 by Ryan Masuga

Filed Under: Weekly Devot:ee

blog icon image

Cookie Consent Module in EE 2.5

Blog Entry

Along with the EE 2.5 release, EllisLab also released a new first party module to help EE developers make their websites compliant with the EU cookie legislation.

What is the Cookie Consent Module?

The Cookie Consent Module gives developers the option of disabling all cookies unless the site visitor specifically opted into them. Without the Cookie Consent Module disabling all cookies was not possible.

Without consent for cookies, visitors are unable to register for a member account or log in to their account.

Visitors can grant consent to cookies in two ways (from the docs):

The module makes two means of granting consent available: a direct link that can be used anywhere and form field that can be included on login and registration pages. Removing permission to set cookies is also provided for via a link.

You can find code samples and the available variables in the Cookie Consent Module documentation.

Does the module come with ExpressionEngine?

No. It is a free download from the ExpressionEngine Add-on Repository.

Posted on May 08, 2012 by Ryan Irelan

Filed Under: EE Add-ons, ExpressionEngine 2

movie icon image

Quick Look at EE 2.5 Rich Text Editor

Instructional Video

Follow along in this silent video as a test out the new rich text editor in ExpressionEngine 2.5. I’ve only played with the basics so but it seems like a nice, simple editor that outputs good HTML.

 

 

 

Get the Video

Posted on May 07, 2012 by Ryan Irelan

Filed Under: Free Video

blog icon image

New “Publish Another Entry” Option in EE

Blog Entry

Update: I reported this as a EE 2.5 feature but it was actually introduced in EE 2.4. My search of the change log led me to believe it was new but I searched the wrong part. Apologies! Still, a nice addition. Thanks to Andy Gaunt for pointing that out to me.

A small but nice update to EE 2.4 is the simple link to create a new entry after publishing one and ending up on the (in my mind, nearly useless) View Entry screen.

Added link to publish another entry after publishing an entry.

Publish Another Entry link in ExpressionEngine 2.4

Not a big addition but certainly one that makes a difference when you need to add multiple entries to the same channel.

Posted on May 07, 2012 by Ryan Irelan

Filed Under: ExpressionEngine 2

blog icon image

EE 2.5 Released

Blog Entry

Today EllisLab released ExpressionEngine 2.5. After delaying the original release date of March, the 2.5 version that contains the new rich text editor is now available for download and purchase.

From the blog post announcing the release:

ExpressionEngine 2.5.0 is a feature and security release. It features a new Rich Text Editor field type, a Rich Text Editor Module to allow use of the editor on the front end, and a Cookie Consent Module designed to help European Union (EU) users comply with privacy laws impacting cookie use. In addition to a number of new features, this release improves XSS filtering and redirect behavior. For developers there are a number of new hooks and improvements, and everyone will benefit from the stability improvements provided by over 50 bug fixes.

For developers there are some new hooks available and support for compliance with the EU cookie laws through the Cookie Consent Module.

Read all about it in the blog post or read the 2.5.0 changelog for all the details.

Posted on May 07, 2012 by Ryan Irelan

Filed Under: ExpressionEngine 2

blog icon image

Your Weekly Devot:ee - May 3, 2012

Blog Entry

devot:ee

  • ACS Bridge ($, for EE2) by Ron Hickson
    ACS Bridge brings freedom to churches using Access ACS. It’s your data and now you can style it how you want and place it where you want within your ExpressionEngine powered website.
  • VZ Regulator (for EE2) by Eli Van Zoeren
    An ExpressionEngine fieldtype that allows for regular expression validation of text inputs. An optional tooltip can be displayed when input does not match the pattern.
  • Entry API ($, for EE2) by Rein de Vries
    Entry API is a module that creates a XMLRPC/SOAP server under the hood of the ExpressionEngine CMS. With this module you are capable to insert, update and delete entries with a SOAP or XMLRPC call. It support the default fields aswell custom fields. So you can for example insert entries from within an other application like a Iphone app or a other web app.
  • Wyvern Video ($, for EE2) by Brian Litzinger
    Wyvern Video is designed to be the quintessential add-on for YouTube and Vimeo video management for your ExpressionEngine site.

Posted on May 03, 2012 by Ryan Masuga

Filed Under: Weekly Devot:ee

blog icon image

EE Podcast: DRY (Don’t Repeat Yourself) Techniques in EE

Blog Entry

John Rogerson, Director of Web at Sewanee: The University of the South, joins the podcast again to share his tips for efficient EE development using DRY techniques.

John details his two-fold DRY approach in EE, starting with MVC approach of separating your data controllers (i.e. template tags, channel queries, etc.) from your views (i.e. html). John then discusses the DRY goal of using one embed per template with an add-on, like Stash, that maps your data output to your views. John even put together a DRY template example on GitHub to demonstrate this DRY method.

Posted on May 03, 2012 by CTRL+CLICK CAST

Filed Under: EE Podcast

blog icon image

Thank You, Advertisers

Blog Entry

This month we added a new advertiser to the site. He needs no introduction. I’m sure most of you are already using at least one of his add-ons. I’m talking about Low Schutte and his Go to Low add-on site.

This month Low wants you to know about the update to Low Reorder, which makes it easy to reorder entries through the control panel. If you’ve used previous versions of Low Reorder you will pleased to know that you can now reorder entries across channels.

Thanks to Low for supporting EE Insider this month. And thank you to our other great advertisers for their ongoing support.

  • Pixel & Tonic - The longest running advertiser on the site and well-known for the add-ons Assets, Playa, Matrix and Wygwam. They make some of the hottest add-ons for ExpressionEngine.
  • Solspace - By far, Solspace has the largest catalog of EE add-ons and is one of the original add-on developers. When an add-on comes from Solspace, you can trust that it’s going to work and that you’ll get the support you need. Their Rating module allows you to easily add rating functionality to your website.
  • Vector Media Group - Based in New York City, they are not only experts (and leaders) on ExpressionEngine, they are also experts in SEO. Matt and Lee at Vector Media Group are a valuable part of our community.
  • Structure - Travis and Jack have built and supported the easiest way to allow your clients to manage pages (with hierarchy) in ExpressionEngine. I love Structure and use it on Mijingo.com.

Do you have a product or service that you want to share with the smart, savvy, good looking, and moderately athletic EE Insider readership? Get in touch.

Posted on May 03, 2012 by Ryan Irelan

Filed Under: News

blog icon image

ExpressionEngine E-Commerce Comparison Chart

Blog Entry

Speaking of comparison charts, Exp:resso put together a comparison chart of e-commerce options on ExpressionEngine.

The apps covered in the chart are: their own Exp:resso Store, Cartthrob, and BrilliantRetail. It is a comprehensive chart and even includes Buy Now links at the bottom for each add-on.

Awesome.

Posted on Apr 30, 2012 by Ryan Irelan

Filed Under: E-commerce, EE Add-ons

blog icon image

Comparison Chart of EE Search Options

Blog Entry

I don’t know when this was created, but via Twitter I found out about a EE search comparison chart on the Solspace Super Search product page.

The feature comparison puts side-by-side the built-in ExpressionEngine search, Low Search, and Solspace Super Search.

Solspace Search Comparison Chart

Very handy if you’re researching which search module is the best one for your site.

Posted on Apr 30, 2012 by Ryan Irelan

Filed Under: Development Tools, EE Add-ons

blog icon image

We’ve Always Modeled Content

Blog Entry

“We’ve always modeled content.”

That was the first thing I said to myself after reading the A List Apart article Content Modelling: A Master Skill by Rachel Lovinger.

Rachel details the idea and work behind breaking website content and pages into different data buckets (in our case this would be Channel Custom Fields and Channels). Content modelling is important because we need make sure the people managing the website have the control they need over the content. Does that sidebar paragraph about the site need to be edited on occasion? Make sure you store it in a way that the website team can update it.

As people who develop with and on ExpressionEngine, content modelling seems obvious to us. This is what we’ve always done. It is an important part of being a competent web developer. It is not something that we should just leave to someone else to do.

To demonstrate this, read through this article by Justin Reynolds on content modelling with ExpressionEngine.

If you’re going to model content effectively you need a content management system that makes it as painless as possible to organise information into well defined data containers. I thought I’d take a moment to outline why I think ExpressionEngine by EllisLabs (sic) does this so well. It’s the primary reason I use it as my standard content management solution for larger websites. The system was designed from the ground up with flexible content modelling in mind: it makes it very straightforward to define ‘channels’ of infomation built of any type of data that can be displayed on a website: single lines of text, body copy, images, multimedia files, PDFs and other downloadable files, dates, categories - and so on. I’ll stress from the outset that I’m sure there are other systems that also handle content modelling well - it’s just that I like the way ExpressionEngine does it.