Ticket #14960: patch14960.diff

File patch14960.diff, 3.4 KB (added by edwardw, 22 months ago)

[PATCH] Add features to bulk show/hide links

Line 
1Index: wp-admin/includes/class-wp-links-list-table.php
2===================================================================
3--- wp-admin/includes/class-wp-links-list-table.php     (revision 18519)
4+++ wp-admin/includes/class-wp-links-list-table.php     (working copy)
5@@ -44,6 +44,9 @@
6 
7        function get_bulk_actions() {
8                $actions = array();
9+               
10+               $actions['show'] = __('Show');
11+               $actions['hide'] = __('Hide');
12                $actions['delete'] = __( 'Delete' );
13 
14                return $actions;
15@@ -137,6 +140,8 @@
16 
17                                                $actions = array();
18                                                $actions['edit'] = '<a href="' . $edit_link . '">' . __( 'Edit' ) . '</a>';
19+                                               $actions['show'] = '<a href="' . wp_nonce_url( "link.php?action=show&amp;link_id=" . $link->link_id, "show_" . $link->link_id ) . '">' . __("Show") . '</a>';
20+                                               $actions['hide'] = '<a href="' . wp_nonce_url( "link.php?action=hide&amp;link_id=" . $link->link_id, "hide_" . $link->link_id ) . '">' . __("Hide") . '</a>';
21                                                $actions['delete'] = "<a class='submitdelete' href='" . wp_nonce_url( "link.php?action=delete&amp;link_id=$link->link_id", 'delete-bookmark_' . $link->link_id ) . "' onclick=\"if ( confirm( '" . esc_js( sprintf( __( "You are about to delete this link '%s'\n  'Cancel' to stop, 'OK' to delete." ), $link->link_name ) ) . "' ) ) { return true;}return false;\">" . __( 'Delete' ) . "</a>";
22                                                echo $this->row_actions( $actions );
23 
24Index: wp-admin/link.php
25===================================================================
26--- wp-admin/link.php   (revision 18519)
27+++ wp-admin/link.php   (working copy)
28@@ -85,6 +85,30 @@
29                exit;
30                break;
31 
32+       case 'show' :
33+               $link_id = (int) $_GET['link_id'];
34+               check_admin_referer('show_' . $link_id);
35+               
36+               $link_data = (array)get_link_to_edit($link_id);
37+               $link_data['link_visible'] = 'Y';
38+               wp_update_link($link_data);
39+               
40+               wp_redirect($this_file);
41+               die();
42+               break;
43+               
44+       case 'hide' :
45+               $link_id = (int) $_GET['link_id'];
46+               check_admin_referer('hide_' . $link_id);
47+               
48+               $link_data = (array)get_link_to_edit($link_id);
49+               $link_data['link_visible'] = 'N';
50+               wp_update_link($link_data);
51+               
52+               wp_redirect($this_file);
53+               die();
54+               break;
55+
56        case 'delete' :
57                $link_id = (int) $_GET['link_id'];
58                check_admin_referer('delete-bookmark_' . $link_id);
59Index: wp-admin/link-manager.php
60===================================================================
61--- wp-admin/link-manager.php   (revision 18519)
62+++ wp-admin/link-manager.php   (working copy)
63@@ -18,9 +18,9 @@
64 
65 if ( $doaction && isset( $_REQUEST['linkcheck'] ) ) {
66        check_admin_referer( 'bulk-bookmarks' );
67-
68-       if ( 'delete' == $doaction ) {
69-               $bulklinks = (array) $_REQUEST['linkcheck'];
70+       
71+       $bulklinks = (array) $_REQUEST['linkcheck'];
72+       if ( $doaction == 'delete' ) {
73                foreach ( $bulklinks as $link_id ) {
74                        $link_id = (int) $link_id;
75 
76@@ -29,6 +29,18 @@
77 
78                wp_redirect( add_query_arg('deleted', count( $bulklinks ), admin_url( 'link-manager.php' ) ) );
79                exit;
80+       } elseif ($doaction == 'hide') {
81+               foreach($bulklinks as $link_id) {
82+                       $link_data = (array)get_link_to_edit($link_id);
83+                       $link_data['link_visible'] = 'N';
84+                       wp_update_link($link_data);
85+               }
86+       } elseif ($doaction == 'show') {
87+               foreach($bulklinks as $link_id) {
88+                       $link_data = (array)get_link_to_edit($link_id);
89+                       $link_data['link_visible'] = 'Y';
90+                       wp_update_link($link_data);
91+               }
92        }
93 } elseif ( ! empty( $_GET['_wp_http_referer'] ) ) {
94         wp_redirect( remove_query_arg( array( '_wp_http_referer', '_wpnonce' ), stripslashes( $_SERVER['REQUEST_URI'] ) ) );