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
wpdirectorykit / elementor-elements / views / wdk-listing-map.php

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

295 lines 15.4 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 Listing Map.
4 * This is the template that elementor element map
5 *
6 */
7
8 if ( ! defined( 'ABSPATH' ) ) {
9 exit; // Exit if accessed directly.
10 }
11
12 ?>
13
14 <?php
15 if(empty($lng) || empty($lat)) {
16 ?>
17 <div class="">
18 <p class="wdk_alert wdk_alert-danger"><?php echo esc_html__('Missing address', 'wpdirectorykit');?></p>
19 </div>
20 <?php
21 return false;
22 }
23 ?>
24
25 <div class="wdk-element" id="wdk_el_<?php echo esc_html($id_element);?>">
26 <div class="wdk-map infobox-basic">
27 <div id="wdk_map_results_<?php echo esc_html($id_element);?>" style="height:<?php echo esc_attr($settings['conf_custom_map_height']['size']);?>px" ></div>
28
29 <?php if(wmvc_show_data('enable_router_suggest',$settings) =='yes'): ?>
30 <form class="route_suggestion" action="">
31 <input class="input_text" type="hidden" name="address" value="<?php echo esc_attr(wdk_field_value('address', $wdk_listing_id));?>" />
32 <input class="input_text" type="hidden" name="gps" value="<?php echo esc_attr($lat.','.$lng);?>" />
33 <div class="wdk-field-group">
34 <input class="input_text" type="text" placeholder="<?php // Dynamic field values are registered in the translation catalog separately.
35 // phpcs:ignore WordPress.WP.I18n.NonSingularStringLiteralText
36 echo esc_attr(wmvc_show_data('text_suggestion_route_placeholder', $settings), );?>" name="route_from" />
37 </div>
38 <div class="wdk-field-group">
39 <button type="submit" class="wdk-btn"><?php // Dynamic field values are registered in the translation catalog separately.
40 // phpcs:ignore WordPress.WP.I18n.NonSingularStringLiteralText
41 echo esc_html__(wmvc_show_data('text_suggestion_route', $settings), 'wpdirectorykit');?></button>
42 </div>
43 </form>
44 <?php endif;?>
45 </div>
46 </div>
47 <?php
48 $zoom_index = $settings['conf_custom_map_zoom_index']['size'];
49 ?>
50
51 <?php
52 $WMVC = &wdk_get_instance();
53 $WMVC->model('category_m');
54 if (!$is_edit_mode)
55 ob_start();
56 ?>
57 <script>
58 var wdk_map_<?php echo esc_html($id_element);?> ='';
59 var wdk_markers_<?php echo esc_html($id_element);?> = [];
60 var wdk_clusters_<?php echo esc_html($id_element);?> ='';
61 var wdk_jpopup_customOptions =
62 {
63 'maxWidth': 'initial',
64 'width': 'initial',
65 'className' : 'popupCustom'
66 };
67 jQuery(document).ready(function($) {
68 if(wdk_clusters_<?php echo esc_html($id_element);?>=='')
69 wdk_clusters_<?php echo esc_html($id_element);?> = L.markerClusterGroup({spiderfyOnMaxZoom: true, showCoverageOnHover: false, zoomToBoundsOnClick: true});
70 wdk_map_<?php echo esc_html($id_element);?> = L.map('wdk_map_results_<?php echo esc_html($id_element);?>', {
71 center: ["<?php echo esc_js($lat);?>","<?php echo esc_js($lng);?>"],
72 zoom: "<?php echo esc_js($zoom_index);?>",
73 scrollWheelZoom: false,
74 <?php if($settings['conf_custom_dragging'] == 'yes'):?>
75 dragging: true,
76 <?php else:?>
77 dragging: false,
78 <?php endif;?>
79 tap: !L.Browser.mobile,
80 fullscreenControl: true,
81 fullscreenControlOptions: {
82 position: 'topleft'
83 }
84 });
85
86 L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
87 attribution: '&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'
88 }).addTo(wdk_map_<?php echo esc_html($id_element);?>);
89
90 <?php if(!empty($settings['conf_custom_map_style']) && $settings['conf_custom_map_style'] =='custom' && !empty($settings['conf_custom_map_style_self'])):?>
91 var positron = L.tileLayer('<?php echo esc_js($settings['conf_custom_map_style_self']);?>').addTo(wdk_map_<?php echo esc_html($id_element);?>);
92 <?php elseif(!empty($settings['conf_custom_map_style']) && $settings['conf_custom_map_style'] !='custom'):?>
93 <?php if($settings['conf_custom_map_style']=='google_map'):?>
94 <?php
95 wp_enqueue_script('google-map-api', 'https://maps.googleapis.com/maps/api/js?key='.wmvc_show_data('google_map_key', $settings, ''));
96 ?>
97 var roadMutant = L.gridLayer
98 .googleMutant({
99 type: "roadmap",
100 });
101
102 var satMutant = L.gridLayer.googleMutant({
103 type: "satellite",
104 });
105
106 var terrainMutant = L.gridLayer.googleMutant({
107 type: "terrain",
108 });
109
110 var hybridMutant = L.gridLayer.googleMutant({
111 type: "hybrid",
112 });
113
114 var styleMutant = L.gridLayer.googleMutant({
115 styles: [
116 { elementType: "labels", stylers: [{ visibility: "off" }] },
117 { featureType: "water", stylers: [{ color: "#444444" }] },
118 { featureType: "landscape", stylers: [{ color: "#eeeeee" }] },
119 { featureType: "road", stylers: [{ visibility: "off" }] },
120 { featureType: "poi", stylers: [{ visibility: "off" }] },
121 { featureType: "transit", stylers: [{ visibility: "off" }] },
122 { featureType: "administrative", stylers: [{ visibility: "off" }] },
123 {
124 featureType: "administrative.locality",
125 stylers: [{ visibility: "off" }],
126 },
127 ],
128 maxZoom: 24,
129 type: "roadmap",
130 });
131
132 var trafficMutant = L.gridLayer.googleMutant({
133 type: "roadmap",
134 });
135 trafficMutant.addGoogleLayer("TrafficLayer");
136
137 var transitMutant = L.gridLayer.googleMutant({
138 type: "roadmap",
139 });
140
141 var satelliteMutant = L.gridLayer.googleMutant({
142 type: "satellite",
143 });
144 transitMutant.addGoogleLayer("TransitLayer");
145
146 var google_map_style = roadMutant;
147 <?php switch (wmvc_show_data('google_map_default_type', $settings, 'roadMutant')){
148 case 'roadmap':
149 echo 'google_map_style=roadMutant';
150 break;
151 case 'aerial':
152 echo 'google_map_style=satMutant';
153 break;
154 case 'terrain':
155 echo 'google_map_style=terrainMutant';
156 break;
157 case 'hybrid':
158 echo 'google_map_style=hybridMutant';
159 break;
160 case 'satellite':
161 echo 'google_map_style=satelliteMutant';
162 break;
163 case 'styles':
164 echo 'google_map_style=styleMutant';
165 break;
166 case 'traffic':
167 echo 'google_map_style=trafficMutant';
168 break;
169 case 'transit':
170 echo 'google_map_style=transitMutant';
171 break;
172 }
173 ?>
174
175 google_map_style.addTo(wdk_map_<?php echo esc_html($id_element);?>);
176 L.control.layers(
177 {
178 Roadmap: roadMutant,
179 Aerial: satMutant,
180 Terrain: terrainMutant,
181 Hybrid: hybridMutant,
182 Satellite: satelliteMutant,
183 Traffic: trafficMutant,
184 Transit: transitMutant,
185 }
186 ).addTo(wdk_map_<?php echo esc_html($id_element);?>);
187
188 <?php elseif(in_array($settings['conf_custom_map_style'], array(
189 'https://cartodb-basemaps-{s}.global.ssl.fastly.net/light_all/{z}/{x}/{y}{r}.png',
190 'https://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}{r}.png',
191 'https://{s}.basemaps.cartocdn.com/rastertiles/voyager/{z}/{x}/{y}{r}.png',
192 'https://cartodb-basemaps-{s}.global.ssl.fastly.net/dark_all/{z}/{x}/{y}{r}.png',
193 ))):?>
194
195 <?php
196 // If no Carto key is provided, show default tile styling (fallback to OSM)
197 if (!$is_edit_mode && empty($settings['carto_map_key'])): ?>
198 var positron = L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
199 attribution: '&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'
200 }).addTo(wdk_map);
201 <?php else: ?>
202 var positron = L.tileLayer('<?php echo esc_js($settings['conf_custom_map_style']);?>?key=<?php echo esc_js($settings['carto_map_key']);?>').addTo(wdk_map);
203 <?php endif; ?>
204 <?php elseif(in_array($settings['conf_custom_map_style'], array(
205 'https://{s}.tile.thunderforest.com/mobile-atlas/{z}/{x}/{y}.png',
206 'https://{s}.tile.thunderforest.com/cycle/{z}/{x}/{y}.png',
207 'https://{s}.tile.thunderforest.com/transport-dark/{z}/{x}/{y}.png',
208 'https://{s}.tile.thunderforest.com/landscape/{z}/{x}/{y}.png',
209 'https://{s}.tile.thunderforest.com/outdoors/{z}/{x}/{y}.png',
210 'https://{s}.tile.thunderforest.com/pioneer/{z}/{x}/{y}.png',
211 'https://{s}.tile.thunderforest.com/neighbourhood/{z}/{x}/{y}.png',
212 ))):?>
213 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);
214 <?php elseif(in_array($settings['conf_custom_map_style'], array(
215 'https://{s}.tile.jawg.io/jawg-terrain/{z}/{x}/{y}{r}.png',
216 'https://{s}.tile.jawg.io/jawg-streets/{z}/{x}/{y}{r}.png',
217 'https://{s}.tile.jawg.io/jawg-dark/{z}/{x}/{y}{r}.png',
218 'https://{s}.tile.jawg.io/jawg-light/{z}/{x}/{y}{r}.png',
219 ))):?>
220 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);
221 <?php else:?>
222 var positron = L.tileLayer('<?php echo esc_js($settings['conf_custom_map_style']);?>').addTo(wdk_map_<?php echo esc_html($id_element);?>);
223 <?php endif;?>
224 <?php endif;?>
225
226 <?php if(is_numeric($lng)):?>
227 <?php
228 $font_class = "fa fa-home";
229 $font_icon = $this->generate_icon($settings['conf_custom_map_pin_icon']);
230 $pin_icon = $settings['conf_custom_map_pin']['url'];
231
232 if(!empty(wdk_field_value('category_id', $wdk_listing_id))){
233 $category = $WMVC->category_m->get_data(wdk_field_value('category_id', $wdk_listing_id));
234 if(wmvc_show_data('marker_image_id', $category, false, TRUE, TRUE)){
235 $pin_icon = wdk_image_src($category, 'full', NULL,'marker_image_id');
236 } else if(!empty(wmvc_show_data('font_icon_code', $category))) {
237 $font_class = wmvc_show_data('font_icon_code', $category);
238 }
239 } else {
240 $font_class = "";
241 }
242
243 $wdk_popup_content = '<div class="infobox map-box wdk-infobox-basic">'
244 .'<h3 class="title">'.esc_html(wdk_field_value('post_title', $wdk_listing_id)).'</h3>'
245 .'<p>'.esc_html(wdk_field_value('address', $wdk_listing_id)).'</p>'
246 .'</div>';
247
248 if($settings['puopup_custom_content'] == 'yes') {
249 $title_field_id = substr($settings['title_field_id'], strpos($settings['title_field_id'],'__')+2);
250 $content_field_id = substr($settings['content_field_id'], strpos($settings['content_field_id'],'__')+2);
251
252 $wdk_popup_content = '<div class="infobox map-box wdk-infobox-basic">'
253 .'<h3 class="title">'.esc_html(wdk_field_value($title_field_id, $wdk_listing_id)).'</h3>'
254 .'<p>'.esc_html(wdk_field_value($content_field_id, $wdk_listing_id)).'</p>'
255 .'</div>';
256
257 }
258
259
260 $wdk_popup_content = str_replace("'", "\'", $wdk_popup_content);
261 $wdk_popup_content = str_replace("\n", "", $wdk_popup_content);
262 $wdk_popup_content = str_replace("\r", "", $wdk_popup_content);
263 ?>
264 let marker;
265 <?php if($pin_icon):?>
266 var image = '<?php echo esc_html($pin_icon);?>'; var innerMarker = '<div class="wdk_marker-container wdk_marker-container-image category_id_<?php echo esc_js(wdk_field_value('category_id', $wdk_listing_id));?>""><img src='+image+'></img></div>';
267 <?php elseif($font_icon && empty($font_class)):?>
268 var innerMarker = '<div class="wdk_marker-container category_id_<?php echo esc_js(wdk_field_value('category_id', $wdk_listing_id));?>""><div class="front wdk_face"><?php echo wdk_viewe($font_icon) // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped, WordPress.WP.I18n.NonSingularStringLiteralText;?></div><div class="wdk_marker-card"><div class="wdk_marker-arrow"></div></div></div>';
269 <?php else:?>
270 var innerMarker = '<div class="wdk_marker-container category_id_<?php echo esc_js(wdk_field_value('category_id', $wdk_listing_id));?>""><div class="front wdk_face"><i class="<?php echo esc_attr($font_class);?>"></i></div><div class="wdk_marker-card"><div class="wdk_marker-arrow"></div></div></div>';
271 <?php endif;?>
272
273 <?php if($settings['conf_custom_popup_enable'] == 'yes'):?>
274 marker = wdk_generate_marker_basic_popup('<?php echo esc_html($lat);?>','<?php echo esc_html($lng);?>',innerMarker,'<?php echo $wdk_popup_content; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped, WordPress.WP.I18n.NonSingularStringLiteralText?>', wdk_jpopup_customOptions);
275 <?php else:?>
276 marker = wdk_generate_marker_nopopup('<?php echo esc_html($lat);?>','<?php echo esc_html($lng);?>',innerMarker);
277 <?php endif;?>
278
279 wdk_markers_<?php echo esc_html($id_element);?>.push(marker);
280 wdk_clusters_<?php echo esc_html($id_element);?>.addLayer(marker);
281 wdk_map_<?php echo esc_html($id_element);?>.addLayer(wdk_clusters_<?php echo esc_html($id_element);?>);
282 <?php endif;?>
283 /* set center */
284 })
285 </script>
286
287 <?php
288 if (!$is_edit_mode) {
289 $js_content = ob_get_clean();
290 $js_content = str_replace(array('</script>','<script>'),'',$js_content );
291 wp_add_inline_script( 'wdk-elementor-main', $js_content );
292 }
293 ?>
294
295