Bibliothèque de galerie : Personnaliser
La bibliothèque de galerie partagée (\ImmoMakler\Frontend\Gallery\) peut être personnalisée à deux endroits sans modifier le code du plugin :
- Hooks de filtre — modifient la sélection d’images, le tableau d’options ou la configuration de la lightbox au moment de l’exécution.
- Variables CSS — remplacent les couleurs, les espacements et les tailles des éléments de contrôle par instance de galerie.
Hooks de filtre
Section intitulée « Hooks de filtre »immomakler_gallery_image_collection
Section intitulée « immomakler_gallery_image_collection »Modifie la collection d’images résolue avant le rendu. S’applique uniformément à tous les contextes d’utilisation : module Divi, tag Bricks, shortcode et les templates skin hérités.
Signature :
apply_filters( 'immomakler_gallery_image_collection', \ImmoMakler\Frontend\Gallery\Image_Collection $collection, int $post_id, string $source // 'all' | 'floorplans' | 'non_floorplans')Exemple — inverser les images :
add_filter( 'immomakler_gallery_image_collection', function ( $collection, $post_id, $source ) { if ( ! $collection instanceof \ImmoMakler\Frontend\Gallery\Image_Collection ) { return $collection; } $reversed = array_reverse( $collection->all() ); return new \ImmoMakler\Frontend\Gallery\Image_Collection( $reversed ); }, 10, 3);immomakler_gallery_options
Section intitulée « immomakler_gallery_options »Modifie le tableau d’options transmis au preset après que les valeurs de l’appelant ont été fusionnées avec les valeurs par défaut du preset. Permet d’imposer centralement des options telles que loop, autoplay, space_between.
Signature :
apply_filters( 'immomakler_gallery_options', array $options, string $preset_id, int $post_id, string $source)Exemple — activer l’autoplay pour tous les presets de carrousel :
add_filter( 'immomakler_gallery_options', function ( $options, $preset_id, $post_id, $source ) { if ( in_array( $preset_id, [ 'horizontal_thumbs', 'vertical_thumbs' ], true ) ) { $options['autoplay'] = true; } return $options; }, 10, 4);immomakler_lightgallery_options
Section intitulée « immomakler_lightgallery_options »Modifie les options transmises à lightGallery() dans le navigateur — par exemple plugins, speed, licenseKey, strings. S’applique aussi bien à la nouvelle bibliothèque de galerie qu’aux templates skin hérités (c’est le même filtre que la classe Lightgallery existante met à disposition depuis des années).
Signature :
apply_filters( 'immomakler_lightgallery_options', array $options )Exemple — activer le bouton de téléchargement :
add_filter( 'immomakler_lightgallery_options', function ( $options ) { $options['download'] = true; return $options; });Activer les plugins lightGallery
Section intitulée « Activer les plugins lightGallery »La clé plugins contient la liste des plugins lightGallery actifs. WP-ImmoMakler fournit un script prêt à l’emploi pour tous les plugins lightGallery. Vous n’avez pas besoin d’inclure vous-même le script correspondant via wp_enqueue_script() — il suffit d’ajouter le token approprié dans plugins :
| Token | Plugin | Actif par défaut |
|---|---|---|
lgZoom | Zoom | ✓ |
lgThumbnail | Vignettes (Thumbnails) | ✓ |
lgFullscreen | Plein écran | ✓ |
lgAutoplay | Lecture automatique (Slideshow) | — |
lgMediumZoom | Medium Zoom | — |
lgRotate | Pivoter / Retourner | — |
lgShare | Partager (réseaux sociaux) | — |
lgHash | Deep-linking par hash d’URL | — |
lgPager | Points de page (Pager) | — |
lgComment | Commentaires | — |
lgRelativeCaption | Légende relative | — |
lgVideo | Vidéo (YouTube, Vimeo, HTML5) | — |
lgVimeoThumbnail | Vignettes Vimeo (nécessite lgVideo) | — |
WP-ImmoMakler charge automatiquement exactement les fichiers JavaScript correspondant aux tokens réellement renseignés dans plugins : en ajoutant un token, le script du plugin correspondant est chargé ; en le supprimant, le script est omis.
Exemple — activer la lecture automatique (Slideshow) :
add_filter( 'immomakler_lightgallery_options', function ( $options ) { $options['plugins'][] = 'lgAutoplay'; // Activer le plugin autoplay $options['slideShowAutoplay'] = true; // Démarrer le diaporama automatiquement à l'ouverture $options['slideShowInterval'] = 1500; // Durée entre les images (en ms) $options['progressBar'] = true; // Afficher la barre de progression return $options; });Il suffit d’ajouter lgAutoplay pour afficher le bouton lecture/pause dans la barre d’outils de la lightbox ; slideShowAutoplay lance également la lecture automatiquement à l’ouverture. La liste complète des options d’autoplay (slideShowAutoplay, slideShowInterval, progressBar, forceSlideShowAutoplay, autoplayControls) est disponible dans la documentation lightGallery.
Filtre : étendre la zone de contrôle de la galerie statique
Section intitulée « Filtre : étendre la zone de contrôle de la galerie statique »La galerie statique affiche une zone de contrôle (.immomakler-gallery__controls) en bas à droite, où le bouton pilule “Afficher tous les N photos” apparaît par défaut (lorsque toutes les photos ne tiennent pas dans la grille de vignettes et que l’option Customizer Si plus de photos que d’emplacements de vignettes est réglée sur “Bouton”).
Le filtre immomakler_gallery_static_controls_items permet d’ajouter des actions supplémentaires — typiquement des liens d’ancrage vers les sections Plan, Vidéo ou Visite virtuelle de la page de détail.
Signature :
apply_filters( 'immomakler_gallery_static_controls_items', array $items, \ImmoMakler\Frontend\Gallery\Image_Collection $images, int $post_id)Chaque item est un tableau associatif avec les champs suivants :
| Champ | Obligatoire | Description |
|---|---|---|
modifier | ✓ | Suffixe de modificateur BEM pour la classe CSS (p. ex. floorplan → .immomakler-gallery__controls-item--floorplan). |
href | ✓ | Cible d’ancrage : # pour un déclencheur lightbox, #id-section pour des liens internes. |
label | ✓ | Texte visible et traduit. |
data_attributes | optionnel | Paires nom-attribut => valeur, rendues sous forme de data-<nom>="<valeur>". Utilisez immomakler-gallery-lightbox-index pour connecter un déclencheur lightbox. |
aria_label | optionnel | Texte pour les lecteurs d’écran (remplace le label visible). |
icon_svg | optionnel | Balisage SVG brut. Affiché dans un span __controls-item-icon avant le label. |
Exemple — ajouter un lien “Afficher le plan” lorsqu’un ancrage de plan existe sur la page :
add_filter( 'immomakler_gallery_static_controls_items', function ( array $items, $images, int $post_id ): array { if ( ! has_floorplan( $post_id ) ) { return $items; } $items[] = [ 'modifier' => 'floorplan', 'href' => '#grundriss', 'label' => __( 'Grundriss anzeigen', 'mein-theme' ), 'icon_svg' => '<svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor"><path d="..."/></svg>', ]; return $items; }, 10, 3);Variables CSS
Section intitulée « Variables CSS »Les presets intégrés utilisent des propriétés CSS personnalisées sur la classe wrapper .immomakler-gallery. Cela vous permet de remplacer les couleurs, les espacements et les tailles des éléments de contrôle par instance de galerie ou globalement — sans avoir à écrire des sélecteurs à haute spécificité.
| Variable | Par défaut | Description |
|---|---|---|
--immomakler-gallery-primary-color | #af1615 | Couleur d’accentuation (flèches, vignette active, contrôles de la lightbox). |
--immomakler-gallery-primary-color-inverted | #fff | Couleur de contraste de la couleur d’accentuation (p. ex. icône flèche sur bouton coloré). |
--immomakler-gallery-main-aspect | 4 / 3 | Rapport d’aspect de l’image principale. |
--immomakler-gallery-thumb-aspect | 3 / 2 (vertical) / 4 / 3 (horizontal) | Rapport d’aspect des vignettes. |
--immomakler-gallery-gap | 8px (horizontal) / 10px (vertical) | Espacement entre les images. Agit à la fois sur le gap de la grille CSS de la bande de vignettes et sur le spaceBetween de Swiper — le loader lit la variable calculée lors de l’initialisation, de sorte que les overrides CSS personnalisés (p. ex. les media queries responsive) maintiennent l’espacement entre les vignettes de manière cohérente. |
--immomakler-gallery-thumbs-width | 200px (vertical) | Largeur de la bande de vignettes dans la mise en page verticale. |
--immomakler-gallery-nav-button-size | 30px | Taille des boutons de navigation (flèches). |
--immomakler-gallery-nav-opacity | 0.8 | Opacité des flèches de l’image principale (au repos). |
--immomakler-gallery-thumb-default-opacity | 0.6 | Opacité des vignettes inactives. |
--immomakler-gallery-thumb-nav-opacity | 0.5 | Opacité des flèches de la bande de vignettes (mise en page verticale). |
--immomakler-gallery-thumb-nav-height | 20px | Hauteur des boutons de flèche de la bande de vignettes (mise en page verticale). |
--immomakler-gallery-carousel-height | 400px | Hauteur de la galerie dans la mise en page carrousel. |
Exemple — définir la couleur d’accentuation et le rapport d’aspect de l’image principale globalement :
.immomakler-gallery { --immomakler-gallery-primary-color: #1a73e8; --immomakler-gallery-primary-color-inverted: #ffffff; --immomakler-gallery-main-aspect: 16 / 9;}