$Id: cpsforum_documentation_technique_fr.txt 10398 2004-06-28 14:16:05Z atchertchian $

#######################################
#  CPSForum - Documentation technique #
#######################################

#########################
# Utilisation du module #
#########################

CPSForum est un outil permettant aux utilisateurs du portail de poster des
messages dans des forums, sous la forme de fils de discussion.
Il permet galement d'associer des commentaires  des documents, ces
commentaires tant grs comme des fils de discussion.

########################
# Historique du module #
########################

Le produit CPSForum existe depuis CPS2.
Il a t port sur CPS3 : ceci correspond aux versions sous la forme 0.X.X.
Il a ensuite t compltement rfactor : ceci correspond aux versions sous
la forme 1.X.X.

Les objets forums cres avec les versions 0.X.X ne sont pas compatibles avec
les versions de CPSForum 1.X.X.

#######################################
# Prrequis  l'utilisation du module #
#######################################

CPSForum requiert:
- CPS3
- le produit CPSInstaller (non inclus dans CPS-3.0, mais inclus dans CPS-3.1)
- CPSSchemas > 0.18.0-1 (non inclus dans CPS-3.0, mais inclus dans CPS-3.1)
- CPSSubscriptions > 0.7.0-1 pour la gestion des notifications (non inclus
  dans CPS3)

Il a t test avec Zope 2.6 et Zope 2.7.

################
# Installation #
################

Dcompresser l'archive contenant le module dans le rpertoire Products.
Renommer "CPSForum" le dossier obtenu.
Redmarrer Zope.
Le fichier INSTALL contenu dans le rpertoire doc/ du produit contient les
informations d'installation dans une instance de CPS. Il donne galement des
informations concernant la mise  jour, lorsqu'une version antrieure de
CPSForum a dj t installe dans un instance de CPS.

#############################
# Fonctionnalits du module #
#############################

cf doc fonctionnelle CNCC.
Il n'existe pas de fonctionnalits supplmentaires par rapport aux
fonctionnalits dcrites dans le document pour la CNCC.

Le fichier README contenu dans le rpertoire doc/ du produit prsente une
description succinte des fonctionnalits, ainsi que le mode d'utilisation du
module.

############################
# Fonctionnement du module #
############################

##########################
# Fonctionnement gnral #
##########################

Les objets CPSForum (classe Forum dans Forum.py) s'apparentent  des folders
et rsident dans le repository. Comme les autres folders (Workspace,
Section, ...), des proxies pointent sur les forums du repository. Les
objets CPSForum suivent respectivement le workflow workspace_content_wf ou
section_content_wf suivant qu'ils rsident dans un workspace ou une
section.

Les posts sont des CPSDocument qui suivent leur propre workflow
(forum_post_wf). Ce workflow gre la modration et la publication des
messages en fonction du mode de modration. Un diagramme (doc/forum_wf.svg)
dcrit le workflow suivi par les posts.

Comme pour tous les autres CPSDocument, les ForumPost sont stocks dans le
repository et rfrencs par des proxies situs dans le proxy associ au
forum.

Les documents ForumPost sont indexs et sont donc pris en compte dans la
recherche.

La dclaration des permissions utilise par les forums se fait dans le
module CPSForumPermissions.py

La correspondance entre roles et permissions est tablie dans l'installer de
CPSForum (Extensions/install.py), et peut tre modifie simplement dans un
installer de produit client.

#############################
# Commentaires de documents #
#############################

Les commentaires associs  un document sont stocks dans un object de type
CPSForum, sous la forme de documents ForumPost. D'un point de vue
fonctionnel, rien ne distingue un CPSForum standard d'un CPSForum utilis
pour stocker les commentaires associs a un document. Les objets forums
utiliss pour commenter un document (abrgs cforums dans la suite du
document) utilisent donc le mme mcanisme de stockage : repository avec
proxies les rfrenant.

Les proxies associs aux cforums sont stocks de la manire suivante :
- si le document comment est workspaces/ws1/doc1
- le proxy du cforum associ est workspaces/ws1/.cps_discussions/doc1

Le forum a donc la mme ID que le document, mais se trouve dans un
rpertoire special cach  l'utilisateur (visible depuis la ZMI).

La classe CommentTool (dans CommentTool.py) est utilise pour grer les
commentaires associs a un document, notamment pour tablir la
correspondance entre un document et le forum qui lui est associ (s'il
existe). Cette classe vient remplacer (par monkey patching) l'objet
portal_discussion de CMF (ajout de fonctionnalites).

La classe CPSForum (Forum.py) gre aussi les callbacks sur CPSSubscriptions
pour notifier la cration et la publication de nouveaux posts ou
commentaires.
