WordPress.org

Make WordPress Core

Ticket #4135: 4135.diff

File 4135.diff, 3.9 KB (added by rob1n, 8 years ago)
  • wp-admin/import/wp-cat2tag.php

     
    1616        function populate_all_categories() { 
    1717                global $wpdb; 
    1818                 
    19                 $this->all_categories = $wpdb->get_results("SELECT * FROM $wpdb->categories WHERE (type & ~ " . TAXONOMY_TAG . ") != 0 ORDER BY cat_name ASC"); 
     19                $this->all_categories = $wpdb->get_results("SELECT * FROM $wpdb->categories WHERE (type & ~ " . TAXONOMY_TAG . ") != 0 AND category_count > 0 ORDER BY cat_name ASC"); 
    2020        } 
    2121         
    2222        function welcome() { 
     23                $this->populate_all_categories(); 
     24                 
    2325                print '<div class="narrow">'; 
    24                 print '<p>' . __('Howdy! This converter allows you to selectively convert existing categories to tags. To get started, check the checkboxes of the categories you wish to be converted, then click the Convert button.') . '</p>'; 
    25                 print '<p>' . __('Keep in mind that if you convert a category with child categories, those child categories get their parent setting removed, so they\'re in the root.') . '</p>'; 
    2626                 
    27                 $this->categories_form(); 
     27                if (count($this->all_categories) > 0) { 
     28                        print '<p>' . __('Howdy! This converter allows you to selectively convert existing categories to tags. To get started, check the checkboxes of the categories you wish to be converted, then click the Convert button.') . '</p>'; 
     29                        print '<p>' . __('Keep in mind that if you convert a category with child categories, those child categories get their parent setting removed, so they\'re in the root.') . '</p>'; 
    2830                 
     31                        $this->categories_form(); 
     32                } else { 
     33                        print '<p>You have no categories to convert!</p>'; 
     34                } 
     35                 
    2936                print '</div>'; 
    3037        } 
    3138         
    3239        function categories_form() { 
    33                 $this->populate_all_categories(); 
    34                  
    3540                print '<form action="admin.php?import=wp-cat2tag&amp;step=2" method="post">'; 
    3641                print '<ul style="list-style:none">'; 
    3742                 
     
    5055                } 
    5156                 
    5257                print '</ul>'; 
    53                 print '<p class="submit"><input type="submit" name="submit" value="' . __('Convert &raquo;') . '" /></p>'; 
     58                 
     59                print '<p class="submit"><input type="submit" name="maybe_convert_all_cats" value="' . __('Convert All Categories') . '" /> <input type="submit" name="submit" value="' . __('Convert &raquo;') . '" /></p>'; 
    5460                print '</form>'; 
    5561        } 
    5662         
     
    138144                print '</ul>'; 
    139145        } 
    140146         
     147        function convert_all_confirm() { 
     148                print '<div class="narrow">'; 
     149                 
     150                print '<h3>' . __('Confirm') . '</h3>'; 
     151                 
     152                print '<p>' . __('You are about to convert all categories to tags. Are you sure you want to continue?') . '</p>'; 
     153                 
     154                print '<form action="admin.php?import=wp-cat2tag" method="post">'; 
     155                print '<p style="text-align:center" class="submit"><input type="submit" value="' . __('Yes') . '" name="yes_convert_all_cats" />&nbsp;&nbsp;&nbsp;&nbsp;<input type="submit" value="' . __('No') . '" name="no_dont_do_it" /></p>'; 
     156                print '</form>'; 
     157                 
     158                print '</div>'; 
     159        } 
     160         
     161        function convert_all() { 
     162                global $wpdb; 
     163                 
     164                $cats = $wpdb->get_results("SELECT * FROM $wpdb->categories WHERE (type & ~ " . TAXONOMY_TAG . ") != 0 AND category_count > 0"); 
     165                 
     166                $_POST['cats_to_convert'] = array(); 
     167                 
     168                foreach ($cats as $cat) { 
     169                        $_POST['cats_to_convert'][] = $cat->cat_ID; 
     170                } 
     171                 
     172                $this->convert_them(); 
     173        } 
     174         
    141175        function init() { 
    142                 if (!isset($_GET['step'])) { 
    143                         $step = 1; 
     176                echo '<!--'; print_r($_POST); print_r($_GET); echo '-->'; 
     177                 
     178                if (isset($_POST['maybe_convert_all_cats'])) { 
     179                        $step = 3; 
     180                } elseif (isset($_POST['yes_convert_all_cats'])) { 
     181                        $step = 4; 
     182                } elseif (isset($_POST['no_dont_do_it'])) { 
     183                        die('no_dont_do_it'); 
    144184                } else { 
    145                         $step = (int) $_GET['step']; 
     185                        $step = (isset($_GET['step'])) ? (int) $_GET['step'] : 1; 
    146186                } 
    147187                 
    148188                $this->header(); 
     
    160200                                case 2 : 
    161201                                        $this->convert_them(); 
    162202                                break; 
     203                                 
     204                                case 3 : 
     205                                        $this->convert_all_confirm(); 
     206                                break; 
     207                                 
     208                                case 4 : 
     209                                        $this->convert_all(); 
     210                                break; 
    163211                        } 
    164212                } 
    165213