9 déc. 2020 11:02:21 Thomas Dumont avatar

Créer des fragments HTML (Plugin HTMLPage)

Présentation

Le plugin htmlpage permet de mettre en œuvre et de gérer des pages spéciales HTML. Celles-ci sont des fragments de page HTML éditables en Back-Office et pouvant être insérées dans les pages du Front-Office.

Intégration

Il faudra rajouter la dépendance à htmlpage dans le pom :

<dependency>
    <groupId>fr.paris.lutece.plugins</groupId>
    <artifactId>plugin-htmlpage</artifactId>
    <version>VERSION</version>
    <type>lutece-plugin</type>
</dependency>

La version dépend de celle du core Lutece :

  • 4.1.3 à partir de Lutece 6
  • 4.1.1 avant Lutece 6

Sur un site existant, il faudra activer le plugin en Back-Office dans Système > Gestion des plugins. Pour la version 4.1.3, on devra également donner les droits aux utilisateurs Back-Office concernés pour accéder à la gestion des pages spéciales.

Il est possible de faire ces deux actions au moyen d'un script d'update sur la base.

Administration

En Back-Office, la gestion s'effectue depuis Système > Gestion des Pages Spéciales Html. La page affiche la liste des pages spéciales HTML éventuellement filtrée en fonction des groupes de travail auquel l'utilisateur appartient. Sur chaque ligne, il est possible de supprimer, dupliquer ou modifier la page spéciale correspondante. Pour ajouter une nouvelle page spéciale il faudra cliquer sur le bouton Ajouter une page spéciale.

La création ou la modification, permettent de saisir les données de la page spéciale qui sont :

  • Nom
  • Statut (la page spéciale ne sera visible en Front-Office que si le statut est Activé)
  • Groupe de travail (permet de rendre la page spéciale visible en Back-Office uniquement aux utlisateurs faisant partie d'un certain groupe de travail. Voir Gestionnaires > Groupes de travail)
  • Rôle (permet de rendre la page spéciale visible en Front-Office uniquement aux utlisateurs ayant un certain rôle Lutèce. Voir Utilisateurs > Gestion des rôles Lutece)
  • Contenu HTML (saisi à travers un éditeur HTML)

Utilisation

Pour que le contenu d'une page spéciale soit inséré en Front-Office, il faudra rajouté dans la page concernée une balise de la forme

${htmlpage_<ID_HTMLPAGE>!}
où l'id de la page spéciale peut être visualisé dans la liste des pages spéciales en Back-Office.

...
<!-- Header -->
<header role="banner">
    ${page_header}
</header>
<main class="main-raised">
    <!-- Content -->
    ${htmlpage_1!}
    ${htmlpage_2!}
    ${htmlpage_3!}
    ${page_content}
</main>
<!-- Footer -->
<footer>
    ${page_footer}
</footer>
...

Insérer une balise avec un id qui n'est pas encore utilisé ne provoque pas d'erreur. Même chose si l'id correspond à une page spéciale qui a été supprimée.

Pour que le contenu d'une page spéciale soit intégré sur toutes les pages du Front-Office, il faudra rajouter la balise dans le fichier /templates/skin/site/page_frameset.html.

Consultation dans une page dédiée

Une XPage permet de consulter chaque page spéciales dans une page dédiée. Le chemin /jsp/site/Portal.jsp?page=htmlpage donne accès à une page de recherche des pages spéciales auxquelles l'utilisateur a accès. Pour visualiser une page spéciale le chemin est /jsp/site/Portal.jsp?page=htmlpage&htmlpage_id=<ID_HTMLPAGE> où l'id de la page spéciale peut être visualisé dans la liste des pages spéciales en Back-Office.

Il est donc possible de proposer le contenu d'une même page spéciale à la fois comme partie d'une page de l'application et dans une page dédiée. Un lien vers la page dédiée pourra alors être proposé avec une autre page spéciale pour qu'il puisse être modifié en Back-Office.