Sites


Lutece : guide développeur

Créer un bloc dynamique de Page (PageInclude)

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.

Déclaration

Lutèce intègre par défaut plusieurs PageIncludeServices au niveau du noyau :

NomDescriptionFournisseur
Links Insertion des feuilles de style CSS et des Javascripts spécifiques des plugins installés lurece-core
Métas Insertion des valeurs des tags méta à partir de celles définies dans le fichier webmaster.properties lutece-core
Themes Gestion dynamique des chemins des feuilles de style CSS en fonction du thème associé à la page lutece-core
Statistics Insertion du code HTML spécifique à l'outil de mesure d'audience lutececore
GTools Insertion des balises Google Analytics plugin-gtools
Piwik Insertion des balises Piwik plugin-piwik

 

Les services par défaut sont déclarés dans le fichier core.xml. Les plugins peuvent ajouter de nouveaux PageIncludeServices en les déclarant dans leur fichier XML de la manière suivante :

<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>

Implémentation

Un PageIncludeService doit implémenter l'interface PageInclude .

Voici un exemple très simple d'implémentation :

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" );
         }
}

Il y a une erreur de communication avec le serveur Booktype. Nous ne savons pas actuellement où est le problème.

Vous devriez rafraîchir la page.