@@ -250,31 +250,52 @@ public function finalize_document( Document $dom, $effective_sandboxing_level )
250
250
251
251
$ this ->remove_required_amp_markup_if_not_used ( $ dom , $ effective_sandboxing_level );
252
252
253
- $ amp_admin_bar_menu_item = $ dom ->xpath ->query ( '//div[ @id = "wpadminbar" ]//li[ @id = "wp-admin-bar-amp" ]/a ' )->item ( 0 );
253
+ $ amp_admin_bar_menu_item = $ dom ->xpath ->query ( '//div[ @id = "wpadminbar" ]//li[ @id = "wp-admin-bar-amp" ] ' )->item ( 0 );
254
254
if ( $ amp_admin_bar_menu_item instanceof Element ) {
255
- $ span = $ dom ->createElement ( Tag::SPAN );
256
- $ span ->setAttribute (
257
- Attribute::TITLE ,
258
- sprintf (
259
- /* translators: %d is the effective sandboxing level */
260
- __ ( 'Effective sandboxing level: %d ' , 'amp ' ),
261
- $ effective_sandboxing_level
262
- )
263
- );
255
+
264
256
switch ( $ effective_sandboxing_level ) {
265
257
case 1 :
266
- $ text = '1️⃣ ' ;
258
+ $ text = '1️⃣ ' ;
259
+ $ title = __ ( 'Sandboxing level: Loose (1) ' , 'amp ' );
267
260
break ;
268
261
case 2 :
269
- $ text = '2️⃣ ' ;
262
+ $ text = '2️⃣ ' ;
263
+ $ title = __ ( 'Sandboxing level: Moderate (2) ' , 'amp ' );
270
264
break ;
271
265
default :
272
- $ text = '3️⃣ ' ;
266
+ $ text = '3️⃣ ' ;
267
+ $ title = __ ( 'Sandboxing level: Strict (3) ' , 'amp ' );
273
268
break ;
274
269
}
275
- $ span ->textContent = $ text ;
276
- $ amp_admin_bar_menu_item ->appendChild ( $ dom ->createTextNode ( ' ' ) );
277
- $ amp_admin_bar_menu_item ->appendChild ( $ span );
270
+
271
+ $ amp_link = $ dom ->xpath ->query ( './a ' , $ amp_admin_bar_menu_item )->item ( 0 );
272
+ if ( $ amp_link instanceof Element ) {
273
+ $ span = $ dom ->createElement ( Tag::SPAN );
274
+ $ span ->setAttribute ( Attribute::TITLE , $ title );
275
+ $ span ->textContent = $ text ;
276
+
277
+ $ amp_link ->appendChild ( $ dom ->createTextNode ( ' ' ) );
278
+ $ amp_link ->appendChild ( $ span );
279
+ }
280
+
281
+ $ amp_submenu_ul = $ dom ->xpath ->query ( './div/ul[ @id = "wp-admin-bar-amp-default" ] ' , $ amp_admin_bar_menu_item )->item ( 0 );
282
+ if ( $ amp_submenu_ul instanceof Element ) {
283
+ $ level_li = $ dom ->createElement ( Tag::LI );
284
+ $ level_li ->setAttribute ( Attribute::ID , 'wp-admin-bar-amp-sandboxing-level ' );
285
+
286
+ $ link = $ dom ->createElement ( Tag::A );
287
+ $ link ->setAttribute ( Attribute::CLASS_ , 'ab-item ' );
288
+ $ link ->textContent = $ title ;
289
+ if ( current_user_can ( 'manage_options ' ) ) {
290
+ $ link ->setAttribute (
291
+ Attribute::HREF ,
292
+ add_query_arg ( 'page ' , AMP_Options_Manager::OPTION_NAME , admin_url ( 'admin.php ' ) ) . '#sandboxing '
293
+ );
294
+ }
295
+
296
+ $ level_li ->appendChild ( $ link );
297
+ $ amp_submenu_ul ->appendChild ( $ level_li );
298
+ }
278
299
}
279
300
}
280
301
}
0 commit comments