PluginProbe
WP Directory Kit / 1.5.9
WP Directory Kit v1.5.9
1.5.9 1.5.7 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 All 37 releases
← All changes | elementor-elements/classes/wdk-map.php +261 -44 1.2.8 → 1.5.9 View file →
@@ -137,8 +137,13 @@
137 137 $columns = array('ID', 'location_id', 'category_id', 'post_title', 'post_date', 'search', 'order_by','is_featured', 'address');
138 138 $controller = 'listing';
139 139 $custom_parameters = array();
140 140
141 + if($this->data['settings']['enable_custom_gps_center'] == 'yes') {
142 + $this->data['lat'] = $this->data['settings']['conf_custom_map_center_gps_lat'];
143 + $this->data['lng'] = $this->data['settings']['conf_custom_map_center_gps_lng'];
144 + }
145 +
141 146 if(!isset($_GET['order_by'])) {
142 147 $custom_parameters['order_by'] = $this->data['settings']['conf_order_by'].' '.$this->data['settings']['conf_order'];
143 148 }
144 149
@@ -162,9 +167,9 @@
162 167 $this->data['is_edit_mode']= false;
163 168 if(Plugin::$instance->editor->is_edit_mode())
164 169 $this->data['is_edit_mode']= true;
165 170
166 - echo $this->view('wdk-map', $this->data);
171 + $this->view('wdk-map', $this->data, true);
167 172
168 173 }
169 174
170 175 private function generate_controls_conf() {
@@ -175,8 +180,62 @@
175 180 'tab' => '1',
176 181 ]
177 182 );
178 183
184 + if(wdk_get_option('wdk_experimental_features') && wdk_get_option('wdk_experimental_listing_card_elementor_layout')){
185 + $this->add_control(
186 + 'is_custom_layout_enable',
187 + [
188 + 'label' => __( 'Enable Custom Layout', 'wpdirectorykit' ),
189 + 'type' => \Elementor\Controls_Manager::SWITCHER,
190 + 'label_on' => __( 'True', 'wpdirectorykit' ),
191 + 'label_off' => __( 'False', 'wpdirectorykit' ),
192 + 'return_value' => 'yes',
193 + 'default' => '',
194 +
195 + ]
196 + );
197 + $this->add_control(
198 + 'custom_layout_id',
199 + [
200 + 'label' => __( 'Layout Template id', 'wpdirectorykit' ),
201 + 'type' => \Elementor\Controls_Manager::TEXT,
202 + 'default' => '',
203 + 'placeholder' => __( 'put your template id', 'wpdirectorykit' ),
204 + 'description' => __( 'Create layout here', 'wpdirectorykit' ) . ' ' . wdk_sprintf(
205 + /* translators: 1: Tag with link open, 2: close link tag. */
206 + __('%1$s here %2$s', 'wpdirectorykit'),
207 + '<a target="_blank" href="' . esc_urL(admin_url('edit.php?post_type=elementor_library#add_new')) . '">',
208 + '</a>'
209 + ),
210 + 'conditions' => [
211 + 'terms' => [
212 + [
213 + 'name' => 'is_custom_layout_enable',
214 + 'operator' => '==',
215 + 'value' => 'yes',
216 + ]
217 + ],
218 + ],
219 + ]
220 + );
221 + }
222 +
223 + if(wdk_get_option('wdk_experimental_features') && wdk_get_option('wdk_experimental_ajax_results')){
224 + $this->add_control(
225 + 'is_ajax_enable',
226 + [
227 + 'label' => __( 'Enable Reload content with ajax', 'wpdirectorykit' ),
228 + 'type' => \Elementor\Controls_Manager::SWITCHER,
229 + 'label_on' => __( 'True', 'wpdirectorykit' ),
230 + 'label_off' => __( 'False', 'wpdirectorykit' ),
231 + 'return_value' => 'yes',
232 + 'default' => '',
233 +
234 + ]
235 + );
236 + }
237 +
179 238 /* conf_results_type :: results_listings */
180 239 if(true){
181 240 $this->add_control(
182 241 'conf_results_type_results_listings_header',
@@ -196,13 +255,52 @@
196 255 'block' => esc_html__( 'False', 'wpdirectorykit' ),
197 256 'render_type' => 'template',
198 257 'return_value' => 'yes',
199 258 'default' => '',
200 - 'separator' => 'after',
201 259 ]
202 260 );
203 261
204 262 $this->add_control(
263 + 'enable_rectangle_auto_search',
264 + [
265 + 'label' => esc_html__( 'Recangle auto search', 'wpdirectorykit' ),
266 + 'type' => Controls_Manager::SWITCHER,
267 + 'none' => esc_html__( 'True', 'wpdirectorykit' ),
268 + 'block' => esc_html__( 'False', 'wpdirectorykit' ),
269 + 'render_type' => 'template',
270 + 'return_value' => 'yes',
271 + 'default' => 'yes',
272 + ]
273 + );
274 +
275 + $this->add_control(
276 + 'disable_rectangle',
277 + [
278 + 'label' => esc_html__( 'Disable Rectangle Search', 'wpdirectorykit' ),
279 + 'type' => Controls_Manager::SWITCHER,
280 + 'none' => esc_html__( 'True', 'wpdirectorykit' ),
281 + 'block' => esc_html__( 'False', 'wpdirectorykit' ),
282 + 'render_type' => 'template',
283 + 'return_value' => 'yes',
284 + 'default' => '',
285 + ]
286 + );
287 +
288 + $this->add_control(
289 + 'enable_scrollWheelZoom',
290 + [
291 + 'label' => esc_html__( 'Enable scrollWheelZoom', 'wpdirectorykit' ),
292 + 'type' => Controls_Manager::SWITCHER,
293 + 'none' => esc_html__( 'True', 'wpdirectorykit' ),
294 + 'block' => esc_html__( 'False', 'wpdirectorykit' ),
295 + 'render_type' => 'template',
296 + 'return_value' => 'yes',
297 + 'default' => '',
298 + 'separator' => 'after',
299 + ]
300 + );
301 +
302 + $this->add_control(
205 303 'conf_limit',
206 304 [
207 305 'label' => __( 'Limit Results', 'wpdirectorykit' ),
208 306 'type' => \Elementor\Controls_Manager::NUMBER,
@@ -229,9 +327,9 @@
229 327
230 328 $this->add_control(
231 329 'conf_order_by',
232 330 [
233 - 'label' => __('Default Order By Column', 'wpdirectorykit'),
331 + 'label' => __('Default Sort By Column', 'wpdirectorykit'),
234 332 'type' => Controls_Manager::SELECT,
235 333 'label_block' => true,
236 334 'options' => [
237 335 'none' => __('None', 'wpdirectorykit'),
@@ -244,9 +342,9 @@
244 342
245 343 $this->add_control(
246 344 'conf_order_by_custom',
247 345 [
248 - 'label' => __('Default Custom Order By (Column)', 'wpdirectorykit'),
346 + 'label' => __('Default Custom Sort By (Column)', 'wpdirectorykit'),
249 347 'description' => '<span style="word-break: break-all;">'.__( 'Example:', 'wpdirectorykit' ).
250 348 '<br> field_13_NUMBER - where 13 is field id, NUMBER - field type'.
251 349 '<br> field_4_NUMBER - where 4 is field id, NUMBER - field type'.
252 350 '<br> field_6_DROPDOWN - where 6 is field id, DROPDOWN - field type'.
@@ -272,46 +370,8 @@
272 370 'default' => 'desc',
273 371 ]
274 372 );
275 373
276 -
277 - $WMVC = &wdk_get_instance();
278 - $WMVC->model('field_m');
279 - $fields_data = $WMVC->field_m->get();
280 - $fields_list = array('' => esc_html__('Not Selected', 'wpdirectorykit'));
281 - $order_i = 0;
282 -
283 - $fields_list [(++$order_i).'__section'] = esc_html__('-- Section Custom fields --', 'wpdirectorykit');
284 - $fields_list [(++$order_i).'__first_image'] = esc_html__('First Image', 'wpdirectorykit');
285 - $fields_list [(++$order_i).'__counter_views'] = esc_html__('Views counter', 'wpdirectorykit');
286 - $fields_list [(++$order_i).'__post_title'] = esc_html__('WP Title', 'wpdirectorykit');
287 -
288 - $fields_list [(++$order_i).'__date'] = esc_html__('Date', 'wpdirectorykit');
289 - $fields_list [(++$order_i).'__address'] = esc_html__('Address', 'wpdirectorykit');
290 - $fields_list [(++$order_i).'__category_title'] = esc_html__('Category', 'wpdirectorykit');
291 - $fields_list [(++$order_i).'__location_title'] = esc_html__('Location', 'wpdirectorykit');
292 -
293 - foreach($fields_data as $field)
294 - {
295 - if(wmvc_show_data('field_type', $field) == 'SECTION') {
296 - $fields_list [(++$order_i).'section__'.wmvc_show_data('idfield', $field)] = '-- '.esc_html__('Section', 'wpdirectorykit').' '.wmvc_show_data('field_label', $field).' --';
297 - } else {
298 - $fields_list[(++$order_i).'__'.wmvc_show_data('idfield', $field)] = '#'.wmvc_show_data('idfield', $field).' '.wmvc_show_data('field_label', $field).'['.wmvc_show_data('field_type', $field).']';
299 - }
300 - }
301 -
302 - $this->add_control(
303 - 'custom_marker_fields',
304 - [
305 - 'label' => __('Show field value instead of marker on map', 'wpdirectorykit'),
306 - 'type' => \Elementor\Controls_Manager::SELECT,
307 - 'default' => '',
308 - 'label_block' => true,
309 - 'options' => $fields_list,
310 - 'separator' => 'after',
311 - ]
312 - );
313 -
314 374 }
315 375
316 376 $this->end_controls_section();
317 377
@@ -411,14 +471,30 @@
411 471 '' => esc_html__('Default', 'wpdirectorykit'),
412 472 'custom' => esc_html__('Custom', 'wpdirectorykit'),
413 473 'https://cartodb-basemaps-{s}.global.ssl.fastly.net/light_all/{z}/{x}/{y}{r}.png' => esc_html__('Light', 'wpdirectorykit'),
414 474 'https://{s}.tile.openstreetmap.fr/hot/{z}/{x}/{y}.png' => esc_html__('Osmde', 'wpdirectorykit'),
475 + 'https://{s}.tile.openstreetmap.fr/osmfr/{z}/{x}/{y}.png' => esc_html__('Osmde Fr', 'wpdirectorykit'),
476 + 'https://tile.openstreetmap.de/{z}/{x}/{y}.png' => esc_html__('Osmde De', 'wpdirectorykit'),
477 + 'https://tile.openstreetmap.org/{z}/{x}/{y}.png' => esc_html__('Mapnik', 'wpdirectorykit'),
415 478 'https://{s}.tile.opentopomap.org/{z}/{x}/{y}.png' => esc_html__('OpenTopoMap', 'wpdirectorykit'),
416 - 'https://{s}.tile.thunderforest.com/cycle/{z}/{x}/{y}.png' => esc_html__('OpenCycleMap', 'wpdirectorykit'),
417 479 'https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}' => esc_html__('WorldImagery', 'wpdirectorykit'),
418 480 'https://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}{r}.png' => esc_html__('Carto DarkMatter', 'wpdirectorykit'),
419 481 'https://{s}.basemaps.cartocdn.com/rastertiles/voyager/{z}/{x}/{y}{r}.png' => esc_html__('Carto Voyager', 'wpdirectorykit'),
420 482 'https://cartodb-basemaps-{s}.global.ssl.fastly.net/dark_all/{z}/{x}/{y}{r}.png' => esc_html__('Maptiler dark (demo)', 'wpdirectorykit'),
483 + 'https://{s}.tile.thunderforest.com/mobile-atlas/{z}/{x}/{y}.png' => esc_html__('Thunderforest MobileAtlas', 'wpdirectorykit'),
484 + 'https://{s}.tile.thunderforest.com/cycle/{z}/{x}/{y}.png' => esc_html__('Thunderforest OpenCycleMap', 'wpdirectorykit'),
485 + 'https://{s}.tile.thunderforest.com/transport-dark/{z}/{x}/{y}.png' => esc_html__('Thunderforest TransportDark', 'wpdirectorykit'),
486 + 'https://{s}.tile.thunderforest.com/landscape/{z}/{x}/{y}.png' => esc_html__('Thunderforest Landscape', 'wpdirectorykit'),
487 + 'https://{s}.tile.thunderforest.com/outdoors/{z}/{x}/{y}.png' => esc_html__('Thunderforest Outdoors', 'wpdirectorykit'),
488 + 'https://{s}.tile.thunderforest.com/pioneer/{z}/{x}/{y}.png' => esc_html__('Thunderforest Pioneer', 'wpdirectorykit'),
489 + 'https://{s}.tile.thunderforest.com/neighbourhood/{z}/{x}/{y}.png' => esc_html__('Thunderforest Neighbourhood', 'wpdirectorykit'),
490 + 'https://{s}.tile-cyclosm.openstreetmap.fr/cyclosm/{z}/{x}/{y}.png' => esc_html__('CyclOSM', 'wpdirectorykit'),
491 + 'https://{s}.tile.jawg.io/jawg-terrain/{z}/{x}/{y}{r}.png' => esc_html__('Jawg Streets', 'wpdirectorykit'),
492 + 'https://{s}.tile.jawg.io/jawg-streets/{z}/{x}/{y}{r}.png' => esc_html__('Jawg Sunny', 'wpdirectorykit'),
493 + 'https://{s}.tile.jawg.io/jawg-dark/{z}/{x}/{y}{r}.png' => esc_html__('Jawg Dark', 'wpdirectorykit'),
494 + 'https://{s}.tile.jawg.io/jawg-light/{z}/{x}/{y}{r}.png' => esc_html__('Jawg Light', 'wpdirectorykit'),
495 + 'https://server.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer/tile/{z}/{y}/{x}' => esc_html__('World Top oMap', 'wpdirectorykit'),
496 + 'google_map' => esc_html__('Google Map Layout', 'wpdirectorykit'),
421 497 ],
422 498 'default' => '',
423 499 ]
424 500 );
@@ -423,8 +499,105 @@
423 499 ]
424 500 );
425 501
426 502 $this->add_control(
503 + 'jawg_map_key',
504 + [
505 + 'label' => __( 'Jawg Map API Key', 'wpdirectorykit' ),
506 + /* translators: 1: URL. */
507 + 'description' => wdk_sprintf(__( 'Please follow link and get API key <a href="%1$s" target="_blank"> here </a>', 'wpdirectorykit' ), 'https://www.jawg.io/en/pricing')
508 + /* translators: 1: URL. */
509 + .' '.wdk_sprintf(__( 'or check demo maps <a href="%1$s" target="_blank"> here </a>', 'wpdirectorykit' ), 'https://www.jawg.io/en/maps'),
510 + 'type' => \Elementor\Controls_Manager::TEXT,
511 + 'default' => '',
512 + 'condition' => [
513 + 'conf_custom_map_style' => [
514 + 'https://{s}.tile.jawg.io/jawg-terrain/{z}/{x}/{y}{r}.png',
515 + 'https://{s}.tile.jawg.io/jawg-streets/{z}/{x}/{y}{r}.png',
516 + 'https://{s}.tile.jawg.io/jawg-dark/{z}/{x}/{y}{r}.png',
517 + 'https://{s}.tile.jawg.io/jawg-light/{z}/{x}/{y}{r}.png',
518 + ],
519 + ],
520 + ]
521 + );
522 +
523 + $this->add_control(
524 + 'carto_map_key',
525 + [
526 + 'label' => __( 'Carto Map API Key', 'wpdirectorykit' ),
527 + /* translators: 1: URL. */
528 + 'description' => wdk_sprintf(__( 'Please follow link and get API key <a href="%1$s" target="_blank"> here </a>', 'wpdirectorykit' ), 'https://carto.com/basemaps/apikey/'),
529 + 'type' => \Elementor\Controls_Manager::TEXT,
530 + 'default' => '',
531 + 'condition' => [
532 + 'conf_custom_map_style' => [
533 + 'https://cartodb-basemaps-{s}.global.ssl.fastly.net/light_all/{z}/{x}/{y}{r}.png',
534 + 'https://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}{r}.png',
535 + 'https://{s}.basemaps.cartocdn.com/rastertiles/voyager/{z}/{x}/{y}{r}.png',
536 + 'https://cartodb-basemaps-{s}.global.ssl.fastly.net/dark_all/{z}/{x}/{y}{r}.png',
537 + ],
538 + ],
539 + ]
540 + );
541 +
542 + $this->add_control(
543 + 'thunderforest_map_key',
544 + [
545 + 'label' => __( 'Thunderforest Map API Key', 'wpdirectorykit' ),
546 + /* translators: 1: URL. */
547 + 'description' => wdk_sprintf(__( 'Please follow link and get API key <a href="%1$s" target="_blank"> here </a>', 'wpdirectorykit' ), 'https://www.thunderforest.com/pricing/'),
548 + 'type' => \Elementor\Controls_Manager::TEXT,
549 + 'default' => '',
550 + 'condition' => [
551 + 'conf_custom_map_style' => [
552 + 'https://{s}.tile.thunderforest.com/mobile-atlas/{z}/{x}/{y}.png',
553 + 'https://{s}.tile.thunderforest.com/cycle/{z}/{x}/{y}.png',
554 + 'https://{s}.tile.thunderforest.com/transport-dark/{z}/{x}/{y}.png',
555 + 'https://{s}.tile.thunderforest.com/landscape/{z}/{x}/{y}.png',
556 + 'https://{s}.tile.thunderforest.com/outdoors/{z}/{x}/{y}.png',
557 + 'https://{s}.tile.thunderforest.com/pioneer/{z}/{x}/{y}.png',
558 + 'https://{s}.tile.thunderforest.com/neighbourhood/{z}/{x}/{y}.png',
559 + ],
560 + ],
561 + ]
562 + );
563 +
564 + $this->add_control(
565 + 'google_map_key',
566 + [
567 + 'label' => __( 'Google Map API Key', 'wpdirectorykit' ),
568 + /* translators: 1: URL. */
569 + 'description' => wdk_sprintf(__( 'Please follow link and get API key <a href="%1$s" target="_blank"> here </a>', 'wpdirectorykit' ), 'https://developers.google.com/maps/documentation/javascript/get-api-key'),
570 + 'type' => \Elementor\Controls_Manager::TEXT,
571 + 'default' => '',
572 + 'condition' => [
573 + 'conf_custom_map_style' => ['google_map'],
574 + ],
575 + ]
576 + );
577 +
578 + $this->add_control(
579 + 'google_map_default_type',
580 + [
581 + 'label' => __( 'Default Type', 'wpdirectorykit' ),
582 + 'type' => \Elementor\Controls_Manager::SELECT,
583 + 'default' => 'roadmap',
584 + 'options' => array(
585 + 'roadmap' => __( 'Roadmap', 'wpdirectorykit' ),
586 + 'aerial' => __( 'Aerial', 'wpdirectorykit' ),
587 + 'terrain' => __( 'Terrain', 'wpdirectorykit' ),
588 + 'hybrid' => __( 'Hybrid', 'wpdirectorykit' ),
589 + 'satellite' => __( 'Satellite', 'wpdirectorykit' ),
590 + 'traffic' => __( 'Traffic', 'wpdirectorykit' ),
591 + 'transit' => __( 'Transit', 'wpdirectorykit' ),
592 + ),
593 + 'condition' => [
594 + 'conf_custom_map_style' => ['google_map'],
595 + ],
596 + ]
597 + );
598 +
599 + $this->add_control(
427 600 'conf_custom_map_style_self',
428 601 [
429 602 'label' => esc_html__('Link to custom Map Style', 'wpdirectorykit'),
430 603 'description' => esc_html__( 'You can add some custom map by link example https://leaflet-extras.github.io/leaflet-providers/preview/ or create your custom style and put link for example on maps.cloudmade.com/editor', 'wpdirectorykit' ),
@@ -582,8 +755,43 @@
582 755 'separator' => 'before',
583 756 ]
584 757 );
585 758
759 + $fields_data = wdk_cached_field_get();
760 + $fields_list = array('' => esc_html__('Not Selected', 'wpdirectorykit'));
761 + $order_i = 0;
762 +
763 + $fields_list [(++$order_i).'__section'] = esc_html__('-- Section Custom fields --', 'wpdirectorykit');
764 + $fields_list [(++$order_i).'__first_image'] = esc_html__('First Image', 'wpdirectorykit');
765 + $fields_list [(++$order_i).'__counter_views'] = esc_html__('Views counter', 'wpdirectorykit');
766 + $fields_list [(++$order_i).'__post_title'] = esc_html__('WP Title', 'wpdirectorykit');
767 +
768 + $fields_list [(++$order_i).'__date'] = esc_html__('Date', 'wpdirectorykit');
769 + $fields_list [(++$order_i).'__address'] = esc_html__('Address', 'wpdirectorykit');
770 + $fields_list [(++$order_i).'__category_title'] = esc_html__('Category', 'wpdirectorykit');
771 + $fields_list [(++$order_i).'__location_title'] = esc_html__('Location', 'wpdirectorykit');
772 +
773 + foreach($fields_data as $field)
774 + {
775 + if(wmvc_show_data('field_type', $field) == 'SECTION') {
776 + $fields_list [(++$order_i).'section__'.wmvc_show_data('idfield', $field)] = '-- '.esc_html__('Section', 'wpdirectorykit').' '.wmvc_show_data('field_label', $field).' --';
777 + } else {
778 + $fields_list[(++$order_i).'__'.wmvc_show_data('idfield', $field)] = '#'.wmvc_show_data('idfield', $field).' '.wmvc_show_data('field_label', $field).'['.wmvc_show_data('field_type', $field).']';
779 + }
780 + }
781 +
782 + $this->add_control(
783 + 'custom_marker_fields',
784 + [
785 + 'label' => __('Show field value instead of marker on map', 'wpdirectorykit'),
786 + 'type' => \Elementor\Controls_Manager::SELECT2,
787 + 'default' => '',
788 + 'label_block' => true,
789 + 'options' => $fields_list,
790 + 'separator' => 'after',
791 + ]
792 + );
793 +
586 794 $this->start_controls_tabs('marker_button_style');
587 795
588 796 $this->start_controls_tab(
589 797 'marker',
@@ -1155,12 +1363,21 @@
1155 1363
1156 1364 wp_enqueue_style('wdk-notify');
1157 1365 wp_enqueue_script('wdk-notify');
1158 1366 wp_enqueue_style( 'wdk-listings-map' );
1159 -
1367 +
1368 +
1160 1369 wp_enqueue_style('slick');
1161 1370 wp_enqueue_style('slick-theme');
1162 1371 wp_enqueue_style('wdk-hover');
1163 1372 wp_enqueue_script('slick');
1373 + wp_enqueue_script('leaflet-googlemutant');
1374 +
1375 + wp_enqueue_style('leaflet-draw');
1376 + wp_enqueue_script('wdk-map-rectangle');
1377 +
1378 + if( wdk_get_option('wdk_experimental_features') && wdk_get_option('wdk_experimental_ajax_results')) {
1379 + wp_enqueue_script( 'wdk-ajax-loading-listings');
1380 + }
1164 1381 }
1165 1382
1166 1383 }