Moving from ExpressionEngine to WordPress in 64 easy steps.

I’ve had a lot of requests for a post on how I moved my ExpressionEngine blogs over to WordPress so here it, finally, is. And, no, it doesn’t really take 64 steps.

The problem with moving from EE to WordPress is that while WP has an impressive selection of importing tools for various platforms built into it, ExpressionEngine isn’t one of the supported platforms. This means we have to do it ourselves and so that’s what I set out to do. You will find in the ExpressionEngine Wiki some information on how to export to the MovableType Format, but this has a couple of limitations that made it less than ideal. For example, I used the SolSpace Tags module in ExpressionEngine and wanted to move all the tags over to WordPress, but the MT format has no facility to do that. A much betterĀ  solution would be to export to WordPress’s native WXR format which does support tags, but finding info on how the WXR format is defined (it’s an extension of XML) was more difficult than I thought it would be. It doesn’t appear anyone has sat down and specifically posted what WordPress looks for and accepts in an WXR file.

Eventually I set up a test blog in WP, put in some content that hit all the features I wanted to support, and then did an WXR export to see how the file was set up. I’m far from an expert on the WXR format, but I managed to figure out enough of it to get things to work. My method is similar to the aforementioned MT export templates except that it outputs WXR formatted data instead. You can download the templates by clicking here.

To use them you’ll want to create a new template group called “export” in ExpressionEngine. Then create two RSS templates in that group to hold the templates themselves. I called the first one “export” and the second one “comments.” It doesn’t really matter what you call the first one, but the second one must be named comments so it’ll be embedded properly. If you change the name then be sure to change it in the first template file. Both templates should be set in EE as RSS pages and you should set Allow PHP to “Yes” and “On Input” on the comments template. In the first template on the very first line is the global variable {assign_variable:master_weblog_name=”yourblogshortname”} which you should change to the short name for your blog in EE.

Once you’ve done all of that you’re almost ready to start exporting data. I use the word almost because there’s one thing that I can’t account for ahead of time and that’s the amount of data you are exporting and what RAM limits your server has. There’s also the fact that these templates do not save out to a file. Instead you have to right click on the “view” link in EE’s template listing and select “open in a new tab/window” then click on that new tab and select “show page source” which will open another new window, and then save that new window’s output to an XML file.

Doesn’t matter what you call the files (I named mine SEB1.xml, SEB2.xml, etc.), but if you try to output all of your data at once and you have a crap load of it then your browser will probably crash before you can save the file. On top of all of that, WordPress has a import size limit of 10MBs per file. In the case of SEB, at the time I made the move, I transferred some 6,500+ entries and 75,000+ comments and there was no way in hell it was all going to come out as one great big file so I ended up having to do multiple exports.

Here’s how you do that: In the first template file there’s a line that reads as follows:

{exp:weblog:entries weblog="{master_weblog_name}" dynamic_start="on" limit="9999" offset="0" sort="asc" rdf="off"}

The two key parameters are the limit and offset. The limit sets the total number of entries that’ll be included an in export and the offset tells it at what entry to start at. If you have a very small blog (couple of hundred entries with less than a dozen comments each) then you might be able to get away with a single export using those settings, but if not then here’s where you will have to experiment to find out what you can get away with and it will depend on how many entries you have as well as how many comments on those entries. There is a similar line in the comments template which limits how many comments to include that is set to 1,000 comments. None of the entries on SEB ever hit 1,000 comments so that worked just fine for me, but if you have entries with more than 1,000 comments you may need to edit that template as well. Due to memory limitations on my server I found that I could only export between 100 and 300 entries at a time before EE would abort with an out of memory error. This meant that I ended up exporting some 32 files total to get everything moved over. If I got an out of memory error then I’d go in and change the limit to a smaller number (usually decrementing by 50 each time) until I got a successful export. Once it was successful I’d go back in and change the limit back to 300 and increase the offset by however much the last export put out. Do that as many times as you need to to export all your data.

If that sounds like a pain in the ass, well, it is, but there’s still more that can go wrong. Because you’re generating an XML file your browser can be pretty fucking picky about any weird or garbled characters that might happen to be in your code. SEB was originally on MovableType and in the move from that to ExpressionEngine there were a few entries that ended up with some non-standard characters in them. Whenever an export hit one of those garbled characters it would cause an XML error and I’d have to try and figure out which entry was causing the problem, edit it in EE to fix the garbled characters, and then retry that particular export. I’d say there was about a dozen entries or so that caused me fits, but if you’ve been running on EE all along then this probably won’t be a problem for you.

Now for some good news: WordPress is impressively good at importing those WXR files. If you screw up and forget to change the offset number and end up with a duplicate file (or just one that has a handful of duplicates) WordPress will NOT create duplicate entries in your database. It’ll report those as duplicate entries and reject them. WordPress will also ask you how to handle entries written by people other than the account you are logged in as when doing the importing. You can either reassign those entries to an existing WP user or you can have WP create accounts for those users when doing the import. WordPress is also just fine with importing one file after another to build up your database back to normal.

Some other things to keep in mind with these templates: They make the assumption you’re using the default field names of {body} and {extended} for your blog entries. I also didn’t include {summary} as I never used it myself so you’ll need to add that in if you want it. The code I used for exporting Tags is not included because not everyone uses that module, but I can supply it if you want it. One other thing I should have done and didn’t think of until after I was finished was adding in code to check if the {extended} field existed and if it did to put in the WP code for a Read More link. So for SEB, all the entries where I had a body and extended section became one big posting under WP. If you’re at all comfortable with making EE templates then you should be able to look at these, see how I did things, and tweak them according to your needs.

That’s pretty much the process in a nutshell. Hopefully this isn’t too confusing. If nothing else it should give you a starting point if you want to make the transition yourself. Perhaps someone else will come up with an even better way to do it. Feel free to ask me any questions you have in the comments.

Defensio Combo anti-spam module now available for ExpressionEngine.

The guys at Hop Studios have just released version 1.0 of their Defensio Combo module for EE. We’ve been testing it for awhile here at SEB and I’m happy to say that I like it better than Akismet. It makes use of the Defensio Anti-Spam service which not only learns from spam and flags it for moderation when it suspects a comment fits the bill, but also keeps track of how well it’s doing on your site and provides you with RSS feeds for tracking moderated comments.

It works more or less similarly to Akismet, but it gives a bit more control over how things are handled and a bit more feedback on how it’s doing. The guys at Hop Studios have been very enthusiastic about the development of this module and are looking to add even more features in the future (I’ve recommended an option that ignores comments from registered members). The module is free for use by anyone running EE 1.6.x so if you’re curious to see what it’s like then go download it and give it a whirl.

Testing out Bad Behavior 2 extension for EE.

Paul Burdick, super amazing programmer and CTO of pMachine makers of ExpressionEngine, has just released an extension for EE that allows us to make use of the much ballyhooed Bad Behavior 2 anti-comment/trackback spam system that was originally developed for WordPress. So, being the popular target of spammers that we tend to be I figured I’d toss it in the system and see what happens.

This means two things: First, I’ve disabled the blacklist module to see how good this new system is. Second, I’ve turned trackbacks back on for SEB (but not the other blogs) as BB2 is supposed to be pretty good at filtering our trackback spam as well as comment/referrer spam.

So if you happen to notice anything funky happening such as you’re suddenly unable to post comments then drop me a note and let me know. If it’s as effective for EE as it appears to be for WordPress and MediaWiki then I’ll leave trackbacks on and be a happy camper. If you want to help test it on your EE site then be sure to go post a comment in the thread on the forums and give Paul any feedback you come up with. Here goes nothing.

pMachine announces the ExpressionEngine $15,000 Shoot Out.

Now this is pretty cool. The guys at pMachine who produce the script we use to run SEB and the other blogs I host are holding a contest to find out the cool ways people are using ExpressionEngine:

    Do you have an ExpressionEngine website that you think is pretty cool?  Enter your website in the ExpressionEngine $15,000 Shootout!

    Contest entries can be Commercial, Personal, and Core sites so anybody with an ExpressionEngine powered site can enter. Your website will be judged on innovation, excellence of design, usability, and content.  Did we mention that the winners will divvy up $15,000 in cash and prizes?

    If you don’t have an ExpressionEngine site you can get one for free! Just register at and then go to your Download Area to get a copy of ExpressionEngine Core (it’s free). Or maybe this is the incentive you need to get that project you’ve been thinking about finished up.

    We will be accepting contest entries until midnight (Pacific time) February 28. That means you have a whole month to get your site cleaned up and entered or start a brand new site.

    On March 1st we’ll reveal all the entries. Our panel of world-class judges will score the entries and the winners will be announced on March 15.  So what are you waiting for, enter now!

Check the Official pMachine Shootout site for prize details. If you’ve been meaning to give EE a try this in combo with the free Core version now available should be a pretty good motivation to do so.

ExpressionEngine 1.4 released along with a new free version.

The folks at have just released the latest version of ExpressionEngine and announced that they are now providing a free version of EE called ExpressionEngine Core for folks that want to take advantage of EE as a platform for their personal sites, but don’t need the full power provided by the personal license:

Back before ExpressionEngine, we developed a publishing app called pMachine, which was available in two flavors: Free and Pro. The feature-limited Free version helped us increase our user-base and create brand awareness, while the Pro version, with all the bells and whistles, allowed us to generate revenue.  As a business approach it worked pretty well.

When we released ExpressionEngine back in February of 2004, the idea of offering a free version appealed to me very much.  However, there was a problem:  EE didn’t have a lot of capability yet.  The first release only came with the bare essential core features.  It didn’t have a search module yet, or any of the APIs, or any of the ten additional modules, eighty plugins, and hundreds of features we’ve added since then.  There wasn’t enough meat on the bones initially to allow us to offer clearly demarcated free and paid versions, so we stuck to paid-only licenses.

As we approach the two year anniversary of the release of EE, it now has 19 available add-on modules and vastly more features and capability than it did when we started.  It has enough features, in fact, that we can now offer a very capable core system for free, while offering greatly enhanced capability for those who want more features. So that’s what we’ve decided to do.

ExpressionEngine will now come in three versions:

  • EE Core License:  Free for personal use.  Limited features (10 modules).  Non-membership sites only.  No tech support.
  • EE Personal License:  All features and tech support (18 modules).  Personal use only.
  • EE Commercial License:  All features and tech support (18 modules).  Commercial use only.

In addition, we have reduced the price of our personal license to $99.95 (it was previously $149.95).  Anyone who purchased EE at the higher price on or after November 15th, 2005 is eligible for one of the following compensations:

  • Option 1:  A free discussion forum module
  • Option 2: Three years of additional access to our download area (normally it costs $19.95 per year)

If you purchased a personal license after November 15th, please email indicating which of the two options you are interested in. Please include the username you use at

The free version of EE stacks up pretty well against many of the other packages that are out there in terms of features and power and if you’re running a relatively small site it’ll probably be more than adequate for the job and as your site grows you can purchase a license and take advantage of the additional modules. If nothing else it’s a good way to check it out and see if it’s what you want to use before having to plunk your hard earned cash down for the full version.

I’ve upgraded the installation of EE here to the new 1.4 release so please drop me a note if you notice anything funky going on. I don’t expect there’ll be too much of that as this was one of the more stable releases ever. I’ve included the full change log in the extended entry for those folks who are interested in what new goodies have been added to the package.

  * Added Advanced Conditionals, which allow the use of logical operators to compare multiple variables in the same conditions and the use of elseif and else in conditional structures.
  * Added Extensions Manager. Extensions are custom scripts that interact with the core EE code base to increase functionality or alter it without hacking.
  * Added Relational Capability to custom fields. Each custom field can now be populated with data from another custom field, or a complete weblog entry, or a gallery entry. These work on a per-entry basis, enabling complex relationships between data in two or more weblogs.
  * Added Entry Versioning feature, which will save previous revisions of your weblog entries.
  * Added multi-entry editor, permitting multiple entries to be edited at one time. Look at the bottom of the EDIT page in the CP for this feature.
  * Added IP Search page in the control panel. This utility will find all instances of an IP used in entries, comments, forum posts, and gallery posts.
  * Added search term log. This feature keeps a record of the search terms that your visitors submit in the search forms.
  * Added entry “views” tracking that lets you show the number of “views” a particular post has received. You can have up to four hit trackers per entry, so that different pages can be tracked. See user guide for setup instructions.
  * Added ability for search results to display custom fields, member data, categories and more meta data for the entry. Nearly everything you can output via the Weblog Entries tag.
  * Added pagination and date parsing abilities to the Query module (new parameter limit=”” to specify how many to show on a page)
  * Added Dynamic Parameters feature, enabling the parameters in your weblog and comment tags to be set dynamically from POST data submitted via a form.
  * Added Mailing List Templates. These permit each mailing list to contain default customization.
  * Added Mailing List Admin Notification feature, and global enabling/disabling of lists.
  * Added Enhanced Throttling feature. There is now a throttling configuration page in the Admin area which permits you to set various parameters.
  * Added a Description Field to custom member profiles which can be used to add instructions or additional info.
  * Added Category Editing directly from the PUBLISH page.
  * Added Spellcheck to Communicate section
  * Added magic checkbox code for the Edit screen where you can click anywhere on the entry row to select a checkbox and shift select multiple rows
  * Added Date field types to custom fields.
  * Added “today” links in the PUBLISH page calendars.
  * Added web-master name preference so that auto-generated emails can include a name.
  * Added a preference in the Member Preferences page that enables an admin to turn off the localization preferences page in the member profile areas. By turning off individual localization an admin can force dates/times to appear in the master admin choice, or in the local of one specific user.
  * Added a preference in the master Localization Preferences page that permits each post to determine the daylight saving time.
  * Added wild-cards to Censored Word feature, as well as a preference that enables words that are censored to be replaced with a custom line of text.
  * Added a new way of selecting Template Groups in the Template section. Can now select multiple Template Groups and scroll faster.
  * Added a new interface to the Admin section.
  * Added custom fields to gallery. You can have up to six custom fields.
  * Added the ability to show a Single Gallery Entry per page, for those who wish to create a photo blog.
  * Added Category List Tag to the Photo Gallery Module, enabling among other things, “jump” navigation to be created.
  * Added ability to change the status of multiple comments at the same time.
  * Added two new Template types, Static (pure content, nothing rendered) and JavaScript (outputs content as javascript file type).
  * Added character encoding preference in the Email configuration page (Admin area).
  * Added None option for Publish Tab Behavior in Control Panel Settings
  * Added ability to search custom member fields via the member search on the CP home-page
  * Added ability to show photo in addition to avatar in weblog entries, gallery entries, comments, and forum threads
  * Added 2 new cookies used with non-logged-in users which enable us to track “read forum topics” with guests.
  * Added a status check when submitting entries, which permits the stand-alone form to not contain the status menu. Instead, the default status is used.
  * Added name=”” parameter to Simple and Advanced Search form tags
  * Added “entry_id” parameter to the {exp:weblog:next_entry} and {exp:weblog:prev_entry} tags
  * “Views” counter in Gallery Module can now be edited.
  * Added entry_id to the orderby clauses in the gallery tag.
  * Added sort=”” parameter to month_links tag so you can reverse the display of months
  * Added show_future_entries and show_expired parameters to the RSS Module.
  * Added ability to exclude member group from site member list.
  * Added ability to set site member list defaults for sort by, order, and number of rows
  * Added ability to set localization settings via the Registration form
  * Added {gmt_comment_date} to Comment module’s entries tag
  * Added a new function to abstract the Edit screen search and display of entries so it can be used in Modules with great ease.
  * Increased length of Trackback URL field in Edit Trackback Form
  * Added Trackback search to Edit section. IP Address in Trackback viewing page are now search links too.
  * Added displaying of error messages for failed Trackbacks and Pings after submit of new entry
  * Added {id_path=””} variable to next_entry and prev_entry tags.
  * Added ability to have a few common attributes in the <a> tag when having Weblog set to use Safe HTML.
  * Added and modified code and queries to speed up comment submissions on large sites
  * Added more character support in the Moblog module for foreign and crazy mobile devices.
  * Added more MIME header decoding abilities for servers that do not have the convenience of certain PHP functions
  * Added TRUNCATE to valid query types list
  * Added backticks on database tables and field names in the insert and update string functions for developers using dashes and other characters
  * Added some code that deletes forum posts when members are deleted (assuming the forum is installed).
  * Added template’s name to page title when editing template
  * Added utf-8 variable for the Member and Forum templates
  * Added url_title=”” parameter to Weblog module. Make sure to specify a weblog with this parameter
  * Added search box to Template section of Control Panel
  * Added foreign character replacement code to URL Title javascript in Stand Alone Entry Form
  * Added Admin Notifications to the MetaWeblog and Blogger API modules
  * Added new global variable webmaster_email for display site’s webmaster email address
  * Added new default design, removed RSS 1.0 template, renamed Atom template

Bug Fixes for Version 1.4

  * Fixed a caching error that can happen when two groups being embedded have identical template names.
  * Fixed a moblog problem with Sprint phones.
  * Fixed a bug when Previewing a comment for a gallery entry that had no comments initially.
  * Fixed a bug with the stopwords and exact searches in the search module.
  * Fixed a problem in a query when new user registrations happen and the site allows instant activation.
  * Fixed a bug that prevented URL session IDs from working in the forum and member profile area when running a site as session only.
  * Fixed a bug with Opera and the tag/glossary insert javascript code
  * Fixed a bug with comment preview in the gallery
  * Fixed a stats bug that was preventing the “most recent visitor” date from updating.
  * Fixed a bug with topic preview in the forum when {exp:forum} is used in a template.
  * Fixed the parser of the conditional parser so that inner conditionals are not parsed before outer conditionals
  * Fixed Typography bugs dealing with XHTML Typography and <code>, <span>, and <p> tags.
  * Fixed a bug where location was not a valid registration field
  * Fixed a bug where failing Trackbacks were still stored in the database as sent
  * Fixed a pM Pro import bug that was incorrectly setting the forum post total
  * Fixed a bug where an invalid weblog specified for the comment form was causing a MySQL error
  * Fixed a typography bug that was incorrectly converting dashes to em-dashes if the very first item in an entry was a dash.
  * Fixed a bug where Safe HTML [url] tags were case sensitive
  * Fixed the problem where CSS or JavaScript template requests were being recorded in the tracker cookie.
  * Fixed a problem in which the {exp:weblog:category_archive} tag was not honoring the “show_empty” parameter if more than one weblog shared a common category group.

Some cool new features coming in ExpressionEngine 1.4.

Saw this blurb on the pMachine forums from Rick talking about some of the cool new goodies we can expect in the 1.4 release of ExpressionEngine:

Here are a few items we’ve already finished.  There’s more on the way, but I think we’ll keep some things secret.

* Added the ability to have Extensions.  One can now write extensions to the core EE code base to increase functionality without hacking
* Added relational capability to the PUBLISH page of the control panel. You can now pre-populate drop-down menus with content from fields in other weblogs.
* Added “Entry Versioning” feature, which will save previous revisions of your weblog entries.
* Added multi-entry editor, permitting multiple entries to be edited at one time.
* Added IP Search utility in the CP.  This utility will find all instances of an IP used in entries, comments, forum posts, and gallery posts.
* Added “search term log”.  This feature keeps a record of the search terms that your visitors submit in the search forms.
* Added an entry “hit tracker” that lets you show the number of “views” a particular post has received.
* Added ability for search results to display custom fields
* Added “dynamic parameters” feature, enabling the parameters in your weblog and comment tags to be set dynamically from POST data submitted via a form.
* Added mailing list templates. These permit each mailing list to contain default customization.
* Added enhanced “throttling” feature. There is now a throttling configuration page in the Admin area which permits you to set various parameters.
* Added category editing directly from the PUBLISH page.

I’m very excited about the new Extensions functionality as it plugs what I considered to be a hole in comparison to MovableType. With the 3.0 release of MT the folks at Six Apart unleashed a very impressive plugin system that allowed for some major flexibility for developers of add-ons. ExpressionEngine currently has both a plugins and a module system that together come to what I would estimate as around 80% as powerful in terms of how you can modify the way EE does things, but there was still a lot you could do with MT that wasn’t really possible with EE without hacking the code directly. The new Extensions option looks to make up the difference and then some and I can’t wait to see what people do with it.

Several of these other new features go a long way to setting ExpressionEngine apart from the rest of the offerings out there while further blurring the line between a CMS package and a blogging package. Can’t wait to see what other goodies are yet to be revealed. They’re hoping to have this version released by the end of the year at the latest so it shouldn’t be too much longer before we can get our hands on it.

Paul Burdick, CTO of ExpressionEngine, goes video.

This was an interesting idea. Paul Burdick, one of the folks who puts together ExpressionEngine, sat down and did up a small 3 minute video entry on his blog where he talks about what’s coming up in the development process. Among other things will be a new template for the forum module to show what’s possible with it and a few comments on the promised commerce module that a lot of folks have been waiting for. No ETAs on when these things would be available, but it should please a lot of folks to know they’re being worked on. Plus, Paul’s a bit of a hottie so that makes watching the video that much more interesting.

How to use w.bloggar with ExpressionEngine 1.3.x.

I promised John Hoke that I would explain how I got w.bloggar working with ExpressionEngine so here’s that promised entry. The truth is that with the release of version 1.3 which includes the new Metaweblog API it’s a pretty easy thing to do.

  1. Install the Metaweblog API module into ExpressionEngine if you haven’t already done so. If you’ve upgraded to version 1.3 or later then the module should already be on your server, but you’ll need to go into the Modules manager and tell it to install.
  2. Once you’ve done that you should be presented with a new screen that already has a “default” configuration in place. You’ll see a link titled Default and a URL that follows it. That URL is what you’ll need to make w.bloggar work. The URL will consist of your base blog’s domain and index file followed by a question mark and a couple of codes. Highlight the URL starting at the index file (index.php unless you’ve changed it) and everything to the right of it and copy it to the clipboard.
  3. Install w.bloggar if you haven’t already done so and then launch the program.
  4. You’ll be asked if you have a blog already. Presumably the answer is yes so select the Yes option and click next.
  5. Here’s where the magic happens. Click the Blog Tool drop down and select the MovableType tool.
  6. Put in whatever you want for the Account Alias. If you want w.bloggar to ping for you then check that box and select the service you want it to ping.
  7. If you need to use a proxy server then check that box and the next screen will allow you to define it.
  8. Assuming you don’t need to define a proxy server, the next step will ask you for the host URL and path. Type in the URL for your base blog in the host URL box without the http:// part.
  9. In the path box right click and select paste to put in your index file with the extra code that you highlighted back in step 2. It’ll look something like index.php?ACT=##&id=#. Click next.
  10. You should now be prompted for a username and password. Use the same ones you’d use to login to your EE installation.

That should do it unless you’ve modified the default field groups used in your blog. If you have then you can change the default configuration in the Metaweblog API control panel to tell it which fields to associate with the standard MovableType Excerpt, Content, More, and Keywords fields. You can even define more than one Metaweblog API configuration if you have the need.

ExpressionEngine 1.3.1 is now available.

This point release was set loose on 29th and I forgot to mention it then so I’m doing it now. Also released is version 1.1 of the forum module for those of you who picked that option up. This release is mainly a bug fix, but there are some cool new features as well such as the previously mentioned ability to link a blog entry with a forum post that I tested a little while back. You can check the changelog for a full list of changes or see it in the extended part of this post.

Version: 1.3.1 Final Release
Build: 20050728
Release Date: July 29, 2005

* Added a unsubscribe option to the mailing list batch subscribe form.
* Added pagination to the member groups page of the control panel.
* Redesigned the URI parsing function for better performance when a large number of template groups exist.
* Added a preference so that the throttling feature can be disabled.
* Added a variable called {upload_url} and {smiley_url} which allows the stand-alone entry form to have a link to the upload and smiley utilities. See user guide for info.
* Added two new parameters to the {exp:weblog:categories} tag (see user guide).
* Added two new parameters to the {exp:weblog:category_archive} tag (see user guide)
* Added an alternative way to fetch CSS files. You can now code URLs that look like standard EE URLs as long as they include the “css” segment:
* Added a new member profile preference: Accept Private Messages. This allows each user to choose whether to accept private messages from other users.
* Fixed a security problem in the xml-rpc libraries.
* Fixed an issue with references that was causing EE not to work with PHP 4.4.0
* Fixed a CAPTCHA problem in the contact/tell-a-friend forms.
* Fixed an encryption bug that creates problems logging in when md5 is the stored preference.
* Fixed a problem when creating a new template using a user-stored template file.
* Fixed a problem with the height/width variables in member photos.
* Fixed a problem that prevented an admin from editing a users avatar.
* Fixed a redirect ID when deleting trackbacks
* Fixed a javascript error in the pmachine import utility
* Fixed a URL problem with the xml-rpc files
* Fixed an error that happens if you select the RSS templates when creating a new weblog.
* Fixed a path problem that prevents the control panel CSS from working on some servers.
* Fixed an undefined variable error in the communicate page.
* Fixed an error that happens when logging in if you have a particular preference set.
* Fixed the {custom_profile_data} tag, which was not working initially in 1.3.
* Fixed a blacklist problem when character entities do not end with a semicolon
* Fixed a word censoring bug
* Fixed a bug in the pMachine import utility that occurs when the two DBs have different users.
* Fixed a bug that affected the conditional in the comment script.
* Fixed an error that can occur if servers being pinged fail to accept the response.
* Fixed a blacklist bug that allowed people to ban themselves in some cases.
* Fixed a bug that cause an error when clicking a smiley during previews.
* Fixed a metaweblog API problem if when editing an entry, if there were no categories.
* Fixed a metaweblog API problem in which MarsEdit was only allowing the 10 most recent entries.
* Fixed an error message that can occur if you put your comment preview tag on the comment page itself.
* Fixed a language problem in the pagination script that forced English to be used.
* Fixed some typos in the language files.

ExpressionEngine 1.3 is about to enter beta.

And it looks like it’s going to bring a lot of goodies with it. Rick and the crew just migrated the pMachine website over to ExpressionEngine 1.3 Beta in preparation. It was still running under their pMachine software previously because that had a forum functionality that EE didn’t… until now. The new forum module for ExpressionEngine is impressive and is one of the things I’m most excited about. We have forums here on SEB already running under a different package, but integrating it into the main site hasn’t ever worked quite right and it used a separate membership database than EE does. As a result it’s a bit on the neglected side, but with the new forum module for EE I hope to change all of that.

In addition to that there’s going to be a bunch of new features in EE itself. A full list of changes hasn’t been made available yet, but digging around on the new homepage in the Feature Grid reveals a few tidbits of what’s coming. Things such as a Spell Checker, Member Avatars, Member Photos, and Member Signatures, support for both the MetaWeblog and MovableType APIs, and a new Updated Sites module. It’s been awhile since the last major update for ExpressionEngine was released so it should be fun seeing what the new version can do. The new forum module alone should make for some interesting possibilities. So stay tuned as I suspect the beta will probably be opened up to the public in about a week or so.