Server : Apache System : Linux webd348.cluster026.gra.hosting.ovh.net 5.15.148-ovh-vps-grsec-zfs-classid #1 SMP Thu Feb 8 09:41:04 UTC 2024 x86_64 User : hednacluml ( 122243) PHP Version : 8.3.9 Disable Function : _dyuweyrj4,_dyuweyrj4r,dl Directory : /home/hednacluml/jobs/plugins-dist/forum/ |
# 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 ----+ ```