Migrating/exporting from ee

I promised the friendly folks over at textpattern that I would write something about exporting entries from expression engine.
This link in the ee wiki MOSTLY covers it. I say mostly, because you’ll need to make some modifications which are not listed but that I am including. Additionally, you will need to be careful to do all of the steps in order, so I’m just going to go step by step. Also, if you have used subcategories, I haven’t found a way to capture that hierarchical structure. So, depending on what kind of software you are importing these into, you may need to tweak your categories. In textpattern for example, all of the categories go to multiple unfiled categories. It’s easy enough to then just update them in textpattern. This will export everything in Movable Type (MT) format.
Figure out your blog’s name before you start. In expression engine>CP Home › Admin › Weblog Administration › Weblog Management
Edit Preferences>Short Name
The short name is the actual name of your blog. Make a note of it, as you will need it later.
STEP 1: Create an export template group
Login to the control panel.
Click on templates.
Click on “Create new template group” button.
NOTE: You must start with a new template group.
Name your template group:
Template Group Name

The name must be a single word with no spaces

(underscores and dashes are allowed)
Type in Export
Duplicate an Existing Template Group?
Choose> Do Not Duplicate a Group
Make the index template in this group your site’s home page?
Whatever you do, DO NOT CHECK THIS box. This will override your template design for your blog.
Click Submit.
Okay, step 1 is finished. We’ve created a template group, but we now need to create the templates. NOTE: Do not skip any steps.
STEP 2: Create the export template for comments
At this point, you should be back at your list of templates. In the left column, under the header, Template Management, you should see a list that includes all of your template groups.
Under Choose Group>Click on Export
In the column to the right of Choose Group, you should see a list. Click on New Template.
Now we will create templates for the comments and the entries. NOTE: Do not skip any steps.

Template Name

The name must be a single word with no spaces

(underscores and dashes are allowed)
Type in Comments
Choose Template type> Webpage

Default Template Data

None – create an empty template

Click Submit.
We are back at the list.
Click on Preferences (in the column to the right of Choose Group, under the Export header)
The ONLY things to change here are
Allow PHP? Y
PHP Parsing? Input
Note: This must be set for this to work!
Click Update.
We are now back to the list of templates.
Okay, now we have to add the code to make this work.
Under Template Name / Edit
To the left of Comments>Click on>View
Copy & paste the code below into the blank area. Note change “yourblog” to the shortname of your blog. Your blog’s name is not what appears in the title bar of the html page. It is what you have listed in Admin › Weblog Administration › Weblog Management > Edit Preferences>Short Name
The short name is the name of your blog.

updated: 8/08:  I think I’ve fixed the wonky wordpress display with the code.

<?php

global $IN;
$IN->QSTR = ‘{embed:the_entry_id}’

?>

{exp:comment:entries weblog=”weblog1″ sort=”asc”}COMMENT:
AUTHOR: {name}
URL: {url}
DATE: {comment_date format=”%m/%d/%Y %h:%i:%s %A”}
{comment}
—–
{/exp:comment:entries}
Click Update and Finished.
STEP 3: Create the export template for index
At this point, you should be back at your list of templates. In the left column, under the header, Template Management, you should see a list that includes all of your template groups.
Under Choose Group>Click on Export
In the column to the right of Choose Group, you should see a list. Click on New Template.
Now we will create templates for the comments and the entries. NOTE: Do not skip any steps.

Template Name

The name must be a single word with no spaces

(underscores and dashes are allowed)
Type in Index
Choose Template type> Webpage

Default Template Data

None – create an empty template

Click Submit.
We are now back to the list of templates.
Okay, now we have to add the code to make this work.
Under Template Name / Edit
To the left of Index>Click on>View
Copy & paste the code below into the blank area. Note change “yourblog” to the shortname of your blog. Your blog’s name is not what appears in the title bar of the html page. It is what you have listed in Admin › Weblog Administration › Weblog Management > Edit Preferences>Short Name
The short name is the name of your blog.
Also note: If you have used the summary instead of the body then you will need to capture that info, too. I am including the summary because at some point, my blog posts switched to being in the summary. I probably did this out of laziness. 😉
Note: This only includes the first 999 blog posts. If you have more blogposts, try changing the number in limit to encompass all posts. If your export file truncates (doesn’t include all posts) then you may need to do this in two batches.
{exp:weblog:entries weblog=”yourblog” limit=”999″ rdf=”off”}
AUTHOR: {author}
TITLE: {title}
STATUS: Publish
ALLOW COMMENTS: 2
CONVERT BREAKS: br
{categories}CATEGORY: {category_name}
{/categories}
DATE: {entry_date format=’%m/%d/%Y %h:%i:%s %A’}
—–
BODY:
{body}
—–
EXTENDED BODY:
{extended}
—–
SUMMARY:
{summary}
—–
{embed=”export2/comments” the_entry_id=”{entry_id}”}
——–
{/exp:weblog:entries}
Click Update and Finished.
STEP 4: Test the export!
We are now back to the list of templates. Check to make sure that you are right area.
Under Choose Group> Export
Next to index there are 2 Views listed. To the left is view template (it is under the header: Template Name / Edit. This is not the View you want. Under the header, View, which is to the right of the Template name Index, is a second View. Click on this view
If everything worked well (give it a second or two) , you should see a large kind of garbled looking file with your posts- this means the export is working. We will format it and save it in a minute. If you are having problems at this point, delete your templates and start over.
IF you are still having problems, drop me a line and I’ll see if I can help you.
Now, to format and save it.
Go to View/ View source in Internet Explorer or Firefox (control + u). Save as index.txt
PROBLEMSOLVING:
Templates not working at all: Check your blog name. In expression engine>CP Home › Admin › Weblog Administration › Weblog Management
Edit Preferences>Short Name
The short name is the name of your blog.
Missing info:
Take a look at your formatted export file. If you are missing your posts or comments, now is the time to fix it. You will need to work on the export code to correct these.
Carriage returns/page breaks
If the code doesn’t work, delete the extra spaces and then just do carriage returns.
Diacritics and special characters like & ‘ etc.
You may or may not need to correct these before you migrate into your new system. I opened the text file and corrected them all before I imported my entries into textpattern.
best of luck. Remember this export file is in MT (Movable Type) format. When you import it into a new software, if there is no import for MT then you may need to do some additional work.

Advertisements

4 Responses to Migrating/exporting from ee

  1. Brian says:

    I am trying to migrate from EE 1.3.2. Will this hack work on EE 1.3.2 or does it only work on EE 1.4.2 or later?

  2. robinna says:

    Hi, I just checked my ee version and it’s 1.5.2. If I remember correctly, the template structure has not changed significantly from 1.3.2 (that was a while ago though…) Give it a try and if you get an export file, it worked. If you didn’t get an export file, well, it didn’t work.
    😉
    I think the functionality has been there but I don’t think it’s been promoted.

  3. Combatdoc says:

    Something seems to be missing in the comment template around the line:

    Edit Preferences>Short Name
    The short name is the name of your blog.
    QSTR = ‘{embed:the_entry_id}’
    ?>
    

    as you have a string defined and not used and a close php without an open.

    Thanks.

  4. robinna says:

    Okay, wordpress is not likely the code:
    (actually this is an import from my post at blogger, where I mirror contentdivergent.)

    Edit Preferences>Short Name
    The short name is the name of your blog.

    Is not part of the code — it’s only to let people know how to find out what value to include in, but you are right part of it didn’t c+p correctly.

    So, it should read:

    
    QSTR = '{embed:the_entry_id}'
    
    ?>
    
    {exp:comment:entries weblog="weblog1" sort="asc"}COMMENT:
    AUTHOR: {name}
    URL: {url}
    DATE: {comment_date format="%m/%d/%Y %h:%i:%s %A"}
    {comment}
    -----
    {/exp:comment:entries} 
    

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: