Ignore:
Timestamp:
May 26, 2011, 9:21:52 PM (10 years ago)
Author:
jeannolapin@…
Message:

Associaspip Pouvoir exporter en PDF les adresses, numeros de telephones et emails des membres + exporter en PDF uniquement la liste des membres affichés.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/Association/Associaspip/inc/association_coordonnees.php

    r48008 r48173  
    5353}
    5454
    55 /* prend en argument un id_auteur et retourne un tableau d'adresses */
     55/* Cette fonction prend en argument un tableau d'id_auteurs et renvoie un tableau
     56id_auteur => array(adresses). Les adresses sont constituees d'une chaine, les caracteres de retour a la ligne et espace peuvent etre passe en parametre */
    5657/* TODO: l'affichage du pays devrait etre optionnel */
    57 function association_recuperer_adresses($id_auteur)
     58function association_recuperer_adresses($id_auteurs, $newline="<br/>", $espace="&nbsp;")
    5859{
    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'].'&nbsp;':'';
    67                                 $ville = ($data['ville'])?$data['ville'].'<br/>':'';
    68                                 $pays = ($data['pays'])?$data['pays'].'<br/>':'';
     60        /* prepare la structure du tableau renvoye */
     61        $adresses_auteurs = array();
     62        foreach ($id_auteurs as $id_auteur) {
     63                $adresses_auteurs[$id_auteur] = array();
     64        }
    6965       
    70                                 $tab_result[] = $voie.$complement.$boite_postale.$code_postal.$ville.$pays;
    71                         }
     66        if (plugin_actif('COORDONNEES')) {
     67                $id_auteurs_list = sql_in('al.id_objet', $id_auteurs);
     68                $query = sql_select('al.id_objet as id_auteur, 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',$id_auteurs_list.' AND al.objet=\'auteur\'');
     69                while ($data = sql_fetch($query)) {
     70                        $voie = ($data['voie'])?$data['voie'].$newline:'';
     71                        $complement = ($data['complement'])?$data['complement'].$newline:'';
     72                        $boite_postale = ($data['boite_postale'])?$data['boite_postale'].$newline:'';
     73                        $code_postal = ($data['code_postal'])?$data['code_postal'].$espace:'';
     74                        $ville = ($data['ville'])?$data['ville'].$newline:'';
     75                        $pays = ($data['pays'])?$data['pays']:'';
     76
     77                        $adresses_auteurs[$data['id_auteur']][] = $voie.$complement.$boite_postale.$code_postal.$ville.$pays;
    7278                }
    73                 return $tab_result;
     79        }
     80        return $adresses_auteurs;
    7481}
    7582
    76 /* prend en argument 1 id auteur et renvoie un string html listant toutes ses adresses */
     83/* prend en argument un tableau d'id_auteurs et retourne un tableau id_auteur => code html listant toutes les adresses de l'auteur */
    7784function association_recuperer_adresses_string($id_auteur)
    7885{
    79         $adresses = association_recuperer_adresses($id_auteur);
    80         $adresses_string = '';
    81         if (count($adresses)) {
    82                 foreach ($adresses as $adresse) {
    83                         $adresses_string .= $adresse.'<br/>';
     86        $adresses_auteurs = association_recuperer_adresses($id_auteur);
     87
     88        $adresses_string = array();
     89
     90        /* on le transforme en tableau de strings html */
     91        foreach ($adresses_auteurs as $id_auteur => $adresses) {
     92                $adresses_strings[$id_auteur] = '';
     93                if (count($adresses)) {
     94                        $adresses_strings[$id_auteur] = implode("<br/><br/>",$adresses);
    8495                }
    8596        }
    86         return $adresses_string;
     97
     98        return $adresses_strings;
    8799}
    88100
     
    141153}
    142154
    143 function print_tel($n)
     155function print_tel($n, $separateur="&nbsp;")
    144156{
    145157        $n = preg_replace('/\D/', '', $n);
    146158        if (!intval($n)) return '';
    147         return preg_replace('/(\d\d)/', '\1&nbsp;', $n);
     159        return preg_replace('/(\d\d)/', '\1'.$separateur, $n);
    148160}
    149161?>
Note: See TracChangeset for help on using the changeset viewer.