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 / AdminSubmenuExpander.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
AdminSubmenuExpander.php
108 lines
1 <?php
2 namespace NestedPages\Entities\AdminMenu;
3
4 use NestedPages\Entities\PostType\PostTypeRepository;
5
6 /**
7 * Opens the Submenu on child admin pages and highlights the current item
8 */
9 class AdminSubmenuExpander
10 {
11 /**
12 * Current Page Object
13 */
14 private $page;
15
16 /**
17 * Post Type Repository
18 */
19 private $post_type_repo;
20
21
22 public function __construct()
23 {
24 $this->post_type_repo = new PostTypeRepository;
25 $this->page = get_current_screen();
26 if ( !$this->page ) return;
27 $this->addHighlighting();
28 }
29
30 /**
31 * Add Highlighting to enabled Post Types who's menus are being overwritten
32 */
33 private function addHighlighting()
34 {
35 foreach($this->post_type_repo->getPostTypesObject() as $type){
36 if ( $type->replace_menu ){
37 $this->newPage($type);
38 $this->editPage($type);
39 $this->nestedPagesAll($type);
40 $this->topLevelPostType($type);
41 $this->defaultLink($type);
42 $this->defaultPagesLink($type);
43 }
44 }
45 }
46
47 /**
48 * New Page Screen
49 */
50 private function newPage($type)
51 {
52 $name = ( $type->name == 'page' ) ? '' : '-' . $type->name;
53 if ( ($this->page->id == $type->name) && ($this->page->action == 'add') ){
54 echo '<script>jQuery(document).ready(function(){jQuery("#toplevel_page_nestedpages' . esc_html($name) . '").removeClass("wp-not-current-submenu").addClass("wp-has-current-submenu").addClass("wp-menu-open");jQuery("#toplevel_page_nestedpages' . esc_html($name) . ' a:first").addClass("wp-has-current-submenu");var addnew = jQuery("#toplevel_page_nestedpages ul li:nth-child(3)");jQuery(addnew).addClass("current");jQuery(addnew).children("a").addClass("current");});</script>';
55 }
56 }
57
58 /**
59 * Edit Page Screen
60 */
61 private function editPage($type)
62 {
63 $name = ( $type->name == 'page' ) ? '' : '-' . $type->name;
64 if ( ($this->page->id == $type->name) && ($this->page->base == 'post') ){
65 echo '<script>jQuery(document).ready(function(){jQuery("#toplevel_page_nestedpages' . esc_html($name) . '").removeClass("wp-not-current-submenu").addClass("wp-has-current-submenu").addClass("wp-menu-open");jQuery("#toplevel_page_nestedpages' . esc_html($name) . ' a:first").addClass("wp-has-current-submenu");var addnew = jQuery("#toplevel_page_nestedpages ul li");jQuery(addnew).removeClass("current");jQuery(addnew).children("a").removeClass("current");});</script>';
66 }
67 }
68
69 /**
70 * Nested Pages View
71 */
72 private function nestedPagesAll($type)
73 {
74 if ( $this->page->id == 'toplevel_page_nestedpages' ){
75 echo '<script>jQuery(document).ready(function(){jQuery("#toplevel_page_nestedpages").removeClass("wp-not-current-submenu").addClass("wp-has-current-submenu").addClass("wp-menu-open");jQuery("#toplevel_page_nestedpages a:first").addClass("wp-has-current-submenu");var addnew = jQuery("#toplevel_page_nestedpages ul li:nth-child(2)");jQuery(addnew).addClass("current");jQuery(addnew).children("a").addClass("current");});</script>';
76 }
77 }
78
79 /**
80 * Top Level Page for Post Type
81 */
82 private function topLevelPostType($type)
83 {
84 if ( $this->page->id == 'toplevel_page_nestedpages-' . esc_attr( $type->name ) ){
85 echo '<script>jQuery(document).ready(function(){jQuery("#toplevel_page_nestedpages-' . esc_attr( $type->name ) . '").removeClass("wp-not-current-submenu").addClass("wp-has-current-submenu").addClass("wp-menu-open");jQuery("#toplevel_page_nestedpages-' . esc_attr( $type->name ) . ' a:first").addClass("wp-has-current-submenu");var addnew = jQuery("#toplevel_page_nestedpages-' . esc_attr( $type->name ) . ' ul li:nth-child(2)");jQuery(addnew).addClass("current");jQuery(addnew).children("a").addClass("current");});</script>';
86 }
87 }
88
89 /**
90 * Default Link
91 */
92 private function defaultLink($type)
93 {
94 if ( $this->page->id == 'edit-' . $type->name ){
95 echo '<script>jQuery(document).ready(function(){jQuery("#toplevel_page_nestedpages-' . esc_attr( $type->name ) . '").removeClass("wp-not-current-submenu").addClass("wp-has-current-submenu").addClass("wp-menu-open");jQuery("#toplevel_page_nestedpages-' . esc_attr( $type->name ) . ' a:first").addClass("wp-has-current-submenu");});</script>';
96 }
97 }
98
99 /**
100 * Default Pages Link
101 */
102 private function defaultPagesLink($type)
103 {
104 if ( $this->page->id == 'edit-page' ){
105 echo '<script>jQuery(document).ready(function(){jQuery("#toplevel_page_nestedpages").removeClass("wp-not-current-submenu").addClass("wp-has-current-submenu").addClass("wp-menu-open");jQuery("#toplevel_page_nestedpages a:first").addClass("wp-has-current-submenu");});</script>';
106 }
107 }
108 }