PluginProbe ʕ •ᴥ•ʔ
Nested Pages / 3.2.15
Nested Pages v3.2.15
3.2.15 3.2.14 3.1.8 3.1.9 3.2.0 3.2.1 3.2.10 3.2.11 3.2.12 3.2.13 3.2.2 3.2.3 3.2.4 3.2.5 3.2.6 3.2.7 3.2.8 3.2.9 trunk 1.0 1.1 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.1.8 1.1.9 1.2.0 1.2.1 1.3.0 1.3.1 1.3.10 1.3.11 1.3.12 1.3.13 1.3.14 1.3.15 1.3.2 1.3.4 1.3.5 1.3.6 1.3.7 1.3.8 1.3.9 1.4.0 1.4.1 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.6.0 1.6.1 1.6.2 1.6.3 1.6.3.1 1.6.3.2 1.6.4 1.6.5 1.6.5.1 1.6.5.2 1.6.6 1.6.7 1.6.8 1.7.0 1.7.1 2.0.1 2.0.2 2.0.3 2.0.4 3.0.1 3.0.10 3.0.11 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.0.7 3.0.8 3.0.9 3.1.0 3.1.1 3.1.10 3.1.11 3.1.12 3.1.13 3.1.14 3.1.15 3.1.16 3.1.17 3.1.18 3.1.19 3.1.2 3.1.20 3.1.21 3.1.22 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7
wp-nested-pages / app / Entities / AdminMenu / BlockEditorLink.php
wp-nested-pages / app / Entities / AdminMenu Last commit date
AdminMenu.php 6 years ago AdminSubmenu.php 4 years ago AdminSubmenuDefault.php 8 years ago AdminSubmenuExpander.php 5 years ago BlockEditorLink.php 6 years ago EnabledMenus.php 6 years ago
BlockEditorLink.php
60 lines
1 <?php
2 namespace NestedPages\Entities\AdminMenu;
3
4 use NestedPages\Entities\PostType\PostTypeRepository;
5 use NestedPages\Entities\User\UserRepository;
6
7 /**
8 * Replace the "Pages" link in the block editor if the plugin is set to override the menu link
9 */
10 class BlockEditorLink
11 {
12 /**
13 * Current Admin Page/Screen Object
14 */
15 private $page;
16
17 /**
18 * User Repository
19 */
20 private $user;
21
22 /**
23 * Post Type Repository
24 */
25 private $post_type_repo;
26
27 public function __construct()
28 {
29 $this->post_type_repo = new PostTypeRepository;
30 $this->user = new UserRepository;
31 $this->page = get_current_screen();
32 if ( !$this->page ) return;
33 $this->loopPostTypes();
34 }
35
36 /**
37 * Loop through all the enabled post types
38 * Skip if "Replace Menu" is not enabled
39 */
40 private function loopPostTypes()
41 {
42 foreach($this->post_type_repo->getPostTypesObject() as $type){
43 if ( !$type->replace_menu ) continue;
44 $this->fullPageEditorLink($type);
45 }
46 }
47
48 /**
49 * Full Page Editor Link back to parent listing
50 */
51 private function fullPageEditorLink($type)
52 {
53 if ( $this->page->id !== $type->name ) return;
54 $user_can_view = apply_filters("nestedpages_sort_view_$type->name", $this->user->canViewSorting($type->name), $this->user->getRoles());
55 if ( !$user_can_view ) return;
56 $link = ( $type->name == 'page' ) ? 'admin.php?page=nestedpages' : 'admin.php?page=' . $this->post_type_repo->getMenuSlug($type);
57 $url = admin_url($link);
58 echo '<script>jQuery(window).on("load", function(){ var headerLink = jQuery(".edit-post-header .edit-post-fullscreen-mode-close"); jQuery(headerLink).attr("href", "' . $url . '"); });</script>';
59 }
60 }