Carte filtrée par noeud sous Drupal7

23 vues
27 août 2012
Raphaëlle

Cet article: Créer une géolocalisation sous drupal7 avec OpenLayer (en français s’il-vous-plaît) décrit très bien comment réaliser une carte sous Drupal 7 avec le module OpenLayers, il ne détaille en revanche pas comment utiliser Openlayers pour utiliser la carte de votre choix en filtrant sur le node édité. Il faut en fait refaire la procédure exécutée pour la carte globale mais cette fois pour la carte filtrée.
Voici donc un court complément à ce tutoriel :

1-Créer la source de contenu avec filtre sur le noeud :

Strcuture/Views/Ajouter une nouvelle vue de type OpenLayers Data Overlay qui contienne les éléments de votre choix (dans mon cas il s’agit des contenus de type Evénement) et de format OpenLayers Data Overlay.

Comme pour la carte globale ajoutez le champ géocalisation au format WKT et sélectionnez ce champ en WKT Field pour la carte dans les options de style.
La différence avec la carte globale se trouve ici: ajoutez maintenant un contextual filter

Le nom de ma vue est node_map.

2-Créer la carte associée

OpenLayers/Maps/Ajouter

Faites comme pour la carte globale, en activant comme layer la vue que vous venez de créer.

 

3-Créer la vue de la carte

Pour afficher cette vue lors de la visualisation d’un contenu de type Evénement 

Rendez-vous dans Structure/Panels

Dans la section manage pages activer la page Node template et modifiez-la.

Cliquez sur Add Variant et ajouter une variante contenant une règle de sélection basée sur le type de noeud 

Choisissez le template de votre choix (j’ai pris le plus simple pour mart AT Responsive Panels - 1 column) et dans contenu ajoutez les différents éléments que vous souhaitez voir apparaître sur votre page en incluant bien sûr la carte que vous venez de créer.

 

Si vous souhaitez simplement un bloc à ajouter sur l’une ou l’autre de vos pages vous pouvez vous rendre dans :

Structure/Views/Ajouter une nouvelle vue de type Bloc et de format OpenLayersMap avec pour champ Map la carte que vous venez de créer (dans mon cas carte par événement).

Voilà, en espérant que ce tutoriel puisse aider!