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

Project Cerberus on Open Member Profiles

Blog Entry

Member spam is a problem and Project Cerberus is trying to fix it. First step? Don’t leave your front door unlocked.

In an open letter to site owners, Project Cerberus explains what the problem is, why it happens, and what you can do about it.

Read the entire letter.

Posted on Jun 11, 2012 by Ryan Irelan

Filed Under: Development Tools, EE Add-ons

blog icon image

SurgerEE: A collection of small bites of functionality.

Blog Entry

I got an email last week from Pete Sena at Digital Surgeons to let me know about a new plugin they’ve released that is (and will become larger as more tags are added) a collection of small bites of functionality that are overkill for a single plugin and not really necessary as a PHP implementation. The add-on is called SurgerEE.

Pete wrote:

We’ve all been there: a client’s ExpressionEngine site has been up for a month or so, but to accommodate some change in their product (service, etc.) they need some new functionality. Naturally, it’s a request that sounds very simple to the development uninitiated, but doesn’t quite fit into the way their site was originally built. So then the template surgery begins. Rewriting loops, looping within loops, and finally giving in to the temptation to “just use PHP”. Followed by being bitten by template parse order when attempting to use PHP. Then you arrive at the ultimate solution: You need to write or find a simple plugin to tease the right behavior out of the standard template tags.

Digital Surgeons wants to “unify small plugins to reduce bloat in your third_party folder” with SurgerEE. They’ve released it with an open source license and put the add-on up on GitHub. They want the community to add more tags to the plugin, so it becomes more useful for everyone. Think of this as a catch-all for the functionality in the dozens of plugins that only do one small thing.

Here’s what they have so far:

  • Mathematical Helpers
    • Modulo - I’ve written this in PHP dozens of times.
    • Ceil Divide - Division, rounded up!
  • Logical Helpers
    • Halfway - Check if you’re halfway through a loop (you specify the total count).
    • Years - This one replaces my YearList plugin!
    • Loop - Loop and divide.
    • Url_title to Entry_id - Gets the entry_id for the url_title that is passed into it.
  • String Manipulation Helpers
    • Replace - A simple regex tag that replaces something with something else.
    • Match - Find a match in a string.
    • Proper Title - Makes a proper (without the underscores or hyphens) title of the url_title you pass it.
    • Strip Tags - Not Ryan Masuga’s favorite game in college but instead an easy way to strip out HTML from whatever you wrap with the tag pair.

The add-on is free and open to the community for suggestions and additions. Find the source on GitHub or more information over at Devot:ee.

Posted on Jun 11, 2012 by Ryan Irelan

Filed Under: Development Tools, EE Add-ons, EE Plugins

blog icon image

Zenbu Add-on Overview

Blog Entry

Zenbu is on the list of add-ons I want to work with more and maybe you do, too. We’re in luck. Sean Smith posted a Zenbu review to his blog, which covers the basics of what Zenbu is and the basics of how it works.

Zenbu is an incredibly powerful add-on for ExpressionEngine. It provides greater flexibilty on the edit page setting the edit page view on a per member group - this is realy fantastic in combination with an add-on such as Zoo Flexible Admin. It’s incredibly easy to use, intuitive and flexible.

Read the entire write-up.

Posted on Jun 08, 2012 by Ryan Irelan

Filed Under: EE Add-ons, EE Modules

blog icon image

Dev Discussion About a Native JS Loader

Blog Entry

Following up on his EECI EU talk on finding new ways to publish, Christopher Imrie started a thread in the EE forums to discuss standardizing on a JavaScript loader in EE.

Due to the increase in number of JavaScript rich fieldtypes and addons that are being made available for EE, I believe EllisLab needs to begin to address the need for a standard JavaScript loader to operate site wide in the CP.

At the moment, most addons work by directly adding script elements to the CP head, which leads to slow loading times, particularly on highly customisable pages such as the Publish Page. We are also seeing that many addons are still of the “single javascript file” mindset, and depend heavily on PHP to directly manipulate the JavaScript output. The single javascript file mindset leads to large monolithic JavaScript files which are difficult to debug and the high PHP environment dependency makes portability of the module very difficult (eg: making a fieldtype with a JavaScript powered UI work with SafeCracker).

A standard JavaScript loader, according to Christopher, could “promote the future growth of ‘Rich’ UI add ons.” He mentions RequireJS as a possibility.

Do you have an opinion on this and want to chime in? The thread is open and waiting for your feedback.

Posted on Jun 08, 2012 by Ryan Irelan

Filed Under: Conferences, EECI 2012, Development Tools, EE Add-ons

blog icon image

Your Weekly Devot:ee - June 7, 2012

Blog Entry

devot:ee

  • Math (for EE2) by Michael Leigeber
    Use Math to execute PHP supported math formulas.
  • Reedactor (for EE2) by Matt Fordham
    An ExpressionEngine fieldtype for Redactor, a “Fantastic WYSIWYG-editor on jQuery”. See http://redactorjs.com for more info on the jQuery plug-in.
  • Content Elements (10-site license) ($, for EE2) by KREA (Peter Felix)
    Content Elements is a fieldtype for ExpressionEngine that will give your clients and editors a freedom to create content structure directly on the publish page.

Posted on Jun 07, 2012 by Ryan Masuga

Filed Under: Weekly Devot:ee

how-to article icon image

Template Partials using Stash

How-to Article

The standard approach to EE templates has been to have a rough equivalence between a template and a page, or a template and a content type. Templates include a header and footer, which are usually done as snippets or embeds, and some content (possibly inline, possibly using more snippets and/or embeds).

The language of “template partials” is from the Ruby on Rails world, but the concept is solid for any framework in any language. In a nutshell, the idea is this: you have one wrapper template that has containers in it, and then you fill in those containers later. The wrapper template doesn’t care what’s in the containers, and the containers don’t care about the wrapper.

“But,” you may say, “my templates are all wrappers with containers for stuff! The stuff is all different, that’s why we have to have different templates!” It’s true that the “stuff” is all different–but are the containers all different? Take a look at a typical site you’ve built–I bet that you have at most two or three markup patterns for the whole thing.

If you’re used to the typical way of working with ExpressionEngine templates, you’ll see as we go on that the template partials pattern requires thinking “inside-out” for a while. However, there are some huge benefits to switching to this way of thinking.

Read the Article

Posted on Jun 06, 2012 by Adrienne Travis

Filed Under: How-To, Embed Templates, ExpressionEngine Development, Using Add-ons

blog icon image

EE Language Packs Now on GitHub

Blog Entry

In a tweet earlier this week, EllisLab announced that they moved the ExpressionEngine language packs to GitHub and encourages the community to help collaborate and improve them.

The language packs (which you can find listed here) allow ExpressionEngine to be localized and run in different languages.

If you want to contribute to a language pack, find the language pack you want to modify, fork the repository, make sure you’re working from the correct branch, work on your changes inside of a feature branch, push your changes to your fork of the repository, and send us a pull request. Then, we’ll take a look at your pull request, make sure everything looks alright and merge it in.

Get to translating!

Posted on Jun 06, 2012 by Ryan Irelan

Filed Under: EllisLab, ExpressionEngine 2

how-to article icon image

Reusable Form Templates with ProForm

How-to Article

Editor Note: In this how-to article, ProForm developer Isaac Raway shows how to create reusable form templates with his ProForm module.

One of the features of ProForm is the ability to create a single template capable of rendering any form that is designed in the module. Creating a reusable form template is simple and it can provide the same consistent UI to all of your forms, reducing the amount of work it takes to create a new form.

Goals

The basic goals for this setup is to be as flexible as possible. To this end, the essential design for this system is intended to allow multiple ways of using the same base template:

  1. As a full form URL - this allows us to simply link to forms that have been created in ProForm, without having to hook up anything else
  2. As an embedded template - allows placing the form inside of another custom template that might also do other things

Let’s get started.

Read the Article

Posted on Jun 05, 2012 by Isaac Raway

Filed Under: How-To, Forms, ExpressionEngine Development

blog icon image

Engine Summit Round Table with EllisLab Recording Available

Blog Entry

Environments for Humans, producers of the annual Engine Summit, made available for free the EllisLab Round Table discussion recording.

The Round Table, a discussion with the team at EllisLab, was part of this week’s online conference (it took place on Tuesday), which featured speakers Joel Bradbury, Erik Reagan, Mark Huot, Lea Alcantara, and Emily Lewis.

The recording of the Round Table session is free to everyone, so go watch it now!

Posted on May 31, 2012 by Ryan Irelan

Filed Under: Conferences

blog icon image

EECI EU 2012 Round-up

Blog Entry

I was traveling the last couple of days, so I wasn’t able to post the happenings at EECI EU in Leiden. I did retweet some mentions of slides and presentations at the EE Insider Twitter account but here’s a wrap-up of slides and talks from the conference.

If you have a link to any of the talks I don’t yet have listed, please post it in the comments and I will update this post.

The high quality of these talks—and the great tools and ideas that came out of the—are a testament not only to the intelligent people in our community but also to Robert Eerhart’s ability to wrangle these people together and produce yet another great conference.

See you all here in Austin for EECI US!

Posted on May 31, 2012 by Ryan Irelan

Filed Under: Conferences, EECI 2012

blog icon image

EE Podcast: Conferences and Presentations

Blog Entry

This week has been full of ExpressionEngine conferences! With EngineSummit and EECI on the roster, this week’s podcast discusses Lea and Emily’s experiences in the speaking circuit.

If you have something interesting to contribute to the community and want to get the benefits of exposure at the same time, the show shares tips on how to prepare to speak for different audiences, goals, and venues! Tune in now!

Also, if you still haven’t filled out the 2012 EE Podcast survey, the show’s still taking responses until midnight Mountain Time today! Be one of the five people to win a fabulous EE Podcast t-shirt!

Posted on May 31, 2012 by CTRL+CLICK CAST

Filed Under: EE Podcast

blog icon image

Your Weekly Devot:ee - May 31, 2012

Blog Entry

devot:ee

  • Content Elements ($, for EE2) by KREA (Peter Felix)
    Content Elements is a fieldtype for ExpressionEngine that will give your clients and editors a freedom to create content structure directly on the publish page.
  • Cookie Consent Module (for EE2) by EllisLab
    The Cookie Consent Module prevents ExpressionEngine cookies from being set unless the user has explicitly granted permission as indicated by the presence of a ‘cookies_allowed’ cookie.
  • QueryDesk (for EE2) by Isaac Raway (Airways)
    QueryDesk is an integration plugin that presents a set of consistent and simple plugin tags for querying and displaying data from various help desk packages.
  • Exchange ($, for EE2) by websecret
    This plugin allows you to easily convert currency at the rate of Eurobank

Posted on May 31, 2012 by Ryan Masuga

Filed Under: Weekly Devot:ee

blog icon image

Dutch EE Group Site

Blog Entry

Speaking of The Netherlands…

Today a new site was launched to bring together Dutch ExpressionEngine developers. Right now the site is simply a contact form to submit your name so you can be included as part of the group.

Posted on May 25, 2012 by Ryan Irelan

Filed Under: Life as a Web Professional, Meetups

blog icon image

EECI EU Final Schedule Posted

Blog Entry

Next week in Leiden, another installment of EECI will take place on May 30th and 31st. The full and final conference schedule was posted today and includes two days packed full of talks.

Some of the conference topics include:

  • Selling ExpressionEngine
  • Multi-lingual sites in EE
  • Building a robust development environment
  • Theming ExpressionEngine

Read the full conference schedule for an entire list and descriptions.

Have fun in Leiden!

Posted on May 25, 2012 by Ryan Irelan

Filed Under: Conferences, EECI 2012

blog icon image

Your Weekly Devot:ee - May 24, 2012

Blog Entry

devot:ee

  • SurgerEE (for EE2) by Digital Surgeons
    Ever want to use php in your templates because of some glaringly missing functionality? SurgerEE is an ongoing collection of tags filling those gaps and aiding with your template surgery.
  • ForEEcast ($, for EE2) by Lee Hilton
    Foreecast pulls it’s data from Weather.gov and provides a five day weather forecast for your ExpressionEngine web project.
  • Ress (for EE2) by Tyssen
    RESS (Responsive Design + Server Side Components) add-on for ExpressionEngine detects the screen resolution of a device via javascript and then sets a variable which you can then access in your templates. Useful for creating responsive web design layouts that adapt to users’ screen size and can also conditionally show or hide content.
  • BasEE64 (for EE2) by Lee Hilton
    BasEE64 is an ExpressionEngine plugin that encodes and decodes data via the php base64_encode() and base64_decode() function.
  • Firemail Emails (for EE2) by Rein de Vries
    This small plugin shows emails sent with Firemail.
  • Zenbu MX Cloner Support Extension (for EE2) by Nicolas Bottari
    Adds an MX Cloner column in Zenbu’s entry listing.
  • A&M Impact Search Suggest ($, for EE2) by a&m impact
    Take your search to the next level! Easily make suggestions for different search terms for mistyped words, based on any language’s dictionary or a dictionary based on the content of your site.
  • ProForm Catchall (for EE2) by Isaac Raway (Airways)
    The ProForm Catchall field is a field plugin for ProForm that adds support for handling arbitrary fields posted to a form. When you don’t know which fields are needed ahead of time, ProForm Catchall comes to the rescue. *** This plugin is part of ProForm’s expanding platform for advanced form handling in ExpressionEngine 2.0.

Posted on May 24, 2012 by Ryan Masuga

Filed Under: Weekly Devot:ee

blog icon image

Store 1.5.3 Adds Zoo Visitor Integration

Blog Entry

In the most recent release of Store, Exp:resso added support for Zoo Visitor and some other features like additional custom order fields.

If you haven’t tried Zoo Visitor yet, you definitely should. It makes using members in ExpressionEngine easier and can even store members accounts into entries.

The combination of Store and Zoo Visitor makes total sense to me and now I’m really excited about an upcoming project.

While we’re on the subject of Zoo Visitor, Low NoSpam also recently supported Zoo Visitor.

Posted on May 24, 2012 by Ryan Irelan

Filed Under: E-commerce, EE Add-ons

blog icon image

Meetup: Ohio ExpressionEngine Meetup Next Week

Blog Entry

On Wednesday May 30th at 6pm the latest installment of the Ohio ExpressionEngine Meetup takes place.

Come and mingle with some of the brightest minds in Ohio, at least those who have chosen to work with ExpressionEngine as their CMS of choice!

For location information and to add yourself the attendee list, visit the official meetup page.

Do you have an ExpressionEngine meetup that you want to announce here on EE Insider? Get in touch.

Posted on May 24, 2012 by Ryan Irelan

Filed Under: Meetups

blog icon image

Low on Low Variables

Blog Entry

As he is wont to do, Low Schutte dropped a little Parse Order knowledge on his blog yesterday. In his post Parse Order and Low Variables, Low reviewed how you can use Low Variables to make EE and Parse Order do your bidding.

There’s no need to summarize the article, just go read it.

Posted on May 24, 2012 by Ryan Irelan

Filed Under: Development Tools, EE Add-ons, ExpressionEngine 2

blog icon image

EE in the Wild: Jackass Letters

Blog Entry

Last week I received a mention on Twitter that thanked this site for the motivation to upgrade their site to the latest version of ExpressionEngine. I hadn’t heard of the site before and was intrigued. It’s called Jackass Letters. Written and run by Christopher L. Jorgensen, Jackass Letters (JL) archives letters Christopher writes to companies and notable people and also posts the replies he gets.

Here’s the idea in a nut:

Jackass Letters is dedicated to examining correspondence with real people and companies. It is equal parts spoof, satire, parody and criticism. New letters are generally published once a week.

Is my motivation greed? Am I just clamoring after free stuff? No. Free stuff is cool, but I enjoy the process, enjoy the responses more than any of the swag. Daily I made the trip to my mail box only to see it stuffed with junk mail and bills. Now I look forward to getting mail again!

I started clicking around the site, reading letters, laughing and generally amusing myself with the responses from some of the companies Christopher contacted. JL is a utilitarian site that is solely focused on publishing letters and the replies.

Jackass Letters

You could see this as a meaningless endeavor. I could understand why. I see it as a fun experiment that captures a snapshot of the corporate culture and humor of some of the biggest names in the world. From Best Buy to Budweiser, Apple to the AARP, and Nike to Nissan, Christopher has written dozens and dozens of letters and eagerly awaited a response. He’s reviving the dying art of writing a letter.

I asked Christopher if he would do an interview with EE Insider so we can learn more about the site.

EE Insider: When did you start the site?

Christopher Jorgensen: I started the site in 2008. Originally the idea was to see if I could just get free stuff from companies just by asking. The first company I wrote was Apple. The reply that came back irritated me. It was boring boilerplate marketing and made no mention of anything I’d written in my letter. It was basic facts any Apple fan would already know. So I wrote them back and complained about the reply and they sent me a pen.

At this point I realized I enjoyed the letter writing more than the free pen and Jackass Letters was born.

In college my roommate and I wrote a few letters to companies complaining about things like insect infestation in our boxed potatoes, but it never occurred to me to make those letters public. (This was before most companies had websites. ‘92 or so.)

EEI: Why did you choose ExpressionEngine for this site?

CJ: My first dynamic site was a blog run on a used Apple G3 iMac in my basement using a version of pMachine. When EE came out I migrated to it with a new project.

I’ve used other CMSes, but I am a dabbler, so attacking another learning curve is not something I get excited about. Even going from EE 1.x to EE 2 was a major task for me. I doubt I would have done it if I wasn’t also interested in doing a redesign. I’ve used Wordpress, Joomla, and a couple of others, but have seldom been tempted to switch to something other than EE.

EEI: Wow, so you’re a senior member of the community. Are you using any add-ons or special configurations with the site?

CJ: I’m running a pretty much out of the box installation. I used the first third of your book ExpressionEngine 2: A Quick-Start Guide to get going, but once I felt like I knew enough to do what I wanted I just dove in!

I have an amazing amount of “Advanced Conditionals” set up to deliver different content depending on the URL structure. I have about a dozen templates running the entire site and this counts my site map and RSS feed.

There are a lot of plugins I would love to have, but the site costs me about $600 a year to run. I spend about $150 a year in postage alone! Maybe if the site ever makes money I’ll consider adding some more bells, but I often take the hard way to save a little money (like manually creating my site map template and hand rolling my .htaccess).

EEI: Do you accept donations for postage?

CJ: I do accept postage donations. I also accept donations to my legal defense fund, to the illustrator charity fund, and to the girlfriend/editor/typist dinner fund. (I don’t really have a legal defense fund.)

I couldn’t do my site without the help of others.

Jackass Letters hasn’t gotten me sued yet, but one of my letters got me set up with a lawyer. He gives me advice from time to time when I have questions about whether I can legally put something online. I don’t always listen to him, but he makes it so the girlfriend can sleep at night.

I also have a great illustrator who works with me because he likes to be part of what I do. He’s named Anthony Imperioli. I make donations to his favorite charity rather than actually paying him.

EEI: What’s your favorite thing about ExpressionEngine?

CJ: The flexibility. One of the things I’ve recently started to do is to try to use my own content more efficiently. I’ve started writing my letters directly within EE. I created a print template only a logged in Admin can see. I print the letter, set a future post date in EE for 3 months out, then if it’s answered I move it to the main channel. If not it posts to the Unanswered channel.

I plan a video/podcast shortly and intend to do that within EE. If I can imagine the page there seems to be a way to do it. I’m still learning, and I am intimidated by all the things the design pros do with EE. I do all my own templates and CSS and such, but I am not a programmer. Yet I still manage!

EEI: Is there anything that you’d change about ExpressionEngine?

CJ: I would love the ability to autoupdate. For someone like me that is more focused on the content side the actual maintenance of the site can get in the way. If the database backed up and the site stayed up to date, I could let it get out of my way and just produce!

I’ve often thought there should be either first party or third party templates, but for some reason these haven’t caught on for EE. It would be nice to do a “Newspaper” install or select “Web comic” or one of dozens of design options; blog, store, magazine, etc.

EEI: Are you working on anything cool for the site?

CJ: One of the things I am currently working on is a script that will pull all the content of an EE category and cURL the contents into a directory, then zip it up as an ePub and rename it. I have it working fairly well for text only posts at this point.

My first test will be to create an ePub of all the content at jackassletters.com/unanswered.

I still have another 100+ letters to input there before I can pull them all back out, but this still beats doing all that formatting by hand. I want this to eventually be a cron job that fires off daily and creates an ePub of “The Worst of Jackass Letters” or “The Best of” or whatever.

I have a lot of plans for books this year. I am currently writing all the Governors & Premiers in the US and Canada. I also have a woman in Malaysia writing letters on my behalf to companies she likes interacting with. I am outsourcing my labor for a book I am going to call “Jackass Letters: Outsourced.”

We’ll see how long it takes me to do this. I feel like I am close to getting “Unanswered” finished.

If someone made an add on that easily allowed for ePub creation I’d buy that in a heartbeat. It’s not as easy as you might think though.

Posted on May 24, 2012 by Ryan Irelan

Filed Under: EE in the Wild

blog icon image

Ajax Sort and Order with ExpressionEngine

Blog Entry

In a two part series at Metaq, Terris Kremer wrote up how to sort and order data with ExpressionEngine and Ajax. Terris takes a regular ol’ table of EE entries and makes them sortable.

The first step to making something work with Ajax is to make sure it works without Ajax. If a user doesn’t have JavaScript enabled I want to be sure they can still sort entries. Those users will just have to load the entire page.

Let’s start with a basic template that has a header, footer and content section.

He includes plenty of code snippets and explanations so you can adapt the code to your situation. The first article just gets the basics working…no Ajax implementation yet. In the second article Terris tackles making the entries sortable without requiring a page load.

If this type of functionality is new to you or you need it on an upcoming project, both articles are a good reference.

Posted on May 22, 2012 by Ryan Irelan

Filed Under: Development Tools, ExpressionEngine 2