Pierre Andrews a écrit :
On 2/27/07, Olivier Gautier <olivier.gautier@ac-rouen.fr> wrote:
case 'test':
Désolé, mais j'suis un peu largé là :
(isset($GLOBALS['meta']['xxx_base_version']) AND
($GLOBALS['meta']['xxx_base_version']>=$xxx_base_version));
C'est quoi l'idée ? ou encore, elle correspondent à quoi ces variables globales et où sont-elles définies ?
Si j'ai bien interpreté la chose, c'est un test pour voir si la
version des fichiers installés est compatibles avec la version des
données déjà existantes. Pour tester s'il y a besoin de faire un
upgrade de la base ou pas.
pour faire court :
Si il y a une directive install dans plugin.xml, Spip utilisera la fonction xxx_install dans le fichier specifié.
A l'activation du plugin, elle est appelée avec le parametre "install" et le petit icone à droite dans la page admin_plugins fait apparaitre un lien désinstaller tout.
Lorsqu'on clique sur ce lien, la fonction xxx_install est appelée avec le parametre "uninstall".
A toi de gerer ce que tu veux derriere.
Cedric gere dans ses plugins une version de base de données, ca me parait tres bien, donc je fais en general pareil (enfin, quand il y a des trucs à mettre en base de données).
donc, xxx_base_version serait un meta mis en place à la dernière
installation/mise à jour par ton plugin pour savoir quelle version de
la base est installée. Comme cela, si le schéma a changé entre 2
versions du plugin, alors tu sais qu'il faut faire une mise à jour de
la base aussi.
oui
Et ça doit être à ce moment que le cas upgrade est appelé.
à l'installation aussi => l'upgrade depuis rien etant le premier cas.
Tout cela reste à verifier dans les plugins d'exemples qui
implêmentent déjà cela (lesquels?)
Forms&table, spip-listes et agenda doivent utiliser ce systeme
-------------
Sur la fonctions de desinstall, je me pose une question: on vide la
base ou pas?
oui, c'est le principe : suppression complete.
Si tu veux désactiver sans detruire, tu désactives simplement le plugin.
et si on la vide, est-ce qu'il y a moyen d'offrir à
l'utilisateur l'opportunité de faire un backup des données du plugins
avant leur effacement (i.e. les fonctions de backup de spip sont-elles
facilement accessible)?
Les données sont toutes dans le backup si les tables sont bien déclarées dans Spip.
Il faut donc veiller à activer les plugins avant d'importer les données quand on veut restaurer une base sur une installation vierge.
@++