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

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

Associaspip Plus besoin de parser le champ bio des auteurs depuis l'integration de Coordonné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                update_spip_asso_membre($id);
19        }
20}
21
22function update_spip_asso_membre($id_auteur)
23{
24        $auteur = sql_fetsel('statut, nom', 'spip_auteurs', "id_auteur=$id_auteur");
25
26        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 */
27                if (sql_getfetsel('id_auteur', 'spip_asso_membres', "id_auteur=$id_auteur")) {
28                        sql_updateq('spip_asso_membres', array('statut_interne' => 'sorti'), "id_auteur=$id_auteur");
29                }
30                return; 
31        }
32
33        $modif = array();
34
35        /* on recupere les noms et prenoms dans le champ nom de l'auteur SPIP */
36        $nom = $auteur['nom'];
37        if ($nom) {
38                /* selection du format d'import du champ non */
39                if ($GLOBALS['association_metas']['import_nom_auteur'] == "prenom_nom") {
40                        list($prenom, $nom) = preg_split('/\s+/', $nom, 2);
41                        if (!$nom) {/* il n'y avait qu'une seule chaine -> on la met dans le nom et le prenom reste vide */
42                                $nom = $prenom;
43                                $prenom = '';
44                        }
45                } elseif ($GLOBALS['association_metas']['import_nom_auteur'] == "nom") {
46                        $prenom = '';
47                } else { // defaut: format nom prenom
48                        list($nom, $prenom) = preg_split('/\s+/', $nom, 2); /* il faudrait aussi gerer le cas ou le nom de famille contient un espace */
49                }
50        }
51        else {$nom = _T('asso:activite_entete_adherent').' '.$id_auteur; $prenom = '';} /* si il est vide, le nom sera Adherents XX */
52
53
54        /* 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 */
55        $membre = sql_fetsel('id_auteur,statut_interne', 'spip_asso_membres', "id_auteur=$id_auteur");
56        if ($membre['id_auteur']) {
57                if ($membre['statut_interne'] == 'sorti') {
58                        $modif['statut_interne'] = 'prospect'; /* si un auteur est edite mais correspond a un membre sorti, on le repasse en prospect */
59                        sql_updateq('spip_asso_membres', $modif, "id_auteur=$id_auteur");
60                }
61        } else { /* sinon on l'ajoute avec comme statut par defaut prospect */
62                $modif['nom_famille'] = $nom;
63                $modif['prenom'] = $prenom;
64                $modif['statut_interne'] = 'prospect';
65                $modif['id_auteur'] = $id_auteur;
66                sql_insertq('spip_asso_membres', $modif);
67        }
68}
69
70function telephone_std($num)
71{
72        $num = preg_replace('/\D/', '', $num);
73        if ($num AND strlen($num) < 10) $num = '0'.$num;
74        $num = preg_replace('/(\d\d)/', '\1 ', $num);
75        return rtrim($num);
76}
77?>
Note: See TracBrowser for help on using the repository browser.