/** * Fonction de désinstallation du plugin. **/ function roles_auteurs_vider_tables($nom_meta_base_version) { // tant qu'il existe des doublons, on supprime une ligne doublonnée // sinon on ne pourra pas modifier la cle primaire ensuite // cet algo est certainement a optimiser while ($doublons = sql_allfetsel( array('id_auteur', 'id_objet', 'objet', 'role'), array('spip_auteurs_liens'), '', 'id_auteur,id_objet,objet', '', '', 'COUNT(*) > 1')) { foreach ($doublons as $d) { $where = array(); foreach ($d as $cle=>$valeur) { $where[] = "$cle=".sql_quote($valeur); } sql_delete('spip_auteurs_liens', $where); } } // supprimer la clé primaire, la colonne rôle, et remettre l'ancienne clé primaire sql_alter("TABLE spip_auteurs_liens DROP PRIMARY KEY"); sql_alter("TABLE spip_auteurs_liens DROP COLUMN role"); sql_alter("TABLE spip_auteurs_liens ADD PRIMARY KEY (id_auteur,id_objet,objet)"); effacer_meta($nom_meta_base_version); }
/** * Fonction de desinstallation * * @param unknown_type $nom_meta_base_version */ function accesrestreint_vider_tables($nom_meta_base_version) { sql_drop_table("spip_zones"); sql_drop_table("spip_zones_auteurs"); sql_drop_table("spip_zones_rubriques"); effacer_meta('creer_htaccess'); effacer_meta($nom_meta_base_version); }
function agenda_vider_tables($nom_meta_base_version) { sql_drop_table("spip_evenements"); #sql_drop_table("spip_mots_evenements"); // au cas ou ? sql_alter("TABLE spip_rubriques DROP COLUMN agenda"); effacer_meta($nom_meta_base_version); }
function action_zengarden_activer_theme_dist() { $securiser_action = charger_fonction('securiser_action', 'inc'); $arg = $securiser_action(); if (strncmp('defaut:', $arg, 7) == 0) { $dir_theme = _DIR_RACINE . substr($arg, 7); $flux = pipeline('zengarden_activer_theme', array('args' => array('dir' => $dir_theme, 'action' => 'effacer'), 'data' => true)); if ($flux) { include_spip('inc/meta'); effacer_meta("zengarden_theme"); } } elseif (strncmp('apercu:', $arg, 7) == 0) { $theme = substr($arg, 7); $dir_theme = _DIR_RACINE . $theme; if (is_dir($dir_theme)) { $flux = pipeline('zengarden_activer_theme', array('args' => array('dir' => $dir_theme, 'action' => 'apercevoir'), 'data' => true)); if ($flux) { include_spip('inc/cookie'); spip_setcookie('spip_zengarden_theme', $theme); } } } elseif (strncmp('activation:', $arg, 11) == 0) { $theme = substr($arg, 11); $dir_theme = _DIR_RACINE . $theme; if (is_dir($dir_theme)) { $flux = pipeline('zengarden_activer_theme', array('args' => array('dir' => $dir_theme, 'action' => 'activer'), 'data' => true)); if ($flux) { include_spip('inc/meta'); ecrire_meta("zengarden_theme", $theme); } } } }
function vacarme_numeros_vider_tables($nom_meta_version_base) { sql_drop_table('spip_vacarme_numeros'); sql_drop_table('spip_vacarme_numeros_details'); sql_drop_table('spip_vacarme_numeros_sommaires'); effacer_meta($nom_meta_version_base); }
function action_supprimer_rubrique($r) { list(,,$id_rubrique) = $r; sql_delete("spip_rubriques", "id_rubrique=$id_rubrique"); sql_delete("spip_mots_rubriques", "id_rubrique=$id_rubrique"); // Les admin restreints qui n'administraient que cette rubrique // deviennent redacteurs // (il y a sans doute moyen de faire ca avec un having) $q = sql_select("id_auteur", "spip_auteurs_rubriques", "id_rubrique=$id_rubrique"); while ($r = sql_fetch($q)) { $id_auteur = $r['id_auteur']; sql_delete("spip_auteurs_rubriques", "id_rubrique=$id_rubrique AND id_auteur=$id_auteur"); $n = sql_countsel("spip_auteurs_rubriques", "id_auteur=$id_auteur"); if (!$n) sql_updateq("spip_auteurs", array("statut" => '1comite'), "id_auteur=$id_auteur"); } // menu_rubriques devra recalculer effacer_meta("date_calcul_rubriques"); // Une rubrique supprimable n'avait pas le statut "publie" // donc rien de neuf pour la rubrique parente include_spip('inc/rubriques'); calculer_langues_rubriques(); // invalider les caches marques de cette rubrique include_spip('inc/invalideur'); suivre_invalideur("id='id_rubrique/$id_rubrique'"); }
/** * Effacer une rubrique * * http://doc.spip.org/@action_supprimer_dist * * @param null $id_rubrique * @return void */ function action_supprimer_rubrique_dist($id_rubrique = null) { if (is_null($id_rubrique)) { $securiser_action = charger_fonction('securiser_action', 'inc'); $id_rubrique = $securiser_action(); } if (intval($id_rubrique)) { sql_delete("spip_rubriques", "id_rubrique=" . intval($id_rubrique)); // Les admin restreints qui n'administraient que cette rubrique // deviennent redacteurs // (il y a sans doute moyen de faire ca avec un having) $q = sql_select("id_auteur", "spip_auteurs_liens", "objet='rubrique' AND id_objet=" . intval($id_rubrique)); while ($r = sql_fetch($q)) { $id_auteur = $r['id_auteur']; // degrader avant de supprimer la restriction d'admin // section critique sur les droits $n = sql_countsel("spip_auteurs_liens", "objet='rubrique' AND id_objet!=" . intval($id_rubrique) . " AND id_auteur=" . intval($id_auteur)); if (!$n) { include_spip('action/editer_auteur'); auteurs_set($id_auteur, array("statut" => '1comite')); } sql_delete("spip_auteurs_liens", "objet='rubrique' AND id_objet=" . intval($id_rubrique) . " AND id_auteur=" . intval($id_auteur)); } // menu_rubriques devra recalculer effacer_meta("date_calcul_rubriques"); // Une rubrique supprimable n'avait pas le statut "publie" // donc rien de neuf pour la rubrique parente include_spip('inc/rubriques'); calculer_langues_rubriques(); // invalider les caches marques de cette rubrique include_spip('inc/invalideur'); suivre_invalideur("id='rubrique/{$id_rubrique}'"); } }
/** * Vérifier si une table a crashé * * Pour cela, on vérifie si on peut se connecter à la base de données. * * @see message_crash_tables() * * @return bool|array * Si pas de table de crashée, on retourne `false`. * Sinon, retourne un tableau contenant tous les noms * des tables qui ont crashé. */ function verifier_crash_tables() { if (spip_connect()) { include_spip('base/serial'); include_spip('base/auxiliaires'); $crash = array(); foreach (array('tables_principales', 'tables_auxiliaires') as $com) { foreach ($GLOBALS[$com] as $table => $desc) { if (!sql_select('*', $table, '', '', '', 1) and !defined('spip_interdire_cache')) { # cas "LOST CONNECTION" $crash[] = $table; } } } #$crash[] = 'test'; if ($crash) { ecrire_meta('message_crash_tables', serialize($crash)); spip_log('crash des tables', 'err'); spip_log($crash, 'err'); } else { effacer_meta('message_crash_tables'); } return $crash; } return false; }
function fraap_candidatures_vider_tables($nom_meta_base_version) { include_spip('base/abstract_sql'); sql_drop_table("spip_candidatures"); sql_alter("TABLE spip_auteurs DROP COLUMN prenom"); sql_alter("TABLE spip_auteurs DROP COLUMN activite"); effacer_meta($nom_meta_base_version); }
function palette_vider_tables($nom_meta_base_version) { if (function_exists('effacer_config')){ effacer_config('palette'); }else{ effacer_meta('palette'); } effacer_meta($nom_meta_base_version); }
/** * restaure des messages serialises dans une meta 'cfg_message_{id_auteur}' * * Si le formulaire cfg avait demande une redirection... * (et provient de cette redirection), il est possible * qu'il y ait un message a afficher * * @param mixed $valeur # inutilisé * @param Object $cfg */ function cfg_pre_charger_param_rediriger($valeur, &$cfg){ if ($messages = $GLOBALS['meta']['cfg_message_'.$GLOBALS['auteur_session']['id_auteur']]){ include_spip('inc/meta'); effacer_meta('cfg_message_'.$GLOBALS['auteur_session']['id_auteur']); if (defined('_COMPAT_CFG_192')) ecrire_metas(); $cfg->messages = array_merge($cfg->messages, unserialize($messages)); } }
/** * Desinstallation/suppression des tables mots et groupes de mots * * @param string $nom_meta_base_version */ function organiseur_vider_tables($nom_meta_base_version) { sql_drop_table("spip_messages"); sql_alter("TABLE spip_auteurs DROP imessage"); sql_alter("TABLE spip_auteurs DROP messagerie"); effacer_meta('messagerie_agenda'); effacer_meta($nom_meta_base_version); }
/** * Fonction de désinstallation du plugin. * 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. **/ function ckeditor_vider_tables($nom_meta_base_version) { # quelques exemples # (que vous pouvez supprimer !) # sql_drop_table("spip_xx"); # sql_drop_table("spip_xx_liens"); effacer_meta($nom_meta_base_version); }
/** * Fonction de desinstallation * * @param unknown_type $nom_meta_base_version */ function accesrestreint_vider_tables($nom_meta_base_version) { sql_drop_table("spip_zones"); sql_drop_table("spip_zones_liens"); effacer_meta('accesrestreint_proteger_documents'); include_spip("inc/accesrestreint_documents"); accesrestreint_gerer_htaccess(false); effacer_meta($nom_meta_base_version); }
function player_vider_tables () { spip_log("PLAYER: UNINSTALL"); effacer_meta(_PLAYER_META_PREFERENCES); if(version_compare($GLOBALS['spip_version_code'],'1.9300','<')) { include_spip("inc/meta"); ecrire_metas(); } return(true); }
/** * Désinstallation du plugin * * Supprime les tables SQL du plugin (spip_depots, spip_plugins, spip_depots_plugins, spip_paquets) * * @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 svp_vider_tables($nom_meta_base_version) { sql_drop_table("spip_depots"); sql_drop_table("spip_plugins"); sql_drop_table("spip_depots_plugins"); sql_drop_table("spip_paquets"); effacer_meta($nom_meta_base_version); spip_log('DESINSTALLATION BDD', 'svp_actions.' . _LOG_INFO); }
/** * Desinstallation/suppression des tables mots et groupes de mots * * @param string $nom_meta_base_version */ function mots_vider_tables($nom_meta_base_version) { sql_drop_table("spip_mots"); sql_drop_table("spip_groupes_mots"); sql_drop_table("spip_mots_liens"); effacer_meta('articles_mots'); effacer_meta('config_precise_groupes'); effacer_meta($nom_meta_base_version); }
/** * Desinstallation/suppression des tables vhplab * * @param string $nom_meta_base_version */ function vhplab_vider_tables($nom_meta_base_version) { sql_drop_table("spip_vhplab_gis"); sql_drop_table("spip_vhplab_gis_liens"); sql_drop_table("spip_vhplab_related"); sql_drop_table("spip_vhplab_related_liens"); sql_drop_table("spip_vhplab_json"); sql_drop_table("spip_vhplab_json_liens"); effacer_meta($nom_meta_base_version); }
/** * Fonction de désinstallation du plugin Livraison. * * @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 livraison_vider_tables($nom_meta_base_version) { livraison_generer_csv_installation(); sql_drop_table("spip_livraisonmodes"); # Nettoyer les versionnages et forums sql_delete("spip_versions", sql_in("objet", array('livraisonmode'))); sql_delete("spip_versions_fragments", sql_in("objet", array('livraisonmode'))); sql_delete("spip_forum", sql_in("objet", array('livraisonmode'))); effacer_meta($nom_meta_base_version); }
/** * Fonction de désinstallation du plugin Réseŕvations Crédits. * * 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. * * @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 reservations_credits_vider_tables($nom_meta_base_version) { sql_drop_table("spip_reservation_credit_mouvements"); sql_drop_table("spip_reservation_credits"); # Nettoyer les versionnages et forums sql_delete("spip_versions", sql_in("objet", array('reservation_credit_mouvement', 'reservation_credit'))); sql_delete("spip_versions_fragments", sql_in("objet", array('reservation_credit_mouvement', 'reservation_credit'))); sql_delete("spip_forum", sql_in("objet", array('reservation_credit_mouvement', 'reservation_credit'))); effacer_meta($nom_meta_base_version); }
/** * Désinstallation du plugin * * @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 stats_vider_tables($nom_meta_base_version) { sql_drop_table("spip_visites"); sql_drop_table("spip_visites_articles"); sql_drop_table("spip_referers"); sql_drop_table("spip_referers_articles"); effacer_meta("activer_statistiques"); effacer_meta("activer_captures_referers"); effacer_meta($nom_meta_base_version); }
/** * Desinstallation du plugin * * Suppression de la colonne id_trad uniquement s'il ne reste * pas de traduction. * * @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 tradrub_vider_tables($nom_meta_base_version) { // supprimer la colonne seulement s'il ne reste pas de traductions $il_en_reste = sql_countsel('spip_rubriques', array( 'id_trad <> ' . sql_quote(0), 'id_trad <> id_rubrique') ); if (!$il_en_reste) { sql_alter("TABLE spip_rubriques DROP id_trad"); } effacer_meta($nom_meta_base_version); }
function action_zengarden_activer_switcher_dist() { $securiser_action = charger_fonction('securiser_action', 'inc'); $arg = $securiser_action(); include_spip('inc/meta'); if ($arg == 'on') { ecrire_meta("zengarden_switcher", 'on'); } else { effacer_meta("zengarden_switcher"); } }
/** * Fonction de désinstallation du plugin cPublicité. * * @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 cpub_vider_tables($nom_meta_base_version) { sql_drop_table("spip_publicites"); sql_drop_table("spip_bannieres"); sql_drop_table("spip_stats_pubs"); # Nettoyer les versionnages et forums sql_delete("spip_versions", sql_in("objet", array('publicite', 'banniere'))); sql_delete("spip_versions_fragments", sql_in("objet", array('publicite', 'banniere'))); sql_delete("spip_forum", sql_in("objet", array('publicite', 'banniere'))); effacer_meta($nom_meta_base_version); }
function effacer() { foreach ($this->champs as $name => $def) { if (!$this->val[$name]) { effacer_meta($name); } } if (defined('_COMPAT_CFG_192')) { ecrire_metas(); } return array(true, $this->val); }
function adhclub_vider_tables($nom_meta_base_version) { sql_drop_table("spip_adhassurs_liens"); sql_drop_table("spip_adhcotis_liens"); sql_drop_table("spip_adhnivs_liens"); sql_drop_table("spip_adhassurs"); sql_drop_table("spip_adhcotis"); sql_drop_table("spip_adhnivs"); sql_drop_table("spip_adhsaisons"); sql_drop_table("spip_adhintgs"); cextras_api_vider_tables(adhclub_declarer_champs_extras()); effacer_meta($nom_meta_base_version); }
function clevermail_vider_tables($nom_meta_base_version) { sql_drop_table('spip_cm_lists'); sql_drop_table('spip_cm_lists_subscribers'); sql_drop_table('spip_cm_pending'); sql_drop_table('spip_cm_posts'); sql_drop_table('spip_cm_posts_done'); sql_drop_table('spip_cm_posts_links'); sql_drop_table('spip_cm_posts_queued'); sql_drop_table('spip_cm_settings'); sql_drop_table('spip_cm_subscribers'); sql_drop_table('spip_cm_champ_exercice'); effacer_meta($nom_meta_base_version); spip_log('Suppression des tables du plugin CleverMail', 'clevermail'); }
function vacarme_commande_vider_tables($nom_meta_base_version) { sql_alter("TABLE spip_contacts DROP organisation"); sql_alter("TABLE spip_contacts DROP service"); sql_alter("TABLE spip_contacts DROP type_client"); sql_alter("TABLE spip_contacts_abonnements DROP numero_debut"); sql_alter("TABLE spip_contacts_abonnements DROP numero_fin"); sql_alter("TABLE spip_abonnements DROP reference"); sql_alter("TABLE spip_abonnements DROP cadeau"); sql_alter("TABLE spip_paniers_liens DROP numero"); sql_alter("TABLE spip_commandes DROP paiement"); sql_alter("TABLE spip_commandes_details DROP numero"); sql_drop_table('spip_commandes_transactions'); effacer_meta($nom_meta_base_version); }
/** * Desinstallation/suppression des tables forum * * @param string $nom_meta_base_version */ function forum_vider_tables($nom_meta_base_version) { sql_drop_table("spip_forum"); effacer_meta("mots_cles_forums"); effacer_meta("forums_titre"); effacer_meta("forums_texte"); effacer_meta("forums_urlref"); effacer_meta("forums_afficher_barre"); effacer_meta("formats_documents_forum"); effacer_meta("forums_publics"); effacer_meta("forum_prive"); effacer_meta("forum_prive_objets"); effacer_meta("forum_prive_admin"); effacer_meta($nom_meta_base_version); }
/** * Desinstallation * * @param string $nom_meta_base_version */ function compositions_vider_tables($nom_meta_base_version) { include_spip('inc/meta'); include_spip('base/abstract_sql'); include_spip('base/objets'); $tables_objets = array_keys(lister_tables_objets_sql()); foreach($tables_objets as $table){ sql_alter("TABLE $table DROP composition"); sql_alter("TABLE $table DROP composition_lock"); } sql_alter("TABLE spip_rubriques DROP composition_branche_lock"); effacer_meta('compositions'); effacer_meta($nom_meta_base_version); }