PageIncludeService
Définition
Les PageIncludeServices sont des services qui permettent d'inclure du code HTML dans les pages du site par le biais de bookmarks placés
dans le gabarit principal du portail (page_frameset.html).
Ces services peuvent introduire du contenu mais sont plutôt destinés à insérer du code technique à des emplacements non accessibles pour les
portlets ou les XPageApp. Par exemple insérer dynamiquement, dans la partie <head> des pages HTML, des liens vers des feuilles de style CSS ou vers des fichiers RSS.
Les PageIncludeServices du Core
Lutèce intègre par défaut plusieurs PageIncludeServices :
Nom | Description |
---|---|
Links | Insertion des feuilles de style CSS et des Javascripts spécifiques des plugins installés |
Métas | Insertion des valeurs des tags méta définis dans le fichier webmaster.properties |
Themes | Gestion dynamique des chemins des feuilles de style CSS en fonction du thème associé à la page |
Statistics | Insertion du code HTML spécifique à l'outil de mesure d'audience |
Les services par défaut sont déclarés dans le fichier lutece.properties.
Création d'un PageIncludeService
Déclaration
Les plugins peuvent ajouter de nouveaux PageIncludeServices en les déclarant dans leur fichier XML de la manière suivante :
<!-- Page Includes --> <page-include-services> ... <page-include-service> <page-include-service-name>My Include Service</page-include-service-name> <page-include-service-class>fr.paris.lutece.myplugin.web.MyInclude</page-include-service-class> </page-include-service> ... </page-include-services>
Implémentation
Un PageIncludeService doit implémenter l'interface PageInclude.
Voici un exemple très simple d'implémentation :
import fr.paris.lutece.portal.service.content.PageData; import fr.paris.lutece.portal.service.includes.PageInclude; import java.util.Map; import javax.servlet.http.HttpServletRequest; public class MyInclude implements PageInclude { private static final String MARK_MY_INCLUDE = "my_include"; /** * {@inheritDoc} */ @Override public void fillTemplate( Map<String, Object> rootModel, PageData data, int nMode, HttpServletRequest request ) { rootModel.put( MARK_MY_INCLUDE, "My include content" ); } }