6
Indiquez l’intérêt que vous portez à cette question
0

Création de tables à l’installation d’un plugin

Bonjour,
Je cherche actuellement à développer un plugin sur SPIP et je suis donc ce très bon tuto : http://marcimat.magraine.net/Chats-2-SPIP-3#chats_administrations-php
En arrivant à la partie où l’on crée des tables à l’installation du plugin, je ne trouve pas comment adapter le tutoriel à ce que je veux faire : dans le dossier base/prefix.php de mon dossier plugins/ , j’utilise donc la fonction "prefix_declarer_tables_objets_sql($tables)" pour créer mes tables à l’installation du plugin

Seulement, moi je veux créer 4 tables et non pas une seule, et j’ai des clés étrangères dans mes tables. Je ne trouve pas de réponse sur le web ; Quelle est la bonne syntaxe ? J’ai essayé ceci dans prefix_administrations.php, fonction prefix_upgrades($nom_meta_base_version, $version_cible) :
array(’maj_tables’, array(’prefix_table1’, ’prefix_table2’,
’prefix_table3’, ’prefix_table4’))
) ;

Pour créer 4 tables et non pas une seule ;
Du coup, j’ai ceci dans base/prefix.php, dans la fonction prefix_declarer_tables_objets_sql :
$tables[’prefix_table1] = array(...) ;
$tables[’prefix_table2’] = array(...) ;
etc.

Ça je pense que c’est bon ; Mais si j’ai ceci en sql :

CREATE TABLE IF NOT EXISTS ma_table(attr1 INT NOT NULL,
attr2 INT NOT NULL,
FOREIGN KEY (attr1) REFERENCES table_quelconque1(attr1)
ON UPDATE CASCADE ON DELETE CASCADE,
FOREIGN KEY (attr2) REFERENCES table_quelconque2(attr2)
ON UPDATE CASCADE ON DELETE CASCADE,
PRIMARY KEY(attr1,attr2)
) ;

Alors je ne vois plus du tout comment créer cette table dans prefix_declarer_tables_objets_sql($tables).

Pouvez-vous m’éclairer ? Merci d’avance.