/**
 * Point d'entrée d'édition d'un objet
 *
 * On ne peut entrer que par un appel en fournissant $id et $objet
 * ou avec un argument d'action sécurisée de type "objet/id"
 *
 * @param int $id
 * @param string $objet
 * @param array $set
 * @return array
 */
function action_editer_objet_dist($id = null, $objet = null, $set = null)
{
    // appel direct depuis une url avec arg = "objet/id"
    if (is_null($id) or is_null($objet)) {
        $securiser_action = charger_fonction('securiser_action', 'inc');
        $arg = $securiser_action();
        list($objet, $id) = array_pad(explode("/", $arg, 2), 2, null);
    }
    // appel incorrect ou depuis une url erronnée interdit
    if (is_null($id) or is_null($objet)) {
        include_spip('inc/minipres');
        echo minipres(_T('info_acces_interdit'));
        die;
    }
    // si id n'est pas un nombre, c'est une creation
    // mais on verifie qu'on a toutes les donnees qu'il faut.
    if (!($id = intval($id))) {
        // on ne sait pas si un parent existe mais on essaye
        $id_parent = _request('id_parent');
        $id = objet_inserer($objet, $id_parent);
    }
    if (!($id = intval($id)) > 0) {
        return array($id, _L('echec enregistrement en base'));
    }
    // Enregistre l'envoi dans la BD
    $err = objet_modifier($objet, $id, $set);
    return array($id, $err);
}
function action_deplacer_objets_dist()
{
    include_spip('inc/autoriser');
    if (!autoriser('ecrire')) {
        return plan_json_erreur(_T("plan:erreur_autorisation_insuffisante") . " " . _T("plan:erreur_deplacement_impossible"));
    }
    include_spip('base/objets');
    $objet = objet_type(_request('objet'));
    $table = table_objet_sql($objet);
    $_id_table = id_table_objet($table);
    $ids = _request('id_objet');
    $id_rubrique_old = _request('id_rubrique_source');
    $id_rubrique_new = _request('id_rubrique_destination');
    if (!is_array($ids) or !$objet) {
        return plan_json_erreur(_T("plan:erreur_aucun_identifiant") . " " . _T("plan:erreur_deplacement_impossible"));
    }
    if ($id_rubrique_old == $id_rubrique_new) {
        return plan_json_erreur(_T("plan:erreur_rubriques_parentes_incorrectes") . " " . _T("plan:erreur_deplacement_impossible"));
    }
    if ($objet != 'rubrique' and !$id_rubrique_new) {
        return plan_json_erreur(_T("plan:erreur_rubriques_parentes_incorrectes") . " " . _T("plan:erreur_deplacement_impossible"));
    }
    $ids = array_filter($ids);
    if ($objet == 'rubrique') {
        $champ = 'id_parent';
    } else {
        $champ = 'id_rubrique';
    }
    // ne modifier que si les emplacements n'ont pas déjà changé !
    $ids = sql_allfetsel($_id_table, $table, array(sql_in($_id_table, $ids), $champ . '=' . sql_quote($id_rubrique_old)));
    $ids = array_map('array_shift', $ids);
    include_spip('action/editer_objet');
    $errors = $success = array();
    $modifs = array('id_parent' => $id_rubrique_new);
    foreach ($ids as $id) {
        if (autoriser('modifier', $objet, $id)) {
            if ($err = objet_modifier($objet, $id, $modifs)) {
                $errors["{$objet}-{$id}"] = $err;
            } else {
                $success["{$objet}-{$id}"] = true;
            }
        } else {
            $errors["{$objet}-{$id}"] = _T("plan:erreur_autorisation_insuffisante") . " " . _T("plan:erreur_deplacement_impossible");
        }
    }
    // dans certains cas… on ne reçoit pas d'erreur… et pourtant !
    if (!$errors) {
        // on verifie qu'il n'y a plus d'objets à l'ancien emplacement
        $ids = sql_allfetsel($_id_table, $table, array(sql_in($_id_table, $ids), $champ . '=' . sql_quote($id_rubrique_old)));
        $ids = array_map('array_shift', $ids);
        if ($ids) {
            foreach ($ids as $id) {
                $errors["{$objet}-{$id}"] = _T("plan:erreur_deplacement");
                unset($success["{$objet}-{$id}"]);
            }
        }
    }
    return plan_json_envoi(array('done' => true, 'success' => $success, 'errors' => $errors));
}
/**
 * @param int $id_message
 * @return void
 */
function action_envoyer_message_dist($id_message = null)
{
    if (is_null($id_message)) {
        $securiser_action = charger_fonction('securiser_action', 'inc');
        $id_message = $securiser_action();
    }
    include_spip('inc/autoriser');
    if (intval($id_message) and $type = sql_getfetsel('type', 'spip_messages', 'id_message=' . intval($id_message)) and autoriser('envoyermessage', $type, $id_message)) {
        include_spip('action/editer_objet');
        objet_modifier('message', $id_message, array('statut' => 'publie'));
    }
}
/**
 * @param int $id_message
 * @return void
 */
function action_supprimer_message_dist($id_message = null)
{
    if (is_null($id_message)) {
        $securiser_action = charger_fonction('securiser_action', 'inc');
        $id_message = $securiser_action();
    }
    include_spip('inc/autoriser');
    if (autoriser('supprimer', 'message', $id_message)) {
        include_spip('action/editer_objet');
        objet_modifier('message', $id_message, array('statut' => 'poub'));
    }
}
function livraison_installer_modes()
{
    include_spip("action/editer_objet");
    if ($importer_csv = charger_fonction("importer_csv", "inc", true) and $f = find_in_path("base/livraisonmodes.csv")) {
        $modes = $importer_csv($f, true);
        foreach ($modes as $mode) {
            $id = objet_inserer("livraisonmode");
            $set = $mode;
            $set['prix_poids_ht'] = preg_replace(",\\s+,", "\n", $set['prix_poids_ht']);
            $set['prix_volume_ht'] = preg_replace(",\\s+,", "\n", $set['prix_volume_ht']);
            $set['statut'] = 'prop';
            objet_modifier("livraisonmode", $id, $set);
        }
    }
}
/**
 * Migration des albums grappes vers media_collections
 * 
 * Appelée lors de l'installation du plugin
 */
function geol_albums_init()
{
    if ($grappes = sql_allfetsel('*', 'spip_grappes', sql_in('type', array('album_perso', 'album_coop', 'balade')))) {
        include_spip('action/editer_objet');
        include_spip('action/editer_liens');
        foreach ($grappes as $grappe) {
            // récupérer les infos des anciens albums (grappes)
            $set = array('id_admin' => $grappe['id_admin'], 'titre' => $grappe['titre'], 'descriptif' => $grappe['descriptif'], 'date' => $grappe['date']);
            if ($grappe['type'] == 'album_perso') {
                $set['type_collection'] = 'perso';
            } elseif ($grappe['type'] == 'album_coop') {
                $set['type_collection'] = 'coop';
            } elseif ($grappe['type'] == 'balade') {
                $set['type_collection'] = 'balade';
            }
            // créer des collections
            $id_collection = objet_inserer('collection');
            if ($id_collection > 0) {
                objet_modifier('collection', $id_collection, $set);
                objet_instituer('collection', $id_collection, array('statut' => 'publie'));
                // copie des liens de grappes_liens vers collections_liens pour les articles
                $articles = sql_allfetsel('*', 'spip_grappes_liens', "objet = 'article' AND id_grappe = " . $grappe['id_grappe']);
                foreach ($articles as $article) {
                    objet_associer(array('collection' => $id_collection), array($article['objet'] => $article['id_objet']), array('rang' => $article['rang']));
                }
                // associer l'auteur id_admin de la grappe à la collection
                objet_associer(array('auteur' => $grappe['id_admin']), array('collection' => $id_collection));
                // copie des liens de grappes_liens vers auteurs_liens pour les auteurs
                $auteurs = sql_allfetsel('*', 'spip_grappes_liens', "objet = 'auteur' AND id_grappe = " . $grappe['id_grappe']);
                foreach ($auteurs as $auteur) {
                    objet_associer(array($auteur['objet'] => $auteur['id_objet']), array('collection' => $id_collection));
                }
                // maj des liens des forums attachés aux grappes
                $forums = sql_allfetsel('id_forum', 'spip_forum', "objet = 'grappe' AND id_objet = " . $grappe['id_grappe']);
                foreach ($forums as $forum) {
                    sql_updateq('spip_forum', array('objet' => 'collection', 'id_objet' => $id_collection), 'id_forum = ' . $forum['id_forum']);
                }
                // maj des liens des points gis attachés aux grappes
                $points = sql_allfetsel('id_gis', 'spip_gis_liens', "objet = 'grappe' AND id_objet = " . $grappe['id_grappe']);
                foreach ($points as $point) {
                    sql_updateq('spip_gis_liens', array('objet' => 'collection', 'id_objet' => $id_collection), 'id_gis = ' . $point['id_gis']);
                }
            }
        }
    }
}
Example #7
0
/**
 * Instituer un objet avec les puces rapides
 * @param null|string $arg
 * @return 
 */
function action_instituer_objet_dist($arg = null)
{
    if (is_null($arg)) {
        $securiser_action = charger_fonction('securiser_action', 'inc');
        $arg = $securiser_action();
    }
    list($objet, $id_objet, $statut) = preg_split('/\\W/', $arg);
    if (!$statut) {
        $statut = _request('statut_nouv');
    }
    // cas POST
    if (!$statut) {
        return;
    }
    // impossible mais sait-on jamais
    if ($id_objet = intval($id_objet) and autoriser('instituer', $objet, $id_objet, '', array('statut' => $statut))) {
        include_spip('action/editer_objet');
        objet_modifier($objet, $id_objet, array('statut' => $statut));
    }
}
Example #8
0
/**
 * Point d'entree d'edition d'un objet
 * on ne peut entrer que par un appel en fournissant $id et $objet
 * mais pas pas une url
 *
 * @param int $id
 * @param string $objet
 * @param array $set
 * @return array
 */
function action_editer_objet_dist($id = null, $objet = null, $set = null)
{
    // appel direct depuis une url interdit
    if (is_null($id) or is_null($objet)) {
        include_spip('inc/minipres');
        echo minipres(_T('info_acces_interdit'));
        die;
    }
    // si id n'est pas un nombre, c'est une creation
    // mais on verifie qu'on a toutes les donnees qu'il faut.
    if (!($id = intval($id))) {
        // on ne sait pas si un parent existe mais on essaye
        $id_parent = _request('id_parent');
        $id = objet_inserer($objet, $id_parent);
    }
    if (!($id = intval($id)) > 0) {
        return array($id, _L('echec enregistrement en base'));
    }
    // Enregistre l'envoi dans la BD
    $err = objet_modifier($objet, $id, $set);
    return array($id, $err);
}
/**
 * Action sécurisée pour valider manuellement les membres du site
 *
 * On change le statut de l'auteur et on lui envoie un mail avec de quoi se loguer
 *
 * @return rien
 */
function action_valider_auteur_dist()
{
    $securiser_action = charger_fonction('securiser_action', 'inc');
    $id_auteur = $securiser_action();
    if (!$id_auteur or !autoriser('valider', 'auteur', $id_auteur)) {
        include_spip('inc/minipres');
        $msg = _T('valider_inscription:permissions_insuffisantes');
        die(minipres($msg));
    }
    include_spip('base/abstract_sql');
    // le statut à donné a été enregistré dans le champs « prefs »
    $statut = sql_getfetsel('prefs', 'spip_auteurs', 'id_auteur=' . intval($id_auteur));
    include_spip('action/editer_objet');
    if ($err = objet_modifier('auteur', $id_auteur, array('statut' => $statut))) {
        include_spip('inc/minipres');
        die(minipres(_T('valider_inscription:erreur_validation'), $err));
    }
    $desc = sql_fetsel('statut, id_auteur, login, email', 'spip_auteurs', 'id_auteur=' . intval($id_auteur));
    include_spip('action/inscrire_auteur');
    // generer le mot de passe (ou le refaire si compte inutilise)
    $desc['pass'] = creer_pass_pour_auteur($id_auteur);
    // attribuer un jeton pour confirmation par clic sur un lien
    $desc['jeton'] = auteur_attribuer_jeton($id_auteur);
    // Si on doit lier l'auteur à une zone, il faut le faire ici,
    // parce que les visiteurs n'ont pas les autorisations nécessaires
    // lors de l'inscription
    if (test_plugin_actif('auteur2zone')) {
        include_spip('inc/config');
        $config = lire_config('auteur2zone');
        // Lier à la zone
        include_spip('action/editer_zone');
        zone_lier($config['auteur_zone_auto'], 'auteur', $id_auteur);
    }
    $envoyer_inscription = charger_fonction('envoyer_inscription', '');
    list($sujet, $msg, $from, $head) = $envoyer_inscription($desc, $nom, $statut);
    include_spip('inc/notifications');
    notifications_envoyer_mails($desc['email'], $msg, $sujet, $from, $head);
}
/**
 * Fonction de mise a jour par API editer_objet
 * @param $id
 * @param $data
 * @param $type
 * @param $ref
 * @return bool|mixed|string
 */
function crayons_objet_modifier($id, $data, $type, $ref)
{
    if (include_spip('action/editer_objet') and function_exists('objet_modifier')) {
        return objet_modifier(objet_type($type), $id, $data);
    }
    // fallback
    return crayons_update($id, $data, $type);
}
/**
 * Enregistre un massicotage dans la base de données
 *
 * @param string $objet : le type d'objet
 * @param integer $id_objet : l'identifiant de l'objet
 * @param array parametres : Un tableau de parametres pour le
 *							 massicotage, doit contenir les clés
 *							 'zoom', 'x1', 'x2', 'y1', et 'y2'
 *
 * @return mixed   Rien si tout s'est bien passé, un message d'erreur
 *				   sinon
 */
function massicot_enregistrer($objet, $id_objet, $parametres)
{
    include_spip('action/editer_objet');
    include_spip('action/editer_liens');
    /* Tester l'existence des parametres nécessaires */
    if (!isset($parametres['zoom'])) {
        return _T('massicot:erreur_parametre_manquant', array('parametre' => 'zoom'));
    } elseif (!isset($parametres['x1'])) {
        return _T('massicot:erreur_parametre_manquant', array('parametre' => 'x1'));
    } elseif (!isset($parametres['x2'])) {
        return _T('massicot:erreur_parametre_manquant', array('parametre' => 'x2'));
    } elseif (!isset($parametres['y1'])) {
        return _T('massicot:erreur_parametre_manquant', array('parametre' => 'y1'));
    } elseif (!isset($parametres['y2'])) {
        return _T('massicot:erreur_parametre_manquant', array('parametre' => 'y2'));
    }
    /* le rôle est traité à part */
    if (isset($parametres['role'])) {
        $role = $parametres['role'];
        unset($parametres['role']);
    } else {
        $role = '';
    }
    $chemin_image = massicot_chemin_image($objet, $id_objet);
    list($width, $height) = getimagesize($chemin_image);
    $id_massicotage = sql_getfetsel('id_massicotage', 'spip_massicotages_liens', array('objet=' . sql_quote($objet), 'id_objet=' . intval($id_objet), 'role=' . sql_quote($role)));
    if (!$id_massicotage) {
        $id_massicotage = objet_inserer('massicotage');
        objet_associer(array('massicotage' => $id_massicotage), array($objet => $id_objet), array('role' => $role));
        /* Le logo du site est un cas spécial. SPIP le traite comme le « site »
         * avec l'id 0, alors on fait pareil. */
        if ($id_objet == 0) {
            // peut être le string '0'
            sql_insertq('spip_massicotages_liens', array('id_massicotage' => $id_massicotage, 'id_objet' => 0, 'objet' => 'site', 'role' => $role));
        }
    }
    if ($err = objet_modifier('massicotage', $id_massicotage, array('traitements' => serialize($parametres)))) {
        return $err;
    }
}
Example #12
0
File: dater.php Project: JLuc/SPIP
/**
 * Traitement du formulaire d'édition d'une date
 *
 * @param string $objet
 *     Type d'objet
 * @param int $id_objet
 *     Identifiant de l'objet
 * @param string $retour
 *     URL de redirection après le traitement
 * @param array|string $options
 *     Options.
 * @return Array
 *     Retours des traitements
 */
function formulaires_dater_traiter_dist($objet, $id_objet, $retour = '', $options = array())
{
    $res = array('editable' => ' ');
    if (_request('changer')) {
        $_id_objet = id_table_objet($objet);
        $table = table_objet($objet);
        $trouver_table = charger_fonction('trouver_table', 'base');
        $desc = $trouver_table($table);
        if (!$desc) {
            return array('message_erreur' => _L('erreur'));
        }
        #impossible en principe
        $champ_date = $desc['date'] ? $desc['date'] : 'date';
        $set = array();
        $charger = charger_fonction("charger", "formulaires/dater/");
        $v = $charger($objet, $id_objet, $retour, $options);
        if ($v['_editer_date']) {
            if (!($d = dater_recuperer_date_saisie(_request('date_jour')))) {
                $d = array(date('Y'), date('m'), date('d'));
            }
            if (!($h = dater_recuperer_heure_saisie(_request('date_heure')))) {
                $h = array(0, 0);
            }
            $set[$champ_date] = sql_format_date($d[0], $d[1], $d[2], $h[0], $h[1]);
        }
        if (isset($desc['field']['date_redac']) and $v['_editer_date_anterieure']) {
            if (!_request('date_redac_jour') or _request('sans_redac')) {
                $set['date_redac'] = sql_format_date(0, 0, 0, 0, 0, 0);
            } else {
                if (!($d = dater_recuperer_date_saisie(_request('date_redac_jour'), "date_redac"))) {
                    $d = array(date('Y'), date('m'), date('d'));
                }
                if (!($h = dater_recuperer_heure_saisie(_request('date_redac_heure')))) {
                    $h = array(0, 0);
                }
                $set['date_redac'] = sql_format_date($d[0], $d[1], $d[2], $h[0], $h[1]);
            }
        }
        if (count($set)) {
            $publie_avant = objet_test_si_publie($objet, $id_objet);
            include_spip('action/editer_objet');
            objet_modifier($objet, $id_objet, $set);
            $publie_apres = objet_test_si_publie($objet, $id_objet);
            if ($publie_avant !== $publie_apres) {
                // on refuse ajax pour forcer le rechargement de la page ici
                // on refera traiter une 2eme fois, mais c'est sans consequence
                refuser_traiter_formulaire_ajax();
            }
        }
    }
    if ($retour) {
        $res['redirect'] = $retour;
    }
    set_request('date_jour');
    set_request('date_redac_jour');
    set_request('date_heure');
    set_request('date_redac_heure');
    return $res;
}
Example #13
0
/**
 * Traitement 
 *
 * @param string $objet
 * @param integer $id_objet
 * @param string $retour
 * @return Array
 */
function formulaires_dater_traiter_dist($objet, $id_objet, $retour = '')
{
    $res = array('editable' => ' ');
    if (_request('changer')) {
        $_id_objet = id_table_objet($objet);
        $table = table_objet($objet);
        $trouver_table = charger_fonction('trouver_table', 'base');
        $desc = $trouver_table($table);
        if (!$desc) {
            return array('message_erreur' => _L('erreur'));
        }
        #impossible en principe
        $champ_date = $desc['date'] ? $desc['date'] : 'date';
        $set = array();
        if (!($d = dater_recuperer_date_saisie(_request('date_jour')))) {
            $d = array(date('Y'), date('m'), date('d'));
        }
        if (!($h = dater_recuperer_heure_saisie(_request('date_heure')))) {
            $h = array(0, 0);
        }
        $set[$champ_date] = sql_format_date($d[0], $d[1], $d[2], $h[0], $h[1]);
        if (isset($desc['field']['date_redac'])) {
            if (!_request('date_redac_jour') or _request('sans_redac')) {
                $set['date_redac'] = sql_format_date(0, 0, 0, 0, 0, 0);
            } else {
                if (!($d = dater_recuperer_date_saisie(_request('date_redac_jour'), "date_redac"))) {
                    $d = array(date('Y'), date('m'), date('d'));
                }
                if (!($h = dater_recuperer_heure_saisie(_request('date_redac_heure')))) {
                    $h = array(0, 0);
                }
                $set['date_redac'] = sql_format_date($d[0], $d[1], $d[2], $h[0], $h[1]);
            }
        }
        include_spip('action/editer_objet');
        objet_modifier($objet, $id_objet, $set);
    }
    if ($retour) {
        $res['redirect'] = $retour;
    }
    set_request('date_jour');
    set_request('date_redac_jour');
    set_request('date_heure');
    set_request('date_redac_heure');
    return $res;
}
Example #14
0
function formulaires_editer_message_traiter_dist($id_message = 'new', $type = 'message', $retour = '', $accepter_email = 'oui', $destinataires = '', $titre = '', $texte = '')
{
    // preformater le post
    // fixer le type de message
    // sans modifier le type d'un message existant
    if (intval($id_message) and $t = sql_getfetsel('type', 'spip_messages', 'id_message=' . intval($id_message))) {
        $type = $t;
    }
    set_request('type', $type);
    // formater les destinataires
    $d = _request('destinataires');
    if (!$d) {
        $d = array();
    }
    include_spip('inc/messages');
    $d = messagerie_nettoyer_destinataires($d);
    // si email non acceptes, extraire les seuls id_auteur de la liste proposee
    if ($accepter_email !== 'oui') {
        // separer id_auteur et email
        $d = messagerie_destiner($d);
        // ne conserver que les id_auteur
        $d = reset($d);
    }
    // reinjecter sous forme de chaine
    set_request('destinataires', implode(',', $d));
    // fixer l'auteur !
    set_request('id_auteur', $GLOBALS['visiteur_session']['id_auteur']);
    if (_request('rv') == 'oui') {
        include_spip('inc/date_gestion');
        $erreurs = array();
        $date_debut = verifier_corriger_date_saisie('debut', true, $erreurs);
        $date_fin = verifier_corriger_date_saisie('fin', true, $erreurs);
        set_request('date_heure', date('Y-m-d H:i:s', $date_debut));
        set_request('date_fin', date('Y-m-d H:i:s', $date_fin));
    } else {
        set_request('date_heure');
        set_request('date_fin');
    }
    // on gere par les traitements standard
    // la diffusion du message se fait par pipeline post_edition sur instituer
    // et notification
    $res = formulaires_editer_objet_traiter('message', $id_message, 0, 0, $retour, '');
    if ($id_message = $res['id_message'] and !_request('draft')) {
        include_spip('action/editer_objet');
        objet_modifier('message', $id_message, array('statut' => 'publie'));
        // apres en message envoyes, retourner sur la boite d'envoi plutot que sur le message
        if ($res['redirect'] == generer_url_ecrire('message', 'id_message=' . $id_message)) {
            $res['redirect'] = generer_url_ecrire('messages', 'quoi=envoi');
        }
    }
    set_request('destinataires', explode(',', _request('destinataires')));
    return $res;
}
Example #15
0
/**
 * Crée une modification d'un objet
 * 
 * Wrapper pour remplacer tous les obsoletes revision_xxx
 *
 * @deprecated
 *     Utiliser objet_modifier();
 * @uses objet_modifier()
 * 
 * @param string $objet
 *     Nom de l'objet
 * @param int $id_objet
 *     Identifiant de l'objet
 * @param array $c
 *     Couples des champs/valeurs modifiées
 * @return mixed|string
 */
function revision_objet($objet, $id_objet, $c = null)
{
    $objet = objet_type($objet);
    // securite
    include_spip('action/editer_objet');
    return objet_modifier($objet, $id_objet, $c);
}
function csv2auteurs_supprimer_auteurs($Tid, $statut, $traitement = "supprimer_articles", $id_rubrique_archive = 1)
{
    // passage à la poubelle
    $objet = 'auteur';
    $set = array('statut' => '5poubelle');
    foreach ($Tid as $id) {
        $Tarticles = sql_allfetsel('id_objet', 'spip_auteurs_liens', array('id_auteur=' . $id, 'objet="article"'));
        // auteur sans article et demande de suppression: suppression complète
        if (count($Tarticles) == 0 and _request('abs_poubelle') == 'supprimer') {
            sql_delete('spip_auteurs', "id_auteur={$id}");
        } else {
            objet_modifier($objet, $id, $set);
        }
        // traitement des articles de l'auteur
        if (count($Tarticles) != 0) {
            // supprimer les articles
            $table_idarticle = array();
            if ($traitement == 'supprimer_articles') {
                objet_dissocier(array('id_auteur' => $id), array('article' => $Tarticles));
                foreach ($Tarticles as $idarticle) {
                    $table_idarticle[] = $idarticle['id_objet'];
                }
                $inarticle = join(',', $table_idarticle);
                sql_delete('spip_articles', "id_article IN ({$inarticle})");
            }
            // deplacer les articles dans la rubrique d'archivage
            if ($traitement == 'transferer_articles') {
                foreach ($Tarticles as $idarticle) {
                    objet_modifier('article', $idarticle['id_objet'], array('id_parent' => $id_rubrique_archive));
                }
            }
        }
        if (test_plugin_actif("accesrestreint")) {
            // suppression des zones de l'auteur
            $Tzones = sql_allfetsel('id_zone', 'spip_zones_liens', array('id_objet=' . $id, 'objet="auteur"'));
            foreach ($Tzones as $id_zone) {
                zone_lier($id_zone, 'auteur', $id, 'del');
            }
        }
        // suppression des rubriques des admins restreints
        if ($statut == '0minirezo') {
            $Trubriques = sql_allfetsel('id_objet', 'spip_auteurs_liens', array('id_auteur=' . $id, 'objet="rubrique"'));
            objet_dissocier(array('id_auteur' => $id), array('rubrique' => $Trubriques));
        }
    }
}