'; echo '

'.__('Import Jerome’s Keywords').'

'; echo '

'.__('Steps may take a few minutes depending on the size of your database. Please be patient.').'

'; } function footer() { echo ''; } function greet() { echo '
'; echo '

'.__('Howdy! This imports tags from an existing Jerome’s Keywords installation into this blog using the new WordPress native tagging structure.').'

'; echo '

'.__('This is suitable for Jerome’s Keywords version 1.x and 2.0a.').'

'; echo '

'.__('All existing Jerome’s Keywords will be removed after import.').'

'; echo '

'.__('Don’t be stupid - backup your database before proceeding!').'

'; echo '
'; wp_nonce_field('import-jkw'); echo '

'; echo '
'; echo '
'; wp_nonce_field('import-jkw'); echo '

'; echo '
'; echo '
'; } function dispatch () { if ( empty( $_GET['step'] ) ) { $step = 0; } else { $step = (int) $_GET['step']; } // load the header $this->header(); switch ( $step ) { case 0 : $this->greet(); break; case 1 : check_admin_referer('import-jkw'); $this->check_V1_post_keyword( true ); break; case 2 : check_admin_referer('import-jkw'); $this->check_V1_post_keyword( false ); break; case 3 : check_admin_referer('import-jkw'); $this->check_V2_post_keyword( true ); break; case 4 : check_admin_referer('import-jkw'); $this->check_V2_post_keyword( false ); break; case 5: check_admin_referer('import-jkw'); $this->cleanup_V2_import(); break; case 6: $this->done(); break; } // load the footer $this->footer(); } function check_V1_post_keyword ( $precheck = true ) { global $wpdb; echo '
'; echo '

'.__('Reading Jerome’s Keywords Tags…').'

'; // import Jerome's Keywords tags $qry = "SELECT post_id, meta_id, meta_key, meta_value FROM $wpdb->postmeta WHERE $wpdb->postmeta.meta_key = 'keywords'"; $metakeys = $wpdb->get_results($qry); if ( !is_array($metakeys)) { echo '

' . __('No Tags Found!') . '

'; return false; } else { $count = count($metakeys); echo '

' . sprintf( __('Done! %s posts with tags were read.'), $count ) . '

'; echo ''; } echo '
'; wp_nonce_field('import-jkw'); echo '

'; echo '
'; echo '
'; } function check_V2_post_keyword ( $precheck = true ) { global $wpdb; echo '
'; echo '

'.__('Reading Jerome’s Keywords Tags…').'

'; // import Jerome's Keywords tags $tablename = $wpdb->prefix . substr(get_option('jkeywords_keywords_table'), 1, -1); $qry = "SELECT post_id, tag_name FROM $tablename"; $metakeys = $wpdb->get_results($qry); if ( !is_array($metakeys)) { echo '

' . __('No Tags Found!') . '

'; return false; } else { $count = count($metakeys); echo '

' . sprintf( __('Done! %s tags were read.'), $count ) . '

'; echo ''; } echo '
'; wp_nonce_field('import-jkw'); echo '

'; echo '
'; echo '
'; } function cleanup_V2_import ( ) { global $wpdb; /* options from V2.0a (jeromes-keywords.php) */ $options = array( 'version' => '2.0', // keywords options version 'keywords_table' => 'jkeywords', // table where keywords/tags are stored 'query_varname' => 'tag', // HTTP var name used for tag searches 'template' => 'keywords.php', // template file to use for displaying tag queries 'meta_always_include' => '', // meta keywords to always include 'meta_includecats' => 'default', // default' => include cats in meta keywords only for home page // all' => includes cats on every page, none' => never included 'meta_autoheader' => '1', // automatically output meta keywords in header 'search_strict' => '1', // returns only exact tag matches if true 'use_feed_cats' => '1', // insert tags into feeds as categories /* post tag options */ 'post_linkformat' => '', // post tag format (initialized to $link_localsearch) 'post_tagseparator' => ', ', // tag separator character(s) 'post_includecats' => '0', // include categories in post's tag list 'post_notagstext' => 'none', // text to display if no tags found /* tag cloud options */ 'cloud_linkformat' => '', // post tag format (initialized to $link_tagcloud) 'cloud_tagseparator' => ' ', // tag separator character(s) 'cloud_includecats' => '0', // include categories in tag cloud 'cloud_sortorder' => 'natural', // tag sorting: natural, countup/asc, countdown/desc, alpha 'cloud_displaymax' => '0', // maximum # of tags to display (all if set to zero) 'cloud_displaymin' => '0', // minimum tag count to include in tag cloud 'cloud_scalemax' => '0', // maximum value for count scaling (no scaling if zero) 'cloud_scalemin' => '0' // minimum value for count scaling ); $tablename = $wpdb->prefix . substr(get_option('jkeywords_keywords_table'), 1, -1); $wpdb->query('DROP TABLE IF EXISTS ' . $tablename); foreach($options as $optname => $optval) { delete_option('jkeywords_' . $optname); } $this->done(); } function done ( ) { echo '
'; echo '

'.__('Import Complete!').'

'; echo '
'; } function JeromesKeyword_Import ( ) { // Nothing. } } // create the import object $jkw_import = new JeromesKeyword_Import(); // add it to the import page! register_importer('jkw', 'Jerome’s Keywords', __('Import Jerome’s Keywords into the new native tagging structure.'), array($jkw_import, 'dispatch')); ?>