Bonjour,
Je souhaitais utiliser la fonction creer_base() (qui alter les tables automatiquement s'il y a de nouveaux champs déclarés), à l'installation d'un plugin sous SPIP 2.0.
J'ai donc déclaré mes champs supplémentaires dans le pipeline correspondant (declarer_tables_principales) et ajouté la fonction _upgrade() dans le plugin.
A l'installation, SPIP affiche bien l'echo indiquant que l'installation est faite, mais le champ n'est pas ajouté dans la base de donnée, comme si le creer_base() utilisait un $tables_principales qui n'a pas été pipeliné avec les champs qu'ajoutent le plugin
Je suppose que cela est très spécifique à l'installation (le plugin n'étant pas installé, le pipeline n'est pas encore connu de SPIP ?), mais c'est très dommage de ne pas avoir cette méthode à disposition, ou alors j'ai une erreur ?
Court extrait de la fontion d'upgrade (pour l'installation) du plugin :
include_spip('base/create');
include_spip('base/abstract_sql');
creer_base();
echo "Installation...";
Et du pipeline :
function mots_techniques_declarer_tables_principales($tables_principales){
// ajout de la jointure pour {technique=...} sur boucle MOT
$tables_principales['spip_mots']['join']["id_groupe"] = "id_groupe";
$tables_principales['spip_mots']['join']["id_mot"] = "id_mot";
// jout du champ technique
$tables_principales['spip_groupes_mots']['field']["technique"] = "text DEFAULT '' NOT NULL";
return $tables_principales;
}