PluginProbe
UsersWP – Front-end login form, User Registration, User Profile & Members Directory plugin for WP / 1.0.19
UsersWP – Front-end login form, User Registration, User Profile & Members Directory plugin for WP v1.0.19
1.2.73 1.2.72 1.2.71 1.2.70 1.2.69 1.2.68 1.2.67 1.2.66 1.2.65 1.2.64 1.2.63 trunk 1.0.10 1.0.11 1.0.12 1.0.13 1.0.14 1.0.15 1.0.16 1.0.17 1.0.18 1.0.19 1.0.20 1.0.21 1.0.22 All 173 releases
userswp / admin / menus / class-menus.php

class-menus.php in UsersWP – Front-end login form, User Registration, User Profile & Members Directory plugin for WP 1.0.19, at admin/menus/class-menus.php

264 lines 9.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * The nav menu specific functionality of the plugin.
4 *
5 * @link http://wpgeodirectory.com
6 * @since 1.0.0
7 *
8 * @package userswp
9 * @subpackage userswp/admin/menus
10 */
11
12 /**
13 * The Nav menu specific functionality of the plugin.
14 *
15 * @package userswp
16 * @subpackage userswp/admin/menus
17 * @author GeoDirectory Team <info@wpgeodirectory.com>
18 */
19 class UsersWP_Menus {
20
21 /**
22 * Load new metabox for nav menu ui.
23 *
24 * @since 1.0.0
25 * @return void
26 */
27 public function users_wp_admin_menu_metabox() {
28 add_meta_box( 'add-users-wp-nav-menu', esc_html__( 'Users WP', 'userswp' ), array($this, 'users_wp_admin_do_wp_nav_menu_metabox'), 'nav-menus', 'side', 'default' );
29 add_action( 'admin_print_footer_scripts', array($this, 'users_wp_admin_wp_nav_menu_restrict_items') );
30 }
31
32 /**
33 * Build and populate the users_wp metabox into the menu manager ui.
34 *
35 * @since 1.0.0
36 * @return void
37 */
38 public function users_wp_admin_do_wp_nav_menu_metabox() {
39
40 global $nav_menu_selected_id;
41
42 $walker = new UsersWP_Walker_Nav_Menu_Checklist( false );
43 $args = array( 'walker' => $walker );
44
45 $post_type_name = 'users_wp';
46
47 $tabs = array();
48
49 $tabs['common']['label'] = __( 'Common', 'userswp' );
50 $tabs['common']['pages'] = $this->users_wp_nav_menu_get_common_pages();
51
52 $tabs['loggedin']['label'] = __( 'Logged-In', 'userswp' );
53 $tabs['loggedin']['pages'] = $this->users_wp_nav_menu_get_loggedin_pages();
54
55 $tabs['loggedout']['label'] = __( 'Logged-Out', 'userswp' );
56 $tabs['loggedout']['pages'] = $this->users_wp_nav_menu_get_loggedout_pages();
57
58 ?>
59
60 <div id="users-wp-menu" class="posttypediv">
61 <h4><?php esc_html_e( 'Common', 'userswp' ) ?></h4>
62 <p><?php esc_html_e( 'Common links are visible to everyone.', 'userswp' ) ?></p>
63
64 <div id="tabs-panel-posttype-<?php echo $post_type_name; ?>-common" class="tabs-panel tabs-panel-active">
65 <ul id="users_wp-menu-checklist-common" class="categorychecklist form-no-clear">
66 <?php
67 if ($tabs['common']['pages']) {
68 echo walk_nav_menu_tree( array_map( 'wp_setup_nav_menu_item', $tabs['common']['pages'] ), 0, (object) $args );
69 }
70 ?>
71 </ul>
72 </div>
73 <h4><?php esc_html_e( 'Logged-In', 'userswp' ) ?></h4>
74 <p><?php esc_html_e( 'Logged-In links are not visible to visitors who are not logged in.', 'userswp' ) ?></p>
75
76 <div id="tabs-panel-posttype-<?php echo $post_type_name; ?>-loggedin" class="tabs-panel tabs-panel-active">
77 <ul id="users_wp-menu-checklist-loggedin" class="categorychecklist form-no-clear">
78 <?php
79 if ($tabs['loggedin']['pages']) {
80 echo walk_nav_menu_tree( array_map( 'wp_setup_nav_menu_item', $tabs['loggedin']['pages'] ), 0, (object) $args );
81 }
82 ?>
83 </ul>
84 </div>
85
86 <h4><?php esc_html_e( 'Logged-Out', 'userswp' ) ?></h4>
87 <p><?php esc_html_e( 'Logged-Out links are not visible to users who are logged in.', 'userswp' ) ?></p>
88
89 <div id="tabs-panel-posttype-<?php echo $post_type_name; ?>-loggedin" class="tabs-panel tabs-panel-active">
90 <ul id="users_wp-menu-checklist-loggedin" class="categorychecklist form-no-clear">
91 <?php
92 if ($tabs['loggedout']['pages']) {
93 echo walk_nav_menu_tree( array_map( 'wp_setup_nav_menu_item', $tabs['loggedout']['pages'] ), 0, (object) $args );
94 }
95 ?>
96 </ul>
97 </div>
98
99 <p class="button-controls">
100 <span class="add-to-menu">
101 <input type="submit"<?php if ( function_exists( 'wp_nav_menu_disabled_check' ) ) : wp_nav_menu_disabled_check( $nav_menu_selected_id ); endif; ?> class="button-secondary submit-add-to-menu right" value="<?php esc_attr_e( 'Add to Menu', 'userswp' ); ?>" name="add-custom-menu-item" id="submit-users-wp-menu" />
102 <span class="spinner"></span>
103 </span>
104 </p>
105 </div><!-- /#users_wp-menu -->
106
107 <?php
108
109 }
110
111 /**
112 * Create a fake post object for the wp menu manager.
113 * This function creates the list of Logged-In only pages,
114 * for the admin menu manager.
115 *
116 * @since 1.0.0
117 * @return mixed A URL or an array of pages.
118 */
119 public function users_wp_nav_menu_get_common_pages() {
120
121 $users_page_data = uwp_get_page_url_data('users_page', 'array');
122
123 $users_wp_menu_items = array();
124
125
126 if (!empty($users_page_data)) {
127 $users_wp_menu_items[] = $users_page_data;
128 }
129
130
131 $users_wp_menu_items = apply_filters( 'users_wp_nav_menu_get_common_pages', $users_wp_menu_items );
132
133 $page_args = $this->users_wp_admin_wp_nav_menu_page_args($users_wp_menu_items);
134
135 return $page_args;
136
137 }
138
139 /**
140 * Create a fake post object for the wp menu manager.
141 * This function creates the list of Logged-In only pages,
142 * for the admin menu manager.
143 *
144 * @since 1.0.0
145 * @return mixed A URL or an array of pages.
146 */
147 public function users_wp_nav_menu_get_loggedin_pages() {
148
149 $account_page_data = uwp_get_page_url_data('account_page', 'array');
150 $change_page_data = uwp_get_page_url_data('change_page', 'array');
151 $profile_page_data = uwp_get_page_url_data('profile_page', 'array');
152
153 $users_wp_menu_items = array();
154
155 if (!empty($account_page_data)) {
156 $users_wp_menu_items[] = $account_page_data;
157 }
158
159 if (!empty($change_page_data)) {
160 $users_wp_menu_items[] = $change_page_data;
161 }
162
163 if (!empty($profile_page_data)) {
164 $users_wp_menu_items[] = $profile_page_data;
165 }
166
167 $users_wp_menu_items[] = array(
168 'name' => __( 'Log out', 'userswp' ),
169 'slug' => 'logout',
170 'link' => wp_login_url(),
171 );
172
173 $users_wp_menu_items = apply_filters( 'users_wp_nav_menu_get_loggedin_pages', $users_wp_menu_items );
174
175 $page_args = $this->users_wp_admin_wp_nav_menu_page_args($users_wp_menu_items);
176
177 return $page_args;
178
179 }
180
181 /**
182 * Create a fake post object for the wp menu manager.
183 * This function creates the list of Logged-Out only pages,
184 * for the admin menu manager.
185 *
186 * @since 1.0.0
187 * @return mixed A URL or an array of pages.
188 */
189 public function users_wp_nav_menu_get_loggedout_pages() {
190
191 $register_page_data = uwp_get_page_url_data('register_page', 'array');
192 $login_page_data = uwp_get_page_url_data('login_page', 'array');
193 $forgot_page_data = uwp_get_page_url_data('forgot_page', 'array');
194
195 $users_wp_menu_items = array();
196
197 if (!empty($register_page_data)) {
198 $users_wp_menu_items[] = $register_page_data;
199 }
200
201 if (!empty($login_page_data)) {
202 $users_wp_menu_items[] = $login_page_data;
203 }
204
205 if (!empty($forgot_page_data)) {
206 $users_wp_menu_items[] = $forgot_page_data;
207 }
208
209
210 $users_wp_menu_items = apply_filters( 'users_wp_nav_menu_get_loggedout_pages', $users_wp_menu_items );
211
212 $page_args = $this->users_wp_admin_wp_nav_menu_page_args($users_wp_menu_items);
213
214 return $page_args;
215
216 }
217
218 /**
219 * Restrict various items from view if editing a users_wp menu.
220 *
221 * @since 1.0.0
222 * @return void
223 */
224 public function users_wp_admin_wp_nav_menu_restrict_items() {
225 ?>
226 <script type="text/javascript">
227 jQuery( '#menu-to-edit').on( 'click', 'a.item-edit', function() {
228 var settings = jQuery(this).closest( '.menu-item-bar' ).next( '.menu-item-settings' );
229 var css_class = settings.find( '.edit-menu-item-classes' );
230
231 if( css_class.val().match("^users_wp-") ) {
232 css_class.attr( 'readonly', 'readonly' );
233 settings.find( '.field-url' ).css( 'display', 'none' );
234 }
235 });
236 </script>
237 <?php
238 }
239
240 public function users_wp_admin_wp_nav_menu_page_args($users_wp_menu_items) {
241 // If there's nothing to show, we're done
242 if ( count( $users_wp_menu_items ) < 1 ) {
243 return false;
244 }
245
246 $page_args = array();
247
248 foreach ( $users_wp_menu_items as $users_wp_item ) {
249 $page_args[ $users_wp_item['slug'] ] = (object) array(
250 'ID' => -1,
251 'post_title' => $users_wp_item['name'],
252 'post_author' => 0,
253 'post_date' => 0,
254 'post_excerpt' => $users_wp_item['slug'],
255 'post_type' => 'page',
256 'post_status' => 'publish',
257 'comment_status' => 'closed',
258 'guid' => $users_wp_item['link']
259 );
260 }
261
262 return $page_args;
263 }
264 }