SP:Composant:PredefinedContent

De Hegyd Doc.

(Différences entre les versions)
(Création d'un nouvelle page)
(Publication)
 
(4 versions intermédiaires masquées)
Ligne 42 : Ligne 42 :
La classe '''PredefinedContent''' permet de gérer les contenus prédéfini.
La classe '''PredefinedContent''' permet de gérer les contenus prédéfini.
 +
C'est la classe dédiée aux [[SP:Composant:Bloc|Blocs]] qui s'occupe de lier un CP (contenu prédéfini) à un bloc.
==Fonctionnement général==
==Fonctionnement général==
Ligne 49 : Ligne 50 :
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).
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 ===
+
=== Publication / Annulation ===
Le contenu prédéfini suis le precept de la notion de [[SP:Définitions|brouillon/version de production]], mais d'une facon particuliere:  
Le contenu prédéfini suis le precept de la notion de [[SP:Définitions|brouillon/version de production]], mais d'une facon particuliere:  
Ligne 61 : Ligne 62 :
Dans le cas d'une annulation, on détruit le lien entre le CP et la version brouillon du bloc.
Dans le cas d'une annulation, on détruit le lien entre le CP et la version brouillon du bloc.
-
Cependant les [[SP:Composant:BlocObject|BlocObject]] qui composent le CP suivent le shéma traditionnel [[SP:Définitions|du brouillon/version de production]].
+
Cependant les [[SP:Composant:BlocObject|BlocObject]] qui composent le CP suivent le shéma traditionnel [[SP:Définitions|du brouillon/version de production]]:
 +
 
 +
Ainsi lors de la publication, c'est le type de liaison qui lie un bloc avec le contenu prédéfini qui est modifiée, et non lecontenu prédéfini lui meme:
 +
 
 +
* Publication: la liaison de type "brouillon" entre le contneu prédéfini et le bloc se transforme en liaison de "production".
 +
* Annulation: la liaison de type "brouillon" est supprimée.

Version actuelle en date du 26 juillet 2010 à 09:37


Sommaire

[modifier] 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.

Fichier:Contenu_prédéfini.png

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.


[modifier] Implémentation

[modifier] 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.

[modifier] Classe

La classe PredefinedContent permet de gérer les contenus prédéfini.

C'est la classe dédiée aux Blocs qui s'occupe de lier un CP (contenu prédéfini) à un bloc.

[modifier] Fonctionnement général

[modifier] 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).

[modifier] Publication / Annulation

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:

Fichier:Contenus_prédéfinis_et_publication.png

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:

Ainsi lors de la publication, c'est le type de liaison qui lie un bloc avec le contenu prédéfini qui est modifiée, et non lecontenu prédéfini lui meme:

  • Publication: la liaison de type "brouillon" entre le contneu prédéfini et le bloc se transforme en liaison de "production".
  • Annulation: la liaison de type "brouillon" est supprimée.