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 +265 -45 1.2.7 → 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',
@@ -186,9 +245,8 @@
186 245 'separator' => 'before',
187 246 ]
188 247 );
189 248
190 -
191 249 $this->add_control(
192 250 'conf_hide_real_location',
193 251 [
194 252 'label' => esc_html__( 'Hide real location', 'wpdirectorykit' ),
@@ -197,13 +255,52 @@
197 255 'block' => esc_html__( 'False', 'wpdirectorykit' ),
198 256 'render_type' => 'template',
199 257 'return_value' => 'yes',
200 258 'default' => '',
201 - 'separator' => 'after',
202 259 ]
203 260 );
204 261
205 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(
206 303 'conf_limit',
207 304 [
208 305 'label' => __( 'Limit Results', 'wpdirectorykit' ),
209 306 'type' => \Elementor\Controls_Manager::NUMBER,
@@ -230,9 +327,9 @@
230 327
231 328 $this->add_control(
232 329 'conf_order_by',
233 330 [
234 - 'label' => __('Default Order By Column', 'wpdirectorykit'),
331 + 'label' => __('Default Sort By Column', 'wpdirectorykit'),
235 332 'type' => Controls_Manager::SELECT,
236 333 'label_block' => true,
237 334 'options' => [
238 335 'none' => __('None', 'wpdirectorykit'),
@@ -245,9 +342,9 @@
245 342
246 343 $this->add_control(
247 344 'conf_order_by_custom',
248 345 [
249 - 'label' => __('Default Custom Order By (Column)', 'wpdirectorykit'),
346 + 'label' => __('Default Custom Sort By (Column)', 'wpdirectorykit'),
250 347 'description' => '<span style="word-break: break-all;">'.__( 'Example:', 'wpdirectorykit' ).
251 348 '<br> field_13_NUMBER - where 13 is field id, NUMBER - field type'.
252 349 '<br> field_4_NUMBER - where 4 is field id, NUMBER - field type'.
253 350 '<br> field_6_DROPDOWN - where 6 is field id, DROPDOWN - field type'.
@@ -273,46 +370,8 @@
273 370 'default' => 'desc',
274 371 ]
275 372 );
276 373
277 -
278 - $WMVC = &wdk_get_instance();
279 - $WMVC->model('field_m');
280 - $fields_data = $WMVC->field_m->get();
281 - $fields_list = array('' => esc_html__('Not Selected', 'wpdirectorykit'));
282 - $order_i = 0;
283 -
284 - $fields_list [(++$order_i).'__section'] = esc_html__('-- Section Custom fields --', 'wpdirectorykit');
285 - $fields_list [(++$order_i).'__first_image'] = esc_html__('First Image', 'wpdirectorykit');
286 - $fields_list [(++$order_i).'__counter_views'] = esc_html__('Views counter', 'wpdirectorykit');
287 - $fields_list [(++$order_i).'__post_title'] = esc_html__('WP Title', 'wpdirectorykit');
288 -
289 - $fields_list [(++$order_i).'__date'] = esc_html__('Date', 'wpdirectorykit');
290 - $fields_list [(++$order_i).'__address'] = esc_html__('Address', 'wpdirectorykit');
291 - $fields_list [(++$order_i).'__category_title'] = esc_html__('Category', 'wpdirectorykit');
292 - $fields_list [(++$order_i).'__location_title'] = esc_html__('Location', 'wpdirectorykit');
293 -
294 - foreach($fields_data as $field)
295 - {
296 - if(wmvc_show_data('field_type', $field) == 'SECTION') {
297 - $fields_list [(++$order_i).'section__'.wmvc_show_data('idfield', $field)] = '-- '.esc_html__('Section', 'wpdirectorykit').' '.wmvc_show_data('field_label', $field).' --';
298 - } else {
299 - $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).']';
300 - }
301 - }
302 -
303 - $this->add_control(
304 - 'custom_marker_fields',
305 - [
306 - 'label' => __('Show field value instead of marker on map', 'wpdirectorykit'),
307 - 'type' => \Elementor\Controls_Manager::SELECT,
308 - 'default' => '',
309 - 'label_block' => true,
310 - 'options' => $fields_list,
311 - 'separator' => 'after',
312 - ]
313 - );
314 -
315 374 }
316 375
317 376 $this->end_controls_section();
318 377
@@ -412,14 +471,30 @@
412 471 '' => esc_html__('Default', 'wpdirectorykit'),
413 472 'custom' => esc_html__('Custom', 'wpdirectorykit'),
414 473 'https://cartodb-basemaps-{s}.global.ssl.fastly.net/light_all/{z}/{x}/{y}{r}.png' => esc_html__('Light', 'wpdirectorykit'),
415 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'),
416 478 'https://{s}.tile.opentopomap.org/{z}/{x}/{y}.png' => esc_html__('OpenTopoMap', 'wpdirectorykit'),
417 - 'https://{s}.tile.thunderforest.com/cycle/{z}/{x}/{y}.png' => esc_html__('OpenCycleMap', 'wpdirectorykit'),
418 479 'https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}' => esc_html__('WorldImagery', 'wpdirectorykit'),
419 480 'https://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}{r}.png' => esc_html__('Carto DarkMatter', 'wpdirectorykit'),
420 481 'https://{s}.basemaps.cartocdn.com/rastertiles/voyager/{z}/{x}/{y}{r}.png' => esc_html__('Carto Voyager', 'wpdirectorykit'),
421 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'),
422 497 ],
423 498 'default' => '',
424 499 ]
425 500 );
@@ -424,8 +499,105 @@
424 499 ]
425 500 );
426 501
427 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(
428 600 'conf_custom_map_style_self',
429 601 [
430 602 'label' => esc_html__('Link to custom Map Style', 'wpdirectorykit'),
431 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' ),
@@ -583,8 +755,43 @@
583 755 'separator' => 'before',
584 756 ]
585 757 );
586 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 +
587 794 $this->start_controls_tabs('marker_button_style');
588 795
589 796 $this->start_controls_tab(
590 797 'marker',
@@ -718,8 +925,12 @@
718 925 $this->end_controls_tab();
719 926
720 927 $this->end_controls_tabs();
721 928 $this->end_controls_section();
929 +
930 +
931 +
932 +
722 933 }
723 934
724 935 private function generate_controls_content() {
725 936 /* default marker layout */
@@ -1152,12 +1363,21 @@
1152 1363
1153 1364 wp_enqueue_style('wdk-notify');
1154 1365 wp_enqueue_script('wdk-notify');
1155 1366 wp_enqueue_style( 'wdk-listings-map' );
1156 -
1367 +
1368 +
1157 1369 wp_enqueue_style('slick');
1158 1370 wp_enqueue_style('slick-theme');
1159 1371 wp_enqueue_style('wdk-hover');
1160 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 + }
1161 1381 }
1162 1382
1163 1383 }