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

Upcoming Add-on: Entry Trash

Blog Entry

I don’t usually post about unreleased site, services or add-ons (because announcing is the easy part), but the Entry Trash add-on by Rein de Vries has me intrigued.

Entry Trash is a Extension that will move an entry upon deletetion to the trash, with all their associated data. From here you can view the entries and you can restore or delete the entries entirely from the database. By using the Entry Trash, you will never lose your entry data entirely or accidentally by deleting.

The Devot-ee page says it is in public beta but I’m not able to find a download link anywhere. Once it is available I’m definitely going to try it out.

Posted on Apr 02, 2013 by Ryan Irelan

Filed Under: EE Add-ons, EE Modules

blog icon image

Snippets or Embed Templates?

Blog Entry

Cole Henley is asking for your input:

Some good replies already. It’s a simple question but everyone has different reasons for why they do things. What’s yours?

Posted on Apr 02, 2013 by Ryan Irelan

Filed Under: Development Tools

blog icon image

What They’re Saying About EE

Blog Entry

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

Posted on Apr 01, 2013 by Ryan Irelan

Filed Under: What They're Saying About EE

blog icon image

One-Day EE Class with Kyle Cotter

Blog Entry

On April 9th, Kyle Cotter (former EllisLab intern and employee, former blogger on this very site) will be teaching a one-day class called Building Flexible Sites with ExpressionEngine.

The class will cover EE history and approach, the Control Panel, building a dynamic site and more. It only costs $75 for 6 hours of training and lunch is included.

Learn more about the class.

Posted on Apr 01, 2013 by Ryan Irelan

Filed Under: Development Tools, Life as a Web Professional, Training

blog icon image

50% off Content Elements

Blog Entry

KREA is having a sale on its Content Elements add-on. The sale only goes until tomorrow (Monday), so if you’re interested in Content Elements don’t procrastinate. It’s only $27.50.

What’s Content Elements?

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. You will no longer need to create individual channels to accomodate different field groups. Instead, you will allow your clients and editors to choose what data fields and what order to use —all in one channel and using a single field type.

Visit Content Elements on Devot-ee.

Posted on Mar 31, 2013 by Ryan Irelan

Filed Under: EE Add-ons, EE Fieldtypes

blog icon image

Parsing Advanced Conditionals as Tag Parameters

Blog Entry

John D. Wells found himself up against the almighty Parse Order:

Once again I’m shaking my fists at the impossible hoop-jumping gauntlet that is the ExpressionEngine Parse Order. This time I want to pass the result of an Advanced Conditional as a value to a module tag parameter. It’s been long said it can’t be done. It’s time to change that.

John found a work-around that includes some built-in EE functionality and a third-party plugin. I don’t want to spoil it here, so you’ll have to read the entire write-up to see his technique.

When I teach the Parse Order to students in my EE training classes, I try to give examples of where the Parse Order could bite them. This is one that I haven’t used but will now add John’s write-up as something they should read.

Posted on Mar 31, 2013 by Ryan Irelan

Filed Under: Development Tools, Life as a Web Professional

blog icon image

Canada & ExpressionEngine

Blog Entry

The silence here isn’t because I don’t care about you anymore. Oh, quite the contrary. Things slowed down because I was traveling the last 8 days in Toronto and teaching two ExpressionEngine classes to a group of enthusiastic web developers.

Teaching ExpressionEngine and seeing how people new to the CMS positively react to it and what it can do reminded me that a lot of what we take for granted day in and day out is still a big deal. At the end of the day ExpressionEngine solves problems for people creating websites. It’s always good to be reminded of that.

While in Toronto I was able to take in some local sights and food (and beer). I also had the good fortune of attending the local Toronto-ee meetup. They kindly arranged it close to my hotel and we spent a couple of hours sharing stories, drinking beer and eating food. Usually EECI is the only time I get to see other EE people (that don’t live here in Austin), so this was a real treat.

Thanks to Sean Smith for organizing it and for everyone who attended.

Posted on Mar 28, 2013 by Ryan Irelan

Filed Under: EE in the Wild, Life as a Web Professional

blog icon image

Your Weekly devot:ee - March 28, 2013

Blog Entry

devot:ee

  • SurgeEO ($) by Digital Surgeons
    SurgeEO is an add-on that lets you add SEO meta data to your site pages, and control those in the admin area. But unlike other SEO add-ons, you can manage SEO meta data on pages which are not entries.
  • GroupDocs Signature by GroupDocs
    GroupDocs Signature is a secure and legally binding online signature service that allows you to instantly sign documents on any web-enabled device. Whether you are in the office or on the go, documents can be signed easily in seconds.
  • Unit Converter ($) by w3care
    Unit Converter is a simple custom field type which enables to set different units and their values. It can be useful for setting different measument units. It’s almost same like mobile’s Unit Converter app. For example, you are having a custom field for entering the value in kg and would like to populate the values in different weight measument units. You can easily set the units from the field’s setting and populate at front end for the same.
  • Audit Tags ($) by Mark J. Reeves (Clearbold)
    Audit Tags enables template output of data logged using Audit or Audit Pro.

Posted on Mar 28, 2013 by Ryan Masuga

Filed Under: Weekly Devot:ee

blog icon image

EE Podcast: Caching with Aaron Waldon

Blog Entry

Have you optimized your code and implementation, but still want to get that extra speed boost day-to-day or save your server from a massive visitor jump?

For the latest EE Podcast, Aaron Waldon stops by the show to talk caching and how it works with EE, what you can do natively and with 3rd party tools, pros and cons of each approach, his favourite server caching technology, and how all of the above can lead to a blazing fast site. Tune in now!

Thanks to Responsive Web Design Summit for sponsoring!

Posted on Mar 21, 2013 by CTRL+CLICK CAST

Filed Under: EE Podcast

blog icon image

Your Weekly devot:ee - March 21, 2013

Blog Entry

devot:ee

  • Embed video by KREA (Peter Felix)
    Embed video is a fieldtype for ExpressionEngine that will give your clients and editors a possibility to add Youtube videos or Flash videos on the publish page.
  • Amazon S3 Signed URLs ($) by Goldhawk (gregormck)
    Create signed URLs for your PRIVATE Amazon S3 files. This means that you can share files with customers, members and the public AND put an expiry date on the URL without making your assets publicly available.
  • Editorial Calendar ($) by Glenn Jacobs
    Manage your posts with ease with this calendar schedule. You can see all posts for the month, week or day. Click to edit a post and even drag them around to change their date and time.
  • Audit Pro ($) by Mark J. Reeves (Clearbold)
    Know who did what and when they did it. Audit Pro provides more detailed activity logging for the Control Panel, supports custom email notifications and searching log entries.
  • Entry Trash by Rein de Vries
    Entry Trash is a Extension that will move an entry upon deletetion to the trash, with all their associated data. From here you can view the entries and you can restore or delete the entries entirely from the database. By using the Entry Trash, you will never lose your entry data entirely or accidentally by deleting.
  • Preevious by Pumpinteractive (Aaron Caldwell)
    A plugin that prints the previous page url to screen or redirects to the previous page. Uses the PHP $_SERVER[‘HTTP_REFERER’] and the php header redirect.
  • Italian CP Language Pack ($) by 25hweb
    A full Italian translation for your customers!

Posted on Mar 21, 2013 by Ryan Masuga

Filed Under: Weekly Devot:ee

blog icon image

Toronto EE Meetup with Ryan Irelan

Blog Entry

I’ll be at the next Toronto EE meetup, which takes place on March 25th (next Monday) at the The Office Pub on John Street.

I’m looking forward meeting some new people over drinks, food and conversation. Not looking forward so much to the cold weather.

Can you make it? RSVP on the Toronto-EE site.

Posted on Mar 19, 2013 by Ryan Irelan

Filed Under: Meetups

blog icon image

What They’re Saying About EE

Blog Entry

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

Posted on Mar 19, 2013 by Ryan Irelan

Filed Under: What They're Saying About EE

blog icon image

EEUK 2013 Reminder

Blog Entry

If you’re in the UK or EU and want to attend a EE conference that doesn’t require a bunch of travel to the US, then please take a look at EEUK 2013, a stellar ExpressionEngine conference in Manchester, UK May 16th and 17th 2013.

The conference is two days, one day of an EE add-on workshop by Low Schutte (Low also did a great ExpressionEngine add-on development tutorial for Mijingo) and one day of eight conference talks packed to the brim with knowledge.

Tickets are still available. Go get ‘em now.

Posted on Mar 19, 2013 by Ryan Irelan

Filed Under: Conferences

blog icon image

A Debugger’s Tale

Blog Entry

Eric Lamb is the developer of professional and enterprise grade ExpressionEngine add-ons. Founded in 2009 Eric’s company mithra62 aims to be a leader in ExpressionEngine add-on development and has a reputation for stability, usefulness, and being highly configurable. Check out Eric’s popular ExpressionEngine add-on Backup Pro.

When I first released the EE Debug Toolbar to the ExpressionEngine community back in November I was supposed to be done with it. I figured the community had it so they’d pick it up. Initially, I put it together, honestly, as an experiment, something I did just to see if I could. I’d been on a Github kick for way too long and figured it would be a cool last “thing” to put out there before I got back to my commercial products and projects (a man’s gotta eat). I had absolutely no intention of the Toolbar becoming an actual project for me though.

That was 3 months ago and hundreds of man hours since (yeah, plural) split between 2 developers on this Toolbar (Christopher Imrie has matched me blow for blow since I put the Toolbar on Github). To date, we’ve had a couple major releases, a few minor releases, and are prepping to release what is now a debugging platform for ExpressionEngine websites.

The Toolbar hasn’t exactly been the smoothest of projects and, as mentioned above, I’m honestly surprised just how much of a personal investment this has taken to get where it is. There’s a lesson here I think.

Now, don’t get me wrong; the Toolbar, as a tool in it’s current state, has some “wow” to it and I’m proud and thrilled at the reception (to put it mildly). Making the ExpressionEngine debug output easier to read and presenting the data in that format is clearly useful and, considering the default method of just throwing up the output on the page, definitely needed. The problem though is that once you get past the “wow” and start to look at it as a useful debugger you start to notice a few issues that keep the Toolbar from being a really useful ExpressionEngine tool.

The first big problem (after the initial round of bug fixes) was the needle in a haystack approach CodeIgniter takes with the template debugger data. It just dumps it all together so the Toolbar, at the time, did the same. Just a long list of “stuff” that happened and it’s up to the developer to dig through and make sense of things. As a programmer, let me tell you, it kinda sucks trying to use that sea of data to find a specific issue.

So Christopher put together a neat canvas graph to highlight the progress over time of template execution. No talk or discussion, just something Christopher felt needed a’ doin’. So he did it and sent a pull request. And it was really good at showing if an issue existed.

After the graph update came time to pay the technical debt built up over having no plan or structure with the code whatsoever when it was initially built. Remember, this was an experiment first, so the couple initial builds were just made up as I went along. Not painful to work on but also not pleasant and if this was going to be an actual project the code needed to be cleaned up and structured a little better.

Again Christopher stepped up and took lead on this, making the code much, much, cleaner and easier to work on. He set things up so the jQuery was much more efficient and things were laid out inline with all good ExpressionEngine add-ons. The importance of this step should not be minimized as it set the ground work for everything to come.

Still, this question of “how useful it is” bugged me. We had a good base to work on, thanks to Christopher, but the project itself was still lacking in the “useful” department. The lowest hanging fruit to make the Toolbar usable was revisiting the graph so that’s what we did next. A static canvas graph is basically an image so what we currently had wasn’t all that helpful.

Adding Google Charts for interactivity made a lot of sense. It was an external library so we could keep the core code clean, it’s a robust library and easy to work with, and it’s distributed so the code is likely to be cached by end users. Full of win. Christopher and I have made it a point to keep the core as minimal as possible so an external and distributed library was perfect. This feature, alone, took us over 3 weeks to get just right though due to our schedules and all the other tweaks that went into the pull request.

Christopher and I started discussing possible directions and what to do next almost immediately. We were both in that heady state programmers get into when a project is humming along and wanted to get the project where it needed to be. We talked about adding in Warnings and Alerts and a Memory History profiler to track resource usage over multiple requests. Thinking about what would be cool and useful for an ExpressionEngine debugger brings up all sorts of interesting directions and approaches. And all sorts of time sinks and opportunities for code bloat.

This is when things really started to dawn on me as to the enormity of the project. How do we build out the “everything” debugger ExpressionEngine needed. How could we possibly fill all the debugging needs for an abstract tool like EE? The Toolbar is potentially going to require a huge amount of work to do right. Way more than I could possible donate on my own. No, in order to do this right we’d need the help of way, way, more developers. Bummer.

We need people like the Nerdery and Cotter Interactive to write killer themes and styles like their CP Themes so users have the option of how their debugging experience looks. We need devs like Exp:resso, ObjectiveHTML, Solspace, and Low to write custom debugging experiences for their own add-ons and tools. And we need all devs to think about their debugging experience and what tools they need. Basically, we need a community for debugging inside the ExpressionEngine community.

Christopher and I discussed this problem and decided our best course of action was to move the Toolbar into a platform model instead of the simple add-on it was. By this I mean we had to create a base for other developers and designers to customize and create their own debugging experience specific to them. A way for the Toolbar to change depending on what add-ons a site has installed or what specific needs a particular project may have. This way, Securit:ee (only $45 on devot:ee!), FreeForm, and Postmaster, and all the other ExpressionEngine add-ons can create their own panels or custom tools specific to their products debugging needs.

Our first, and easiest, move was to get the Toolbar the ability to be themed. Even from the first day of release requests were coming in for how to style things so creating themes made sense anyway. The idea was that theme designers could create a completely new and different Toolbar using CSS (and even being able to replace the entire toolbar paradigm by changing the JS if desired). Overall, this took around 5 weeks of pretty consistent development split between both Christoper and I but the end result was a Toolbar that you could completely customize in terms of the creative.

Now, up till this point (about 3 weeks at the time I’m writing this), the pull requests were all pretty straight forward. Each request iterated over the last to continue building a coherent idea in a logical and progressive manner. The Hookah branch spit in the face of that bliss and has caused a 90% rewrite of everything (I think the images were the only files not changed).

Christopher and I started the Hookah branch 3 weeks ago and it’s been an interesting direction to go with a project. If you’ve never attempted to convert an existing project to a platform let me tell you, it’s a pain in the ass. It would have been much smarter to go in this direction at initial design but, as mentioned: experiment. Still, now that we’re about 99% complete with this branch it’s clear this was the path to go.

So now it’s possible, through the Hookah branch until merge (and it ain’t ready for merge), to customize 100% of the EE Debug Toolbar. You can style it any way you want. You can create new panels, change existing panels, remove panels and create custom widgets outside the panel paradigm.

Here are a just couple examples:

Performance Alerts / Memory History

Note the highlighted buttons in the Toolbar; that’s a new extension shipped with the Toolbar to highlight where performance isn’t acceptable (and yes, those values are configurable).

Another extension that ships with the Toolbar is EEDT Memory History. This extension, shown in the top right, tracks your page performance over multiple pages so you can get an idea, visually, of which pages are a priority for performance tweaks.

Minimal / Hot Dog Stand Theme / Settings

You can also position the Toolbar however you see fit regardless of theme (previously, the position was controlled at the theme level). Don’t like it in the bottom right? Cool; go to the Toolbar Settings page and set your location.

The Toolbar uses normal ExpressionEngine extensions to do everything and Christopher and I have worked really hard to make sure the API for managing panels is as easy and intuitive as possible so programmers would actually want to write helpful extensions for their products. We’re still adding some finishing touches to the branch and we are just about done but hit us up if you have any requests.

In the meantime, now’s the time to get involved. If you have any needs for ExpressionEngine debugging I highly suggest you hit up Github and take a look at the project.

Eric Lamb is the developer of professional and enterprise grade ExpressionEngine add-ons. Founded in 2009 Eric’s company mithra62 aims to be a leader in ExpressionEngine add-on development and has a reputation for stability, usefulness, and being highly configurable. Check out Eric’s popular ExpressionEngine add-on Backup Pro.

Posted on Mar 19, 2013 by Eric Lamb

Filed Under: Development Tools, EE Add-ons, Life as a Web Professional

blog icon image

Your Weekly devot:ee - March 15, 2013

Blog Entry

devot:ee

  • RedirectEE by Rein de Vries
    RedirectEE is a small plugin that implements the use of the header() function for redirecting and refreshing.
  • Hex Calc by Ian Pitts
    Accepts a hexadecimal color value and returns a lighter or darker shade.
  • JSON encode tag by Christopher Olaussen
    JSON ENCODE TAG plugin simply outputs a json encoded value of the value between its tags.
  • Jira Issue Collector Accessory by dWise
    This accessory allows you to add a Jira issue collector to the ExpressionEngine control panel.
  • VL Auto Publish Date by Viget Labs
    When you change an entry’s status from closed to any other status, this accessory will automatically set the entry date to be the current date and time (unless you have already set the date to be in the future).
  • Audit ($) by Mark J. Reeves (Clearbold)
    Know who did what and when they did it. Audit provides more detailed activity logging for the Control Panel.
  • Low Search Tag by Lodewijk Schutte (Low)
    Enables extended Low Search and Solspace Tag compatibility. Filter search results by tags just like you would with categories.
  • EE_Twitter by Click Rain
    ExpressionEngine Twitter is nearly an identical port of EllisLabs Twitter Timeline plugin, via Bryant Hughes’s TGL_Twitter. However ExpressionEngine Twitter has a CP Backend, allowing a user to authenticate with Twitter using oAuth. ExpressionEngine Twitter uses the Twitter 1.1 API, and provides tags that make it possible to conform to Twitter’s Display Requirements.

Posted on Mar 15, 2013 by Ryan Masuga

Filed Under: Weekly Devot:ee

blog icon image

Boston EE Meetup March 27th

Blog Entry

The BostonEErs meetup group has their next meeting on Wednesday 3/27 at 6:30 PM. The two-hour meetup will feature the topic Better Deployments with Master Config.

The meetup takes place in Cambridge. If you’re in the area and want to meet other ExpressionEngine users, sign up and attend!

Posted on Mar 14, 2013 by Ryan Irelan

Filed Under: Meetups

blog icon image

Managing DOB Field In EE

Blog Entry

John Henry Donovan wrote up a tutorial with two different solutions for managing date of birth fields in ExpressionEngine. The default date field type also includes in the time and John Henry doesn’t want that included. So he did something about it.

Both solutions involve creating a dummy field that our user will see and then passing anything from that field into our hidden correct date of birth field for our entry. Both solutions also require JavaScript to do the work for us.

Read the entire tutorial on John Henry’s site.

Posted on Mar 14, 2013 by Ryan Irelan

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

blog icon image

Giles-Parscale Hiring Developer

Blog Entry

Our friends at Giles-Parscale are hiring a front-end/ExpressionEngine to work for them in their San Antonio, TX office.

Is that you? Email them.

Posted on Mar 14, 2013 by Ryan Irelan

Filed Under: Life as a Web Professional

blog icon image

A Note on the Loyalty to Tools

Blog Entry

The recent filibuster in the United States Senate made me think about how and where we put our loyalty. In respect to politicians, I mentioned to a friend that you should support the cause you believe in, not always just the people. Because everyone is going to disappoint you at some point with their beliefs and motivations. When you believe in a cause the only person you will disappoint is yourself (by choosing the wrong cause).

When it comes to building websites for clients and customers, it’s the opposite. You should support the people (your clients) and not just the cause you believe in. Your client might not need or want the thing you feel so passionate about.

When it comes to content management systems, there is no need to have any loyalty at all. As the worn-out, old saying goes: pick the right tool for the job. No matter who makes it, what the licensing is, or which language or framework is used.

Use ExpressionEngine as a tool to help your clients or customers achieve their goals. Use whichever CMS you want. It doesn’t matter as long as the people come before any loyalty you might have.

And when it comes to tools we probably don’t need any loyalty at all. Especially when that loyalty leads to vitriol.

It’s not the tools that you have faith in - tools are just tools. They work, or they don’t work. It’s people you have faith in or not. –Steve Jobs

Posted on Mar 07, 2013 by Ryan Irelan

Filed Under: Life as a Web Professional

blog icon image

EE in the Wild: Mark Simonson Studio

Blog Entry

Friend and supporter of the site Vector Media Group recently helped build the back-end for the gorgeous Mark Simonson Studio website.

You probably know Mark’s font work. Proxima Nova, anyone?

Built on ExpressionEngine, of course, Mark’s new site was designed by my local pals Trent, Reagan and Dave at Paravel.

Mark Simonson Studio|

Really, really nice!

Posted on Mar 07, 2013 by Ryan Irelan

Filed Under: EE in the Wild