source: spip-zone/_plugins_/Association/Associaspip/inc/post_edition.php @ 59898

Last change on this file since 59898 was 59898, checked in by jeannolapin@…, 9 years ago

Associaspip Ajout d'une option pour importer automatiquement ou pas les auteurs SPIP comme membre de l'association quand ils sont édités/crées.

File size: 3.2 KB
Line 
1<?php
2/***************************************************************************
3 *  Associaspip, extension de SPIP pour gestion d'associations             *
4 *                                                                         *
5 *  Copyright (c) 2007 Bernard Blazin & Francois de Montlivault (V1)       *
6 *  Copyright (c) 2010-2011 Emmanuel Saint-James & Jeannot Lapin (V2)       *
7 *                                                                         *
8 *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
9 *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
10\***************************************************************************/
11
12if (!defined("_ECRIRE_INC_VERSION")) return;
13
14function association_post_edition($flux){
15        $id = $flux['args']['id_objet'];
16        if ($id
17        AND $flux['args']['table']=='spip_auteurs') {
18                if ($GLOBALS['association_metas']['import_auteur_auto']=='on') {
19                        update_spip_asso_membre($id);
20                }
21        }
22}
23
24function update_spip_asso_membre($id_auteur)
25{
26        $auteur = sql_fetsel('statut, nom', 'spip_auteurs', "id_auteur=$id_auteur");
27        if ($auteur['statut']=='5poubelle') { /* auteur a la poubelle: on le met aussi a la poubelle dans asso_membres si il est present dans la table */
28                if (sql_getfetsel('id_auteur', 'spip_asso_membres', "id_auteur=$id_auteur")) {
29                        sql_updateq('spip_asso_membres', array('statut_interne' => 'sorti'), "id_auteur=$id_auteur");
30                }
31                return;
32        }
33        $modif = array();
34        /* on recupere les noms et prenoms dans le champ nom de l'auteur SPIP */
35        $nom = $auteur['nom'];
36        if ($nom) {
37                /* selection du format d'import du champ non */
38                if ($GLOBALS['association_metas']['import_nom_auteur']=='prenom_nom') {
39                        list($prenom, $nom) = preg_split('/\s+/', $nom, 2);
40                        if (!$nom) {/* il n'y avait qu'une seule chaine -> on la met dans le nom et le prenom reste vide */
41                                $nom = $prenom;
42                                $prenom = '';
43                        }
44                } elseif ($GLOBALS['association_metas']['import_nom_auteur']=='nom') {
45                        $prenom = '';
46                } else { // defaut: format nom prenom
47                        list($nom, $prenom) = preg_split('/\s+/', $nom, 2); /* il faudrait aussi gerer le cas ou le nom de famille contient un espace */
48                }
49        } else {
50                $nom = _T('asso:activite_entete_adherent').' '.$id_auteur; $prenom = '';
51        } /* si il est vide, le nom sera Adherents XX */
52        /* si l'auteur est deja present dans la base: on ne modifie pas les noms/prenoms qui peuvent etre edites directement dans la page d'edition du membre */
53        $membre = sql_fetsel('id_auteur,statut_interne', 'spip_asso_membres', "id_auteur=$id_auteur");
54        if ($membre['id_auteur']) {
55                if ($membre['statut_interne']=='sorti') {
56                        $modif['statut_interne'] = 'prospect'; /* si un auteur est edite mais correspond a un membre sorti, on le repasse en prospect */
57                        sql_updateq('spip_asso_membres', $modif, "id_auteur=$id_auteur");
58                }
59        } else { /* sinon on l'ajoute avec comme statut par defaut prospect */
60                $modif['nom_famille'] = $nom;
61                $modif['prenom'] = $prenom;
62                $modif['statut_interne'] = 'prospect';
63                $modif['id_auteur'] = $id_auteur;
64                /* on verifie si il existe une categorie par defaut */
65                if ($GLOBALS['association_metas']['categorie_par_defaut']!='') {
66                        $modif['categorie'] = $GLOBALS['association_metas']['categorie_par_defaut'];
67                }
68                sql_insertq('spip_asso_membres', $modif);
69        }
70}
71
72?>
Note: See TracBrowser for help on using the repository browser.