PluginProbe
WP Directory Kit / 1.2.9
WP Directory Kit v1.2.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
wpdirectorykit / elementor-elements / views / wdk-map.php

wdk-map.php in WP Directory Kit 1.2.9, at elementor-elements/views/wdk-map.php

292 lines 15.0 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 Element Listings Results Map.
4 * This is the template that elementor element map with markers of listings, show results
5 *
6 */
7
8 if ( ! defined( 'ABSPATH' ) ) {
9 exit; // Exit if accessed directly.
10 }
11
12 ?>
13
14 <div class="wdk-element" id="wdk_el_<?php echo esc_html($id_element);?>">
15 <div class="wdk-map" class="wdk_map_results">
16 <?php if($settings['conf_custom_dragging_mobile'] == 'yes'):?> <div class="map-hint"><?php echo esc_html__( 'Require 2 finger for map movement', 'wpdirectorykit' );?></div><?php endif;?>
17 <div id="wdk_map_results_<?php echo esc_html($id_element);?>" style="height:<?php echo esc_attr($settings['conf_custom_map_height']['size']);?>px" class="wdk_map_results <?php echo wmvc_show_data('styles_thmbn_des_type',$settings, '');?> " ></div>
18 </div>
19 </div>
20 <?php
21 $zoom_index = $settings['conf_custom_map_zoom_index']['size'];
22 ?>
23 <?php
24 if($lat == 0)
25 {
26 $lat = wmvc_show_data('conf_custom_map_center_gps_lat', $settings);
27 $lng = wmvc_show_data('conf_custom_map_center_gps_lng', $settings);
28 }
29 ?>
30 <?php
31 $WMVC = &wdk_get_instance();
32 $WMVC->model('category_m');
33 if (!$is_edit_mode)
34 ob_start();
35 ?>
36 <script>
37 var wdk_map ='';
38 var wdk_markers = [];
39 var wdk_clusters ='';
40 var wdk_jpopup_customOptions =
41 {
42 'maxWidth': 'initial',
43 'width': 'initial',
44 'className' : 'popupCustom'
45 };
46 jQuery(document).ready(function($) {
47 if(wdk_clusters=='')
48 wdk_clusters = L.markerClusterGroup({spiderfyOnMaxZoom: true, showCoverageOnHover: false, zoomToBoundsOnClick: true});
49 wdk_map = L.map('wdk_map_results_<?php echo esc_html($id_element);?>', {
50 center: ["<?php echo esc_js($lat);?>","<?php echo esc_js($lng);?>"],
51 zoom: "<?php echo esc_js($zoom_index);?>",
52 scrollWheelZoom: false,
53 dragging: ((!L.Browser.mobile) ? <?php if($settings['conf_custom_dragging'] == 'yes'):?> true <?php else:?> else <?php endif;?> : <?php if($settings['conf_custom_dragging_mobile'] == 'yes'):?> true <?php else:?> false <?php endif;?>),
54 tap: !L.Browser.mobile,
55 fullscreenControl: true,
56 fullscreenControlOptions: {
57 position: 'topleft'
58 }
59 });
60
61
62 L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
63 attribution: '&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'
64 }).addTo(wdk_map);
65
66
67
68 <?php if(!empty($settings['conf_custom_map_style']) && $settings['conf_custom_map_style'] =='custom' && !empty($settings['conf_custom_map_style_self'])):?>
69 var positron = L.tileLayer('<?php echo esc_js($settings['conf_custom_map_style_self']);?>').addTo(wdk_map);
70 <?php elseif(!empty($settings['conf_custom_map_style']) && $settings['conf_custom_map_style'] !='custom'):?>
71 <?php if($settings['conf_custom_map_style']=='google_map'):?>
72 <?php
73 wp_enqueue_script('google-map-api', 'https://maps.googleapis.com/maps/api/js?key='.wmvc_show_data('google_map_key', $settings, ''));
74 ?>
75 var roadMutant = L.gridLayer
76 .googleMutant({
77 type: "roadmap",
78 });
79
80 var satMutant = L.gridLayer.googleMutant({
81 type: "satellite",
82 });
83
84 var terrainMutant = L.gridLayer.googleMutant({
85 type: "terrain",
86 });
87
88 var hybridMutant = L.gridLayer.googleMutant({
89 type: "hybrid",
90 });
91
92 var styleMutant = L.gridLayer.googleMutant({
93 styles: [
94 { elementType: "labels", stylers: [{ visibility: "off" }] },
95 { featureType: "water", stylers: [{ color: "#444444" }] },
96 { featureType: "landscape", stylers: [{ color: "#eeeeee" }] },
97 { featureType: "road", stylers: [{ visibility: "off" }] },
98 { featureType: "poi", stylers: [{ visibility: "off" }] },
99 { featureType: "transit", stylers: [{ visibility: "off" }] },
100 { featureType: "administrative", stylers: [{ visibility: "off" }] },
101 {
102 featureType: "administrative.locality",
103 stylers: [{ visibility: "off" }],
104 },
105 ],
106 maxZoom: 24,
107 type: "roadmap",
108 });
109
110 var trafficMutant = L.gridLayer.googleMutant({
111 type: "roadmap",
112 });
113 trafficMutant.addGoogleLayer("TrafficLayer");
114
115 var transitMutant = L.gridLayer.googleMutant({
116 type: "roadmap",
117 });
118
119 var satelliteMutant = L.gridLayer.googleMutant({
120 type: "satellite",
121 });
122 transitMutant.addGoogleLayer("TransitLayer");
123
124 var google_map_style = roadMutant;
125 <?php switch (wmvc_show_data('google_map_default_type', $settings, 'roadMutant')){
126 case 'roadmap':
127 echo 'google_map_style=roadMutant';
128 break;
129 case 'aerial':
130 echo 'google_map_style=satMutant';
131 break;
132 case 'terrain':
133 echo 'google_map_style=terrainMutant';
134 break;
135 case 'hybrid':
136 echo 'google_map_style=hybridMutant';
137 break;
138 case 'satellite':
139 echo 'google_map_style=satelliteMutant';
140 break;
141 case 'styles':
142 echo 'google_map_style=styleMutant';
143 break;
144 case 'traffic':
145 echo 'google_map_style=trafficMutant';
146 break;
147 case 'transit':
148 echo 'google_map_style=transitMutant';
149 break;
150 }
151 ?>
152
153 google_map_style.addTo(wdk_map);
154 L.control.layers(
155 {
156 Roadmap: roadMutant,
157 Aerial: satMutant,
158 Terrain: terrainMutant,
159 Hybrid: hybridMutant,
160 Satellite: satelliteMutant,
161 Traffic: trafficMutant,
162 Transit: transitMutant,
163 }
164 ).addTo(wdk_map);
165
166 <?php elseif(in_array($settings['conf_custom_map_style'], array(
167 'https://{s}.tile.thunderforest.com/mobile-atlas/{z}/{x}/{y}.png',
168 'https://{s}.tile.thunderforest.com/cycle/{z}/{x}/{y}.png',
169 'https://{s}.tile.thunderforest.com/transport-dark/{z}/{x}/{y}.png',
170 'https://{s}.tile.thunderforest.com/landscape/{z}/{x}/{y}.png',
171 'https://{s}.tile.thunderforest.com/outdoors/{z}/{x}/{y}.png',
172 'https://{s}.tile.thunderforest.com/pioneer/{z}/{x}/{y}.png',
173 'https://{s}.tile.thunderforest.com/neighbourhood/{z}/{x}/{y}.png',
174 ))):?>
175 var positron = L.tileLayer('<?php echo esc_js($settings['conf_custom_map_style']);?><?php echo (wmvc_show_data('thunderforest_map_key', $settings, false)) ? '?apikey='.esc_js(wmvc_show_data('thunderforest_map_key', $settings)) : '';?>').addTo(wdk_map);
176 <?php elseif(in_array($settings['conf_custom_map_style'], array(
177 'https://{s}.tile.jawg.io/jawg-terrain/{z}/{x}/{y}{r}.png',
178 'https://{s}.tile.jawg.io/jawg-streets/{z}/{x}/{y}{r}.png',
179 'https://{s}.tile.jawg.io/jawg-dark/{z}/{x}/{y}{r}.png',
180 'https://{s}.tile.jawg.io/jawg-light/{z}/{x}/{y}{r}.png',
181 ))):?>
182 var positron = L.tileLayer('<?php echo esc_js($settings['conf_custom_map_style']);?><?php echo (wmvc_show_data('jawg_map_key', $settings, false)) ? '?access-token='.esc_js(wmvc_show_data('jawg_map_key', $settings)) : '';?>').addTo(wdk_map);
183 <?php else:?>
184 var positron = L.tileLayer('<?php echo esc_js($settings['conf_custom_map_style']);?>').addTo(wdk_map);
185 <?php endif;?>
186 <?php endif;?>
187
188 var auto_marker_size = false;
189 <?php foreach($results as $key=>$listing): ?>
190 <?php if(!is_numeric(wmvc_show_data('lng', $listing)))continue;?>
191 <?php
192 $pin_icon = "";
193 $font_class = "";
194 $font_icon = $this->generate_icon($settings['conf_custom_map_pin_icon']);
195 $pin_icon = $settings['conf_custom_map_pin']['url'];
196
197 if(!empty(wmvc_show_data('category_id', $listing))){
198 $category = $WMVC->category_m->get_data(wmvc_show_data('category_id', $listing));
199 if(wmvc_show_data('marker_image_id', $category, false, TRUE, TRUE)){
200 $pin_icon = wdk_image_src($category, 'full', NULL,'marker_image_id');
201 } else if(!empty(wmvc_show_data('font_icon_code', $category))) {
202 $font_class = wmvc_show_data('font_icon_code', $category);
203 }
204 } else {
205 $font_class = "";
206 }
207
208 $listing_lat = $listing_lng = NULL;
209 $listing_lat = wmvc_show_data('lat', $listing);
210 $listing_lng = wmvc_show_data('lng', $listing);
211
212 if(wmvc_show_data('conf_hide_real_location', $settings) == 'yes') {
213 $gps = wdk_get_near_location($listing_lat, $listing_lng);
214 //$listing_lat = (wmvc_show_data('lat', $gps));
215 //$listing_lng = (wmvc_show_data('lng', $gps));
216
217 $listing_lat = wdk_move_gps($listing_lat);
218 $listing_lng = wdk_move_gps($listing_lng);
219 }
220
221 ?>
222 <?php if(!empty($settings['custom_marker_fields']) && substr($this->data['settings']['custom_marker_fields'], strpos($this->data['settings']['custom_marker_fields'],'__')+2) == 'first_image'):?>
223 auto_marker_size = true;
224 var innerMarker = '<div class="wdk_marker-container wdk_marker_label wdk_marker_clear category_id_<?php echo esc_js(wmvc_show_data('category_id', $listing));?>"><img src="<?php echo esc_js(wdk_image_src($listing));?>"></img></div>';
225
226 <?php elseif(!empty($settings['custom_marker_fields']) && wdk_field_value (substr($this->data['settings']['custom_marker_fields'], strpos($this->data['settings']['custom_marker_fields'],'__')+2), $listing)):?>
227 <?php
228 $field_id = substr($this->data['settings']['custom_marker_fields'], strpos($this->data['settings']['custom_marker_fields'],'__')+2);
229
230 $field_value = '';
231 $field_value .= apply_filters( 'wpdirectorykit/listing/field/prefix', wdk_field_option ($field_id, 'prefix'), $field_id);
232
233 /* if price field use like 1l */
234 if(wdk_field_option($field_id, 'is_price_format')) {
235
236 $value = wdk_field_value($field_id, $listing);
237 if($value>=1000) {
238 $value = apply_filters( 'wpdirectorykit/listing/field/value', number_format_i18n(wdk_filter_decimal($value/1000)), $field_id).'k';
239 } else {
240 $value = apply_filters( 'wpdirectorykit/listing/field/value', wdk_field_value_on_type($field_id, $listing), $field_id);
241 }
242
243 $field_value = $value;
244
245 } else {
246 $field_value .= apply_filters( 'wpdirectorykit/listing/field/value', wdk_field_value_on_type($field_id, $listing), $field_id);
247 }
248
249 $field_value .= apply_filters( 'wpdirectorykit/listing/field/suffix',wdk_field_option ($field_id, 'suffix'), $field_id);
250 ?>
251 auto_marker_size = true;
252 var innerMarker = '<div class="wdk_marker-container wdk_marker_label category_id_<?php echo esc_js(wmvc_show_data('category_id', $listing));?>"><?php echo esc_js(strip_tags($field_value));?></div>';
253 <?php elseif($pin_icon):?>
254 var image = '<?php echo esc_html($pin_icon);?>'; var innerMarker = '<div class="wdk_marker-container wdk_marker-container-image"><img src='+image+'></img></div>';
255 <?php elseif($font_icon && empty($font_class)):?>
256 var innerMarker = '<div class="wdk_marker-container category_id_<?php echo esc_js(wmvc_show_data('category_id', $listing));?>"><div class="front wdk_face"><?php echo wdk_viewe($font_icon);?></div><div class="wdk_marker-card"><div class="wdk_marker-arrow"></div></div></div>';
257 <?php else:?>
258 var innerMarker = '<div class="wdk_marker-container category_id_<?php echo esc_js(wmvc_show_data('category_id', $listing));?>"><div class="front wdk_face"><i class="<?php echo esc_html($font_class);?>"></i></div><div class="wdk_marker-card"><div class="wdk_marker-arrow"></div></div></div>';
259 <?php endif;?>
260
261 wdk_markers.push(wdk_generate_marker_ajax_popup('<?php echo esc_url(admin_url('admin-ajax.php'));?>','<?php echo esc_html(wmvc_show_data('post_id', $listing));?>','<?php echo esc_html($listing_lat);?>','<?php echo esc_html($listing_lng);?>',innerMarker, wdk_jpopup_customOptions, auto_marker_size
262 , <?php if(wmvc_show_data('disable_cluster', $settings) == 'yes'):?> false <?php endif;?>));
263 <?php endforeach; ?>
264 wdk_map.addLayer(wdk_clusters);
265 /* set center */
266 if(wdk_markers.length){
267 var limits_center = [];
268 for (var i in wdk_markers) {
269 var latLngs = [ wdk_markers[i].getLatLng() ];
270 limits_center.push(latLngs)
271 };
272 var bounds = L.latLngBounds(limits_center);
273 <?php if(wdk_get_option('wdk_fixed_map_results_position') && wdk_get_option('wdk_default_lat') && wdk_get_option('wdk_default_lng')): ?>
274 wdk_map.setView(["<?php echo esc_js(wdk_get_option('wdk_default_lat'));?>","<?php echo esc_js(wdk_get_option('wdk_default_lng'));?>"]);
275 <?php elseif($settings['enable_custom_gps_center'] == 'yes'): ?>
276 wdk_map.setView(["<?php echo esc_js($settings['conf_custom_map_center_gps_lat']);?>","<?php echo esc_js($settings['conf_custom_map_center_gps_lng']);?>"]);
277 <?php else: ?>
278 wdk_map.fitBounds(bounds);
279 <?php endif; ?>
280 }
281 })
282 </script>
283 <?php
284
285 if (!$is_edit_mode) {
286 $js_content = ob_get_clean();
287 $js_content = str_replace(array('</script>','<script>'),'',$js_content );
288 wp_add_inline_script( 'wdk-elementor-main', $js_content );
289 }
290 ?>
291
292