Evolution #1489
fermé
Plusieurs membres dans une même commune
Ajouté par Frederic CROZET il y a plus de 3 ans.
Mis à jour il y a plus de 2 ans.
Description
[ Dans Page Publique - Carte ]
Je ne me rends pas trop compte de la difficulté pour réaliser ce souhait...
Mais ce serait cool, de pouvoir visualiser le nombre d'adhérent d'une même commune avec par exemple un "+2" pour 2 membres à coté de la punaise sur la carte.
Car actuellement, seulement le dernier membre inscrit est visible.
Je trouve cette carte très visuelle pour connaitre l'impact de notre association sur les communes environnantes et très utile pour solliciter ses communes (aides financière, aides matériels, etc.) ;)
Fichiers
Étant donné que le nom de l'adhérent et son pseudo sont affichés dans la popup, il serait effectivement utile de faire ainsi.
Heureusement ç'est réalisable facilement grâce à un plugin pour la librairie affichant la carte : http://leaflet.github.io/Leaflet.markercluster/
Voir le patch ci-joint.
En attendant que cette fonction soit intégrée au plugin, l'ajouter sur une installation existante (version 1.5.0) peut se faire assez facilement :
- leaflet.markercluster.js
- MarkerCluster.css
- MarkerCluster.Default.css
- Modifier le fichier
headers.tpl
dans le dossier templates
du plugin
Remplacer la dernière ligne {/if}
par :
{else}
<link rel="stylesheet" type="text/css" href="{path_for name="plugin_res" data=["plugin" => $module_id, "path" => "leaflet-markercluster/MarkerCluster.css"]}"/>
<link rel="stylesheet" type="text/css" href="{path_for name="plugin_res" data=["plugin" => $module_id, "path" => "leaflet-markercluster/MarkerCluster.Default.css"]}"/>
{/if}
- Modifier le fichier
common_scripts.tpl
dans le dossier templates
du plugin
Ajouter la ligne suivante à la ligne 4 ( avant <script type="text/javascript">
) :
<script type="text/javascript" src="{path_for name="plugin_res" data=["plugin" => $module_id, "path" => "leaflet-markercluster/leaflet.markercluster.js"]}"></script>
- Modifier le fichier maps.tpl dans le dossier
templates
du plugin
Le plus simple est de remplacer intégralement le contenu de ce fichier par
{extends file="page.tpl"}
{block name="content"}
<section>
<div id="map"></div>
</section>
{include file='file:[maps]common_html.tpl'}
{/block}
{block name="javascripts"}
{include file='file:[maps]common_scripts.tpl'}
<script type="text/javascript">
var _mapsBinded = function(map)
{
var _markers = [];
{foreach $list as $l}
{if isset($l.company) and $l.company neq ''}
{assign var=icon value='galetteProIcon'}
{else}
{assign var=icon value='galetteIcon'}
{/if}
_member = [{$l.lat}, {$l.lng}, {$icon}, '<p><strong>{$l.name|escape}</strong>{if $l.nickname neq ''} {_T string="aka" domain="maps" escape="js"} <em>{$l.nickname|escape}</em>{/if}{if isset($l.company)}<br/>{$l.company|escape}{/if}</p>'];
_markers.push(_member);
{/foreach}
var _group = L.markerClusterGroup();
for (var i = 0; i < _markers.length; i++) {
var _a = _markers[i];
var _title = _a[3];
var _icon = _a[2];
var _marker = L.marker(new L.LatLng(_a[0], _a[1]), { icon: _icon });
_marker.bindPopup(_title);
_group.addLayer(_marker);
}
map.addLayer(_group).fitBounds(
_group.getBounds(), {
padding: [50, 50],
maxZoom: 12
}
);
}
</script>
{/block}
Hello,
J'ai testé le patch avec la version galette v0.9.4.2 et cela fonctionne parfaitement!
- Statut changé de Nouveau à Résolu
- % réalisé changé de 0 à 100
- Statut changé de Résolu à Fermé
Formats disponibles : Atom
PDF