Ticket #4099: bulk-edit-blogroll-cats.diff

File bulk-edit-blogroll-cats.diff, 4.5 KB (added by technosailor, 5 years ago)

Creates option on links-manager.php to mass update link categories.

  • Users/aaron/Sites/trunk/wp-admin/admin-functions.php

     
    619619 
    620620        if ( !empty( $link_id ) ) { 
    621621                $_POST['link_id'] = $link_id; 
    622                 return wp_update_link( $_POST); 
    623         } else { 
    624                 return wp_insert_link( $_POST); 
     622        return wp_insert_link( $_POST); 
    625623        } 
    626624} 
    627625 
  • Users/aaron/Sites/trunk/wp-admin/link-manager.php

     
    195195 
    196196<div id="ajax-response"></div> 
    197197 
    198 <p class="submit"><input type="submit" class="button" name="deletebookmarks" id="deletebookmarks" value="<?php _e('Delete Checked Links') ?> &raquo;" onclick="return confirm('<?php echo js_escape(__("You are about to delete these links permanently.\n'Cancel' to stop, 'OK' to delete.")); ?>')" /></p> 
     198<h3><?php _e('Update Selected'); ?></h3> 
     199        <ul style="list-style:none;"> 
     200                <li><input type="radio" name="rbulkeditblogroll" id="dbookmarks" value="deletebookmarks" onclick="change_submit_button();" /> <label for="dbookmarks"><?php _e('Delete checked Bookmarks.'); ?></label></li> 
     201                <li> 
     202                        <input type="radio" name="rbulkeditblogroll" id="ebookmarks" value="editbookmarks" onclick="change_submit_button();" checked="checked" /> <label for="ebookmarks"><?php _e('Set the new category for checked Blogroll items:'); ?></label> 
     203                         
     204                        <select name="bookmarks_newcat" onfocus="getElementById('ebookmarks').checked = 'true';getElementById('submiteditbookmarks').value = 'Update Checked Links';"> 
     205                        <?php 
     206                        $linkcats = get_categories("hide_empty=0"); 
     207                        foreach($linkcats as $bulklinkcat) 
     208                                echo'<option value="' . $bulklinkcat->cat_ID . '">' . $bulklinkcat->cat_name .'</option>'; 
     209                        ?> 
     210                        </select> 
     211                        <script type="text/javascript" charset="utf-8"> 
     212                        function change_submit_button () 
     213                        { 
     214                                if( document.getElementById('ebookmarks').checked == true) 
     215                                { 
     216                                        document.getElementById('submiteditbookmarks').value = 'Update Checked Links'; 
     217                                } 
     218                                else 
     219                                { 
     220                                        document.getElementById('submiteditbookmarks').value = 'Delete Checked Links'; 
     221                                        document.getElementById('submiteditbookmarks').onclick = confirmDeleteLinks; 
     222                                } 
     223                        } 
     224 
     225                        function confirmDeleteLinks() 
     226                        { 
     227                                return confirm("You are about to delete these links permanently.\n'Cancel' to stop, 'OK' to delete."); 
     228                        } 
     229                </script> 
     230                </li> 
     231        </ul> 
     232        <p class="submit" style="width: 420px"> 
     233                <?php echo $referer; ?> 
     234                <input type="submit" name="submiteditbookmarks" id="submiteditbookmarks" value="<?php _e('Update Checked Links'); ?>" /> 
     235        </p> 
     236<p class="submit"> 
    199237</form> 
    200238 
    201239<?php } ?> 
    202  
    203240</div> 
    204  
    205241<?php include('admin-footer.php'); ?> 
  • Users/aaron/Sites/trunk/wp-admin/link.php

     
    33 
    44wp_reset_vars(array('action', 'cat_id', 'linkurl', 'name', 'image', 'description', 'visible', 'target', 'category', 'link_id', 'submit', 'order_by', 'links_show_cat_id', 'rating', 'rel', 'notes', 'linkcheck[]')); 
    55 
    6 if ('' != $_POST['deletebookmarks']) 
     6if ('Delete Checked Links' == $_POST['submiteditbookmarks']) 
    77        $action = 'deletebookmarks'; 
    8 if ('' != $_POST['move']) 
     8if ('Update Checked Links' == $_POST['submiteditbookmarks']) 
    99        $action = 'move'; 
    1010if ('' != $_POST['linkcheck']) 
    11         $linkcheck = $_POST[linkcheck]; 
     11        $linkcheck = $_POST['linkcheck']; 
    1212 
    1313$this_file = 'link-manager.php'; 
    1414 
     
    5050                        wp_redirect($this_file); 
    5151                        exit; 
    5252                } 
    53                 $all_links = join(',', $linkcheck); 
    54                 // should now have an array of links we can change 
    55                 //$q = $wpdb->query("update $wpdb->links SET link_category='$category' WHERE link_id IN ($all_links)"); 
    56  
     53                //$link_count = count($linkcheck); 
     54                foreach($linkcheck as $link_id) 
     55                { 
     56                        $link = get_link_to_edit( $link_id ); 
     57                         
     58                        $newlink['link_id'] = $link_id; 
     59                        $newlink['link_url'] = clean_url($link->link_url); 
     60                        $newlink['link_name'] = wp_specialchars( $link->link_name ); 
     61                        $newlink['link_image'] = wp_specialchars( $link->link_image ); 
     62                        $newlink['link_rss'] = clean_url($link->link_rss); 
     63                        $newlink['link_category'] = array($_POST['bookmarks_newcat']); 
     64                        wp_insert_link($newlink); 
     65                } 
    5766                wp_redirect($this_file); 
    5867                exit; 
    5968                break;