<?php
/*
Plugin Name: Importer Plugin
Version: 0.1
Plugin URI: http://wordpress.nazgul.nu/
Description: Example of an importer plugin.
Author: Nazgul
Author URI: http://nazgul.nu/
*/

/*  Copyright 2007 Nazgul

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA 
*/

// The importer
class Test_Import {
    var 
$importer_code 'importerplugin';
    var 
$importer_name 'Importer Plugin';
    var 
$importer_desc 'Import stuff';
    
    
// Function that will handle the wizard-like behaviour
    
function dispatch() {
        if (empty (
$_GET['step']))
            
$step 0;
        else
            
$step = (int) $_GET['step'];

        switch (
$step) {
            case 
:
                
wp_import_upload_form('admin.php?import='.$this->importer_code.'&amp;step=1');
                break;
            case 
:
                
check_admin_referer('import-upload');
                
$this->import();
                break;
        }
    }

    
// Function that does the actual importing
    
function import() {
        
$file wp_import_handle_upload();
        if ( isset(
$file['error']) ) {
            echo 
'<p>Sorry, there has been an error.</p>';
            echo 
'<p><strong>' $file['error'] . '</strong></p>';
            return;
        }
        
$this->file $file['file'];
        
$this->id = (int) $file['id'];

        
// TODO: Write import code
    
}

    
// Default constructor
    
function Test_Import() {
        
// Nothing.
    
}
}

// Instantiate and register the importer
include_once(ABSPATH 'wp-admin/includes/import.php');
if(
function_exists('register_importer')) {
    
$test_import = new Test_Import();
    
register_importer($test_import->importer_code$test_import->importer_name$test_import->importer_desc, array ($test_import'dispatch'));
}

add_action('activate_'.plugin_basename(__FILE__), 'importerplugin_activate');

function 
importerplugin_activate() {
    global 
$wp_db_version;
    
    
// Deactivate on pre 2.3 blogs
    
if($wp_db_version<6075) {
        
$current get_settings('active_plugins');
    
array_splice($currentarray_searchplugin_basename(__FILE__), $current), );
    
update_option('active_plugins'$current);
    
do_action('deactivate_'.plugin_basename(__FILE__));        
    }
}

?>