Évolution de l'overlay "fusion"

l'overlay fusion.php est conçu pour combiner (fusionner) les fonctionnalités de plusieurs autres overlays (par exemple, day, multi_category, geoloc).

L'overlay fusion.php est un outil de configuration qui permet à une section YACS d'hériter et d'exécuter les logiques de plusieurs autres overlays simultanément.

L'objectif principal est d'appliquer les traitements spécifiques de plusieurs modules (gestion des dates, gestion des catégories multiples, gestion de la géolocalisation, etc.) à la même liste d'éléments de section.


Le Problème du no_render

    Contexte : L'option no_render est un paramètre hérité de l'overlay Day (ou event.php).

    Fonctionnement de no_render : Normalement, un overlay peut surcharger la fonction render pour afficher les éléments d'une section différemment (ex: calendrier, carte). L'option no_render est un cas tordu qui, lorsqu'elle est présente, annule cette surcharge et force le rendu à utiliser le mécanisme de listage par défaut du layout de la section.


    Le correctif  : Dans la configuration de fusion (fusion overlay1 overlay2 ...), le paramètre no_render était interprété à tort comme un nom d'overlay à fusionner, ce qui pouvait entraîner une erreur. L'ajout proposé par Christian et Alexis dans fusion.php consiste à ignorer ce paramètre s'il est utilisé au niveau de la section

Le Mécanisme de Fusion des Fonctions

    Fonction render : L'overlay fusion.php interroge les fonctions "infusionnables" (comme render) des overlays fusionnés dans l'ordre où ils sont déclarés.

    Priorité : Il utilise la première réponse non-NULL qu'il reçoit et s'arrête là.

L'ordre des overlays peut être important, notamment pour la fonction get_field (implicitement mentionnée pour la saisie des dates).

Évolution de la Syntaxe


   Exemples de nouvelle syntaxe proposée :  fusion (days no_render) multi_category (geoloc no_map)

   Cette nouvelle syntaxe clarife que no_render est un paramètre pour days et non un overlay.


Configuration dans YACS

Vous devez définir l'overlay fusion dans les options de la section concernée, suivi des noms des overlays à fusionner, séparés par des espaces. Élément de Configuration Syntaxe à Utiliser Description Section Options / Overlay fusion overlay1 overlay2 [overlay3 ...] Déclaration de l'overlay fusion et de la liste des overlays à exécuter. Exemple (selon la discussion) fusion day multi_category geoloc Combine les fonctions de l'overlay days, l'overlay multi_category et l'overlay geoloc.

Cas Particulier du no_render

Si vous utilisez l'option no_render pour l'un des overlays fusionnés (comme days ou event), vous le placez directement dans la liste des paramètres

Grâce à la modification mentionnée, il ignore l'option no_render lors de la recherche des noms d'overlays, mais cette option sera ensuite prise en compte par l'overlay days (ou event) s'il est programmé pour cela.