PluginProbe
Boxzilla – WordPress Popup Builder / 3.2.21
Boxzilla – WordPress Popup Builder v3.2.21
3.4.11 3.4.10 3.4.9 3.4.3 3.4.4 3.4.5 3.4.6 3.4.7 3.4.8 trunk 3.0 3.0.1 3.0.2 3.0.3 3.1 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 All 72 releases
← All changes | src/admin/class-menu.php +116 -125 3.4.103.2.21 View file →
@@ -1,142 +1,133 @@
1 1 <?php
2 2
3 3 namespace Boxzilla\Admin;
4 4
5 -if (! defined('ABSPATH')) {
6 - exit;
7 -}
5 +use Boxzilla\Plugin;
6 +use Boxzilla\Box;
7 +use Boxzilla\Boxzilla;
8 8
9 -class Menu
10 -{
11 - public function init(): void
12 - {
13 - add_action('admin_head-nav-menus.php', [ $this, 'add_nav_menu_meta_boxes' ]);
9 +class Menu {
14 10
15 - // Include custom items to customizer nav menu settings.
16 - add_filter('customize_nav_menu_available_item_types', [ $this, 'register_customize_nav_menu_item_types' ]);
17 - add_filter('customize_nav_menu_available_items', [ $this, 'register_customize_nav_menu_items' ], 10, 4);
18 - }
11 + public function init() {
12 + add_action( 'admin_head-nav-menus.php', array( $this, 'add_nav_menu_meta_boxes' ) );
19 13
20 - /**
21 - * Add custom nav meta box.
22 - *
23 - * Adapted from http://www.johnmorrisonline.com/how-to-add-a-fully-functional-custom-meta-box-to-wordpress-navigation-menus/.
24 - */
25 - public function add_nav_menu_meta_boxes()
26 - {
27 - add_meta_box('boxzilla_nav_link', esc_html__('Boxzilla Pop-ups', 'boxzilla'), [ $this, 'nav_menu_links' ], 'nav-menus', 'side', 'low');
28 - }
14 + // Include custom items to customizer nav menu settings.
15 + add_filter( 'customize_nav_menu_available_item_types', array( $this, 'register_customize_nav_menu_item_types' ) );
16 + add_filter( 'customize_nav_menu_available_items', array( $this, 'register_customize_nav_menu_items' ), 10, 4 );
17 + }
29 18
30 - private function get_boxes()
31 - {
32 - $q = new \WP_Query();
33 - $posts = $q->query(
34 - [
35 - 'post_type' => 'boxzilla-box',
36 - 'post_status' => 'publish',
37 - 'posts_per_page' => -1,
38 - 'ignore_sticky_posts' => true,
39 - 'no_found_rows' => true,
40 - ]
41 - );
42 - return $posts;
43 - }
19 + /**
20 + * Add custom nav meta box.
21 + *
22 + * Adapted from http://www.johnmorrisonline.com/how-to-add-a-fully-functional-custom-meta-box-to-wordpress-navigation-menus/.
23 + */
24 + public function add_nav_menu_meta_boxes() {
25 + add_meta_box( 'boxzilla_nav_link', __( 'Boxzilla Pop-ups', 'boxzilla' ), array( $this, 'nav_menu_links' ), 'nav-menus', 'side', 'low' );
26 + }
44 27
45 - /**
46 - * Output menu links.
47 - */
48 - public function nav_menu_links()
49 - {
50 - $posts = $this->get_boxes();
51 - if (count($posts) === 0) {
52 - return;
53 - }
28 + private function get_boxes() {
29 + $q = new \WP_Query;
30 + $posts = $q->query(
31 + array(
32 + 'post_type' => 'boxzilla-box',
33 + 'post_status' => 'publish',
34 + 'posts_per_page' => -1,
35 + 'ignore_sticky_posts' => true,
36 + 'no_found_rows' => true,
37 + )
38 + );
39 + return $posts;
40 + }
54 41
55 - ?>
56 - <div id="posttype-boxzilla-boxes" class="posttypediv">
57 - <div id="tabs-panel-boxzilla-boxes" class="tabs-panel tabs-panel-active">
58 - <ul id="boxzilla-boxes-checklist" class="categorychecklist form-no-clear">
59 - <?php
60 - $i = -1;
61 - foreach ($posts as $key => $post) :
62 - ?>
63 - <li>
64 - <label class="menu-item-title">
65 - <input type="checkbox" class="menu-item-checkbox" name="menu-item[<?php echo (int) $i; ?>][menu-item-object-id]" value="<?php echo (int) $i; ?>" /> <?php echo esc_html($post->post_title); ?>
66 - </label>
67 - <input type="hidden" class="menu-item-type" name="menu-item[<?php echo (int) $i; ?>][menu-item-type]" value="custom" />
68 - <input type="hidden" class="menu-item-title" name="menu-item[<?php echo (int) $i; ?>][menu-item-title]" value="<?php echo esc_attr($post->post_title); ?>" />
69 - <input type="hidden" class="menu-item-url" name="menu-item[<?php echo (int) $i; ?>][menu-item-url]" value="<?php echo esc_attr('#boxzilla-' . $post->ID); ?>" />
70 - <input type="hidden" class="menu-item-classes" name="menu-item[<?php echo (int) $i; ?>][menu-item-classes]" />
71 - </li>
72 - <?php
73 - $i--;
74 - endforeach;
75 - ?>
76 - </ul>
77 - </div>
78 - <p class="button-controls">
79 - <span class="list-controls">
80 - </span>
81 - <span class="add-to-menu">
82 - <button type="submit" class="button-secondary submit-add-to-menu right" value="<?php esc_attr_e('Add to menu', 'boxzilla'); ?>" name="add-post-type-menu-item" id="submit-posttype-boxzilla-boxes"><?php esc_html_e('Add to menu', 'boxzilla'); ?></button>
83 - <span class="spinner"></span>
84 - </span>
85 - </p>
86 - </div>
87 - <?php
88 - }
42 + /**
43 + * Output menu links.
44 + */
45 + public function nav_menu_links() {
46 + $posts = $this->get_boxes();
89 47
90 - /**
91 - * Register customize new nav menu item types.
92 - *
93 - * @since 3.1.0
94 - * @param array $item_types Menu item types.
95 - * @return array
96 - */
97 - public function register_customize_nav_menu_item_types($item_types)
98 - {
99 - $item_types[] = [
100 - 'title' => esc_html__('Boxzilla Pop-ups', 'boxzilla'),
101 - 'type_label' => esc_html__('Boxzilla Pop-ups', 'boxzilla'),
102 - 'type' => 'boxzilla_nav',
103 - 'object' => 'boxzilla_box',
104 - ];
48 + ?>
49 + <div id="posttype-boxzilla-boxes" class="posttypediv">
50 + <div id="tabs-panel-boxzilla-boxes" class="tabs-panel tabs-panel-active">
51 + <ul id="boxzilla-boxes-checklist" class="categorychecklist form-no-clear">
52 + <?php
53 + $i = -1;
54 + foreach ( $posts as $key => $post ) :
55 + ?>
56 + <li>
57 + <label class="menu-item-title">
58 + <input type="checkbox" class="menu-item-checkbox" name="menu-item[<?php echo esc_attr( $i ); ?>][menu-item-object-id]" value="<?php echo esc_attr( $i ); ?>" /> <?php echo esc_html( $post->post_title ); ?>
59 + </label>
60 + <input type="hidden" class="menu-item-type" name="menu-item[<?php echo esc_attr( $i ); ?>][menu-item-type]" value="custom" />
61 + <input type="hidden" class="menu-item-title" name="menu-item[<?php echo esc_attr( $i ); ?>][menu-item-title]" value="<?php echo esc_html( $post->post_title ); ?>" />
62 + <input type="hidden" class="menu-item-url" name="menu-item[<?php echo esc_attr( $i ); ?>][menu-item-url]" value="<?php echo sprintf( '#boxzilla-%d', $post->ID ); ?>" />
63 + <input type="hidden" class="menu-item-classes" name="menu-item[<?php echo esc_attr( $i ); ?>][menu-item-classes]" />
64 + </li>
65 + <?php
66 + $i--;
67 + endforeach;
68 + ?>
69 + </ul>
70 + </div>
71 + <p class="button-controls">
72 + <span class="list-controls">
73 + </span>
74 + <span class="add-to-menu">
75 + <button type="submit" class="button-secondary submit-add-to-menu right" value="<?php esc_attr_e( 'Add to menu', 'boxzilla' ); ?>" name="add-post-type-menu-item" id="submit-posttype-boxzilla-boxes"><?php esc_html_e( 'Add to menu', 'boxzilla' ); ?></button>
76 + <span class="spinner"></span>
77 + </span>
78 + </p>
79 + </div>
80 + <?php
81 + }
105 82
106 - return $item_types;
107 - }
83 + /**
84 + * Register customize new nav menu item types.
85 + *
86 + * @since 3.1.0
87 + * @param array $item_types Menu item types.
88 + * @return array
89 + */
90 + public function register_customize_nav_menu_item_types( $item_types ) {
91 + $item_types[] = array(
92 + 'title' => __( 'Boxzilla Pop-ups', 'boxzilla' ),
93 + 'type_label' => __( 'Boxzilla Pop-ups', 'boxzilla' ),
94 + 'type' => 'boxzilla_nav',
95 + 'object' => 'boxzilla_box',
96 + );
108 97
109 - /**
110 - * Register account endpoints to customize nav menu items.
111 - *
112 - * @since 3.1.0
113 - * @param array $items List of nav menu items.
114 - * @param string $type Nav menu type.
115 - * @param string $object Nav menu object.
116 - * @param integer $page Page number.
117 - * @return array
118 - */
119 - public function register_customize_nav_menu_items($items = [], $type = '', $object = '', $page = 0)
120 - {
121 - if ('boxzilla_box' !== $object) {
122 - return $items;
123 - }
98 + return $item_types;
99 + }
124 100
125 - // Don't allow pagination since all items are loaded at once.
126 - if (0 < $page) {
127 - return $items;
128 - }
101 + /**
102 + * Register account endpoints to customize nav menu items.
103 + *
104 + * @since 3.1.0
105 + * @param array $items List of nav menu items.
106 + * @param string $type Nav menu type.
107 + * @param string $object Nav menu object.
108 + * @param integer $page Page number.
109 + * @return array
110 + */
111 + public function register_customize_nav_menu_items( $items = array(), $type = '', $object = '', $page = 0 ) {
112 + if ( 'boxzilla_box' !== $object ) {
113 + return $items;
114 + }
129 115
130 - $boxes = $this->get_boxes();
131 - foreach ($boxes as $i => $post) {
132 - $items[] = [
133 - 'id' => $i,
134 - 'title' => $post->post_title,
135 - 'type_label' => esc_html__('Custom Link', 'boxzilla'),
136 - 'url' => "#boxzilla-{$post->ID}",
137 - ];
138 - }
116 + // Don't allow pagination since all items are loaded at once.
117 + if ( 0 < $page ) {
118 + return $items;
119 + }
139 120
140 - return $items;
141 - }
121 + $boxes = $this->get_boxes();
122 + foreach ( $boxes as $i => $post ) {
123 + $items[] = array(
124 + 'id' => $i,
125 + 'title' => $post->post_title,
126 + 'type_label' => __( 'Custom Link', 'boxzilla' ),
127 + 'url' => sprintf( '#boxzilla-%d', $post->ID ),
128 + );
129 + }
130 +
131 + return $items;
132 + }
142 133 }