From 24a23168f7fc43c80d40821634413d11cadd2ee2 Mon Sep 17 00:00:00 2001 From: Ryan Boren Date: Thu, 30 Aug 2007 01:39:46 +0000 Subject: [PATCH] Importer for Jerome's Keywords. fixes #4346 git-svn-id: https://develop.svn.wordpress.org/trunk@5984 602fd350-edb4-49c9-b593-d223f7449a82 --- wp-admin/import/jkw.php | 237 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 237 insertions(+) create mode 100644 wp-admin/import/jkw.php diff --git a/wp-admin/import/jkw.php b/wp-admin/import/jkw.php new file mode 100644 index 0000000000..8480b42c9b --- /dev/null +++ b/wp-admin/import/jkw.php @@ -0,0 +1,237 @@ +'; + 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')); + +?>