SP:Composant:PredefinedContent
De Hegyd Doc.
Sommaire |
Contenus prédéfinis
Permet de définir un ensemble de blocObject associé a un bloc. L'ensemble de blocObject forment le contenu prédéfini.
Cette entité a été crée pour résoudre le besoin suivant:
Le contenu des menus de page est souvent le meme de page en page, il faudrait que lorsque l'on modifie le contenu d'un de ses menu sur une des pages, alors il se modifie pour l'ensemble des pages du site. Cependant chaque menu pourra être différent, si l'utilisateur le souhaite.
Ainsi, le contenu prédéfini permet d'attacher un blocObject non plus a une page, mais a un bloc, et ainsi de maintenir le contenu d'un meme bloc sur différentes pages.
Si le bloc accepte la liaison avec plusieurs contenus prédéfini, alors il sera possible d'en créer plusieurs pour un bloc. Cependant, un seul sera "selectionné" par l'utilisateur pour apparaitre en tant que contenu du bloc.
Implémentation
Base de données
La table predefinedContent enregistre tous les contenus prédéfinis. Voici la liste de ses champs:
- predefinedContentId : clé primaire
- predefinedContentName: nom du contenu prédéfini
- typeBlocId: Bloc auquel le contenu prédéfini est rattaché
- siteClientId: Site rattaché
- isMain: contenu prédéfini principal pour le bloc: si une nouvelle page est crée, par défaut ca sera ce contenu prédéfini qui sera affiché
La table pageBloc permet d'associer le contenu prédéfini "sélectionné" associé au bloc qui sera affiché sur une page donnée. Voici la liste de ses champs:
- pageSiteClientId: page associé
- typeBlocId: type de bloc associé
- predefinedContentId: ID du contenu prédéfini utilisé en version de production.
- predefinedContentDraftId: ID du contenu prédéfini utilisé en version brouillon.
Classe
La classe PredefinedContent permet de gérer les contenus prédéfini.
Fonctionnement général
Création d'un nouvelle page
Lors de la création d'une page, le système lie automatiquement aux blocs de cette nouvelle page les contenus prédéfinis par défaut (variable isMain à true).
Publication
Le contenu prédéfini suis le precept de la notion de brouillon/version de production, mais d'une facon particuliere:
Il n'y a pas de CP brouillon, et de CP de production par définition. C'est leur liaison avec les blocs de page qui fera qu'il seront considéré comme l'un ou l'autre:
Ainsi, un bloc peut être lié a un CP pour sa version brouillon, et un autre pour sa version de production. Dans le cas d'une publication alors le CP de la version brouillon prends la place de celui de production. Dans le cas d'une annulation, on détruit le lien entre le CP et la version brouillon du bloc.
Cependant les BlocObject qui composent le CP suivent le shéma traditionnel du brouillon/version de production.


