Changeset 2246220
- Timestamp:
- 02/18/2020 01:57:26 PM (6 years ago)
- Location:
- map-store-location/trunk
- Files:
-
- 8 edited
-
classes/admin/MslAdmin.php (modified) (2 diffs)
-
classes/widgets/MslWidget.php (modified) (21 diffs)
-
includes/css/msl.css (modified) (3 diffs)
-
languages/WP-map-store-locator-fr_FR.mo (modified) (previous)
-
languages/WP-map-store-locator-fr_FR.po (modified) (3 diffs)
-
msl-plugins.php (modified) (1 diff)
-
readme.txt (modified) (2 diffs)
-
uninstall.php (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
map-store-location/trunk/classes/admin/MslAdmin.php
r2220846 r2246220 318 318 add_settings_field("msl_marker_search_size", __( "Marker size (0-1)", 'WP-map-store-locator' ), array($this,"msl_marker_search_size"), "msl_plugin", "search_section"); 319 319 register_setting("msl_settings", "msl_marker_search_size"); 320 // max point(s) to adjust result extent 321 add_settings_field("msl_marker_search_extent", __( "Max results", 'WP-map-store-locator' ), array($this,"msl_marker_search_extent"), "msl_plugin", "search_section"); 322 register_setting("msl_settings", "msl_marker_search_extent"); 323 // bias param to adjust accuracy of result (0.1 accept far results and 10 not) 324 add_settings_field("msl_marker_search_bias", __( "Bias scale (0,1-10)", 'WP-map-store-locator' ), array($this,"msl_marker_search_bias"), "msl_plugin", "search_section"); 325 register_setting("msl_settings", "msl_marker_search_bias"); 320 326 } 321 327 … … 348 354 <?php 349 355 } 356 function msl_marker_search_extent() { 357 ?> 358 <input type="number" step="1" name="msl_marker_search_extent" id="msl_marker_search_extent" value="<?php echo get_option('msl_marker_search_extent'); ?>" /> 359 <?php 360 } 361 function msl_marker_search_bias() { 362 ?> 363 <input type="number"step="0.01" name="msl_marker_search_bias" id="msl_marker_search_bias" value="<?php echo get_option('msl_marker_search_bias'); ?>" /> 364 <?php 365 } 350 366 } -
map-store-location/trunk/classes/widgets/MslWidget.php
r2238415 r2246220 71 71 wp_enqueue_style( 'ol_css', MSL_PLUGIN_URL."includes/lib/ol-6.1.1/css/ol.css" ); 72 72 // use !important to override child theme css 73 wp_enqueue_style( 'msl', MSL_PLUGIN_URL."includes/css/msl.css" ); 74 73 wp_enqueue_style( 'msl', MSL_PLUGIN_URL."includes/css/msl.css" ); 75 74 } 76 75 … … 173 172 <!--Search input with autocompletion--> 174 173 <div class="autocomplete"> 175 <input class="input-search input-text" id=<?= $inputId ?> type="text" name=" nominatim" placeholder=" <?= __('Enter your adresse to get the nearest sale point', 'WP-map-store-locator');?>">174 <input class="input-search input-text" id=<?= $inputId ?> type="text" name="photon" placeholder=" <?= __('Enter your adresse to get the nearest sale point', 'WP-map-store-locator');?>"> 176 175 </div> 177 176 <!--OpenLayers map div--> … … 205 204 var overlayHtmlContent = <?= json_encode(get_option('msl_overlay_html'));?> || ''; 206 205 var dataUrl = <?= json_encode(get_option('msl_data_file_url'));?> || ''; 207 var dataSize = <?= json_encode(get_option('msl_data_size'));?> || '';206 var dataSize = <?= json_encode(get_option('msl_data_size'));?> || 0.8; 208 207 var openPageUrl = <?= json_encode(get_option('msl_open_page'));?> || ''; 209 208 var img = [ … … 216 215 <?= json_encode(get_option('msl_data_png3_type'));?>]; 217 216 var searchMarker = <?= json_encode(get_option('msl_marker_search_url'));?> || ''; 218 var searchSize = <?= json_encode(get_option('msl_marker_search_size'));?> || ''; 217 var searchSize = <?= json_encode(get_option('msl_marker_search_size'));?> || 1; 218 var maxResult = <?= json_encode(get_option('msl_marker_search_extent'));?> || 1; 219 var biasScale = <?= json_encode(get_option('msl_marker_search_bias'));?> || 1.5; 220 var popupIdx = 0; 221 var selectedFeatures = []; 222 var jsonFeatures; 219 223 220 224 /** … … 271 275 geometry: new ol.geom.Point(xy), 272 276 id: id 273 }); 274 if (marker ) { // avoid empty style and no ol.style.icon assertion error277 }); 278 if (marker) { // avoid empty style and no ol.style.icon assertion error 275 279 // create style 276 280 var iconStyle = new ol.style.Style({ … … 285 289 // set style 286 290 iconFeature.setStyle(iconStyle); 287 // remove layer if already exist 288 if(getLayerById(id, mapName)) { 289 mapName.removeLayer(id); 290 } 291 } 292 // remove layer if already exist 293 if(getLayerById(id, mapName)) { 294 var searchLayer = getLayerById(id, mapName); 295 searchLayer.getSource().clear(); 296 searchLayer.getSource().addFeature(iconFeature); 297 } else { 291 298 // create layer with uniq id 292 299 var layer = new ol.layer.Vector({ … … 299 306 }); 300 307 // add marker to map 301 mapName.addLayer(layer); 308 mapName.addLayer(layer); 302 309 } 303 310 } … … 321 328 return find; 322 329 } 323 324 330 /** 325 331 * Remove overlays from given map … … 330 336 map.getOverlays().getArray()[0].setPosition(undefined); 331 337 map.getOverlays().getArray().splice(0, map.getOverlays().getArray().length); 338 jQuery('#'+ 'popup-content-' + map.get('target')).empty(); 332 339 } 333 340 } 341 /** 342 * Manage events for fopup arrows buttons 343 * @param features - array of features 344 * @param map - ol.Map for this map 345 */ 346 function navigPopup(features, map) { 347 var maxIdx = features.length-1; 348 var idx; 349 // only for more than one features - display buttons 350 if(maxIdx > 0 & popupIdx != undefined) { 351 document.getElementById('nextPopup').addEventListener('click', function(){ 352 idx = popupIdx === maxIdx ? 0 : popupIdx + 1; 353 displayPopup(features, map, idx); 354 }); 355 document.getElementById('previousPopup').addEventListener('click', function(){ 356 idx = popupIdx === 0 ? maxIdx : popupIdx - 1; 357 displayPopup(features, map, idx); 358 }); 359 } 360 } 334 361 /** 335 362 * Function to generate the full process to destroy, create and set map overlay. … … 338 365 * @param map - target this ol.map object to display popup. 339 366 */ 340 function displayPopup(feature, map) { 367 function displayPopup(features, map, idx) { 368 popupIdx = idx; 369 var feature = features[idx]; 341 370 var html = ""; 342 371 var contactMsg = "<?php echo __('Please, contact ', 'WP-map-store-locator')?>" + overlayTitle + "<?php echo __(' to get more details.', 'WP-map-store-locator')?>"; 343 if(feature.id_ === 'search_marker') {372 if(feature.id_ != undefined && feature.id_ === 'search_marker') { 344 373 // never display popup on search marker without properties. 345 374 // avoid to display "undefined" values into popup. … … 362 391 jQuery('#'+ 'popup-' + map.get('target')).css('display','inline-block'); 363 392 // add content html 364 if(feature.getProperties().id === 'home-feature') { 393 var props = feature.getProperties(); 394 if(props.id === 'home-feature') { 365 395 // display some content if marker is the owner or default retailer marker 366 396 if(overlayHtmlContent.length > 0) { … … 371 401 } 372 402 } else { 373 // elseit's a json data feature, we display specific properties.403 // it's a json data feature, we display specific properties. 374 404 try { 375 var f = feature.getProperties(); 376 html = '<strong>'+ f.nom + '</strong>'; 377 html += '</br>'+ f.adresse + ', ' + f.code_postal + ', ' + f.ville; 378 document.getElementById('popup-content-' + map.get('target')).innerHTML = html; 405 if(!props.name) { 406 html = '<strong>'+ props.nom + '</strong>'; 407 html += '</br>'+ props.adresse + ', ' + props.code_postal + ', ' + props.ville; 408 } else { 409 html = '<span>'+ props.name + '</span>'; 410 } 411 if(features.length > 1) { 412 var lenFeatures = features.length; 413 html += `<br/><span style="text-align:center;">`; 414 html += `<button style="display:inline-block;" id="previousPopup" class="btn popupBtn"><</button>`; 415 html += popupIdx+1 + '/' + lenFeatures; 416 html += `<button id="nextPopup" style="display:inline-block;" class="btn popupBtn">></button></span>`; 417 } 418 document.getElementById('popup-content-' + map.get('target')).innerHTML = html; 379 419 } catch (e) { 380 420 // display contact message … … 389 429 } 390 430 document.getElementById('popup-content-' + map.get('target')).innerHTML = html; 431 432 // events for popup navigation buttons 433 navigPopup(features, map); 434 selectedFeatures = features; 391 435 } 392 436 … … 410 454 if(features.length) { 411 455 // display popup for the first popup only 412 displayPopup(features [0], <?= $mapName ?>);456 displayPopup(features, <?= $mapName ?>, 0); 413 457 } else { 414 458 // hide popup if no features was find. Allow to hide popup on simple map click. … … 455 499 features = res; 456 500 } 457 layerCustomers = featuresToLayer(features, layerId); 458 layerCustomers.setVisible(false); 459 map.addLayer(layerCustomers); 501 jsonFeatures = features; 460 502 } 461 503 } … … 474 516 * @return ol.layer.vector object. 475 517 */ 476 function featuresToLayer(features, id) { 518 function featuresToLayer(features, id, map) { 519 // remove layer if already exist 520 if(getLayerById(id,map)) { 521 map.removeLayer(getLayerById(id,map)); 522 } 523 // crate layer and add features 477 524 let vectorSource = new ol.source.Vector({ 478 525 features … … 494 541 var style; 495 542 var cat = feature.get('code_categorie'); 496 543 if(!cat && feature.get('styleUrl') && feature.get('styleUrl').indexOf('icon') >= 0) { // from kml 544 cat = feature.get('styleUrl').indexOf('icon-1502') < 0 ? 'CHR' : 'DET'; 545 } 497 546 if(types.indexOf(cat) > -1 && cat.length === types.length){ 498 547 var imgCat = img[types.indexOf(cat)]; … … 506 555 return [style]; 507 556 } 557 558 /** 559 * From features, calculate and zoom in 560 * allow a param to adjust zoom out 561 * @param - Array of ol.feature object 562 * @param - map ol.map targeted 563 * @param - int our float number 564 */ 565 function zoomToFeatures(features, map, out) { 566 var extent = (new ol.source.Vector({ 567 features: features 568 })).getExtent(); 569 map.getView().fit(extent, map.getSize()); 570 var zoom = map.getView().getZoom(); 571 map.getView().setZoom(zoom-(out ? out : 0)); 572 } 508 573 509 574 /** … … 568 633 var b; 569 634 var options = []; 635 570 636 // parse results 571 637 results.forEach(e => { 638 572 639 // create div for each 573 640 b = document.createElement("DIV"); 574 var xy = e.lon + ',' + e.lat; 575 var val = ''; 576 var place = e.address; 641 var xy = e.geometry.coordinates[0] + ',' + e.geometry.coordinates[1]; 577 642 var add = []; 578 function addToArray(el) { 579 if(add.indexOf(el) < 0) { 580 add.push(el); 581 } 582 } 643 583 644 // create string content according to nominatim returns 584 if( (place.county || place.city || place.village) && place.country) { 585 if(place.road) { 586 addToArray(place.road); 587 } else if (place.address29) { 588 addToArray(place.address29) 589 }; 590 if(place.village) {addToArray(place.village)}; 591 if(place.city) {addToArray(place.city)}; 592 if(place.county) {addToArray(place.county)}; 593 if(place.postcode) {add.push(place.postcode)}; 594 if(place.country_code) {add.push(place.country_code)}; 595 } else if (place.country && place.state){ 596 val = place.state + ', ' + place.country; 597 } 598 val = add.join(', '); 599 // set content 645 var val = 646 `${e.properties.street ? e.properties.street + ', ': e.properties.name + ', '}` + 647 `${e.properties.city ? e.properties.city + ', ': ''}` + 648 `${e.properties.state ? e.properties.state + ', ':''}` + 649 `${e.properties.country ? e.properties.country:''}` 650 ; 651 // set popup content and create result marker feature 600 652 if(xy && val && options.indexOf(val) < 0) { 601 653 options.push(val); … … 611 663 <?= $mapName ?>.getView().setCenter(center); 612 664 addPoint(center, searchMarker, searchSize, <?= $mapName ?>, "search_marker"); 665 613 666 // display nearest point 614 var vector = getLayerById('json-customers', <?= $mapName ?>); 615 if(vector) { 616 var source = getLayerById('json-customers', <?= $mapName ?>).getSource(); 617 if(source) { 618 var closestFeature = source.getClosestFeatureToCoordinate(center); 619 displayPopup(closestFeature, <?= $mapName ?>); 620 vector.setVisible(true) 621 } 667 var vector = featuresToLayer(jsonFeatures, '', <?= $mapName ?>); 668 var source = vector ? vector.getSource() : ''; 669 670 // close the list of autocompleted values 671 closeAllLists(); 672 673 /** 674 * Now we search closests features to display around search marker result 675 */ 676 if(source && maxResult) { 677 var closestPoints = {}; 678 var closestDist = []; 679 var resultPoints = []; 680 var minDists; 681 // get all distances 682 source.getFeatures().forEach(e=>{ 683 // create line 684 var props = e.getProperties(); 685 var line = new ol.geom.LineString([center, e.getGeometry().getCoordinates()]); 686 // get line length 687 var lineMeasure = line.getLength(); 688 if(closestDist.indexOf(lineMeasure)<0){ 689 closestDist.push(lineMeasure); 690 closestPoints[lineMeasure.toString()] = []; 691 } 692 closestPoints[lineMeasure.toString()].push(e); 693 }) 694 695 // order list to get closests distances first 696 closestDist.sort(function(a, b) { 697 return a - b 698 }); 699 minDists = closestDist.slice(0,maxResult); 700 701 /* Now, parse layer features 702 to get features according to distance */ 703 var extentPoint = [] 704 var popupPoints = []; 705 minDists.forEach(dist => { 706 closestPoints[dist].forEach(e => { 707 if(extentPoint.length < maxResult) { 708 extentPoint.push(e); 709 if(!popupPoints.length) { 710 popupPoints.push(e); 711 } else { 712 var nearestGeom = e.getGeometry().getCoordinates().join(''); 713 var compareGeom = popupPoints[0].getGeometry().getCoordinates().join(''); 714 if(nearestGeom === compareGeom) { 715 popupPoints.push(e); 716 } 717 } 718 } 719 }) 720 }) 721 722 // clear layer and addFeatures 723 vector = featuresToLayer(extentPoint, '', <?= $mapName ?>); 724 <?= $mapName ?>.addLayer(vector); 725 // show popup 726 displayPopup(popupPoints, <?= $mapName ?>, 0); 727 // show result marker 728 var markerFeature = getLayerById("search_marker", <?= $mapName ?>).getSource().getFeatures()[0]; 729 // adjust zoom and extent 730 zoomToFeatures(extentPoint.concat([markerFeature]), <?= $mapName ?>, 1); 622 731 } 623 /*close the list of autocompleted values,624 (or any other open lists of autocompleted values:*/625 closeAllLists();626 732 }); 627 733 // append child input to result div 628 parent.appendChild(b); 734 parent.appendChild(b); 735 closestPoints = null; 736 closestDist = null; 737 resultPoints = null; 738 minDists = null; 629 739 } 630 740 }); … … 640 750 // Ajax request 641 751 var xhr = new XMLHttpRequest(); 642 xhr.open('GET', 'https://nominatim.openstreetmap.org/search?q='+ value + '&format=json&addressdetails=1&limit=5'); 752 var url = 'https://photon.komoot.de/api/?limit=5&q='+ value + '&limit=5'; 753 url += '&location_bias_scale=' + biasScale; 754 // Add priority from view center 755 var center = <?= $mapName ?>.getView().getCenter(); 756 center = ol.proj.transform(center, 'EPSG:3857', 'EPSG:4326'); 757 url += `&lon=${center[0]}&lat=${center[1]}`; 758 xhr.open('GET', url); 643 759 xhr.onload = function() { 644 760 if (xhr.status === 200 && xhr.responseText) { 645 761 var response = xhr.responseText.length ? JSON.parse(xhr.responseText) : null; 646 762 if(response) { 647 displayList(response , parent);763 displayList(response.features, parent); 648 764 } 649 765 } -
map-store-location/trunk/includes/css/msl.css
r2238415 r2246220 3 3 */ 4 4 .ol-popup { 5 position: absolute;6 background-color: white;7 -webkit-filter: drop-shadow(0 1px 4px rgba(0,0,0,0.2));8 filter: drop-shadow(0 1px 4px rgba(0,0,0,0.2));9 padding: 15px;10 border-radius: 10px;11 border: 1px solid #cccccc;12 bottom: 12px;13 left: -50px;14 min-width: 180px;15 text-align: left;16 font-size: 14px;17 }18 19 .ol-popup:after, .ol-popup:before {20 top: 100%;21 border: solid transparent;22 content: " ";23 height: 0;24 width: 0;25 position: absolute;26 pointer-events: none;27 }28 .ol-popup:after {29 border-top-color: white;30 border-width: 10px;31 left: 48px;32 margin-left: -10px;33 }34 .ol-popup:before {35 border-top-color: #cccccc;36 border-width: 11px;37 left: 48px;38 margin-left: -11px;39 }5 position: absolute; 6 background-color: white; 7 -webkit-filter: drop-shadow(0 1px 4px rgba(0,0,0,0.2)); 8 filter: drop-shadow(0 1px 4px rgba(0,0,0,0.2)); 9 padding: 15px; 10 border-radius: 10px; 11 border: 1px solid #cccccc; 12 bottom: 12px; 13 left: -50px; 14 min-width: 180px; 15 text-align: left; 16 font-size: 14px; 17 } 18 19 .ol-popup:after, .ol-popup:before { 20 top: 100%; 21 border: solid transparent; 22 content: " "; 23 height: 0; 24 width: 0; 25 position: absolute; 26 pointer-events: none; 27 } 28 .ol-popup:after { 29 border-top-color: white; 30 border-width: 10px; 31 left: 48px; 32 margin-left: -10px; 33 } 34 .ol-popup:before { 35 border-top-color: #cccccc; 36 border-width: 11px; 37 left: 48px; 38 margin-left: -11px; 39 } 40 40 41 41 … … 55 55 border-radius: 3px !important; 56 56 margin-bottom: 0 !important; 57 width: 100%; 57 58 } 58 59 … … 84 85 /*when hovering an item:*/ 85 86 .autocomplete-items div:hover { 86 background-color: #e9e9e9 !important; 87 background-color: #e9e9e9 !important; 87 88 } 88 89 89 90 /*when navigating through the items using the arrow keys:*/ 90 91 .autocomplete-active { 91 background-color: DodgerBlue !important; 92 background-color: DodgerBlue !important; 92 93 color: #ffffff !important; 93 94 94 } 95 96 /*Popup buttons style*/ 97 .popupBtn, .popupBtn:focus { 98 font-size: 0.8em !important; 99 background-color: transparent !important; 100 color: blue !important; 101 Text-Decoration: None !important; 102 outline: none !important; 103 } 104 105 .popupBtn:focus { 106 color: #cd2653 !important; 107 } -
map-store-location/trunk/languages/WP-map-store-locator-fr_FR.po
r2220846 r2246220 3 3 "Project-Id-Version: WP-map-store-locator\n" 4 4 "Report-Msgid-Bugs-To: \n" 5 "POT-Creation-Date: 20 19-12-19 15:18+0000\n"6 "PO-Revision-Date: 20 19-12-19 15:19+0000\n"7 "Last-Translator: jdev<gaetan.bruel@jdev.fr>\n"5 "POT-Creation-Date: 2020-02-18 08:31+0000\n" 6 "PO-Revision-Date: 2020-02-18 08:31+0000\n" 7 "Last-Translator: wordpress <gaetan.bruel@jdev.fr>\n" 8 8 "Language-Team: Français\n" 9 9 "Language: fr_FR\n" … … 15 15 "X-Loco-Version: 2.3.1; wp-5.3.2" 16 16 17 #: classes/admin/Admin.php:32 classes/widgets/Msl.php:20 17 #: classes/admin/MslAdmin.php:30 classes/widgets/MslWidget.php:21 18 #: classes/widgets/MslWidgetSave.php:21 18 19 msgid "Map Store Locator" 19 20 msgstr "Map Store Locator" 20 21 21 #: classes/admin/ Admin.php:5822 #: classes/admin/MslAdmin.php:56 22 23 msgid "Save" 23 24 msgstr "Enregistrer" 24 25 25 #: classes/admin/ Admin.php:7326 #: classes/admin/MslAdmin.php:71 26 27 msgid "Map options" 27 28 msgstr "Options de la carte" 28 29 29 #: classes/admin/ Admin.php:7530 #: classes/admin/MslAdmin.php:73 30 31 msgid "Coordinates" 31 32 msgstr "Coordonnées" 32 33 33 #: classes/admin/ Admin.php:7834 #: classes/admin/MslAdmin.php:76 34 35 msgid "Zoom (1 - 20)" 35 36 msgstr "Zoom (valeur de 1 à 20)" 36 37 37 #: classes/admin/ Admin.php:8138 #: classes/admin/MslAdmin.php:79 38 39 msgid "Link to open" 39 40 msgstr "Page à consulter" 40 41 41 #: classes/admin/ Admin.php:8942 #: classes/admin/MslAdmin.php:87 42 43 msgid "Default map view options." 43 44 msgstr "Options d'affichage de la carte à l'ouverture." 44 45 45 #: classes/admin/ Admin.php:9246 #: classes/admin/MslAdmin.php:90 46 47 msgid "Get coordinates in EPSG:3857 (lon, lat) from " 47 48 msgstr "Obtenez les coordonnées en EPSG:3857 (lon, lat) depuis le site" 48 49 49 #: classes/admin/ Admin.php:9450 #: classes/admin/MslAdmin.php:92 50 51 msgid "Dogeo web site. " 51 52 msgstr " internet Dogeo" 52 53 53 #: classes/admin/ Admin.php:12454 #: classes/admin/MslAdmin.php:122 54 55 msgid "Popup options" 55 56 msgstr "Options d'affichage de l'infobulle" 56 57 57 #: classes/admin/ Admin.php:12658 #: classes/admin/MslAdmin.php:124 58 59 msgid "Title" 59 60 msgstr "Titre" 60 61 61 #: classes/admin/ Admin.php:12962 #: classes/admin/MslAdmin.php:127 62 63 msgid "Text" 63 64 msgstr "Description" 64 65 65 #: classes/admin/ Admin.php:13266 #: classes/admin/MslAdmin.php:130 66 67 msgid "Marker Icon" 67 68 msgstr "Pictogramme" 68 69 69 #: classes/admin/ Admin.php:135 classes/admin/Admin.php:19570 #: classes/admin/ Admin.php:32070 #: classes/admin/MslAdmin.php:133 classes/admin/MslAdmin.php:193 71 #: classes/admin/MslAdmin.php:318 71 72 msgid "Marker size (0-1)" 72 73 msgstr "Taille du pictogramme (0-1)" 73 74 74 #: classes/admin/ Admin.php:13875 #: classes/admin/MslAdmin.php:136 75 76 msgid "HTML content" 76 77 msgstr "Contenu HTML" 77 78 78 #: classes/admin/ Admin.php:14679 #: classes/admin/MslAdmin.php:144 79 80 msgid "Default popup options." 80 81 msgstr "Options d'affichage de l'infobulle par défaut." 81 82 82 #: classes/admin/ Admin.php:19083 #: classes/admin/MslAdmin.php:188 83 84 msgid "Data options" 84 85 msgstr "Options du jeu de données" 85 86 86 #: classes/admin/ Admin.php:19287 #: classes/admin/MslAdmin.php:190 87 88 msgid "URL (JSON, GeoJSON)" 88 89 msgstr "URL (JSON, GeoJSON)" 89 90 90 #: classes/admin/ Admin.php:19891 #: classes/admin/MslAdmin.php:196 91 92 msgid "Type 1" 92 93 msgstr "Type 1" 93 94 94 #: classes/admin/ Admin.php:20195 #: classes/admin/MslAdmin.php:199 95 96 msgid "Image 1" 96 97 msgstr "Symbole 1" 97 98 98 #: classes/admin/ Admin.php:20499 #: classes/admin/MslAdmin.php:202 99 100 msgid "Type 2" 100 101 msgstr "Type 2" 101 102 102 #: classes/admin/ Admin.php:207103 #: classes/admin/MslAdmin.php:205 103 104 msgid "Image 2" 104 105 msgstr "Symbole 2" 105 106 106 #: classes/admin/ Admin.php:210107 #: classes/admin/MslAdmin.php:208 107 108 msgid "Type 3" 108 109 msgstr "Type 3" 109 110 110 #: classes/admin/ Admin.php:213111 #: classes/admin/MslAdmin.php:211 111 112 msgid "Image 3" 112 113 msgstr "Symbole 3" 113 114 114 #: classes/admin/ Admin.php:221115 #: classes/admin/MslAdmin.php:219 115 116 msgid "Options to display data on the map." 116 117 msgstr "Options par défaut d'affichage des données sur la carte" 117 118 118 #: classes/admin/ Admin.php:224119 #: classes/admin/MslAdmin.php:222 119 120 msgid "Display data with projection " 120 121 msgstr "Vous devez afficher les données dans la projection " 121 122 122 #: classes/admin/ Admin.php:227 classes/admin/Admin.php:331123 #: classes/admin/MslAdmin.php:225 classes/admin/MslAdmin.php:335 123 124 msgid "Please, use SVG or PNG as icons." 124 125 msgstr "" 125 126 "Merci d'utiliser des liens vers les formats SVG et PNG pour les symboles." 126 127 127 #: classes/admin/ Admin.php:241128 #: classes/admin/MslAdmin.php:239 128 129 msgid "Check the template file." 129 130 msgstr "Fichier d'exemple à respecter." 130 131 131 #: classes/admin/ Admin.php:315 classes/admin/Admin.php:328132 #: classes/admin/MslAdmin.php:313 classes/admin/MslAdmin.php:332 132 133 msgid "Search options" 133 134 msgstr "Options de la barre de recherche" 134 135 135 #: classes/admin/ Admin.php:317136 #: classes/admin/MslAdmin.php:315 136 137 msgid "Marker URL" 137 138 msgstr "URL de l'icône" 138 139 140 #: classes/admin/MslAdmin.php:321 141 msgid "Max results" 142 msgstr "Nombre de résultats" 143 144 #: classes/admin/MslAdmin.php:324 145 msgid "Bias scale (0,1-10)" 146 msgstr "Echelle de proximité (0.1-10)" 147 139 148 #. Description of the plugin 140 #: classes/widgets/Msl .php:21149 #: classes/widgets/MslWidget.php:22 classes/widgets/MslWidgetSave.php:22 141 150 msgid "A plugin to display geographic data in a map." 142 151 msgstr "" … … 144 153 "carte." 145 154 146 #: classes/widgets/Msl .php:93155 #: classes/widgets/MslWidget.php:116 classes/widgets/MslWidgetSave.php:117 147 156 msgid "Simple map" 148 157 msgstr "Carte simple" 149 158 150 #: classes/widgets/Msl .php:97159 #: classes/widgets/MslWidget.php:120 classes/widgets/MslWidgetSave.php:121 151 160 msgid "Height (px, em, %)" 152 161 msgstr "Hauteur (px, em, %)" 153 162 154 #: classes/widgets/Msl .php:98163 #: classes/widgets/MslWidget.php:121 classes/widgets/MslWidgetSave.php:122 155 164 msgid "Height" 156 165 msgstr "Hauteur" 157 166 158 #: classes/widgets/Msl .php:102167 #: classes/widgets/MslWidget.php:125 classes/widgets/MslWidgetSave.php:126 159 168 msgid "Width (px, em, %)" 160 169 msgstr "Largeur (px, em, %)" 161 170 162 #: classes/widgets/Msl .php:103171 #: classes/widgets/MslWidget.php:126 classes/widgets/MslWidgetSave.php:127 163 172 msgid "Width" 164 173 msgstr "Largeur" 165 174 166 #: classes/widgets/Msl .php:154175 #: classes/widgets/MslWidget.php:174 classes/widgets/MslWidgetSave.php:175 167 176 msgid "Enter your adresse to get the nearest sale point" 168 177 msgstr "Entrer votre adresse pour trouver les points de ventes " 169 178 170 #: classes/widgets/Msl .php:310179 #: classes/widgets/MslWidget.php:371 classes/widgets/MslWidgetSave.php:342 171 180 msgid "Please, contact " 172 181 msgstr "Merci de contacter " 173 182 174 #: classes/widgets/Msl .php:310183 #: classes/widgets/MslWidget.php:371 classes/widgets/MslWidgetSave.php:342 175 184 msgid " to get more details." 176 185 msgstr " pour obtenir plus d'informations." -
map-store-location/trunk/msl-plugins.php
r2238415 r2246220 4 4 5 5 Description: A plugin to display geographic data in a map. 6 Version: 1. 1.06 Version: 1.2.0 7 7 Author: JDev 8 8 License: GPLv3 or later -
map-store-location/trunk/readme.txt
r2238415 r2246220 3 3 Donate link: https://jdev.fr/ 4 4 Tags: map, OpenStreetMap, CSV, GeoJson, geotag, geolocation, OSM, OpenLayers, Open Layers, Open Street Map,POI, geocode, geotagging, location, store, retaillers, jdev 5 Requires at least: 5.05 Requires at least: 4.9 6 6 Tested up to: 5.3.2 7 7 Stable tag: trunk … … 60 60 Fix shortcode param 61 61 Fix translation path 62 63 = 1.2.0 = 64 Fix input search width 65 Insert arrows to change the popup target for many feature at the same coordinates 66 Display popup at nearest(s) point(s) 67 Complete translation 68 Change Nominatim to Photon address API 69 Fix style for KML layer 70 Fix some default params values 71 Add param to config the result numbers 72 Zoom to results address extent -
map-store-location/trunk/uninstall.php
r2220846 r2246220 28 28 delete_option('msl_marker_search_url'); 29 29 delete_option('msl_marker_search_size'); 30 delete_option('msl_marker_search_extent'); 31 delete_option('msl_marker_search_bias'); 30 32 delete_option('msl_overlay_html'); 31 33 delete_option('msl_overlay_marker');
Note: See TracChangeset
for help on using the changeset viewer.