#PHP [(#INCLURE{fond=fabrique/entetes/php,env, description=Fichier gérant l'installation et désinstallation du plugin #ENV{paquet/nom}, package=Installation})] /** * Fonction d'installation et de mise à jour du plugin #ENV{paquet/nom}.[ * * Vous pouvez : * * - créer la structure SQL, * - insérer du pre-contenu, * - installer des valeurs de configuration, * - mettre à jour la structure SQL(#EXEMPLES|oui)] * * @param string $nom_meta_base_version * Nom de la meta informant de la version du schéma de données du plugin installé dans SPIP * @param string $version_cible * Version du schéma de données dans ce plugin (déclaré dans paquet.xml) * @return void **/ function #ENV{prefixe}_upgrade($nom_meta_base_version, $version_cible) { $maj = array(); # quelques exemples # (que vous pouvez supprimer !) # # $maj['create'] = array(array('creer_base')); # # include_spip('inc/config') # $maj['create'] = array( # array('maj_tables', array('spip_xx', 'spip_xx_liens')), # array('ecrire_config', '#ENV{prefixe}', array('exemple' => "Texte de l'exemple")) #); # # $maj['1.1.0'] = array(array('sql_alter','TABLE spip_xx RENAME TO spip_yy')); # $maj['1.2.0'] = array(array('sql_alter','TABLE spip_xx DROP COLUMN id_auteur')); # $maj['1.3.0'] = array( # array('sql_alter','TABLE spip_xx CHANGE numero numero int(11) default 0 NOT NULL'), # array('sql_alter','TABLE spip_xx CHANGE texte petit_texte mediumtext NOT NULL default \'\''), # ); # ... $maj['create'] = array(array('maj_tables', [(#LES_TABLES|ecrire_tableau)]));[ (#ENV*{paquet/inserer/administrations/maj}|fabrique_tabulations{1})] include_spip('base/upgrade'); maj_plugin($nom_meta_base_version, $version_cible, $maj); } /** * Fonction de désinstallation du plugin #ENV{paquet/nom}.[ * * Vous devez : * * - nettoyer toutes les données ajoutées par le plugin et son utilisation * - supprimer les tables et les champs créés par le plugin.(#EXEMPLES|oui)] * * @param string $nom_meta_base_version * Nom de la meta informant de la version du schéma de données du plugin installé dans SPIP * @return void **/ function #ENV{prefixe}_vider_tables($nom_meta_base_version) { # quelques exemples # (que vous pouvez supprimer !) # sql_drop_table('spip_xx'); # sql_drop_table('spip_xx_liens'); sql_drop_table('#VALEUR'); # Nettoyer les liens courants (le génie optimiser_base_disparus se chargera de nettoyer toutes les tables de liens) [(#VAL{"sql_delete('spip_documents_liens',"} )] sql_in('objet', [(#LES_TYPES|ecrire_tableau)])); [(#VAL{"sql_delete('spip_mots_liens',"} )] sql_in('objet', [(#LES_TYPES|ecrire_tableau)])); [(#VAL{"sql_delete('spip_auteurs_liens',"} )] sql_in('objet', [(#LES_TYPES|ecrire_tableau)])); # Nettoyer les versionnages et forums [(#VAL{"sql_delete('spip_versions',"} )] sql_in('objet', [(#LES_TYPES|ecrire_tableau)])); [(#VAL{"sql_delete('spip_versions_fragments',"})] sql_in('objet', [(#LES_TYPES|ecrire_tableau)])); [(#VAL{"sql_delete('spip_forum',"} )] sql_in('objet', [(#LES_TYPES|ecrire_tableau)])); [ (#ENV*{paquet/inserer/administrations/desinstallation}|fabrique_tabulations{1})] effacer_meta($nom_meta_base_version); } [ (#ENV*{paquet/inserer/administrations/fin}) ]