/**
 * 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);
}
示例#2
0
/**
 * 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);
}
示例#6
0
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'");
}
示例#7
0
/**
 * 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}'");
    }
}
示例#8
0
文件: maintenance.php 项目: JLuc/SPIP
/**
 * 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);
}
示例#10
0
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);
}
示例#11
0
/**
 * 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);
}
示例#15
0
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);
}
示例#16
0
/**
 * 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);
}
示例#17
0
/**
 * 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");
    }
}
示例#24
0
/**
 * 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);
}
示例#25
0
文件: meta.php 项目: pcrest/eludis
 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);
}
示例#29
0
/**
 * 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);
}