le MPD (MCD Merise ou UML) du SGBD pour SPIP 3

La structure de base de données de SPIP 3

La structure de base de données de SPIP 3 est robuste, quasiment inchangée depuis les débuts, mais assez simple à utiliser malgré le nombre apparemment élevé de tables, qui obéissent à certaines conventions communes.

La plupart des objets éditoriaux sont indexés par une clé primaire de la table, nom de champ sous la forme id_objet,
ce qui est utilisé pour les jointures automatiques.

Cet article est assez technique, et néanmoins utile puisqu’il vous donne la totalité des tables et noms de champs accessibles dans des boucles sur la BDD, tout comme vous pouvez les voir avec Vertèbres, devenu "Tables" dans le menu de développement [1]s.

Article publié le 9 novembre 2014, et actualisé en juin 2021

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Attention, cette page est encore en  

On peut organiser ces 32 tables (on parle aussi d’objets éditoriaux) en fonction de leur contenu :

Les tables de SPIP 3

Les champs cités peuvent être directement utilisés dans LES BOUCLES par balise de champ, organisés selon les paragraphes ci-dessous :
- les objets rédactionnels  : textes affichés (et référencés)
rubriques et articles, auteurs, breves, enfin les mots-clés et groupes de mots.

- les éléments d’interactivité :
les forums, les sites et articles syndiqués ,
les pétitions et leurs signatures,
et messages internes

- les liens relations entre éléments :
les auteurs_liens, les mots_liens et les documents documents_liens

- la gestion interne du site :
les méta de configuration, les types de documents,
les urls et les recherches,
les jobs et leurs liens

- la gestion du versionning :
versions et fragments d’articles,

- les bases statistiques :
referers et referers_articles , visites et visites_articles

- les extensions : gestion SVP
les paquets ou plugins et leurs dépôts liés d’origine.


Rappel de quelque conventions
Commençons par préciser que les tables sont toujours préfixées par un radical prefix - le $prefix (spip_ par défaut) ; ses variations possibles sont gérées de façon transparente pour l’utilisateur, par les fonctions de l’interface spip_sql !

Normalement le nom de table (qui suit le préfixe du jeu de tables d’un SPIP) est orthographié au pluriel, et la clé primaire auto-incrémentée reprend ce meme nom au singulier (précédé d’un id_, comme dans id_article ou id_rubrique ). Noter que le respect de cette convention permet de faire réaliser automatiquement des jointures sur les clés étrangères par les boucles SPIP.

SPIP permet d’accéder directement à tous les champs de la table, par les balises éponymes ; vous pourrez donc utilement vous référer aux articles descriptifs des Boucles, dont les liens sont placés en référence des titres.

 Objets éditoriaux du contenu rédactionnel

spip3 rubriques


- Les rubriques  : https://www.spip.net/904

  • Chaque rubrique est identifiée par son id_rubrique.
  • id_parent est l’id_rubrique de la rubrique qui contient cette rubrique (zéro si la rubrique se trouve à la racine du site).
  • titre, descriptif, texte parlent d’eux-mêmes.
  • id_secteur est l’id_rubrique de la rubrique en tête de la hiérarchie contenant cette rubrique. Une rubrique dépend d’une rubrique qui dépend d’une rubrique... jusqu’à une rubrique placée à la racine du site ; c’est cette dernière rubrique qui détermine l’id_secteur. Cette valeur précalculée permet d’accélérer certains calculs de l’espace public (en effet, les brèves sont classées par secteur uniquement, et non selon toute la hiérarchie).
  • date est un champ technique mis à jour automatiquement par MySQL, qui contient la date de la dernière.......
  • maj est un champ technique mis à jour automatiquement par MySQL, qui contient la date de la dernière modification de l’entrée dans la table.
  • statut est un champ annexe
  • lang et langue_choisie sont réservés pour les sites multilingues
  • profondeur est un champ calculé pour accélérer les traitements de branches...

Les rubriques ont un rôle fondamentale dans l’architecture SPIP, proposant une structure arborescente,
parcourue de façon récursive par les boucles comme HIERARCHIE ;
de nombreuses notions de sécurité y sont liées.

spip3 articles


- Les articles : https://www.spip.net/902

  • Chaque article est identifié par son id_article.
  • id_rubrique indique dans quelle rubrique (normalement jamais 0) est rangé l’article.
  • id_secteur indique le secteur correspondant à la rubrique susmentionnée (voir le paragraphe précédent pour l’explication de la différence entre les deux).
  • titre, surtitre, soustitre, descriptif, chapo, texte, ps parlent d’eux-mêmes.
  • date est la date de publication de l’article (si l’article n’a pas encore été publié, c’est la date de création).
  • date_redac est la date de publication antérieure si vous réglez cette valeur, sinon elle est égale à « 0000-00-00 ».
  • date_modif est la date de dernière modification de l’article (après publication), sinon elle est égale à « 0000-00-00 ».
  • statut est le statut actuel de l’article : prepa (en cours de rédaction), prop (proposé à la publication), publie (publié), refuse (refusé), poubelle (à la poubelle).
  • accepter_forum : permet de régler manuellement si l’article accepte des forums (par défaut, oui).
  • maj  : même signification que dans la table des rubriques.
  • lang et langue_choisie sont réservés pour les sites multilingues
  • id_trad pointe vers l’article d’origine
  • export est un champ réservé pour des fonctionnalités futures.
  • images était un champ contenant la liste des images utilisées par l’article, dans un format particulier. Ce champ est remplacé par la liste des documents..
  • visites et referers sont utilisés pour les statistiques sur les articles. Le premier est le nombre de chargements de l’article dans l’espace public ; le deuxième contient un extrait de hash des différents referers, afin de connaître le nombre de referers distincts. Voir inc-stats.php3.
  • popularite contient le calcul d’indice correspondant au nombre moyen de visites de la page (voir calcul des statistiques)
  • nom_site et url_site permettent de renseigner un lien d’information pour l’article (si ce champ est validée dans les "contenus article")
  • virtuel permet de renseigner un lien direct externe pour l’article (si ce champ est validée dans les "contenus article") [2]

Les articles jouent le rôle de feuilles terminales dans la structure arborescente du contenu ;
les rubriques ne sont affichées par les boucles SPIP, que si leur descendance contient un article publié, sauf à utiliser un filtre {tout}.

Le liens avec leurs auteurs est fait dans la table auteurs_liens.

spip3 auteurs


- Les auteurs : https://www.spip.net/907

  • Chaque auteur est identifié par son id_auteur.
  • nom, bio, nom_site, url_site, pgp sont respectivement le nom de l’auteur, sa courte biographie, son adresse e-mail, le nom et l’URL de son site Web, sa clé PGP. Informations modifiables librement par l’auteur.
  • email, loginsont son e-mail d’inscription et son login. Ils ne sont modifiables que par un administrateur.
  • statut est le statut de l’auteur : 0minirezo (administrateur), 1comite (rédacteur), 5poubelle (à la poubelle), 6forum (abonné aux forums, lorsque ceux-ci sont réglés en mode « par abonnement »).
  • webmestre spécifie le droit correspondant pour l’auteur
  • maj a la même signification que dans les autres tables.

Les champs suivants sont donnés pour indication ; ils sont réservés à l’usage interne de SPIP et ne devraient jamais être affichés dans vos squelettes

  • pass est le hash MD5 du mot de passe.
  • htpass est la valeur cryptée (i.e. générée par crypt()) du mot de passe pour le .htpasswd.
  • source est utilisé pour spécifier l’origine du password auteur (table SPIP ou LDAP : voir https://www.spip.net/1910)
  • alea_actuel et alea_futur sont utilisés pour coder (en SHA256) les grains de "sel", qui évitent au mot-de -passe de l’utilisateur de figurer dans la base de données...
  • en_ligne enregistre la dernière connexion de l’auteur au site
  • prefsenregistre les paramétrages de son espace privé choisis par l’auteur
  • langspécifiant la langue de l’interface à utiliser
  • imessage controle l’affichage de cet auteur s’il est connecté
  • et enfin messagerie ...

Vous remarquerez les index supplémentaires créés pour cette table, qui permettent un accès rapide aux statistiques courantes d’interaction, affichées en particulier dans l’interface privée :
par login,
par statut,
ou connectés en ligne.

 

spip3 breves


- Les brèves  : https://www.spip.net/906

  • Chaque brève est identifiée par son id_breve.
  • id_rubrique est la rubrique (en fait, toujours un secteur) dans laquelle est classée la brève.
  • titre, texte, lien_titre, lien_url sont respectivement le titre, le texte, le nom et l’adresse du lien associé à la brève.
  • date_heure est la date de saisie ou de publication de la brève.
  • statut est le statut de la brève , géré par l’interface ; les codes possibles sont seulement : prop (proposée à la publication), publie (publiée), refuse (refusée).
  • maj  : même signification que dans la table des rubriques.
  • lang et langue_choisie sont réservés pour les sites multilingues

L’interface privée de SPIP ne permet de créer de brèves, que attachées à un secteur : l’usage du code id_rubrique facilite la gestion des jointures automatiques de rattachement des brèves à leur rubrique...

L’usage des brèves, directement inspiré de la pratique journalistique, semble déprécié à terme.

spip3 mots


- Les mots-clés : https://www.spip.net/909

  • Chaque mot-clé est identifié par son id_mot.
  • titre, descriptif, texte , ces noms de champs parlent d’eux-mêmes.
  • id_groupe est l’identifiant de son groupe , voir ci-dessous.
  • type est le libellé correspondant (tiré de la table ci-dessous)
  • maj  : idem que dans les autres tables.

 

N.B. : Le principe d’usage des mots-clés est généralisé dans SPIP3, au sein d’une unique table, pour l’ensemble des liens existant dans la base de données (et donc extensible facilement à de nouveaux types d’objets éditoriaux).

 

spip3 groupes mots


- Les groupes de mots : https://www.spip.net/909

  • Chaque groupe est identifié par un id_groupe
  • titre , descriptif , texte contiennent les renseignements éponymes...
  • un_seul et obligatoire marquent les controles avancées de gestion des groupes
  • tables_liees contient la liste des tables autorisées à recevoir des liens
  • minirezo et comite permettent de gérer les groupes réservés aux Administrateurs, ouceux aussi ouverts aux Redacteurs et
  • forum groupes de mots-clé pour les forum
  • maj a la même signification que dans les autres tables.

La gestion des mots par groupes -option de configuration avancée- permet de les organiser dans une typologie plus efficace : Comprendre les mots-clés.

 Eléments interactifs

Attention aux noms de ces tables [3] !

spip3 forum


- les forum : spip_forum [4] https://www.spip.net/908
Attention, la structure des forums a changé en SPIP 3 pour permettre la généralisation de liens !
de ce fait, les critères des boucles FORUMS , anciennement écrits ..){id_article=.. doivent désormais être écrits ..){objet=article}{id_objet=.. !

  • Chaque message de forum est identifié par son id_forum.
  • l’objet-type auquel est attaché le forum est identifié par sa clé [5] "nom de la table" , en chaine de caractère simple
  • id_thread est l’identifiant id_forum du message qui démarre le fil de discussion, pour regrouper les messages par conversations suivies
  • le message parent (c’est-à-dire le message auquel répond ce message) est identifié par id_parent. Si le message ne répond à aucun autre message, cette valeur est égale à zéro.
  • titre, texte, nom_site, url_site sont le titre et le texte du message, le nom et l’adresse du lien y attaché.
  • auteur et email_auteur sont le nom et l’e-mail déclarés par l’auteur. Dans le cas des forums par abonnement, ils ne sont pas forcément identiques aux données enregistrées dans la fiche de l’auteur (i.e. dans la table spip_auteurs).
  • id_auteur identifie l’auteur du message dans le cas de forums par abonnement.
  • statut est le statut du message : publie (lisible dans l’espace public), prive (écrit en réaction à un article dans l’espace privé), privrac (écrit dans le forum interne dans l’espace privé), off (supprimé ou à valider, selon la modération des forums - a priori ou a posteriori).
  • ip est l’adresse IP de l’auteur, dans les forums publics.
  • maj a la même signification que dans les autres tables.

 La Syndication de Sites

spip3 syndic


- Les sites : spip_syndic [6] https://www.spip.net/910

  • Chaque site syndiqué est identifié par son id_syndic.
  • id_rubrique et id_secteur définissent l’endroit dans la hiérarchie du site où viennent s’insérer les contenus syndiqués.
  • nom_site, url_site, descriptif sont le nom, l’adresse et le descriptif du site syndiqué.
  • syndication contient oui pour les sites syndiqués
  • url_syndic est l’adresse du fichier dynamique utilisé pour récupérer les contenus syndiqués (souvent il s’agit de url_site suivi de backend.php).
  • statut
  • moderation
  • miroir
  • oubli
  • resume precise si la publication des articles doit être complète ou limitée
  • date_syndic et date_index permettent de suivre les rythmes de modifications a récupérer / synchroniser
  • maj a la même signification que dans les autres tables.

Indexation par statut,
par par secteurs id_secteur et rubriques id_rubrique de rattachement .
..

 

 

spip3 syndic articles


- Les articles syndiqués : spip_syndic_articles https://www.spip.net/911

  • Chaque article syndiqué est identifié par son id_syndic_article.
  • id_syndic réfère au site syndiqué d’où est tiré l’article.
  • titre, url, date, lesauteurs maj parlent d’eux-mêmes.
  • lang
  • url_source et source renvoient au site d’origine
  • tags
  • statut
  • maj a la même signification que dans les autres tables.

 

 

Vous pourrez consulter La Syndication de Contenus, qui détaille la gestion de ces possibilités.

spip3 petitions


- Les pétitions : spip_petitions

  • id_article identifie l’article auquel est associée la pétition (une seule pétition par article).
  • email_unique, site_obli, site_unique, message définissent la configuration de la pétition : l’adresse e-mail des signataires doit-elle être unique dans les signatures, l’adresse Web est-elle obligatoire, est-elle unique, un message attenant aux signatures est-il autorisé (oui ou non).
  • texte est le texte de la pétition.
  • maj  : pareil aux autres tables.

Les tables des pétitions et leurs signatures sont parfois détournées pour y gérer d’autres structures de données (voir certains plugins..).

 

spip3 signatures


- Les signatures de pétitions : https://www.spip.net/912 spip_signatures

  • Chaque signature est identifiée par son id_signature.
  • id_article identifie l’article, donc la pétition sur laquelle est apposée la signature.
  • nom_email, ad_email, nom_site, url_site sont le nom, l’adresse e-mail, ainsi que le site Web déclarés par le signataire.
  • message est le message éventuellement entré par le signataire.
  • statut est le statut de la signature : publie (acceptée), poubelle (supprimée) ; toute autre valeur donne la valeur de la clé de validation utilisée pour la confirmation par e-mail.
  • maj  : pareil aux autres tables.

 

 

spip3 messages


- Les messages en interface privée : spip_messages

  • Chaque message est identifié un un id_message
  • titre et text sont les deux champs de contenu du message
  • id_auteur repère la clé de l’auteur signataire
  • type dénote l’information
  • date_heure et date_fin enregistrent les débuts de conversation...
  • destinataire enregistre une liste des id_auteurs destinataires
  • statut est le statut de l’auteur de la signature
  • rv
  • maj a la même signification que dans les autres tables.
     

Analogue aux forums, bien que réservé à la gestion privée entre administrateurs et rédacteurs, rien n’empêcherait d’afficher le contenu de cette table...
Notez que ces tables ne bénéficient pas du raccourci typographique de liens internes SPIP !

 

 

 


 Les relations entre objets

Ces tables (suffixées par le mot de _liens) ne gèrent aucun contenu, simplement une relation entre les objets présents dans d’autres tables. Ces tables ont été fortement normalisées, mises au même modèle de fonctionnement en triplet clé de l’objet, nature et clé de l’objet-cible du lien pour la version SPIP 3.

spip3 auteurs liens


- les liens d’auteurs : spip_auteurs_liens [7] spécifie la relation entre auteurs et tout objet éditorial. Par exemple, si un id_auteur y est associé à un objet ’article’ de clé id_objet id_article, cela veut dire que l’auteur en question a écrit ou co-écrit l’article (il peut y avoir plusieurs auteurs par article, et vice-versa bien sûr).

  • id_auteur enregistre la clé de l’objet origine (l’auteur)
  • objet enregistre la nature de l’objet éditorial ciblé
  • id_objet enregistre la clé de l’objet ciblé
  • vu est un paramètre supplémentaire..

&nbps;

Pour mutualiser le code, cette organisation de table a été généralisée en SPIP3, en particulier depuis les mots-clés : ceci permet d’automatiser la gestion des mots-clés sur tout objet editorial nouveau créé sous SPIP.

spip3 mots liens


- La table de liens depuis les mots : spip_mots_liens

Cette table présente la structure type d’un triplet :

  • la clé de l’objet dont on enregistre les références
  • le type d’objet qui le référence
  • id_objet est la valeur de clé identifiant l’objet référençant

 

Elle gère toutes les relations de de référencement surtout type d’objets par des mots-clés.
(une extension serait fréquente : ajouter un paramètre de poids pour des usages experts.. )

spip3 documents


- Les Documents : spip_documents https://www.spip.net/1823

  • Chaque document est identifié par son id_document.
  • id_vignette pilote l’affichage d’une vignette
  • titre et descriptif permettent d’apporter des renseignements à l’interface privée
  • date
  • date_publication
  • fichier est l’adresse relative du document téléchargé
  • extension est l’extension du document téléchargé (voir les controles de type)
  •  
  • taille est le poids du document téléchargé
  • largeur est la largeur de l’image, si le document est une image
  • hauteur est la hauteur de l’image, si le document est une image
  •  
  • media
  • mode est le type de document téléchargé (document multimedia ou image)
  • distant indique si le document est référencé par une URL externe ou non
  • brise
  • statut
  • credits
  • maj  : idem que dans les autres tables.

id_vignette pointe sur ??

 

Encore en SPIP 3, les LOGO bénéficient d’une gestion particulière, non intégrée en base de données !

spip3 documents liens


- La table de liens des documents joints : spip_documents_liens

reprend la même structure type de table liens, avec un champ supplémentaire, pour marquer les documents vus ou non...

  • id_document la clé du document à joindre
  • objet précise le type d’objet auquel joindre le document
  • id_objet est la valeur de clé identifiant l’objet recevant cette pièce jointe
  • vu gère l’insertion du document au sein de l’article..

Attention : la gestion des boucles documents peut réserver certaines surprises ou difficultés, du fait d’un niveau d’indirection plus élevé [8].

 Gestion du site

spip3 meta


- les métas de configuration
La table spip_meta est primordiale. Elle contient plus d’une centaine de couples (nom, valeur) indexés par le nom (clé primaire) [9] récupérable par #CONFIG{nom} ; ces couples permettent de stocker différentes informations telles que la configuration du site, ou la version installée de SPIP [10].

  • nom est la clé textuelle d’accès [11]
  • valeur est utilisée pour définir le contenu (utilisation de unserialize)
  • impt
  • maj garde trace de la dernière modification

Dans la rubrique de Contrib, vous trouverez plusieurs primitives pour gérer directement celle-ci avec CFG et config()

spip3 resultats


- la mémorisation des recherches : spip_resultats

  • recherche est le texte saisi dans le #FORMULAIRE_RECHERCHE
    (désormais enregistré sous forme d’un hash)
  • id
  • points
  • table_objet
  • serveur
  • maj
    - 
    Voir le calcul des points correspondants
spip3 urls


- la gestion des URLS
Cette table n’a pas de clé primaire explicite (elle peut etre effacée, lors du recalcul d’URLs)

  • id_parent
  • type : indique la table d’objet éditorial concernée
  • id_objet : précise la clé de l’occurrence d’objet
  • url : libellé de l’URL apparente et accédée
  • date
  • segments
  • perma
  • langue : pour le multilinguisme [12]

(SPIP permet d’utiliser nativement divers types d’URLs sans forcément devoir passer par .htaccess ;vous pouvez consulter à ce sujet https://www.spip.net/765 et utiliser le CS ou Couteau Suisse.]])

spip3 types documents


Définition des types de documents : spip_types_documents https://www.spip.net/2002

  • extension : ce champ clé (en-dehors du standard numérique habituel à SPIP) reçoit le type de fichier identifié par son extension reconnue au téléchargement
  • titre indique le nom du type de fichier (souvent le nom du programme qui permet de créer et lire ce type de fichier).
  • descriptif n’est pas utilisé.
    *- mime_type est le type MIME du fichier — par exemple : image/jpeg- pas utilisé.
  • inclus détermine le mode d’insertion standard (le titre d’un modèle : « embed », « non », « image »...)
  • upload spécifie l’autorisation d’installer un tel fichier via l’interface Web de SPIP.
  • maj gestion automatique des dates pour mémoire

Cette table système est importante pour la sécurité des insertions de documents ; les fichiers présentant une autre extension seront automatiquement zippés avant téléchargement (pour éviter tout risque d’exécution sur le serveur)...

spip3 jobs


- les jobs : le remplacement du CRON (voir https://www.spip.net/4238)

  • id_job
  • descriptif>/code>
    -* <code>fonction
  • args
  • md5args
  • inclure
  • priorite
  • date
  • status

(voir https://www.spip.net/4238)

spip3 jobs liens


- les jobs_liens

  • id_job
  • id_objet
  • objet

Encore un exemple de table de liaison..

La gestion des Jobs -anciennement #SPIP_CRON- est traitée en asynchrone à l’occasion des visites des utilisateurs : c’est le génie de SPIP ;-).

 

 Le versionning d’articles

Comme les liens, le versionning peut s’appliquer à tout objet éditorial (natif ou nouveau).

spip3 versions


- les versions d’édition successives : spip_versions
le versionning d’édition peut s’appliquer à tout objet éditorial, grâce au triplet de clés :

  • id_version identifie la clé d’une version d’un objet
  • objet contient sa nature (nom de la table au singulier..)
  • id_objet contient sa clé propre
  • id_auteur mémorise le rédacteur intervenant
  • date contient la date de cette modification
  • titre_version
  • permanent
  • champs
spip3 versions fragments


- les fragments d’articles :spip_versions_fragments

  • id_fragment
  • objet
  • id_objet
  • version_min
  • version_max
  • compress
  • fragment

 Les tables de statistiques

Les statistiques de SPIP sont enregistrées en temps réel, mais générées en temps masqué par demi-heure... étant anonymisées par un Hash MD5 : voir https://www.spip.net/1846

spip3 referers


- les URL d’origine : spip_referers

  • referer_md5 code le debut de l’URL d’origine
  • referer enregistre l’URL d’origine
  • date marque la première creation de cette demande
  • visites contient le total des visites enregistrés sur la page publique
  • visites_jour et visites_veille conservent les deux derniers cumuls intermediaires quotidiens
  • maj pour la dernière modification système
spip3 referers articles


- referers_articles : spip_referers_articles

  • id_article point l’article concerné
  • referer_md5 code le debut de l’URL d’origine
  • referer enregistre l’URL d’origine
  • visites contient le total des visites enregistrés sur la page publique
  • maj pour la dernière modification système
spip3 visites


- visites  : spip_visites

  • date
  • visites
  • maj

Les visites sont anonymisées, et cumulées par journées ;
pour limiter la charge éventuelle sur le serveur, les cumuls sont réalisés à la demi-heure...

spip3 visites articles


- visites_articles

  • date
  • id_article
  • visites
  • maj

Pour disposer d’un véritable gestionnaire des visites, il est préférable d’utiliser un autre système, sur un serveur dédié, tel Piwik désormais Matomo.org ; les statistiques -et les possibilités d’interprétation- sont bien plus significatives.

 Les plugins gérés par SVP

Le SerVeur de Paquets intégré à SPIP gère les paquets (y compris les thèmes) ou plugins et leurs dépôts liés d’origine,

spip3 depots

pour assurer automatiquement la proposition des mises-à-jour et les dépendances en interface privée (noter que ces trois tables sont gérées par un ./plugins-dist/ externalisé svp, le Serveur de Plugins.

- les dépôts : spip_depots

  • id_depot
  • titre
  • descriptif
  • type
  • url_serveur
  • url_brouteur
  • url_archives
  • url_commits
  • xml_paquets
  • sha_paquets
  • nbr_paquets
  • nbr_plugins
  • nbr_autres
  • maj

Ces tables sont utilisées par SVP, le nouveau gestionnaire automatisé de plugins, pour assurer le suivi des nouvelles versions à proposer en mise-à-jour.

spip3 plugins


- les plugins  : spip_plugins

  • id_plugin
  • id_plugin
  • prefixe
  • nom
  • slogan
  • categorie
  • tags
  • vmax
  • date_crea
  • date_modif
  • compatibilite_spip
  • branches_spip

Cette table reprend le contenu des fichiers paquet.xml (sinon plugin.xml) pour chaque plugin chargé

spip3 depots plugins


- les liens aux dépots de référence des plugins : spip_plugins_depots

  • id_depot
  • id_plugin

Exemple typique de table de liaison minimaliste, qui pourrait assurer une jointure automatique en SPIP

spip3 paquets


- les paquets  : spip_paquets

  • id_paquet
  • id_plugin
  • prefixe
  • logo
  • version
  • version_base
  • comptabilite_spip
  • branches_spip
  • description
  • auteur
  • credit
  • licences
  • copyright
  • lien_doc
  • lien_demo
  • lien_dev
  • etat
  • etat_num
  • dependances
  • date_crea
  • date_modif
  • id_depot
  • nom_archive
  • nbo_archive
  • maj_archive
  • src_archive
  • traductions
  • actif
  • installe
  • recent
  • maj_version
  • superieur
  • obsolete
  • attente
  • constante
  • signature

Cette table reprend le contenu du fichier paquet.xml, également accessible par https://www.spip.net/4591 [13]

La gestion des mises-à-jour des tables gérées par les plugins, est pilotée lors d’une visite de la page /ecrire/?exec=admin_plugin par comparaison pour chaque plugin installé, de la valeur version_base (du paquet.xml) avec la valeur enregistrée en table spip_meta à la valeur plugin-prefix_version_base.

 Pour suivre les évolutions

Les tables sont créées dans SPIP par ecrire/base/objets.php ou ses homologues des plugins-dist [14] (et pas :voir aussi vos plugins préférés) que vous suivrez désormais en HTTP sur GIT.

Les dernières modifications du modèle :
- longueur des champs url_site et virtuel sur la table articles (depuis SPIP 3.11)
Pour identifier précisément les modifications de structure de la base de données SPIP, on se reportera au tableau en fin de l’article détaillant $spip_version_base et spip_meta.version_installee !

Tables disparues
- la table spip_forum_cache était utilisée afin d’adapter le système de cache à l’interactivité des forums

- les six tables utilisées par le moteur de recherche :

  • dictionnaire d’indexation : spip_index_dico
  • 5 tables d’indexation : spip_index_*

- les tables d’évènements : cette fonctionnalité est passée en plugin optionnel...


Merci de nous signaler les coquilles, imprécisions ou erreurs qui figureraient dans cette page.

[1Le menu "Développement"s’affiche en cochant la case idoine dans vos préférences personnelle

[2N.B. les deux derniers champs ont été converti en type TEXT depuis la 3.1 pour accepter des URL plus longues !

[3Ces tables ne respectent pas strictement la normalisation "pluriel" habituelle aux noms des tables de SPIP

[4Au singulier,.... historique

[5Anciennement décliné entre id_rubrique, id_article ou id_breve. Par défaut, les autres valeurs étaient mises à zéro si elles devraient rappeler un objet non concerné.

[6Autre exception, toujours au singulier,.... historique ; a également induit les alias de tables.

[7spip_auteurs_articles anciennement

[8voir par exemple une explication sur MaGraine.

[9Une ’valeur’ PHP peut être complexe, structurée en tableau..

[10Plus précisément la version du schéma de structure de la base de données SPIP, voir Ne pas se tromper de version.

[11par config() ; attention au cas particulier pour les plugins ?

[12Ajouté depuis..

[13noter qu’il faudra repasser par la page de configuration  ?exec=admin_plugin pour actualiser les renseignements en base de données.

[14Ne pas oublier que le noyau de SPIP ’déporte’ de nombreuses fonctionnalités natives du core dans ces extensions de base de SPIP,dans unearborescence à côté de./ecrire.

[15Le menu "Développement"s’affiche en cochant la case idoine dans vos préférences personnelle


Liens A2A visibles seulement pour les inscrits.
Liens visibles seulement pour les inscrits.

Article publié le 9 novembre 2014, et actualisé en juin 2021 stratégie .

Répondre à cet article