[44] | 1 | <?php
|
---|
| 2 | /**
|
---|
| 3 | * BunnyTags Plugin Tag Importer
|
---|
| 4 | *
|
---|
| 5 | * @package WordPress
|
---|
| 6 | * @subpackage Importer
|
---|
| 7 | */
|
---|
| 8 |
|
---|
| 9 | /**
|
---|
| 10 | * BunnyTags Plugin tag converter
|
---|
| 11 | *
|
---|
| 12 | * This will process the BunnyTags plugin tags and convert them to the WordPress
|
---|
| 13 | * 2.3 taxonomy.
|
---|
| 14 | *
|
---|
| 15 | * @since unknown
|
---|
| 16 | */
|
---|
| 17 | class BunnyTags_Import {
|
---|
| 18 |
|
---|
| 19 | function header() {
|
---|
| 20 | echo '<div class="wrap">';
|
---|
| 21 | screen_icon();
|
---|
| 22 | echo '<h2>'.__('Import Bunny’s Technorati Tags').'</h2>';
|
---|
| 23 | echo '<p>'.__('Steps may take a few minutes depending on the size of your database. Please be patient.').'<br /><br /></p>';
|
---|
| 24 | }
|
---|
| 25 |
|
---|
| 26 | function footer() {
|
---|
| 27 | echo '</div>';
|
---|
| 28 | }
|
---|
| 29 |
|
---|
| 30 | function greet() {
|
---|
| 31 | echo '<div class="narrow">';
|
---|
| 32 | echo '<p>'.__('Howdy! This imports tags from Bunny’s Technorati Tags into WordPress tags.').'</p>';
|
---|
| 33 | echo '<p>'.__('This is suitable for Bunny’s Technorati Tags version 0.6.').'</p>';
|
---|
| 34 | echo '<p><strong>'.__('All existing Bunny’s Technorati Tags will be removed after import.').'</strong></p>';
|
---|
| 35 | echo '<p><strong>'.__('Don’t be stupid - backup your database before proceeding!').'</strong></p>';
|
---|
| 36 | echo '<form action="admin.php?import=btt&step=1" method="post">';
|
---|
| 37 | wp_nonce_field('import-btt');
|
---|
| 38 | echo '<p class="submit"><input type="submit" name="submit" class="button" value="'.esc_attr__('Import Tags').'" /></p>';
|
---|
| 39 | echo '</form>';
|
---|
| 40 | echo '</div>';
|
---|
| 41 | }
|
---|
| 42 |
|
---|
| 43 | function dispatch() {
|
---|
| 44 | if ( empty($_GET['step']) )
|
---|
| 45 | $step = 0;
|
---|
| 46 | else
|
---|
| 47 | $step = absint($_GET['step']);
|
---|
| 48 |
|
---|
| 49 | // load the header
|
---|
| 50 | $this->header();
|
---|
| 51 |
|
---|
| 52 | switch ( $step ) {
|
---|
| 53 | case 0 :
|
---|
| 54 | $this->greet();
|
---|
| 55 | break;
|
---|
| 56 | case 1 :
|
---|
| 57 | check_admin_referer('import-btt');
|
---|
| 58 | $this->check_post_keyword( true );
|
---|
| 59 | break;
|
---|
| 60 | case 2 :
|
---|
| 61 | check_admin_referer('import-btt');
|
---|
| 62 | $this->check_post_keyword( false );
|
---|
| 63 | break;
|
---|
| 64 | case 3:
|
---|
| 65 | $this->done();
|
---|
| 66 | break;
|
---|
| 67 | }
|
---|
| 68 |
|
---|
| 69 | // load the footer
|
---|
| 70 | $this->footer();
|
---|
| 71 | }
|
---|
| 72 |
|
---|
| 73 | function check_post_keyword($precheck = true) {
|
---|
| 74 | global $wpdb;
|
---|
| 75 |
|
---|
| 76 | echo '<div class="narrow">';
|
---|
| 77 | echo '<p><h3>'.__('Reading Bunny’s Technorati Tags…').'</h3></p>';
|
---|
| 78 |
|
---|
| 79 | // import Bunny's Keywords tags
|
---|
| 80 | $metakeys = $wpdb->get_results("SELECT post_id, meta_id, meta_key, meta_value FROM $wpdb->postmeta WHERE $wpdb->postmeta.meta_key = 'tags'");
|
---|
| 81 | if ( !is_array($metakeys)) {
|
---|
| 82 | echo '<p>' . __('No Tags Found!') . '</p>';
|
---|
| 83 | return false;
|
---|
| 84 | } else {
|
---|
| 85 | $count = count($metakeys);
|
---|
| 86 | echo '<p>' . sprintf( _n('Done! <strong>%s</strong> post with tags were read.', 'Done! <strong>%s</strong> posts with tags were read.', $count), $count ) . '<br /></p>';
|
---|
| 87 | echo '<ul>';
|
---|
| 88 | foreach ( $metakeys as $post_meta ) {
|
---|
| 89 | if ( $post_meta->meta_value != '' ) {
|
---|
| 90 | $post_keys = explode(' ', $post_meta->meta_value);
|
---|
| 91 | foreach ( $post_keys as $keyword ) {
|
---|
| 92 | $keyword = addslashes(trim(str_replace('+',' ',$keyword)));
|
---|
| 93 | if ( '' != $keyword ) {
|
---|
| 94 | echo '<li>' . $post_meta->post_id . ' - ' . $keyword . '</li>';
|
---|
| 95 | if ( !$precheck )
|
---|
| 96 | wp_add_post_tags($post_meta->post_id, $keyword);
|
---|
| 97 | }
|
---|
| 98 | }
|
---|
| 99 | }
|
---|
| 100 | if ( !$precheck )
|
---|
| 101 | delete_post_meta($post_meta->post_id, 'tags');
|
---|
| 102 | }
|
---|
| 103 | echo '</ul>';
|
---|
| 104 | }
|
---|
| 105 |
|
---|
| 106 | echo '<form action="admin.php?import=btt&step='.($precheck? 2:3).'" method="post">';
|
---|
| 107 | wp_nonce_field('import-btt');
|
---|
| 108 | echo '<p class="submit"><input type="submit" name="submit" class="button" value="'.esc_attr__('Next').'" /></p>';
|
---|
| 109 | echo '</form>';
|
---|
| 110 | echo '</div>';
|
---|
| 111 | }
|
---|
| 112 |
|
---|
| 113 | function done() {
|
---|
| 114 | echo '<div class="narrow">';
|
---|
| 115 | echo '<p><h3>'.__('Import Complete!').'</h3></p>';
|
---|
| 116 | echo '</div>';
|
---|
| 117 | }
|
---|
| 118 |
|
---|
| 119 | function BunnyTags_Import() {
|
---|
| 120 | }
|
---|
| 121 |
|
---|
| 122 | }
|
---|
| 123 |
|
---|
| 124 | // create the import object
|
---|
| 125 | $btt_import = new BunnyTags_Import();
|
---|
| 126 |
|
---|
| 127 | // add it to the import page!
|
---|
| 128 | register_importer('btt', 'Bunny’s Technorati Tags', __('Import Bunny’s Technorati Tags into WordPress tags.'), array($btt_import, 'dispatch'));
|
---|
| 129 |
|
---|
| 130 | ?>
|
---|