Autres versions

Vous êtes ici : Développer dans K-SupPersonnalisationFront-office

Création d'un template de site

Réalisez vos propres templates afin de personnaliser l'intégration de vos différents sites

Les templates de site sont utilisés pour personnaliser les différents sites de votre application. Il est ainsi possible de définir un template comportant un certain nombre de variables pour différencier l'intégration de chaque site : logo, baseline, identifiant google analytics...

Les templates de sites sont définis à partir d'une configuration Spring. A partir de la configuration, il est possible de :
  • Définir des nouvelles variables
  • Définir de nouveaux templates
  • Modifier les templates / variables existants

Définition d'un nouveau template

Les templates doivent être définis dans le fichier de contexte Spring de votre application.
Pour en ajouter un nouveau, il faut déclarer un bean héritant de TemplateSiteImpl et renseigner les propriétés suivantes :
  • code : le code du template pour l'identifier de manière unique dans l'application
  • intitule : l'intitulé du template
  • dossierJSP : le chemin du dossier contenant les JSP du template
  • description : description du template (ce champ n'est pas obligatoire)
  • vignette : vignette pour identifier le template (ce champ n'est pas obligatoire)
Par défaut le produit fournit un template pointant vers le répertoire /jsp :
<bean id="templateSiteDefaut" class="com.kosmos.usinesite.template.bean.impl.TemplateSiteImpl">
    <property name="code" value="jspDefaut"/>
    <property name="intitule" value="par défaut"/>
    <property name="description" value="Gabarit par défaut fourni avec l'application."/>
    <property name="dossierJSP" value="/jsp"/>
</bean>
 

Définition de propriétés

Ajout de propriétés

Les paramètres saisis dans les templates de site sont aussi des propriétés déclarées dans le fichier de contexte Spring. Chaque propriété est un bean héritant de AbstractTemplateSiteProperty. Suivant les propriétés de site utilisées, différents attributs sont à renseigner dans le bean. Il faut cependant valoriser à minima les champs suivants :
  • code : Celui-ci permet d'identifier de manière unique la propriété et sera utilisé pour la retrouver dans l'application.
  • libelle : libellé pour identifier la propriété dans l'écran de saisie des sites.
  • description : description de la propriété
  • obligatoire : définit si la propriété doit être obligatoirement renseignée.
Une fois définie dans le fichier de contexte, la propriété est disponible dans tous les templates de l'application.
Afin de limiter la portée d'une propriété à certains templates uniquement, il faut en plus renseigner l'attribut restictionTemplates avec les codes des templates souhaités.
<bean id="templateSitePropertyFavicon" class="com.kosmos.usinesite.template.property.bean.impl.TemplateSitePropertyFichier">
    <property name="code">
        <util:constant static-field="com.kportal.ihm.utils.FrontUtil.NOM_PROPRIETE_FAVICON"/>
    </property>
    <property name="libelle" value="Favicon du site"/>
</bean>

<bean id="templateSitePropertyBaseline" class="com.kosmos.usinesite.template.property.bean.impl.TemplateSitePropertyString">
    <property name="code">
        <util:constant static-field="com.kportal.ihm.utils.FrontUtil.NOM_PROPRIETE_BASELINE"/>
    </property>
    <property name="libelle" value="Baseline du site"/>
    <property name="restrictionTemplates">
        <list>
            <value>jspDefaut</value>
        </list>
    </property>
</bean>

Types de paramètres

Le produit propose par défaut plusieurs types de propriété que vous pouvez utiliser dans vos projets :
  • TemplateSitePropertyString : Champ texte sur une une ligne
  • TemplateSitePropertyListeString : Liste de valeurs saisies par l'utilisateur
  • TemplateSitePropertyMultilignes : Champ texte multi-ligne
  • TemplateSitePropertyChoixValeur : Choix d'une valeur parmi une liste
  • TemplateSitePropertyChoixMultiple : Choix multiple parmi une liste de valeurs
  • TemplateSitePropertyFichier : Sélection d'un fichier
  • TemplateSitePropertyColor : Sélection d'une couleur
  • TemplateSitePropertyRubrique : Sélection d'une rubrique
  • TemplateSitePropertyMultiRubrique : Sélection d'une liste de rubriques

Utilisation d'une propriété

Dans vos développements, afin de récupérer la valeur de la propriété saisie dans le site, il faut récupérer le site courant et appeler la méthode getProprieteComplementaire en passant en paramètre le code de la propriété déclarée dans le fichier de contexte.
/**
* Renvoie la baseline défini sur la déclaration du site.
* @return la baseline ou vide si non trouvé.
*/
public static String getBaseline() {
    ContexteUniv ctx = ContexteUtil.getContexteUniv();
    InfosSite siteCourant = ctx.getInfosSite();
    return siteCourant != null ? siteCourant.getProprieteComplementaireString("BASELINE") : StringUtils.EMPTY;
}

Saisie d'une valeur pour la propriété

Une fois déclarées, vos propriétés apparaîtront automatiquement dans l'interface d'administration, dans l'onglet "Template de site" de l'écran de saisie de votre site (voir notre article Créer un site).

Mis à jour le 20 avril 2018