Modifier le fichier

Template « Site web »

Objectif

Le template « Site web » est un layout générique fourni par koreparent pour construire une page d’accueil en une colonne et 15 lignes, simple à personnaliser côté projet.

Définition

  • Déclaration du layout et des slots: koreparent/layout/src/main/resources/core-layout.xml
  • Bean du layout: siteWeb (com.kosmos.layout.grid.impl.DragNDropGrid)
  • Liste des slots: bean slotsTemplateSiteWeb
  • Par défaut, chaque slot accepte les types ToolboxCardBean et SearchCardBean

Structure et slots

  • Le template expose 15 slots verticaux numérotés de 0 à 14 (soit 15 positions).
  • Chaque slot est un bean DragNDropSlot nommé siteWeb-slotX.
  • Pour chaque slot, la liste des types de cards autorisées est fournie par un bean CardClassList nommé allowedCardTypesTemplateSiteWeb-slotX.

Extrait simplifié de core-layout.xml:

<!-- Liste par défaut des cards autorisées pour le template -->
<bean id="defaultAllowedCardTypesTemplateSiteWeb" class="java.util.ArrayList" abstract="true">
    <constructor-arg type="java.util.Collection">
        <list>
            <value>com.kosmos.layout.card.bean.ToolboxCardBean</value>
            <value>com.kosmos.layout.card.bean.SearchCardBean</value>
        </list>
    </constructor-arg>
</bean>

        <!-- Slot 0 (même principe pour 0..14) -->
<bean id="allowedCardTypesTemplateSiteWeb-slot0" class="java.util.ArrayList" parent="defaultAllowedCardTypesTemplateSiteWeb"/>

<bean id="siteWeb-slot0" class="com.kosmos.layout.slot.impl.DragNDropSlot">
<property name="allowedCardTypes" ref="allowedCardTypesTemplateSiteWeb-slot0"/>
<property name="key" value="ba204506-dd15-4ee0-b79b-191260da31b1"/>
<property name="row" value="0"/>
<property name="column" value="0"/>
<property name="colSpan" value="1"/>
<property name="rowSpan" value="1"/>
</bean>

Règles de personnalisation des cards autorisées

  • La liste par défaut des types de cards autorisées pour le template est defaultAllowedCardTypesTemplateSiteWeb, c'est une définition abstraite donc non instanciée, elle n'est ainsi pas extensible via le listToAddBean.
  • Chaque instance de liste pour un slot (allowedCardTypesTemplateSiteWeb-slot0-slot14) est initialisée depuis cette liste abstraite.

Il est possible de :

  • surcharger la liste abstraite pour impacter tous les slots du template
  • ajouter/retirer des types uniquement pour un slot donné

Cas d’usage et exemples

  1. Modifier globalement les types autorisés (tous les slots) en surchargeant defaultAllowedCardTypesTemplateSiteWeb
<!-- Dans le ApplicationContext.xml du projet -->
<bean id="defaultAllowedCardTypesTemplateSiteWeb" class="java.util.ArrayList" abstract="true">
    <constructor-arg type="java.util.Collection">
        <list>
            <!-- Conservez celles du socle et ajoutez les vôtres -->
            <value>com.kosmos.layout.card.bean.ToolboxCardBean</value>
            <value>com.kosmos.layout.card.bean.SearchCardBean</value>
            <value>com.kosmos.actualite.card.ActualiteCardBean</value>
        </list>
    </constructor-arg>
</bean>

Effet : tous les slots (0..14) accepteront ToolboxCardBean, SearchCardBean et ActualiteCardBean.

  1. Ajouter une card uniquement sur un slot précis en faisant un listToAddBean
<!-- Ajoute une card seulement sur le slot 7 -->
<bean id="addDemarcheCardBeanToTemplateSiteWeb-slot1" class="com.kportal.core.context.ListToAddBean">
    <property name="idBeanToMerge" value="allowedCardTypesTemplateSiteWeb-slot1"/>
    <property name="add">
        <list value-type="java.lang.Class">
            <value>com.univ.objetspartages.card.DemarcheCardBean</value>
        </list>
    </property>
</bean>

Effet : seul siteWeb-slot1 acceptera DemarcheCardBean en supplément des autres types définis.