PluginProbe ʕ •ᴥ•ʔ
Nested Pages / 3.0.8
Nested Pages v3.0.8
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 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 / AdminSubmenu.php
wp-nested-pages / app / Entities / AdminMenu Last commit date
AdminMenu.php 8 years ago AdminSubmenu.php 8 years ago AdminSubmenuDefault.php 9 years ago AdminSubmenuExpander.php 7 years ago EnabledMenus.php 8 years ago
AdminSubmenu.php
86 lines
1 <?php
2 namespace NestedPages\Entities\AdminMenu;
3
4 use NestedPages\Entities\PostType\PostTypeRepository;
5
6 /**
7 * Adds the submenu for a given menu
8 */
9 class AdminSubmenu
10 {
11 /**
12 * Post Type
13 * @var string
14 */
15 private $post_type;
16
17 /**
18 * Post Type Repository
19 */
20 private $post_type_repo;
21
22 /**
23 * Slug
24 * @var string
25 */
26 private $slug;
27
28 public function __construct($post_type)
29 {
30 $this->post_type = $post_type;
31 $this->post_type_repo = new PostTypeRepository;
32 $this->setSlug();
33 }
34
35 /**
36 * Add the submenu
37 */
38 public function addSubmenu()
39 {
40 global $submenu;
41 $c = 0;
42 // Get the right submenu and remove all pages link
43 foreach($submenu as $key => $sub){
44 if ($key == $this->post_type_repo->editSlug($this->post_type)){
45 // Add the "All Link"
46 $submenu[$this->slug][50] = [$sub[5][0], 'edit_pages', esc_url(admin_url('admin.php?page=' . $this->slug))];
47 unset($sub['5']); // Remove Top Level
48 $menu_items = $sub;
49 }
50 }
51 if ( isset($menu_items) ){
52 $c = 60;
53 foreach($menu_items as $item){
54 // Make sure URLs for custom menu items are correct
55 $url = ( isset($item[3]) ) ? 'edit.php?post_type=' . $this->post_type->name . '&page=' . $item[2] : $item[2];
56 $submenu[$this->slug][$c] = [$item[0], $item[1], esc_url(admin_url($url))];
57 $c = $c + 10;
58 }
59 }
60 $this->defaultLink($c);
61 }
62
63 /**
64 * Show the default link if set to show
65 * @param int $c Menu Position Counter
66 */
67 private function defaultLink($c)
68 {
69 global $submenu;
70 if ( !$this->post_type_repo->postTypeSetting($this->post_type->name, 'hide_default') ){
71 $submenu[$this->slug][$c] = [
72 __('Default', 'wp-nested-pages') . ' ' . $this->post_type->labels->name,
73 'edit_pages',
74 $this->post_type_repo->editSlug($this->post_type)
75 ];
76 }
77 }
78
79 /**
80 * Set the Menu Slug
81 */
82 private function setSlug()
83 {
84 $this->slug = $this->post_type_repo->getMenuSlug($this->post_type);
85 }
86 }