forked from spip/forum
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
10 months ago | |
---|---|---|
action | 1 year ago | |
balise | 1 year ago | |
base | 2 years ago | |
formulaires | 1 year ago | |
inc | 1 year ago | |
lang | 1 year ago | |
modeles | 14 years ago | |
notifications | 1 year ago | |
prive | 1 year ago | |
public | 1 year ago | |
urls | 1 year ago | |
.gitignore | 2 years ago | |
CHANGELOG.md | 10 months ago | |
README.md | 10 months ago | |
TODO.md | 9 years ago | |
composer.json | 1 year ago | |
forum_administrations.php | 2 years ago | |
forum_autoriser.php | 1 year ago | |
forum_fonctions.php | 1 year ago | |
forum_ieconfig.php | 2 years ago | |
forum_pipelines.php | 1 year ago | |
paquet.xml | 1 year ago | |
phpcs.xml.dist | 2 years ago | |
phpstan-baseline.neon | 1 year ago | |
phpstan.neon.dist | 2 years ago |
README.md
Plugin Forum
Ce plugin gère des forums privés et publics dans SPIP
Modèle de données
Pour expliquer la façon dont le plugin forum stocke les messages de forums, prenons la conversation suivante :
- à 12:53, envoi du message
msg A
- à 13:44, envoi du message
msg B
- à 14:27, envoi d'une réponse au premier message :
[Re] msg A
- à 18:12, envoi d'une réponse à cette réponse :
[Re] [Re] msg A
Table spip_forum
dans la base de données
Les données sont stockées dans la table spip_forum
, avec un message par ligne. La conversation donnera donc la table suivante (on ne montre que les champs principaux) :
id_forum |
id_parent |
id_thread |
date_heure |
date_thread |
texte |
---|---|---|---|---|---|
1 | 0 | 1 | 12:53 | 18:12 | msg A |
2 | 0 | 2 | 13:44 | 13:44 | msg B |
3 | 1 | 1 | 14:27 | 18:12 | [Re] msg A |
4 | 3 | 1 | 18:12 | 18:12 | [Re] [Re] msg A |
Détaillons un peu le rôle de chaque champ :
champ | description |
---|---|
id_forum |
identifiant du message |
id_parent |
identifiant du message parent pour les réponses, ou 0 si c'est le premier message |
id_thread |
identifiant du premier message d'un thread |
date_heure |
heure du message (format un peu simplifié pour faire court) |
date_thread |
heure du dernier message du thread |
A noter également les deux champs id_objet
et objet
qui indiquent l'objet auquel le message est attaché (ex: id_objet = 3
et objet = article
pour un message de forum dans l'article numéro 3).
Relations entre id_forum
, id_parent
et id_thread
msg A
id_forum = 1 <---------+
id_parent = 0 |
id_thread = 1 ---------+
|
[Re] msg A |
id_forum = 3 <----+ |
id_parent = 1 ----|----+
id_thread = 1 ----|----+
| |
[Re] [Re] msg A | |
id_forum = 4 | |
id_parent = 3 ----+ |
id_thread = 1 ---------+
msg B
id_forum = 2 <----+
id_parent = 0 |
id_thread = 2 ----+
Relations entre date_heure
et date_thread
:
msg A
date_heure = 12:53
date_thread = 18:12 ----+
|
[Re] msg A |
date_heure = 12:53 |
date_thread = 18:12 ----+
|
[Re] [Re] msg A |
date_heure = 18:12 <----+
date_thread = 18:12 ----+
msg B
date_heure = 13:44 <----+
date_thread = 13:44 ----+