PluginProbe
Jetpack – WP Security, Backup, Speed, & Growth / 16.3-a.7
Jetpack – WP Security, Backup, Speed, & Growth v16.3-a.7
16.3-a.5 16.3-a.7 16.3-a.3 16.3-a.1 16.2 16.2-beta 12.0.3 12.1.3 12.2.3 12.3.2 12.4.2 12.5.2 12.6.4 12.7.3 12.8.3 12.9.5 13.0.2 13.1.5 13.2.4 13.3.3 13.4.5 13.5.2 13.6.2 13.7.2 13.8.3 All 506 releases
← All changes | modules/scan/class-admin-sidebar-link.php +19 -82 13.8.3 → 16.3-a.7 View file →
@@ -1,7 +1,7 @@
1 1 <?php
2 2 /**
3 - * A class that adds a scan and backup link to the admin sidebar.
3 + * A class that adds a scan link to the admin sidebar.
4 4 *
5 5 * @package automattic/jetpack
6 6 */
7 7
@@ -7,9 +7,8 @@
7 7
8 8 namespace Automattic\Jetpack\Scan;
9 9
10 10 use Automattic\Jetpack\Admin_UI\Admin_Menu;
11 -use Automattic\Jetpack\My_Jetpack\Products\Backup;
12 11 use Automattic\Jetpack\Redirect;
13 12 use Automattic\Jetpack\Status\Host;
14 13 use Jetpack_Core_Json_Api_Endpoints;
15 14
@@ -60,9 +59,9 @@
60 59 add_action( self::SCHEDULE_ACTION_HOOK, array( $this, 'refresh_state_cache' ) );
61 60 }
62 61
63 62 /**
64 - * Adds a link to the Scan and Backup page.
63 + * Adds a link to the Scan page.
65 64 */
66 65 public function maybe_add_admin_link() {
67 66 if ( ! $this->should_show_link() ) {
68 67 return;
@@ -67,16 +66,20 @@
67 66 if ( ! $this->should_show_link() ) {
68 67 return;
69 68 }
70 69
70 + $position = defined( Admin_Menu::class . '::POSITION_EXTERNAL' ) ? Admin_Menu::POSITION_EXTERNAL : 100;
71 +
71 72 if ( $this->should_show_scan() ) {
72 73 Admin_Menu::add_menu(
73 - __( 'Scan', 'jetpack' ),
74 - __( 'Scan', 'jetpack' ) . ' <span class="dashicons dashicons-external"></span>',
74 + /** "Scan" is a product name, do not translate. */
75 + 'Scan',
76 + 'Scan <span aria-hidden="true">↗</span>',
75 77 'manage_options',
76 78 esc_url( Redirect::get_url( 'cloud-scan-history-wp-menu' ) ),
77 79 null,
78 - $this->get_link_offset()
80 + $position,
81 + array( 'key' => 'jetpack-scan-cloud' )
79 82 );
80 83 }
81 84
82 85 // Add scan item which shows history page only. This is mutally exclusive from the scan item above and is only shown for Atomic sitse.
@@ -81,57 +84,26 @@
81 84
82 85 // Add scan item which shows history page only. This is mutally exclusive from the scan item above and is only shown for Atomic sitse.
83 86 if ( $this->should_show_scan_history_only() ) {
84 87 Admin_Menu::add_menu(
85 - __( 'Scan', 'jetpack' ),
86 - __( 'Scan', 'jetpack' ) . ' <span class="dashicons dashicons-external"></span>',
88 + /** "Scan" is a product name, do not translate. */
89 + 'Scan',
90 + 'Scan <span aria-hidden="true">↗</span>',
87 91 'manage_options',
88 92 esc_url( Redirect::get_url( 'cloud-scan-history-wp-menu' ) ),
89 93 null,
90 - $this->get_link_offset()
94 + $position,
95 + array( 'key' => 'jetpack-scan-cloud' )
91 96 );
92 97 }
93 -
94 - if ( $this->should_show_backup() ) {
95 - Admin_Menu::add_menu(
96 - __( 'VaultPress', 'jetpack' ),
97 - __( 'VaultPress', 'jetpack' ) . ' <span class="dashicons dashicons-external"></span>',
98 - 'manage_options',
99 - esc_url( Redirect::get_url( 'calypso-backups' ) ),
100 - null,
101 - $this->get_link_offset()
102 - );
103 - }
104 98 }
105 99
106 100 /**
107 - * We create a menu offset by counting all the pages that have a jetpack_admin_page set as the capability.
101 + * Refreshes the state cache via API call. Called via cron.
108 102 *
109 - * This makes it so that the highlight of the pages works as expected. When you click on the Setting or Dashboard.
110 - *
111 - * @return int Menu offset.
103 + * Still warms the rewind state, which this class no longer reads itself:
104 + * Jetpack_Core_Json_Api_Endpoints::rewind_data() serves it from that cache.
112 105 */
113 - private function get_link_offset() {
114 - global $submenu;
115 - $offset = 9;
116 -
117 - if ( ! array_key_exists( 'jetpack', $submenu ) ) {
118 - return $offset;
119 - }
120 -
121 - foreach ( $submenu['jetpack'] as $link ) {
122 - if ( 'jetpack_admin_page' !== $link[1] ) {
123 - break;
124 - }
125 - ++$offset;
126 - }
127 -
128 - return $offset;
129 - }
130 -
131 - /**
132 - * Refreshes the state cache via API call. Called via cron.
133 - */
134 106 public function refresh_state_cache() {
135 107 Jetpack_Core_Json_Api_Endpoints::get_scan_state();
136 108 Jetpack_Core_Json_Api_Endpoints::get_rewind_data();
137 109 }
@@ -141,9 +113,9 @@
141 113 *
142 114 * @return boolean
143 115 */
144 116 private function should_show_link() {
145 - // Jetpack Scan/Backup is currently not supported on multisite.
117 + // Jetpack Scan is currently not supported on multisite.
146 118 if ( is_multisite() ) {
147 119 return false;
148 120 }
149 121
@@ -152,9 +124,9 @@
152 124 if ( class_exists( 'VaultPress' ) ) {
153 125 return false;
154 126 }
155 127
156 - return $this->should_show_scan() || $this->should_show_backup() || $this->should_show_scan_history_only();
128 + return $this->should_show_scan() || $this->should_show_scan_history_only();
157 129 }
158 130
159 131 /**
160 132 * Check if we should display the Scan menu item.
@@ -178,19 +150,8 @@
178 150 return $this->has_scan() && ( new Host() )->is_woa_site() && get_option( 'wpcom_admin_interface' ) === 'wp-admin';
179 151 }
180 152
181 153 /**
182 - * Check if we should display the Backup menu item.
183 - *
184 - * It will only be displayed if site has Backup enabled and the stand-alone Backup plugin is not active, because it will have a menu item of its own.
185 - *
186 - * @return boolean
187 - */
188 - private function should_show_backup() {
189 - return $this->has_backup() && ! $this->has_backup_plugin();
190 - }
191 -
192 - /**
193 154 * Detects if Scan is enabled.
194 155 *
195 156 * @return boolean
196 157 */
@@ -210,32 +171,8 @@
210 171 * @return boolean
211 172 */
212 173 private function has_protect_plugin() {
213 174 return class_exists( 'Jetpack_Protect' );
214 - }
215 -
216 - /**
217 - * Detects if Backup is enabled.
218 - *
219 - * @return boolean
220 - */
221 - private function has_backup() {
222 - $this->maybe_refresh_transient_cache();
223 - $rewind_state = get_transient( 'jetpack_rewind_state' );
224 - if ( ! $rewind_state ) {
225 - return false;
226 - }
227 -
228 - return isset( $rewind_state->state ) && 'unavailable' !== $rewind_state->state;
229 - }
230 -
231 - /**
232 - * Detects if Backup plugin is active.
233 - *
234 - * @return boolean
235 - */
236 - private function has_backup_plugin() {
237 - return Backup::is_standalone_plugin_active();
238 175 }
239 176
240 177 /**
241 178 * Triggers a cron job to refresh the Scan and Rewind state cache.