J'ai eu besoin de créer des layers dynamiquement avec Openlayers en fonction de termes de taxonomie. Un peu d'astuce avec Views et voilà le travail !
- Créez une vue Openlayers.
- Ajouter un display pour le premier terme.
- Créez un filtre sur le premier terme.
- Exportez la vue en code.
Ensuite, éditez la vue pour créer un display par terme :/**
* Implements hook_views_default_views().
*/
function MYMODULE_views_default_views() {
$vocabulary = taxonomy_vocabulary_machine_name_load('VOCABULARY_NAME');
$terms = taxonomy_get_tree($vocabulary->vid);
// Your view code for the master display...
foreach($terms as $term) {
$handler = $view->new_display('openlayers', $term->name, 'layer_' . $term->tid);
// The display code...
$handler->display->display_options['filters']['tid']['value'] = array(
$term->tid => $term->tid,
);
}
// Remaining code...
}
De même pour la map :/**
* Implements hook_openlayers_maps().
*/
function MYMODULE_openlayers_maps() {
$vocabulary = taxonomy_vocabulary_machine_name_load('VOCABULARY_NAME');