Changeset 60117 in spip-zone


Ignore:
Timestamp:
Apr 4, 2012, 10:14:31 PM (7 years ago)
Author:
jeannolapin@…
Message:

Associaspip Correction dans l'export PDF de la liste des adhérents :

  • chaines de langue
  • export de tous les membres filtrés sans tenir compte de la pagination de la page des membres
  • export du libelle de la categorie et non de son id
Location:
_plugins_/Association/Associaspip
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/Association/Associaspip/exec/adherents.php

    r60047 r60117  
    6363                }
    6464                /* on appelle ici la fonction qui calcule le code du formulaire/tableau de membres pour pouvoir recuperer la liste des membres affiches a transmettre a adherents_table pour la generation du pdf */
    65                 list($liste_id_auteurs, $code_liste_membres) = adherents_liste(intval(_request('debut')), $lettre, $critere, $statut_interne, $id_groupe);
     65                list($where_adherents, $jointure_adherents, $code_liste_membres) = adherents_liste(intval(_request('debut')), $lettre, $critere, $statut_interne, $id_groupe);
    6666                if (test_plugin_actif('FPDF')) {
    6767                        echo debut_cadre_enfonce('',true);
    6868                        echo '<h3>'. _T('plugins_vue_liste') .'</h3>';
    69                         echo adherents_table($liste_id_auteurs);
     69                        echo adherents_table($where_adherents, $jointure_adherents);
    7070                        echo fin_cadre_enfonce(true);
    7171                }
     
    141141}
    142142
    143 /* adherent liste renvoie un tableau des id des auteurs affiches et le code html */
     143/* adherent liste renvoie le code html et tout ce qu'il faut pour effectuer la requete avec les meme filtres (where et la possible jonction sur la table des groupes) */
    144144function adherents_liste($debut, $lettre, $critere, $statut_interne, $id_groupe, $max_par_page=30)
    145145{
     
    149149        if ($id_groupe) {
    150150                $critere .= " AND c.id_groupe=$id_groupe ";
    151                 $jointure_groupe = ' LEFT JOIN spip_asso_groupes_liaisons c ON b.id_auteur=c.id_auteur ';
     151                $jointure_groupe = ' LEFT JOIN spip_asso_groupes_liaisons c ON a.id_auteur=c.id_auteur ';
    152152        }
    153153        $chercher_logo = charger_fonction('chercher_logo', 'inc');
     
    155155        $query = sql_select('a.id_auteur AS id_auteur, b.email AS email, a.sexe, a.nom_famille, a.prenom, a.id_asso, b.statut AS statut, a.validite, a.statut_interne, a.categorie, b.bio AS bio','spip_asso_membres' .  " a LEFT JOIN spip_auteurs b ON a.id_auteur=b.id_auteur $jointure_groupe", $critere, '', 'nom_famille ', "$debut,$max_par_page" );
    156156        $auteurs = '';
    157         $liste_id_auteurs = array();
    158157        while ($data = sql_fetch($query)) {
    159158                $id_auteur = $data['id_auteur'];
    160                 $liste_id_auteurs[] = $id_auteur;
    161159                $class = $GLOBALS['association_styles_des_statuts'][$data['statut_interne']];
    162160                $logo = $chercher_logo($id_auteur, 'id_auteur');
     
    297295        $res .= '</tr></table>';
    298296
    299         return  array($liste_id_auteurs, generer_form_ecrire('action_adherents', $res));
     297        return  array($critere, $jointure_groupe, generer_form_ecrire('action_adherents', $res));
    300298}
    301299
     
    307305}
    308306
    309 function adherents_table($liste_id_auteurs)
     307function adherents_table($where_adherents, $jointure_adherents)
    310308{
    311309        $champs = description_table('spip_asso_membres');
     
    321319        }
    322320        /* on ajoute aussi le mail */
    323         $res .= '<input type="checkbox" name="champs[email]" />'._T('asso:email').'<br />';
     321        $res .= '<input type="checkbox" name="champs[email]" />'._T('asso:adherent_libelle_email').'<br />';
    324322        /* si le plugin coordonnees est actif, on ajoute l'adresse et le telephone */
    325323        if (test_plugin_actif('COORDONNEES')) {
    326                 $res .= '<input type="checkbox" name="champs[adresse]" />'._T('asso:adresse').'<br />';
    327                 $res .= '<input type="checkbox" name="champs[telephone]" />'._T('asso:telephone').'<br />';
     324                $res .= '<input type="checkbox" name="champs[adresse]" />'._T('asso:adherent_libelle_adresse').'<br />';
     325                $res .= '<input type="checkbox" name="champs[telephone]" />'._T('asso:adherent_libelle_telephone').'<br />';
    328326        }
    329327        /* on fait suivre la liste des auteurs a afficher */
    330         $res .= "<input type='hidden' name='liste_id_auteurs' value='".serialize($liste_id_auteurs)."' />";
     328        $res .= '<input type="hidden" name="where_adherents" value="'.$where_adherents.'" />';
     329        $res .= '<input type="hidden" name="jointure_adherents" value="'.$jointure_adherents.'" />';
    331330        return  generer_form_ecrire('pdf_adherents', $res, '', _T('asso:bouton_impression'));
    332331}
  • _plugins_/Association/Associaspip/exec/pdf_adherents.php

    r60069 r60117  
    2121        } else {
    2222
     23        // on recupere ce qu'il faut pour faire la requete SQL pour generer la liste d'id_auteurs dont on a besoin pour recuperer les adresses et telephones
     24        $where = _request('where_adherents');
     25        $jointure = _request('jointure_adherents');
     26
     27        $query = sql_select('a.id_auteur AS id_auteur','spip_asso_membres' .  " a $jointure", $where, '', 'nom_famille ');
     28        $liste_id_auteurs = array();
     29        while ($data = sql_fetch($query)) {
     30                $liste_id_auteurs[] = $data['id_auteur'];
     31        }
     32
    2333        $pdf=new PDF();
    2434
     
    4252        // ainsi que les colonnes pour les champs hors table spip_asso_membres
    4353        include_spip('inc/association_coordonnees');
    44         $liste_id_auteurs = unserialize(_request('liste_id_auteurs'));
     54       
    4555        if ($sent['email']=='on') {
    4656                $pdf->AddCol('email',45 ,_T('asso:adherent_libelle_email'), 'C');
     
    8393        }
    8494
    85         $pdf->Query_extended(sql_select('*','spip_asso_membres', sql_in('id_auteur', $liste_id_auteurs), '', $order), $prop, $adresses_tels, 'id_auteur');
     95        $pdf->Query_extended(sql_select('*, c.libelle as categorie','spip_asso_membres m LEFT JOIN spip_asso_categories c ON m.categorie = c.id_categorie', sql_in('id_auteur', $liste_id_auteurs), '', $order), $prop, $adresses_tels, 'id_auteur');
    8696        $pdf->Output();
    8797        }
  • _plugins_/Association/Associaspip/lang/asso_fr.php

    r60116 r60117  
    360360        'adherent_libelle_masculin' => 'Monsieur',
    361361        'adherent_libelle_feminin' => 'Madame',
     362        'adherent_libelle_adresse' => 'Adresse',
     363        'adherent_libelle_telephone' => 'T&eacute;l&eacute;phone',
     364        'adherent_libelle_email' => 'Email',
    362365        # En-tetes
    363366        'adherent_entete_livre' => 'Livre',
Note: See TracChangeset for help on using the changeset viewer.