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 | |
---|
12 | if (!defined("_ECRIRE_INC_VERSION")) return; |
---|
13 | |
---|
14 | /* Cette fonction prend en argument un tableau d'id_auteurs et renvoie un tableau |
---|
15 | id_auteur => array(numeros) */ |
---|
16 | function association_recuperer_telephones($id_auteurs) |
---|
17 | { |
---|
18 | /* prepare la structure du tableau renvoye */ |
---|
19 | $telephones_auteurs = array(); |
---|
20 | foreach ($id_auteurs as $id_auteur) { |
---|
21 | $telephones_auteurs[$id_auteur] = array(); |
---|
22 | } |
---|
23 | |
---|
24 | if (plugin_actif('COORDONNEES')) { |
---|
25 | $id_auteurs_list = sql_in('nl.id_objet', $id_auteurs); |
---|
26 | $query = sql_select('nl.id_objet as id_auteur, n.numero as numero','spip_numeros as n INNER JOIN spip_numeros_liens AS nl ON nl.id_numero=n.id_numero', $id_auteurs_list.' AND nl.objet=\'auteur\''); |
---|
27 | while ($data = sql_fetch($query)) |
---|
28 | $telephones_auteurs[$data['id_auteur']][] = $data['numero']; |
---|
29 | } |
---|
30 | |
---|
31 | return $telephones_auteurs; |
---|
32 | } |
---|
33 | |
---|
34 | /* prend en argument un tableau d'id_auteurs et retourne un tableau id_auteur => code html listant tous les numeros de l'auteur */ |
---|
35 | function association_recuperer_telephones_string($id_auteurs) |
---|
36 | { |
---|
37 | /* on recupere tous les numeros dans un tableau de tableau */ |
---|
38 | $telephones_auteurs = association_recuperer_telephones($id_auteurs); |
---|
39 | |
---|
40 | $telephones_strings = array(); |
---|
41 | |
---|
42 | /* on le transforme en tableau de strings html */ |
---|
43 | foreach ($telephones_auteurs as $id_auteur => $telephones) { |
---|
44 | $telephones_strings[$id_auteur] = ''; |
---|
45 | if (count($telephones)) { |
---|
46 | foreach ($telephones as $telephone) { |
---|
47 | $telephones_strings[$id_auteur] .= print_tel($telephone).'<br/>'; |
---|
48 | } |
---|
49 | } |
---|
50 | } |
---|
51 | |
---|
52 | return $telephones_strings; |
---|
53 | } |
---|
54 | |
---|
55 | /* prend en argument un id_auteur et retourne un tableau d'adresses */ |
---|
56 | /* TODO: l'affichage du pays devrait etre optionnel */ |
---|
57 | function association_recuperer_adresses($id_auteur) |
---|
58 | { |
---|
59 | $tab_result=array(); |
---|
60 | if (plugin_actif('COORDONNEES')) { |
---|
61 | $query = sql_select('a.titre as titre, a.voie as voie, a.complement as complement, a.boite_postale as boite_postale, a.code_postal as code_postal, a.ville as ville, a.pays as pays', 'spip_adresses as a INNER JOIN spip_adresses_liens AS al ON al.id_adresse=a.id_adresse','al.id_objet='.$id_auteur.' and al.objet=\'auteur\''); |
---|
62 | while ($data = sql_fetch($query)) { |
---|
63 | $voie = ($data['voie'])?$data['voie'].'<br/>':''; |
---|
64 | $complement = ($data['complement'])?$data['complement'].'<br/>':''; |
---|
65 | $boite_postale = ($data['boite_postale'])?$data['boite_postale'].'<br/>':''; |
---|
66 | $code_postal = ($data['code_postal'])?$data['code_postal'].' ':''; |
---|
67 | $ville = ($data['ville'])?$data['ville'].'<br/>':''; |
---|
68 | $pays = ($data['pays'])?$data['pays'].'<br/>':''; |
---|
69 | |
---|
70 | $tab_result[] = $voie.$complement.$boite_postale.$code_postal.$ville.$pays; |
---|
71 | } |
---|
72 | } |
---|
73 | return $tab_result; |
---|
74 | } |
---|
75 | |
---|
76 | /* prend en argument 1 id auteur et renvoie un string html listant toutes ses adresses */ |
---|
77 | function association_recuperer_adresses_string($id_auteur) |
---|
78 | { |
---|
79 | $adresses = association_recuperer_adresses($id_auteur); |
---|
80 | $adresses_string = ''; |
---|
81 | if (count($adresses)) { |
---|
82 | foreach ($adresses as $adresse) { |
---|
83 | $adresses_string .= $adresse.'<br/>'; |
---|
84 | } |
---|
85 | } |
---|
86 | return $adresses_string; |
---|
87 | } |
---|
88 | |
---|
89 | /* Cette fonction prend en argument un tableau d'id_auteurs et renvoie un tableau |
---|
90 | id_auteur => array(emails) */ |
---|
91 | function association_recuperer_emails($id_auteurs) |
---|
92 | { |
---|
93 | /* prepare la structure du tableau renvoye */ |
---|
94 | $emails_auteurs = array(); |
---|
95 | foreach ($id_auteurs as $id_auteur) { |
---|
96 | $emails_auteurs[$id_auteur] = array(); |
---|
97 | } |
---|
98 | |
---|
99 | /* on commence par recuperer les emails de la table spip_auteurs */ |
---|
100 | $id_auteurs_list = sql_in('id_auteur', $id_auteurs); |
---|
101 | $auteurs_info = sql_select('id_auteur, email', 'spip_auteurs', $id_auteurs_list); |
---|
102 | |
---|
103 | while ($auteur_info = sql_fetch($auteurs_info)) { |
---|
104 | $emails_auteurs[$auteur_info['id_auteur']][] = $auteur_info['email']; |
---|
105 | } |
---|
106 | |
---|
107 | /* si le plugin coordonnees est actif, on recupere les emails contenus dans coordonnees */ |
---|
108 | if (plugin_actif('COORDONNEES')) { |
---|
109 | $id_auteurs_list = sql_in('el.id_objet', $id_auteurs); |
---|
110 | $query = sql_select('el.id_objet as id_auteur, e.email as email','spip_emails as e INNER JOIN spip_emails_liens AS el ON el.id_email=e.id_email', $id_auteurs_list.' AND el.objet=\'auteur\''); |
---|
111 | while ($data = sql_fetch($query)) { |
---|
112 | $emails_auteurs[$data['id_auteur']][] = $data['email']; |
---|
113 | } |
---|
114 | } |
---|
115 | |
---|
116 | return $emails_auteurs; |
---|
117 | } |
---|
118 | |
---|
119 | /* prend en argument un tableau d'id_auteurs et retourne un tableau id_auteur => code html listant tous les emails de l'auteur */ |
---|
120 | function association_recuperer_emails_string($id_auteurs) |
---|
121 | { |
---|
122 | /* on recupere tous les mails dans un tableau de tableau */ |
---|
123 | $emails_auteurs = association_recuperer_emails($id_auteurs); |
---|
124 | |
---|
125 | $emails_strings = array(); |
---|
126 | |
---|
127 | /* on le transforme en tableau de strings html */ |
---|
128 | foreach ($emails_auteurs as $id_auteur => $emails) { |
---|
129 | $emails_strings[$id_auteur] = ''; |
---|
130 | if (count($emails)) { |
---|
131 | foreach ($emails as $email) { |
---|
132 | $emails_strings[$id_auteur] .= "<a href='mailto:$email' title='" |
---|
133 | . _L('Ecrire à') . ' ' . $email . "'>" |
---|
134 | . $email |
---|
135 | . '</a><br/>'; |
---|
136 | } |
---|
137 | } |
---|
138 | } |
---|
139 | |
---|
140 | return $emails_strings; |
---|
141 | } |
---|
142 | |
---|
143 | function print_tel($n) |
---|
144 | { |
---|
145 | $n = preg_replace('/\D/', '', $n); |
---|
146 | if (!intval($n)) return ''; |
---|
147 | return preg_replace('/(\d\d)/', '\1 ', $n); |
---|
148 | } |
---|
149 | ?> |
---|