PluginProbe
WP Directory Kit / 1.3.1
WP Directory Kit v1.3.1
1.5.6 1.5.5 1.5.4 1.5.3 trunk 1.1.0 1.1.6 1.1.8 1.2.3 1.2.4 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.3.8 1.4.0 1.4.1 All 35 releases
wpdirectorykit / application / views / wdk_listing / index.php

index.php in WP Directory Kit 1.3.1, at application/views/wdk_listing/index.php

871 lines 61.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * The template for Edit Listing.
4 *
5 * This is the template that form edit
6 *
7 */
8
9 if ( ! defined( 'ABSPATH' ) ) {
10 exit; // Exit if accessed directly.
11 }
12 ?>
13
14 <!-- This file should primarily consist of HTML with a little bit of PHP. -->
15 <div class="wrap wdk-wrap">
16 <h1 class="wp-heading-inline"><?php echo __('Add/Edit Listing', 'wpdirectorykit'); ?></h1>
17 <br /><br />
18 <div class="wdk-body">
19 <form method="post" class="form_listing" action="<?php echo esc_url(wmvc_current_edit_url()); ?>" enctype="multipart/form-data" novalidate="novalidate">
20 <?php wp_nonce_field( 'wdk-listing-edit_'.wmvc_show_data('ID', $db_data, 0), '_wpnonce'); ?>
21
22 <div class="postbox" style="display: block;">
23 <div class="postbox-header">
24 <h3 class="wide">
25 <?php echo __('Main Data', 'wpdirectorykit'); ?>
26 <?php if(get_option('wdk_sub_listings_enable')): ?>
27 <?php if(!empty(wmvc_show_data('listing_parent_post_id', $db_data))):?>
28 <?php echo __('Child Listing of', 'wpdirectorykit'); ?> <a target="_blank" href="<?php echo esc_url(admin_url('admin.php?page=wdk_listing&id='.wmvc_show_data('listing_parent_post_id', $db_data)));?>"><?php echo esc_html(wdk_field_value('post_title', wmvc_show_data('listing_parent_post_id', $db_data)));?></a>
29 <?php elseif(isset($_GET['parent_post_id']) && !empty($_GET['parent_post_id'])):?>
30 <?php echo __('Child Listing of', 'wpdirectorykit'); ?> <a target="_blank" href="<?php echo esc_url(admin_url('admin.php?page=wdk_listing&id='.intval($_GET['parent_post_id'])));?>"><?php echo esc_html(wdk_field_value('post_title', intval($_GET['parent_post_id'])));?></a>
31 <?php endif;?>
32 <?php endif;?>
33 </h3>
34 <?php if(!empty(wmvc_show_data('ID', $db_data))):?>
35
36 <?php if($calendar_id):?>
37 <a href="<?php echo esc_url(get_admin_url() . "admin.php?page=wdk-bookings-calendar&function=edit&id=".esc_attr($calendar_id)); ?>"
38 class="wdk-mr-5 button button-secondary alignright"
39 >
40 <span class="dashicons dashicons-calendar" style="margin-top: 4px;"></span> <?php echo __('Edit Calendar','wpdirectorykit')?>
41 </a>
42 <?php endif;?>
43
44 <a href="<?php echo esc_url(get_admin_url() . "admin.php?page=wdk-duplicate-listing&function=duplicate&listing_post_id=".wmvc_show_data('ID', $db_data)); ?>"
45 <?php if ( !file_exists(ABSPATH . 'wp-content/plugins/wdk-duplicate-listing/wdk-duplicate-listing.php') ):?>
46 class="wdk-mr-5 button button-secondary alignright wdk-pro"
47 data-button-succuss = "<?php echo esc_attr__('Purchase Now', 'wpdirectorykit');?>"
48 data-title = "<?php echo esc_attr__('Your version doesn\'t support this functionality, please upgrade', 'wpdirectorykit');?>"
49 data-content = "<?php echo esc_attr__('We constantly maintain compatibility and improving this plugin for living, please support us and purchase, we provide very reasonable prices and will always do our best to help you!','wpdirectorykit');?>"
50 data-action = "https://www.wpdirectorykit.com/plugins/wp-directory-duplicate-listing.html"
51 <?php elseif ( file_exists(ABSPATH . 'wp-content/plugins/wdk-duplicate-listing/wdk-duplicate-listing.php') && !function_exists('run_wdk_duplicate_listing')):?>
52 class="wdk-mr-5 button button-secondary alignright wdk-pro"
53 data-button-succuss = "<?php echo esc_attr__('Activate addon WDK Duplicate Listing', 'wpdirectorykit');?>"
54 data-title = "<?php echo esc_attr__('Your version doesn\'t support this functionality, please upgrade', 'wpdirectorykit');?>"
55 data-content = "<?php echo esc_attr__('We constantly maintain compatibility and improving this plugin for living, please support us and purchase, we provide very reasonable prices and will always do our best to help you!','wpdirectorykit');?>"
56
57 data-action = "<?php echo esc_url(get_admin_url() . "plugins.php?plugin_status=all#activate-wdk-duplicate-listing"); ?>"
58 <?php else:?>
59 class="wdk-mr-5 button button-secondary alignright"
60 <?php endif;?>
61 >
62 <span class="dashicons dashicons-admin-page" style="margin-top: 4px;"></span> <?php echo __('Duplicate Listing','wpdirectorykit')?>
63 </a>
64 <a href="<?php echo get_permalink(wmvc_show_data('ID', $db_data)); ?>" title="<?php echo esc_attr__('View','wpdirectorykit');?>" class="button button-secondary alignright" target="_blank" style="margin-right:15px;"><span class="dashicons dashicons-visibility" style="margin-top: 4px;"></span> <?php echo __('View listing', 'wpdirectorykit'); ?></a>
65 <?php endif;?>
66 </div>
67 <div class="inside">
68 <?php
69
70 $success_message = NULL;
71 if(isset($_GET['custom_message']))
72 $success_message = esc_html(urldecode($_GET['custom_message']));
73
74 if(function_exists('run_wdk_bookings')) {
75 /* if booking addon exists, show custom message with link to edit calendar */
76 $success_message .= esc_html__('Successfully saved','wpdirectorykit').'. <a target="_blank" href="'. admin_url('admin.php?page=wdk-bookings-calendar&function=edit&id='.$calendar_id.'&post_id='.wmvc_show_data('ID', $db_data)).'">'.esc_html__('To define calendar availability dates please click here', 'wpdirectorykit').'</a>';
77 }
78
79 $form->messages('class="alert alert-danger"', $success_message);
80 ?>
81 <div class="wdk-side-content">
82 <div class="wdk-col main">
83 <table class="form-table" role="presentation">
84 <tbody>
85 <tr>
86 <th scope="row"><label for="post_title"><?php echo __('Title', 'wpdirectorykit'); ?>*</label></th>
87 <td><input name="post_title" type="text" id="post_title" value="<?php echo wmvc_show_data('post_title', $db_data, ''); ?>" placeholder="<?php echo esc_html__('Title', 'wpdirectorykit');?>" class="regular-text"></td>
88 </tr>
89 <?php if(get_option('wdk_is_address_enabled', FALSE)): ?>
90 <tr>
91 <th scope="row"><label for="input_address"><?php echo __('Address', 'wpdirectorykit'); ?></label></th>
92 <td>
93 <input name="address" type="text" id="input_address" value="<?php echo wmvc_show_data('address', $db_data, ''); ?>" placeholder="<?php echo esc_html__('Address', 'wpdirectorykit');?>" class="regular-text">
94 <p class="description" id="input_address-description"><?php echo __('After you enter address system will try to autodetect and pin location on map, then you can drag and drop pin on map to fine tune location','wpdirectorykit'); ?></p>
95 </td>
96 </tr>
97 <?php endif; ?>
98
99 <?php if(get_option('wdk_sub_listings_enable')): ?>
100
101 <?php if(!empty(wmvc_show_data('listing_parent_post_id', $db_data)) || (isset($_GET['parent_post_id']) && !empty($_GET['parent_post_id']))):?>
102 <tr class="<?php echo (defined( 'WP_DEBUG' ) && WP_DEBUG) ? '': 'hidden';?>">
103 <th scope="row"><label for="listing_parent_post_id"><?php echo __('Parent ID', 'wpdirectorykit'); ?>*</label></th>
104 <td>
105 <?php if(!empty(wmvc_show_data('listing_parent_post_id', $db_data))):?>
106 <input readonly name="listing_parent_post_id" type="text" id="listing_parent_post_id" value="<?php echo wmvc_show_data('listing_parent_post_id', $db_data, ''); ?>" placeholder="<?php echo esc_html__('listing_parent_post_id', 'wpdirectorykit');?>" class="regular-text">
107 <?php elseif(isset($_GET['parent_post_id']) && !empty($_GET['parent_post_id'])):?>
108 <input readonly name="listing_parent_post_id" type="text" id="listing_parent_post_id" value="<?php echo esc_attr(intval($_GET['parent_post_id'])); ?>" placeholder="<?php echo esc_html__('listing_parent_post_id', 'wpdirectorykit');?>" class="regular-text">
109 <?php endif;?>
110 </td>
111 </tr>
112 <?php else:?>
113 <?php if(!empty(wmvc_show_data('ID', $db_data)) && empty(wmvc_show_data('parent_post_id', $db_data))):?>
114 <tr>
115 <th scope="row"><label for="listing_related_ids"><?php echo __('Related', 'wpdirectorykit'); ?></label></th>
116 <td>
117 <div class="wdk-listing-childs-wrap">
118
119 <div class="wdk-listing-childs-drop">
120 <?php $related_ids = wmvc_show_data('listing_related_ids', $db_data, ''); ?>
121 <?php if(!empty(wmvc_show_data('listing_related_ids', $db_data, ''))):?>
122 <?php foreach (explode(',',wmvc_show_data('listing_related_ids', $db_data, '')) as $key => $child_idlisting):?>
123
124 <?php
125 if(empty(wdk_field_value('post_id', $child_idlisting))) {
126 $related_ids = trim(str_replace(','.$child_idlisting.'','', ','.$related_ids.','),',');
127 continue;
128 }
129 ?>
130
131 <div class="drop-listing-item" data-idlisting="<?php echo esc_attr($child_idlisting);?>">
132 <h3 class="handle">
133 <a target="_blank" href="<?php echo esc_url(admin_url('admin.php?page=wdk_listing&id='.$child_idlisting));?>" class="title"><?php echo esc_html('#'.$child_idlisting.', '.wdk_field_value('post_title', $child_idlisting));?></a>
134 <a target="_blank" class="btn" href="<?php echo esc_url(admin_url('admin.php?page=wdk_listing&id='.$child_idlisting));?>" target="_blank" title="Edit"><span class="dashicons dashicons-edit"></span></a>
135 <a class="question_sure btn remove" href="#" title="Remove"><span class="dashicons dashicons-no"></span></a>
136 </h3>
137 </div>
138 <?php endforeach;?>
139 <?php endif;?>
140 </div>
141 <input readonly name="listing_related_ids" type="hidden" id="listing_related_ids" value="<?php echo esc_attr($related_ids); ?>" class="regular-text">
142
143 <div class="wdk-field-edit">
144 <div class="wdk-field-container" style="padding: 0;">
145 <?php echo wdk_treefield_option('new_listing_id', 'listing_m', NULL, 'post_title', '', __('Not Selected', 'wpdirectorykit'),'',FALSE,'listing_parent_post_id IS NOT NULL');?>
146 <a class="button button-primary add_new_listing" style="margin-left: 5px" href="#"><?php echo __('Add', 'wpdirectorykit'); ?></a>
147 </div>
148 </div>
149 <a target="_blank" class="button button-secondary" href="<?php echo esc_url(admin_url('admin.php?page=wdk_listing&parent_post_id='.wmvc_show_data('ID', $db_data)));?>"><?php echo __('Add New Related Listing', 'wpdirectorykit'); ?></a>
150 </div>
151 </td>
152 </tr>
153 <?php endif;?>
154
155 <?php endif;?>
156
157 <?php endif;?>
158
159 <?php if(get_option('wdk_is_category_enabled', FALSE)): ?>
160 <?php if(wdk_get_option('wdk_multi_categories_edit_field_type') == 'wdk_treefield_dropdown'):?>
161 <tr>
162 <th scope="row"><label for="category_id"><?php echo __('Category', 'wpdirectorykit'); ?><?php if(wdk_get_option('wdk_listing_category_required')):?>*<?php endif;?></label></th>
163 <td class="wdk_multi_treefield_dropdown_container">
164 <?php
165 global $Winter_MVC_WDK;
166 $Winter_MVC_WDK->load_helper('listing');
167 $Winter_MVC_WDK->model('category_m');
168 $field_value = wmvc_show_data('category_id', $db_data, '');
169 $field_key = 'category_id';
170
171 $categories = array();
172 if(!empty($field_value)) {
173 $categories[] = $field_value;
174 $category = $Winter_MVC_WDK->category_m->get($field_value, TRUE);
175
176 while(!empty($category->parent_id)) {
177 $category = $Winter_MVC_WDK->category_m->get($category->parent_id, TRUE);
178 $categories[] = $category->idcategory;
179 }
180 krsort($categories);
181 } else {
182 $categories[] = 0;
183 }
184
185 wp_enqueue_style('wdk-treefield-dropdown');
186 wp_enqueue_script('wdk-treefield-dropdown');
187 wp_enqueue_style( 'dashicons' );
188
189
190 $level_max = $Winter_MVC_WDK->category_m->get_max_level();
191
192 $placeholder = [
193 0 => esc_html__('Select Categories','wpdirectorykit'),
194 1 => esc_html__('Select Sub Categories','wpdirectorykit'),
195 2 => esc_html__('Select Sub Categories','wpdirectorykit'),
196 3 => esc_html__('Select Sub Categories','wpdirectorykit'),
197 4 => esc_html__('Select Sub Categories','wpdirectorykit'),
198 5 => esc_html__('Select Sub Categories','wpdirectorykit'),
199 ];
200 ?>
201
202 <input name="<?php echo esc_attr($field_key); ?>" type="hidden" value="<?php echo esc_attr($field_value); ?>">
203 <?php
204 $level = 0;
205 $current = NULL;
206
207 foreach ($categories as $category) {
208 $current = $Winter_MVC_WDK->category_m->get($category, TRUE);
209
210 $list = $Winter_MVC_WDK->category_m->get_by(array('parent_id = '.$current->parent_id => NULL));
211
212 if(isset($placeholder[$level])) {
213 $values_list = array(''=> $placeholder[$level]);
214
215 } else {
216 $values_list = array(''=> esc_html__('Select Sub Categories','wpdirectorykit'));
217 }
218
219 foreach ($list as $list_value) {
220 $values_list[$list_value->idcategory] = $list_value->category_title;
221 }
222 ?>
223
224 <div data-level="<?php echo esc_attr($level);?>" data-field="<?php echo esc_attr($field_key); ?>" class="wdk_multi_treefield_dropdown wdk_treefield_dropdown">
225 <div class="wdk-field-group">
226 <?php echo wmvc_select_option('category_'.$level, $values_list, $category, 'class="wdk-control"');?>
227 </div>
228 </div>
229
230 <?php
231 $level++;
232 }
233
234 if($level<$level_max ) {
235 for (; $level<$level_max;) {
236
237 if(isset($placeholder[$level])) {
238 $values_list = array(''=> $placeholder[$level]);
239 } else {
240 $values_list = array(''=> esc_html__('Select Sub Categories','wpdirectorykit'));
241 }
242
243 if($category) {
244 $list = $Winter_MVC_WDK->category_m->get_by(array('parent_id = '.$category => NULL));
245 foreach ($list as $list_value) {
246 $values_list[$list_value->idcategory] = $list_value->category_title;
247 }
248 $category = NULL;
249 }
250
251 ?>
252 <div data-level="<?php echo esc_attr($level);?>" data-field="<?php echo esc_attr($field_key); ?>" class="wdk_multi_treefield_dropdown wdk_treefield_dropdown">
253 <div class="wdk-field-group">
254 <?php echo wmvc_select_option('category_'.$level, $values_list, NULL, 'class="wdk-control"');?>
255 </div>
256 </div>
257
258 <?php
259 $level++;
260 }
261 }
262 ?>
263 </td>
264 </tr>
265 <?php else: ?>
266 <tr>
267 <th scope="row"><label for="category_id"><?php echo __('Category', 'wpdirectorykit'); ?><?php if(wdk_get_option('wdk_listing_category_required')):?>*<?php endif;?></label></th>
268 <td >
269 <div class="wdk-field-edit edittable">
270 <div class="wdk-field-container">
271 <?php echo wdk_treefield_option ('category_id', 'category_m', wmvc_show_data('category_id', $db_data, ''), 'category_title', '', __('Not Selected', 'wpdirectorykit'));?>
272 </div>
273 </div>
274 </td>
275 </tr>
276 <?php endif; ?>
277 <?php endif; ?>
278
279 <?php if(get_option('wdk_is_category_enabled', FALSE) && get_option('wdk_multi_categories_other_enable', FALSE)): ?>
280 <tr>
281 <th scope="row"><label for="listing_categories"><?php echo __('More Categories', 'wpdirectorykit'); ?></label></th>
282 <td class="">
283 <?php echo wdk_treefield_select_ajax ('listing_sub_categories[]', 'category_m', wmvc_show_data('listing_sub_categories', $db_data, '', TRUE, TRUE), 'category_title', 'idcategory', '', __('All Categories', 'wpdirectorykit'), '', 'data-limit="10"');?>
284 </td>
285 </tr>
286 <?php endif; ?>
287
288 <?php if(get_option('wdk_is_location_enabled', FALSE)): ?>
289 <?php if(wdk_get_option('wdk_multi_categories_edit_field_type') == 'wdk_treefield_dropdown'):?>
290 <tr>
291 <th scope="row"><label for="location_id"><?php echo __('Location', 'wpdirectorykit'); ?><?php if(wdk_get_option('wdk_listing_category_required')):?>*<?php endif;?></label></th>
292 <td class="wdk_multi_treefield_dropdown_container">
293 <?php
294 global $Winter_MVC_WDK;
295 $Winter_MVC_WDK->load_helper('listing');
296 $Winter_MVC_WDK->model('location_m');
297 $field_value = wmvc_show_data('location_id', $db_data, '');
298 $field_key = 'location_id';
299
300 $locations = array();
301 if(!empty($field_value)) {
302 $locations[] = $field_value;
303 $location = $Winter_MVC_WDK->location_m->get($field_value, TRUE);
304
305 while(!empty($location->parent_id)) {
306 $location = $Winter_MVC_WDK->location_m->get($location->parent_id, TRUE);
307 $locations[] = $location->idlocation;
308 }
309 krsort($locations);
310 } else {
311 $locations[] = 0;
312 }
313
314 wp_enqueue_style('wdk-treefield-dropdown');
315 wp_enqueue_script('wdk-treefield-dropdown');
316 wp_enqueue_style( 'dashicons' );
317
318 $level_max = $Winter_MVC_WDK->location_m->get_max_level();
319
320 $placeholder = [
321 0 => esc_html__('Select Country','wpdirectorykit'),
322 1 => esc_html__('Select City','wpdirectorykit'),
323 2 => esc_html__('Select Neighborhood','wpdirectorykit'),
324 3 => esc_html__('Select Sub Area','wpdirectorykit'),
325 4 => esc_html__('Select Sub Area','wpdirectorykit'),
326 5 => esc_html__('Select Sub Area','wpdirectorykit'),
327 ];
328 ?>
329
330 <input name="<?php echo esc_attr($field_key); ?>" type="hidden" value="<?php echo esc_attr($field_value); ?>">
331 <?php
332 $level = 0;
333 $current = NULL;
334
335 foreach ($locations as $location) {
336 $current = $Winter_MVC_WDK->location_m->get($location, TRUE);
337
338 $list = $Winter_MVC_WDK->location_m->get_by(array('parent_id = '.$current->parent_id => NULL));
339
340 if(isset($placeholder[$level])) {
341 $values_list = array(''=> $placeholder[$level]);
342 } else {
343 $values_list = array(''=> esc_html__('Select Sub Area','wpdirectorykit'));
344 }
345
346 foreach ($list as $list_value) {
347 $values_list[$list_value->idlocation] = $list_value->location_title;
348 }
349 ?>
350
351 <div data-level="<?php echo esc_attr($level);?>" data-field="<?php echo esc_attr($field_key); ?>" class="wdk_multi_treefield_dropdown wdk_treefield_dropdown">
352 <div class="wdk-field-group">
353 <?php echo wmvc_select_option('location_'.$level, $values_list, $location, 'class="wdk-control"');?>
354 </div>
355 </div>
356
357 <?php
358 $level++;
359 }
360
361 if($level<$level_max ) {
362 for (; $level<$level_max;) {
363
364 if(isset($placeholder[$level])) {
365 $values_list = array(''=> $placeholder[$level]);
366 } else {
367 $values_list = array(''=> esc_html__('Select Sub Area','wpdirectorykit'));
368 }
369
370
371 if(isset($placeholder[$level])) {
372 $values_list = array(''=> $placeholder[$level]);
373 } else {
374 $values_list = array(''=> esc_html__('Select Sub Area','wpdirectorykit'));
375 }
376
377 if($location) {
378 $list = $Winter_MVC_WDK->location_m->get_by(array('parent_id = '.$location => NULL));
379 foreach ($list as $list_value) {
380 $values_list[$list_value->idlocation] = $list_value->location_title;
381 }
382 $location = NULL;
383 }
384
385 ?>
386 <div data-level="<?php echo esc_attr($level);?>" data-field="<?php echo esc_attr($field_key); ?>" class="wdk_multi_treefield_dropdown wdk_treefield_dropdown">
387 <div class="wdk-field-group">
388 <?php echo wmvc_select_option('location_'.$level, $values_list, NULL, 'class="wdk-control"');?>
389 </div>
390 </div>
391
392 <?php
393 $level++;
394 }
395 }
396 ?>
397 </td>
398 </tr>
399 <?php else: ?>
400 <tr>
401 <th scope="row"><label for="location_id"><?php echo __('Location', 'wpdirectorykit'); ?><?php if(wdk_get_option('wdk_listing_category_required')):?>*<?php endif;?></label></th>
402 <td >
403 <div class="wdk-field-edit edittable">
404 <div class="wdk-field-container">
405 <?php echo wdk_treefield_option ('location_id', 'location_m', wmvc_show_data('location_id', $db_data, ''), 'location_title', '', __('Not Selected', 'wpdirectorykit'));?>
406 </div>
407 </div>
408 </td>
409 </tr>
410 <?php endif; ?>
411 <?php endif; ?>
412
413 <?php if(get_option('wdk_is_location_enabled', FALSE) && get_option('wdk_multi_locations_other_enable', FALSE)): ?>
414 <tr>
415 <th scope="row"><label for="listing_agents"><?php echo __('More Locations', 'wpdirectorykit'); ?></label></th>
416 <td class="">
417 <?php echo wdk_treefield_select_ajax ('listing_sub_locations[]', 'location_m', wmvc_show_data('listing_sub_locations', $db_data, '', TRUE, TRUE), 'location_title', 'idlocation', '', __('All Locations', 'wpdirectorykit'), '', 'data-limit="10"');?>
418 </td>
419 </tr>
420 <?php endif; ?>
421 <?php if(wdk_get_option('wdk_is_user_editor_enabled', FALSE)): ?>
422 <tr>
423 <th scope="row"><label for="user_id_editor"><?php echo __('Agent Editor', 'wpdirectorykit'); ?></label></th>
424 <td>
425 <div class="wdk-field-edit edittable">
426 <div class="wdk-field-container">
427 <?php echo wdk_treefield_option('user_id_editor', 'user_m', wmvc_show_data('user_id_editor', $db_data, ''), 'display_name', '', __('Not Selected', 'wpdirectorykit'));?>
428 </div>
429 </div>
430 </td>
431 </tr>
432 <?php endif; ?>
433 <?php if(wdk_get_option('wdk_is_alt_agent_enabled', FALSE)): ?>
434 <?php if(function_exists('run_wdk_membership')): ?>
435 <tr>
436 <th scope="row"><label for="listing_agents"><?php echo __('Alternative Agents', 'wpdirectorykit'); ?></label></th>
437 <td class="">
438 <?php echo wdk_user_select_ajax ('listing_agents[]', array_keys( wmvc_show_data('listing_agents', $db_data, '', TRUE, TRUE)), __('Add Agents', 'wpdirectorykit'));?>
439 </td>
440 <?php if(false):?>
441 <td class="agents_group">
442 <?php echo wdk_select_multi_option('listing_agents[]', wmvc_show_data('listing_agents', $db_data, '', TRUE, TRUE), array_keys( wmvc_show_data('listing_agents', $db_data, '', TRUE, TRUE)), "id='listing_agents'");?>
443 <div class="agent_add form-inline">
444 <div class="wdk-field-edit">
445 <div class="wdk-field-container">
446 <?php echo wdk_treefield_option('agent_id', 'user_m', '', 'display_name', '', __('Not Selected', 'wpdirectorykit'));?>
447 </div>
448 </div>
449 <button type="button" class="button button-primary add_button"><?php echo __('Add agent', 'wpdirectorykit'); ?></button>
450 <button type="button" title="<?php echo __('Remove latest on list', 'wpdirectorykit'); ?>" class="button button-secondary rem_button"><?php echo __('X', 'wpdirectorykit'); ?></button>
451 </div>
452 </td>
453 <?php endif; ?>
454 </tr>
455 <?php endif; ?>
456 <?php endif; ?>
457
458 <?php if(wdk_get_option('wdk_membership_is_enable_subscriptions') && function_exists('run_wdk_membership')):?>
459 <tr>
460 <th scope="row"><label for="subscription_id"><?php echo __('Membership Subscription', 'wpdirectorykit'); ?></label></th>
461 <td>
462 <?php
463 echo wmvc_select_option('subscription_id', $subscriptions, wmvc_show_data('subscription_id', $db_data, ''), "id='subscription_id'", __('Not Selected', 'wpdirectorykit'));
464 ?>
465 </td>
466 </tr>
467 <?php endif;?>
468
469 <?php if(function_exists('run_wdk_payments') && isset($packages)):?>
470 <tr>
471 <th scope="row"><label for="packages"><?php echo __('Package', 'wpdirectorykit'); ?></label></th>
472 <td>
473 <?php
474 echo wmvc_select_option('package_id', $packages, wmvc_show_data('package_id', $db_data, ''), "id='packages'", __('Not Selected', 'wpdirectorykit'));
475 ?>
476 </td>
477 </tr>
478 <?php endif;?>
479
480 <?php if(wdk_get_option('wdk_is_rank_enabled', FALSE)): ?>
481 <tr>
482 <th scope="row"><label for="rank"><?php echo __('Rank', 'wpdirectorykit'); ?></label></th>
483 <td>
484 <input <?php if(!wmvc_user_in_role('administrator') && !current_user_can('wdk_listings_manage')):?> readonly="readonly" <?php endif;?> name="rank" type="number" id="rank" value="<?php echo wmvc_show_data('rank', $db_data, ''); ?>" placeholder="<?php echo esc_html__('Rank', 'wpdirectorykit');?>" class="regular-text">
485 <p class="description" id="input_rank-description"><b><?php echo __('Rank', 'wpdirectorykit'); ?></b> <?php echo esc_html__('is number, higher number means a better position/rank in results.','wpdirectorykit');?></p>
486 </td>
487 </tr>
488 <?php endif;?>
489
490 <?php if(wdk_get_option('wdk_is_featured_enabled', FALSE)): ?>
491 <tr>
492 <th scope="row"><label for="is_featured"><?php echo __('Is Featured', 'wpdirectorykit'); ?></label></th>
493 <td>
494 <input name="is_featured" type="checkbox" id="is_featured" value="1" <?php echo !empty(wmvc_show_data('is_featured', $db_data, ''))?'checked':''; ?>><label for="is_featured"><?php echo __('Make it featured','wpdirectorykit'); ?></label>
495 <p class="description" id="is_featured-description"><?php echo __('Featured/Highlighted listing in results','wpdirectorykit'); ?></p>
496 </td>
497 </tr>
498 <?php endif;?>
499
500 <tr>
501 <th scope="row"><label for="is_activated"><?php echo __('Is Activated', 'wpdirectorykit'); ?></label></th>
502 <td>
503 <input name="is_activated" type="checkbox" id="is_activated" value="1" <?php echo !empty(wmvc_show_data('is_activated', $db_data, ''))?'checked':''; ?>><label for="is_activated"><?php echo __('Make it available for public','wpdirectorykit'); ?></label>
504 <p class="description" id="is_activated-description"><?php echo __('When listing is activated will be visible on frontend','wpdirectorykit'); ?></p>
505 </td>
506 </tr>
507 <?php if(function_exists('run_wdk_membership')):?>
508 <tr>
509 <th scope="row"><label for="is_approved"><?php echo __('Is Approved', 'wpdirectorykit'); ?></label></th>
510 <td>
511 <input name="is_approved" type="checkbox" id="is_approved" value="1" <?php echo !empty(wmvc_show_data('is_approved', $db_data, ''))?'checked':''; ?>><label for="is_approved"><?php echo __('Make it approved for public','wpdirectorykit'); ?></label>
512 <p class="description" id="is_approved-description"><?php echo __('When listing is approved will be visible on frontend','wpdirectorykit'); ?> (<?php echo __('only admin can approve','wpdirectorykit'); ?>)</p>
513 </td>
514 </tr>
515 <?php endif;?>
516 <tr>
517 <th scope="row"><label for="slug"><?php echo __('Slug', 'wpdirectorykit'); ?></label></th>
518 <td>
519 <input <?php if(!wmvc_user_in_role('administrator') && !current_user_can('wdk_listings_manage')):?> readonly="readonly" <?php endif;?> name="slug" type="text" id="slug" value="<?php echo wmvc_show_data('post_name', $db_data, ''); ?>" placeholder="<?php echo esc_html__('Slug', 'wpdirectorykit');?>" class="regular-text">
520 </td>
521 </tr>
522 </tbody>
523 </table>
524 </div>
525 <div class="wdk-col sidebar">
526 <?php if(get_option('wdk_is_address_enabled', FALSE)): ?>
527 <div class="clearfix">
528 <a href="#" class="button button-secondary alignright wdk_action_clear_gps_reset_map"><?php echo esc_html__('Clear Gps coordinates', 'wpdirectorykit');?></a>
529 </div>
530 <br/>
531 <div id="map" class="listing_edit_map"></div>
532 <br/>
533 <p class="alert alert-info"><?php echo esc_html__('Drag and drop pin to desired location','wpdirectorykit');?></p>
534 <div class="wdk-field-edit inline">
535 <label for="listing_gps"><?php echo esc_html__('GPS','wpdirectorykit');?>:</label>
536 <div class="wdk-field-container">
537 <input name="lat" readonly="readonly" type="text" id="input_lat" value="<?php echo wmvc_show_data('lat', $db_data, ''); ?>" class="regular-text" placeholder="<?php echo esc_html__('lat', 'wpdirectorykit');?>">
538 <input name="lng" readonly="readonly" type="text" id="input_lng" value="<?php echo wmvc_show_data('lng', $db_data, ''); ?>" class="regular-text" placeholder="<?php echo esc_html__('lng', 'wpdirectorykit');?>">
539 </div>
540 </div>
541 <?php endif;?>
542 <?php if(!empty($edit_log)):?>
543 <div class="wdk_editlog">
544 <table class="table table-bordered">
545 <caption><?php echo esc_html__('Edit History', 'wpdirectorykitesc_html(');?></caption>
546 <thead>
547 <tr>
548 <th><?php echo esc_html__('User', 'wpdirectorykitesc_html(');?></th>
549 <th><?php echo esc_html__('Date', 'wpdirectorykitesc_html(');?></th>
550 <th><?php echo esc_html__('IP', 'wpdirectorykitesc_html(');?></th>
551 </tr>
552 </thead>
553 <tbody>
554 <?php foreach ($edit_log as $log_row):?>
555 <tr>
556 <td><?php echo esc_html($log_row->display_name);?></td>
557 <td><?php echo esc_html(wdk_get_date($log_row->date));?></td>
558 <td><?php echo esc_html($log_row->ip);?></td>
559 </tr>
560 <?php endforeach;?>
561
562 </tbody>
563 </table>
564 </div>
565
566 <?php endif;?>
567
568 </div>
569 </div>
570
571 <?php if(wdk_get_option('wdk_is_post_content_enable', FALSE)): ?>
572 <table class="form-table" role="presentation">
573 <tbody>
574 <tr>
575 <th scope="row"><label for="post_content"><?php echo __('Content', 'wpdirectorykit'); ?>*</label></th>
576 <td><?php wp_editor(wmvc_show_data('post_content', $db_data, ''), 'post_content', array('media_buttons' => FALSE)); ?></td>
577 </tr>
578 </tbody>
579 </table>
580 <?php endif;?>
581 </div>
582 </div>
583 <div class="postbox listing_custom_fields" style="display: block;">
584 <div class="inside wdk-row">
585 <?php if(count($fields) == 0): ?>
586 <div class="wdk-col-12">
587 <div class="alert alert-success mb0"><p><?php echo __('Fields doesn\'t exists','wpdirectorykit'); ?> <a href="<?php echo esc_url(get_admin_url() . "admin.php?page=wdk_fields"); ?>" class="button button-primary" id="add_field_button"><?php echo __('Manage Fields','wpdirectorykit'); ?></a></p></div>
588 </div>
589 <?php endif; ?>
590
591 <?php echo wdk_generate_fields($fields, $db_data); ?>
592 </div>
593 </div>
594 <?php if(!wdk_get_option('wdk_listing_plangs_documents_disable')):?>
595 <div class="postbox" style="display: block;">
596 <div class="postbox-header">
597 <h3><?php echo __('Listing plans and documents', 'wpdirectorykit'); ?></h3>
598 </div>
599 <div class="inside">
600 <p class="alert alert-info"><?php echo __('Drag and drop image to change order', 'wpdirectorykit'); ?></p>
601 <?php
602 echo wdk_upload_multi_files('listing_plans_documents', wmvc_show_data('listing_plans_documents', $db_data, ''));
603 ?>
604 </div>
605 </div>
606 <?php endif;?>
607 <?php if(!wdk_get_option('wdk_listing_images_disable')):?>
608 <div class="postbox" style="display: block;">
609 <div class="postbox-header">
610 <h3><?php echo __('Listing Images/Videos', 'wpdirectorykit'); ?></h3>
611 </div>
612 <div class="inside">
613 <p class="alert alert-info"><?php echo __('Drag and drop image to change order', 'wpdirectorykit'); ?></p>
614 <?php
615 echo wmvc_upload_multiple('listing_images', wmvc_show_data('listing_images', $db_data, ''));
616 ?>
617 </div>
618 </div>
619 <?php endif;?>
620 <button type="submit" class="button button-primary wdk-submit-loading out"><?php echo esc_html__('Save Changes','wpdirectorykit'); ?></button>
621 </form>
622 </div>
623
624 <?php do_action('wpdirectorykit/admin/listing/edit/after_form', $db_data);?>
625 </div>
626 <?php
627 wp_enqueue_style('leaflet');
628 wp_enqueue_script('leaflet');
629
630 wp_enqueue_style('wdk-notify');
631 wp_enqueue_script('wdk-notify');
632
633 wp_enqueue_style('jquery-confirm');
634 wp_enqueue_script('jquery-confirm');
635 ?>
636
637 <?php
638 wp_enqueue_script( 'jquery-ui-core', false, array('jquery') );
639 wp_enqueue_script( 'jquery-ui-sortable', false, array('jquery') );
640 ?>
641
642 <script>
643 // Generate table
644 jQuery(document).ready(function($) {
645
646 <?php if(get_option('wdk_is_address_enabled', FALSE)): ?>
647 var wdk_edit_map_marker,wdk_timerMap,wdk_edit_map;
648 wdk_edit_map = L.map('map', {
649 center: [<?php echo (wmvc_show_data('lat', $db_data) ?: get_option('wdk_default_lat', 51.505)); ?>, <?php echo (wmvc_show_data('lng', $db_data) ?: get_option('wdk_default_lng', -0.09)); ?>],
650 zoom: 4,
651 });
652
653 L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
654 attribution: '&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'
655 }).addTo(wdk_edit_map);
656
657 wdk_edit_map_marker = L.marker(
658 [<?php echo (wmvc_show_data('lat', $db_data) ?: get_option('wdk_default_lat', 51.505)); ?>, <?php echo (wmvc_show_data('lng', $db_data) ?: get_option('wdk_default_lng', -0.09)); ?>],
659 {draggable: true}
660 ).addTo(wdk_edit_map);
661
662 wdk_edit_map_marker.on('dragend', function(event){
663 clearTimeout(wdk_timerMap);
664 var marker = event.target;
665 var {lat,lng} = marker.getLatLng();
666 $('#input_lat').val(lat);
667 $('#input_lng').val(lng);
668 //retrieved the position
669 });
670
671 /* reset map and gps */
672 $('.wdk_action_clear_gps_reset_map').on('click', function(e){
673 e.preventDefault();
674 $('#input_lat,#input_lng').val('');
675
676 /* move marker on default poisition */
677 wdk_edit_map_marker.setLatLng([<?php echo esc_js(get_option('wdk_default_lat', 51.505)); ?>, <?php echo esc_js(get_option('wdk_default_lng', -0.09)); ?>]).update();
678 wdk_edit_map.panTo(new L.LatLng(<?php echo esc_js(get_option('wdk_default_lat', 51.505)); ?>, <?php echo esc_js(get_option('wdk_default_lng', -0.09)); ?>));
679 });
680
681 wdk_edit_map.on('click', function(e){
682 let lat = e.latlng.lat;
683 let lng = e.latlng.lng;
684
685 wdk_edit_map_marker.setLatLng([lat, lng]).update();
686 $('#input_lat').val(lat);
687 $('#input_lng').val(lng);
688 })
689
690 $('#input_address').on('change keyup', function (e) {
691 clearTimeout(wdk_timerMap);
692 wdk_timerMap = setTimeout(function () {
693 $.get('https://nominatim.openstreetmap.org/search?format=json&q='+$('#input_address').val(), function(data){
694 if(data.length && typeof data[0]) {
695 var {lat,lon} =data[0];
696 wdk_edit_map_marker.setLatLng([lat, lon]).update();
697 wdk_edit_map.panTo(new L.LatLng(lat, lon));
698 $('#input_lat').val(lat);
699 $('#input_lng').val(lon);
700 } else {
701 wdk_log_notify('<?php echo esc_js(__('Address not found', 'wpdirectorykit')); ?>', 'error');
702 return;
703 }
704 });
705 }, 1000);
706 });
707
708 $('#input_gps').on('change keyup', function (e) {
709 wdk_edit_map.panTo(new L.LatLng($('#input_lat').val(), $('#input_lng').val()));
710 wdk_edit_map_marker.setLatLng([parseFloat($('#input_lat').val()), parseFloat($('#input_lng').val())]).update();
711 })
712 <?php endif;?>
713
714 /* agents */
715
716 $('.agents_group .add_button').on( "click", function(e) {
717 e.preventDefault();
718 var group_agent = $(this).closest('.agents_group');
719 var agent_id = group_agent.find('input[name="agent_id"]').val();
720
721 if(agent_id != '')
722 {
723 var exists = 0 != group_agent.find('#listing_agents').find('option[value='+agent_id+']').length;
724 var agent_name = group_agent.find('.wdk_dropdown_tree .btn-group .btn:first').text();
725
726 if(!exists)
727 {
728 group_agent.find('#listing_agents').append('<option value="'+agent_id+'" selected>'+agent_name+'</option>');
729 }
730 else
731 {
732 wdk_log_notify('<?php echo esc_js(__('Already on list', 'wpdirectorykit')); ?>', 'error');
733 }
734 }
735 else
736 {
737 wdk_log_notify('<?php echo esc_js(__('Not selected', 'wpdirectorykit')); ?>', 'error');
738 }
739 });
740
741 $('.agents_group .rem_button').on( "click", function() {
742 $(this).closest('.agents_group').find('#listing_agents option:selected:last').remove();
743 });
744
745
746 $('form.form_listing').on('submit', function(e){
747 if($(this).find('#listing_agents').length) {
748 $('#listing_agents').find('option').prop("selected", true).trigger('change')
749 }
750 });
751
752 wdk_childs_listings_list();
753
754 $('.select_ajax_user').on('select2:selecting', function (e) {
755 // Get the selected option value
756 var selectedValue = e.params.args.data.id;
757 var selecteduserEditor = $('[name="user_id_editor"]').val();
758
759 // Check if the selected option should be prevented from being added
760 if (selectedValue == selecteduserEditor) {
761 // Prevent the option from being added
762 e.preventDefault();
763 wdk_log_notify('<?php echo esc_js(esc_attr__('User Alread defiend like editor','wpdirectorykit'));?>', 'error');
764 }
765 });
766
767 });
768
769
770 const wdk_childs_listings_list = ($selector= '.wdk-listing-childs-wrap', $field_name = 'listing_related_ids') => {
771 var el_wrapper = jQuery($selector);
772 var remove_child_listing,save_data;
773
774 remove_child_listing = () => {
775 el_wrapper.find( ".wdk-listing-childs-drop .drop-listing-item .remove" ).off().on('click', function(e){
776 e.preventDefault();
777
778 if(confirm("<?php echo esc_js(__('Are you sure?','wpdirectorykit')); ?>")) {
779 jQuery(this).closest('.drop-listing-item').remove();
780 save_data();
781 }
782 });
783 };
784
785 save_data = () => {
786 var data_fields_sublist = '';
787 el_wrapper.find('.wdk-listing-childs-drop .drop-listing-item').each(function( index ) {
788 if(data_fields_sublist !='')
789 data_fields_sublist +=',';
790
791 data_fields_sublist += jQuery(this).attr('data-idlisting');
792 });
793 console.log(el_wrapper.find('input[name="'+$field_name+'"]'));
794 el_wrapper.find('input[name="'+$field_name+'"]').val(data_fields_sublist);
795 }
796
797 remove_child_listing();
798
799 el_wrapper.find( ".wdk-listing-childs-drop" ).sortable({
800 connectWith: ".wdk-listing-childs-drop",
801 placeholder: "ui-sortable-placeholder widget-placeholder",
802 update: function(event, ui) {
803 save_data();
804 }
805 }).disableSelection();
806
807 el_wrapper.find('.add_new_listing').on('click', function(e){
808 e.preventDefault();
809
810 var listing_id = el_wrapper.find('input[name="new_listing_id"]').val();
811 var listing_title = el_wrapper.find('.wdk_dropdown_tree button:first-child').text();
812
813 if(listing_id == '') {
814 wdk_log_notify('<?php echo esc_js(esc_attr__('Listing Not Defined','wpdirectorykit'));?>', 'error');
815 return;
816 }
817
818 if(listing_id == '<?php echo esc_js(wmvc_show_data('ID', $db_data));?>') {
819 wdk_log_notify('<?php echo esc_js(esc_attr__('Impossible add current listing','wpdirectorykit'));?>', 'error');
820 return;
821 }
822
823 if( el_wrapper.find( ".wdk-listing-childs-drop .drop-listing-item[data-idlisting='"+listing_id+"']" ).length) {
824 wdk_log_notify('<?php echo esc_js(esc_attr__('Listing already added','wpdirectorykit'));?>', 'error');
825 return;
826 }
827
828 var item_html = '<div class="drop-listing-item" data-idlisting="'+listing_id+'">\n\
829 <h3 class="handle"> \n\
830 <a target="_blank" href="<?php echo esc_url(admin_url('admin.php?page=wdk_listing&id='));?>'+listing_id+'" class="title">'+listing_title+'</a>\n\
831 <a target="_blank" class="btn" href="<?php echo esc_url(admin_url('admin.php?page=wdk_listing&id='));?>'+listing_id+'" target="_blank" title="Edit"><span class="dashicons dashicons-edit"></span></a>\n\
832 <a class="question_sure btn remove" href="#" title="<?php echo esc_js(__('Remove','wpdirectorykit'));?>"><span class="dashicons dashicons-no"></span></a>\n\
833 </h3> \n\
834 </div>';
835
836 el_wrapper.find( ".wdk-listing-childs-drop" ).append(item_html);
837 remove_child_listing();
838 save_data();
839 });
840 };
841
842 </script>
843
844 <style>
845
846 .form-table .agent_add.form-inline .wdk-field-edit {
847 display: inline-block;
848 }
849
850 .form-table .agent_add.form-inline .wdk-field-edit .wdk-field-container {
851 padding: 0;
852 }
853
854 .form-table .agent_add.form-inline .wdk-field-edit,
855 .form-table .agent_add.form-inline .button {
856 margin: 15px 0px;
857 }
858
859 .form-table #listing_agents {
860 max-width: 100%;
861 width: 25em;
862 }
863
864 .form-table .agent_add.form-inline .wdk_dropdown_tree {
865 width: 230px;
866 max-width: 100%;
867 }
868
869 </style>
870
871 <?php $this->view('general/footer', $data); ?>