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
ToolboxCardBeanetSearchCardBean
Structure et slots
- Le template expose 15 slots verticaux numérotés de
0à14(soit 15 positions). - Chaque slot est un bean
DragNDropSlotnommésiteWeb-slotX. - Pour chaque slot, la liste des types de cards autorisées est fournie par un bean
CardClassListnommé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 lelistToAddBean. - 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
- 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.
- 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.