Posts in "ExpressionEngine" tag

Is Automattic pulling old tricks on EllisLab?

For those who don’t quite understand the title; Automattic is the company behind the world’s favourite blogging engine1 – WordPress, and EllisLab are creators of fine products such as CodeIgniter – and, the commercial CMS ExpressionEngine. Now that you have the basics, the title will make sense later.

MacDailyNews moves from EE to WP

The latest blogpost on the WordPress Publisher Blog tells the news of the high profile migration of MacDailyNews from ExpressionEngine to WordPress VIP:

MacDailyNews migrates from EE to WP


To quote the blogpost:

“With an archive dating back to 2002 and over 750,000 comments, this is the largest Expression Engine2 migration to date. MacDailyNews brings with them a very active community and an ever-burning desire to publish.”

It made me think of a specific moment last friday. I was eating breakfast in a cabin in the mountains of Norway, listening to the radio – the breaking news being the Nokia & Microsoft partnership, but – and isn’t technology beautiful – I was also reading this blogpost on my mobile:

In it, Byrne Reese the former Product Manager of Movable Type and TypePad at Six Apart lays out specific reasons he thinks contributed to WordPress winning the “blog wars” over MovableType.

Tactic: Migrate, then blog the hell out of it

Here’s one of the main reasons he lists:

One thing rarely cited by the outside world, probably because it was not visible or apparent to anyone, was the systematic targeting of high profile brands to switch from using any competing platform to using WordPress. In fact, in the four years I was at Six Apart, if I had a dollar every time a significant and loyal TypePad and Movable Type customer confided in me that an employee of Automattic cold called them to encourage and entice them to switch to WordPress I would have quit a rich man. Automattic would extend whatever services it could, at no expense to the customer, getting them to switch. They would give away hosting services. They would freely dedicate engineers to the task of migrating customers’ data from one system to another. They would do whatever it took to move people to WordPress.

And once a migration was complete they did the single most important thing: they blogged the hell out of it.

(emphasis mine)

Read the entire blogpost here, it’s quite interesting (and well written).

So, it could seem that Automattic is pulling old tricks on EllisLab. However, a quick google shows that there hasn’t been much mention of ExpressionEngine on the publisher blog until now. Also, it’s not the same situation as back in the days when MovableType and WordPress were equally popular.

Nonetheless …

What do you think?

  • Is Automattic using the same tactics on EllisLab that they were using earlier on Six Apart?
  • Will we see more of these blogposts from Automattic as ExpressionEngine grows in popularity?
  • Or is ExpressionEngine simply too small for them to even bother?
  • Will ExpressionEngine suffer the same “fate” as MovableType?

  1. Ok, WordPress does more than blogs, I know. 

  2. (sic) We all know that should be ExpressionEngine, no space in there. 

Basecamp Style Subdomains With ExpressionEngine

Today cityzenllc asked a question on Twitter about setting up EE w/subdomains.

The “Basecamp Style Subdomains With CodeIgniter” over at NetTuts was tweeted and retweeted all over the place, or maybe just twice, but anyway – this is supereasy in EE, and can be done by adding just a couple of lines to index.php:

if($_SERVER['HTTP_HOST'] == '')
    $assign_to_config['site_url'] = '';
    $req = strtolower(trim($_SERVER['REQUEST_URI'], '/'));
    if($req == '' || substr($req, 0, 9 ) == 'index.php')
        $assign_to_config['template_group'] = 'login';
        $assign_to_config['template'] = 'index';

What the above snippet of code will do is check if the current URL the user is on is ‘’ – if it is it will change the ‘site_url’ variable to override the default one (so that {path=”} etc will use that URL. Also it will make sure the ‘index’ template in the template group called ‘login’ is used (if the user is not on a subpage that is).

Of course you could add all kinds of magic here – having Apache accept all and every subdomain, fetching a specific template group and adding the subdomain to the global variables ($assign_to_config[‘global_vars’]) .. for instance to implement a solution. You could even throw some .htaccess in the mix if you really needed it ;)

How have you solved this with ExpressionEngine?

SEO Lite v1.1

I just pushed a new version of SEO Lite to github and it has some added goodies, among other things these parameters:


  • url_title; retrieve by url_title (often found as a url segment)
  • entry_id; retrieve by entry_id
  • use_last_segment = ‘yes’; pure magic! (it will use the last segment, this is useful if you have the same header all over the website and you sometimes need to use {segment_2} and sometimes {segment_3}
  • default_title – set the title tag directly (ie. do not get from content) – useful for static pages, main page, etc.
  • default_description – override the description – same as above
  • default_keywords – override the keywords – same as above
  • title_prefix – a string to prefix the title with (per request)
  • title_postfix – a string to postfix the title with (per request)
  • title_separator – this will be added after the title (and padded with space on both sides)

Some Usage Examples

Let’s use this template:

<meta name='keywords' content='{meta_keywords}' />
<meta name='description' content='{meta_description}' />
<!-- generated by seo_lite --!>

yeah I know the {title} and {site_name} are pretty close there, but we’ll fix that with the new title_separator parameter :-)


For the frontpage we just want the site name + the default keywords / description:


Will produce this title:

<title>My Site Name</title>
(... + default desc / keywords ...)

Our 404 Page

{exp:seo_lite default_title="404 - Not Found" title_separator="|"}


<title>404 - Not Found | My Site Name</title>
(... + default desc / keywords ...)

A FAQ Entry

{exp:seo_lite entry_id="{entry_id}" title_postfix="&nbsp;| FAQ" title_separator="|"}

will produce this title for a specific faq entry:

<title>A Question | FAQ | My Site Name</title>

note that the &nbsp; is needed because EE will trim parameters for spaces.

Using SEO Lite with the EllisLab Discussion Forum Module

Edit the forum_global/html_header.html file and replace the title-tag there with:

{exp:seo_lite default_title="{page_title} | {forum_name}" title_separator="|"}

It will output:

<title>The title of the current forum or thread here | Forum Title Here | My Site Name</title>

Of coure you need to run the forums through regular templates for the above to work, but that’s something I’d always recommend doing, unless you enjoy pain.

Implementing SEO Lite in the wiki

Edit wiki_themes//wiki_page.html and replace the title-tag there with:

{exp:seo_lite default_title="{title} | {wiki_name}" title_separator="|"}

It will output:

<title>The title of the current wiki page | Wiki Name Here | My Site Name</title>

Of course for the wiki / forum pages you’ll just get the benefit of keeping it consistent and getting the default keywords / description in there, since there isn’t a way of adding entry-specific keywords/description for these entries (yet)..

MSM Support

I got a couple of comments about MSN support, and although it’s untested I think I’ve implemented support for it. The way it works is that you need an entry in exp_seolite_config for each site, so when you switch to another site you need to visit the SEO Lite control panel and an entry will be added for that site. Then you can start using SEO Lite on that additional site as well.

This way you can have different templates for each site etc.


Let me know if you have suggestions to added functionality or something you’ve found quirky when implementing it on a site, etc.


Download the latest release here (zip)