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 | ?>
|
---|