PluginProbe
Nested Pages / 3.2.4
Nested Pages v3.2.4
3.3.1 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 All 106 releases
wp-nested-pages / app / Entities / AdminMenu / BlockEditorLink.php
BlockEditorLink.php
60 lines 1.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
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 }