Changeset 53901 in spip-zone


Ignore:
Timestamp:
Oct 31, 2011, 12:32:32 PM (8 years ago)
Author:
jeannolapin@…
Message:

Associaspip Ajout de la fonctionnalité groupes de membres et reprise de l'interface de la page adherents

Location:
_plugins_/Association/Associaspip
Files:
22 added
15 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/Association/Associaspip/action/desactiver_adherents.php

    r51597 r53901  
    1717        $securiser_action = charger_fonction('securiser_action', 'inc');
    1818        $securiser_action();
    19         $statut_courant = $_POST['statut_courant'];
    20         $where = sql_in('id_auteur', $_POST["drop_des"]);
     19        $statut_courant = _request('statut_courant');
     20        $where = sql_in('id_auteur', _request('id_auteurs'));
    2121        if($statut_courant==='sorti') {
    2222                sql_updateq('spip_asso_membres', array("statut_interne" => 'prospect'), $where);
  • _plugins_/Association/Associaspip/action/modifier_relances.php

    r48289 r53901  
    2525
    2626        $adresse=$GLOBALS['association_metas']['email'];
    27         $exp=$GLOBALS['association_metas']['nom'].'<'.$adresse.'>';
    28         $envoyer_mail = charger_fonction('envoyer_mail', 'inc');
     27        $exp=$GLOBALS['association_metas']['nom'].'<'.$adresse.'>';
     28        include_spip ('inc/envoyer_mail');
     29        //$envoyer_mail = charger_fonction('envoyer_mail', 'inc');
    2930       
    3031        /* on recupere les adresses emails de tous les auteurs selectionnes */
     
    4849                /* envoi des mails */
    4950                foreach ($emails as $email) {
    50                         if (!$envoyer_mail($email, $sujet, $message, $exp)) {
     51                        if (!inc_envoyer_mail_dist($email, $sujet, $message, $exp)) {
    5152                                $emails_envoyes_echec++;
    5253                                spip_log("non envoi du mail a ".$email);
  • _plugins_/Association/Associaspip/action/supprimer_adherents.php

    r51597 r53901  
    1717        $securiser_action = charger_fonction('securiser_action', 'inc');
    1818        $securiser_action();
    19         $where = sql_in('id_auteur', $_POST["drop_sup"]);
     19        $where = sql_in('id_auteur', _request('id_auteurs'));
    2020        sql_delete('spip_asso_membres', $where);
    2121}
  • _plugins_/Association/Associaspip/association.css

    r52250 r53901  
    1616
    1717/* Formulaires*/
     18.formulaire_ajouter_membres_groupe {margin-top: 2em;}
     19.formulaire_ajouter_membres_groupe .pagination {margin: 0px;}
     20.formulaire_table_editable input.formo {padding: 2px; width:90%;}
     21
     22/* liste auteurs 5 par lignes dans un formulaire */
     23.formulaire_spip li.liste_auteurs {     padding: 2px;
     24                                        width:23%;
     25                                        float: left;
     26                                        clear: none;}
     27
    1828.spip_forms form label {
    1929        float:none;
     
    306316    position: absolute;
    307317}
     318
     319
  • _plugins_/Association/Associaspip/association_options.php

    r51596 r53901  
    4444}
    4545
    46 function association_retour()
    47 {
    48         return bloc_des_raccourcis(association_icone(_T('asso:bouton_retour'),  str_replace('&', '&amp;', $_SERVER['HTTP_REFERER']), "retour-24.png"));
     46function association_retour($adresse_retour='')
     47{
     48        return bloc_des_raccourcis(association_icone(_T('asso:bouton_retour'),  ($adresse_retour=='')?str_replace('&', '&amp;', $_SERVER['HTTP_REFERER']):$adresse_retour, "retour-24.png"));
    4949}
    5050
     
    227227$inc_meta = charger_fonction('meta', 'inc'); // inc_version l'a deja chargee
    228228$inc_meta('association_metas');
     229
     230// pouvoir utiliser les fonctions de coordonnees comme filtre
     231if (test_plugin_actif('COORDONNEES')) {
     232        include_spip('inc/association_coordonnees');
     233}
    229234?>
  • _plugins_/Association/Associaspip/base/association.php

    r48531 r53901  
    222222
    223223
     224//-- Table groupes de membres: deux tables: groupe et liaison -----------------
     225$spip_asso_groupes= array(
     226        "id_groupe"             => "bigint(20) NOT NULL auto_increment",
     227        "nom"                   => "varchar(128) NOT NULL",
     228        "commentaires"  => "text",
     229        "affichage"             => "tinyint NOT NULL default 0",
     230        "maj"                   => "timestamp NOT NULL"
     231                                );
     232$spip_asso_groupes_key = array(
     233        "PRIMARY KEY" => "id_groupe"
     234);
     235$tables_principales['spip_asso_groupes'] = array(
     236        'field' => &$spip_asso_groupes,
     237        'key' => &$spip_asso_groupes_key
     238);
     239
     240$spip_asso_groupes_liaisons= array(
     241        "id_groupe" => "bigint(20) NOT NULL",
     242        "id_auteur" => "bigint(20) NOT NULL",
     243        "fonction" => "varchar(128) NOT NULL",
     244        "date_debut" => "date NOT NULL default '0000-00-00'",
     245        "date_fin" => "date NOT NULL default '0000-00-00'",
     246        "commentaires"  => "text",
     247        "maj"                   => "timestamp NOT NULL"
     248                                );
     249$spip_asso_groupes_liaisons_key = array(
     250        "PRIMARY KEY" => "id_groupe,id_auteur"
     251);
     252$tables_principales['spip_asso_groupes_liaisons'] = array(
     253        'field' => &$spip_asso_groupes_liaisons,
     254        'key' => &$spip_asso_groupes_liaisons_key
     255);
     256
     257
    224258$spip_asso_membres= array(
    225259  "id_auteur" => "bigint(21) NOT NULL auto_increment",
     
    228262  "prenom" => "text NOT NULL",
    229263  "sexe" => "tinytext NOT NULL",
    230   "fonction" => "text",
    231264  "categorie" => "text NOT NULL",
    232265  "statut_interne" => "text NOT NULL",
     
    282315$tables_interfaces['table_des_tables']['asso_destination'] = 'asso_destination';
    283316$tables_interfaces['table_des_tables']['asso_destination_op'] = 'asso_destination_op'; 
     317$tables_interfaces['table_des_tables']['asso_groupes'] = 'asso_groupes';       
     318$tables_interfaces['table_des_tables']['asso_groupes_liaisons'] = 'asso_groupes_liaisons';     
    284319
    285320// Pour que les raccourcis ci-dessous heritent d'une zone de clic pertinente
     
    287322$tables_interfaces['table_titre']['asso_dons']= "CONCAT('don ', id_don) AS titre, '' AS lang";
    288323
     324        /* jointures */
     325        $tables_interfaces['tables_jointures']['spip_asso_membres']['id_auteur'] = 'asso_groupes_liaisons';
    289326 return  $tables_interfaces;
    290327       
  • _plugins_/Association/Associaspip/base/association_gestion.php

    r52584 r53901  
    3737                'spip_asso_ressources',
    3838                'spip_asso_ventes',
    39                 'spip_association_metas');
     39                'spip_association_metas',
     40                'spip_asso_groupes',
     41                'spip_asso_groupes_liaisons');
    4042       
    4143        foreach($tables_a_supprimer as $table);
     
    451453        );
    452454
     455/* mise a jour introduisant les groupes */
     456function association_maj_53901()
     457{
     458        sql_create('spip_asso_groupes',
     459                $GLOBALS['tables_principales']['spip_asso_groupes']['field'],
     460                $GLOBALS['tables_principales']['spip_asso_groupes']['key']);
     461        sql_alter("TABLE spip_asso_groupes AUTO_INCREMENT = 100");
     462        sql_create('spip_asso_groupes_liaisons',
     463                $GLOBALS['tables_principales']['spip_asso_groupes_liaisons']['field'],
     464                $GLOBALS['tables_principales']['spip_asso_groupes_liaisons']['key']);
     465
     466        /* si on a des membres avec une fonction defini, on recupere tout et on les mets dans un groupe appele bureau */
     467        $liste_membres_bureau = sql_select("id_auteur, fonction" ,"spip_asso_membres", "fonction <> ''");
     468        if (sql_count($liste_membres_bureau )) {
     469                /* on cree un groupe "Bureau" */
     470                $id_groupe = sql_insertq("spip_asso_groupes", array('nom' => 'Bureau', 'affichage' => '1'));
     471                /* et on y insere tous les membres qui avaient une fonction */
     472                while ($membre_bureau = sql_fetch($liste_membres_bureau)) {
     473                        sql_insertq("spip_asso_groupes_liaisons", array(        'id_groupe' => $id_groupe,
     474                                                                                                                        'id_auteur' => $membre_bureau['id_auteur'],
     475                                                                                                                        'fonction'  => $membre_bureau['fonction'],
     476                                                                                                        ));
     477                }
     478        }
     479
     480        /* on supprime le champs fonction de la table spip_asso_membres car il est maintenant gere dans spip_asso_groupes_liaison */
     481        sql_alter("TABLE spip_asso_membres DROP fonction");
     482}
     483
     484$GLOBALS['association_maj'][53901] = array(array('association_maj_53901'));
     485
    453486
    454487?>
  • _plugins_/Association/Associaspip/exec/action_adherents.php

    r51597 r53901  
    2323                        echo minipres();
    2424        }
    25         elseif ( (is_array($_POST["desactive"]) AND $_POST["desactive"]) OR (is_array($_POST["delete"]) AND $_POST["delete"]) ) {
    26                 exec_action_adherents_args();
     25        else {
     26                $id_auteurs = _request('id_auteurs');
     27                $action_adherents = _request('action_adherents');
     28                               
     29                if ($action_adherents && $id_auteurs && is_array($id_auteurs)) {
     30                        exec_action_adherents_args($id_auteurs, $action_adherents);
     31                } else {
     32                        include_spip('inc/headers');
     33                        redirige_par_entete(generer_url_ecrire('adherents'));
     34                }
    2735        }
    2836}
    2937
    30 function exec_action_adherents_args()
     38function exec_action_adherents_args($id_auteurs, $action_adherents)
    3139{
    3240        $commencer_page = charger_fonction('commencer_page', 'inc');
     
    3947        echo bloc_des_raccourcis(association_icone(_T('asso:bouton_retour'),  generer_url_ecrire('adherents'), "retour-24.png"));
    4048        echo debut_droite("",true);     
    41         if ($_POST["desactive"]) {
    42                 if($_POST['statut_courant']==='sorti'){
     49        if ($action_adherents == "desactive") {
     50                $statut_courant = _request('statut_courant');
     51                if($statut_courant==='sorti'){
    4352                        echo debut_cadre_relief("", true, "", propre(_T('asso:activation_des_adherents')));
    4453                        echo '<p>'. _T('asso:adherent_message_detail_activation').'</p>';
     
    5059                        echo '<p>'. _T('asso:adherent_message_confirmer_desactivation').' : </p>';
    5160                }
    52                 echo modifier_adherents($_POST["desactive"],'desactiver', $_POST['statut_courant']);
     61                echo modifier_adherents($id_auteurs,'desactiver', $statut_courant);
    5362                echo fin_cadre_relief(true);
    5463        }
    55         if ($_POST["delete"]) {
     64        if ($action_adherents== "delete") {
    5665                echo debut_cadre_relief("", true, "", propre(_T('asso:suppression_des_adherents')));
    5766                echo '<p>'. _T('asso:adherent_message_detail_suppression').'</p>';
    5867                echo '<p>'. _T('asso:adherent_message_confirmer_suppression').' : </p>';
    59                 echo modifier_adherents($_POST["delete"],'supprimer', $_POST['statut_courant']);
     68                echo modifier_adherents($id_auteurs,'supprimer');
    6069                echo fin_cadre_relief(true);
    61         }       
     70        }
     71
     72        if ($action_adherents== "grouper") {
     73                echo debut_cadre_relief("", true, "", propre(_T('asso:rejoindre_un_groupe')));
     74                echo _T('asso:adherent_message_grouper');
     75                echo modifier_adherents($id_auteurs,'grouper');
     76                echo fin_cadre_relief(true);
     77        }
     78
     79        if ($action_adherents== "degrouper") {
     80                echo debut_cadre_relief("", true, "", propre(_T('asso:quitter_un_groupe')));
     81                echo _T('asso:adherent_message_degrouper');
     82                echo modifier_adherents($id_auteurs,'degrouper');
     83                echo fin_cadre_relief(true);
     84        }
     85
     86       
    6287        echo fin_page_association();
    6388}
    6489
    65 function modifier_adherents($tab, $mod, $statut)
     90function modifier_adherents($tab, $action, $statut='')
    6691{
    67         $res ='<table>';
    68         foreach ($tab as $id) {
    69                 $id = intval($id);
    70                 $query = sql_select("sexe, id_auteur, prenom, nom_famille",'spip_asso_membres', "id_auteur=$id");
    71                 while($data = sql_fetch($query)) {
    72                         $res .="\n<tr><td>" . $data['id_auteur'] . " <strong>".association_calculer_nom_membre($data['sexe'], $data['prenom'], $data['nom_famille']).'</strong></td><td><input type="checkbox" name='.(($mod==="desactiver")? "drop_des[]":"drop_sup[]").' value="'.$id.'" checked="checked" /></td></tr>';
     92        $res ='';
     93
     94        /* on ajoute une table des groupes si il y en a */
     95        if ($action=="grouper" || $action=="degrouper") {
     96                $res .='<p class="titrem">'._T('asso:groupes_dp').'</p>';
     97                $query = sql_select("id_groupe, nom",'spip_asso_groupes', '', '', 'nom');
     98                if (sql_count($query)) {
     99                        $res .='<table>';
     100                        while($data = sql_fetch($query)) {
     101                                $res .= '<tr><td>'.$data['nom'].'</td><td><input type="checkbox" name="id_groupes[]" value="'.$data['id_groupe'].'" /></td></tr>';
     102                        }
     103                        $res .='</table>';
     104                        $res .='<p class="titrem">'._T('asso:adherents_dp').'</p>';             
    73105                }
     106                if ($action=="grouper") {
     107                        $action_file = "ajouter_membres_groupe";
     108                } else  {
     109                        $action_file = "exclure_du_groupe";
     110                }
     111        } else {
     112                $action_file = $action.'_adherents';
    74113        }
     114       
     115        $res .='<table>';
     116        $in = sql_in('id_auteur', $tab);
     117        $query = sql_select("sexe, id_auteur, prenom, nom_famille",'spip_asso_membres', $in, '', 'nom_famille');
     118
     119        while($data = sql_fetch($query)) {
     120                $res .="<tr><td>" . $data['id_auteur'] . " <strong>".association_calculer_nom_membre($data['sexe'], $data['prenom'], $data['nom_famille']).'</strong></td><td><input type="checkbox" name="id_auteurs[]" value="'.$data['id_auteur'].'" checked="checked" /></td></tr>';
     121        }
     122
    75123        $res .='<tr>';
    76124        $res .='<td colspan="2">';
    77125        $res .='<input type="submit" value="'._T('asso:adherent_bouton_confirmer').'" class="fondo" /></td></tr>';
    78         $res .='<input type="hidden" name="statut_courant" value="'.$statut.'" />';
     126        if ($statut) {$res .='<input type="hidden" name="statut_courant" value="'.$statut.'" />';}
    79127        $res .='</table>';
     128       
     129
    80130
    81131        // count est juste du bruit de fond pour la secu
    82         return redirige_action_post($mod.'_adherents', count($tab), 'adherents', "", $res);
     132        return redirige_action_post($action_file, count($tab), 'adherents', "", $res);
    83133}
    84134?>
  • _plugins_/Association/Associaspip/exec/adherents.php

    r51597 r53901  
    3838                $statut_interne = _request('statut_interne');
    3939                $lettre= _request('lettre');
     40
     41                /* bloc des raccourcis */
     42                $res.=association_icone(_T('asso:gerer_les_groupes'),  generer_url_ecrire("groupes"), 'annonce.gif',  '');
     43                echo bloc_des_raccourcis($res);
    4044
    4145                echo debut_boite_info(true);
     
    7680
    7781                /* 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 */
    78                 //Filtre ID
     82                //Filtre ID et groupe : si le filtre id est actif, on ignore le filtre groupe
    7983                $id = intval(_request('id'));
    8084                if (!$id) {
    8185                        $id = _T('asso:adherent_libelle_id_auteur');
     86                        //Filtre groupe
     87                        $id_groupe = intval(_request('id_groupe'));
    8288                } else {
    8389                        $critere = "a.id_auteur=$id";
    84                 }
    85 
    86                 list($liste_id_auteurs, $code_liste_membres) = adherents_liste(intval(_request('debut')), $lettre, $critere, $statut_interne);
     90                        $id_groupe = 0;
     91                }
     92
     93                list($liste_id_auteurs, $code_liste_membres) = adherents_liste(intval(_request('debut')), $lettre, $critere, $statut_interne, $id_groupe);
    8794       
    8895                echo debut_cadre_enfonce('',true),
     
    124131               
    125132                // FILTRES
     133                //Filtre groupes
     134                echo '</td><td style="text-align:right;">';
     135                echo "\n<form method='post' action='".$url_adherents."'><div>";
     136                echo '<select class="fondl" name="id_groupe" onchange="form.submit()">';
     137                $qGroupes = sql_select('nom, id_groupe', 'spip_asso_groupes');
     138                echo '<option value="">'._T('asso:tous_les_groupes').'</option>';
     139                while ($groupe = sql_fetch($qGroupes)) {
     140                        echo '<option value="'.$groupe['id_groupe'].'"';
     141                        if ($id_groupe==$groupe['id_groupe']) echo ' selected="selected"';
     142                        echo '>'.$groupe['nom'].'</option>';
     143                }
     144                echo '</select>';
     145
    126146                //Filtre ID
    127147                echo '</td><td style="text-align:right;">';
     
    157177
    158178/* adherent liste renvoie un tableau des id des auteurs affiches et le code html */
    159 function adherents_liste($debut, $lettre, $critere, $statut_interne)
     179function adherents_liste($debut, $lettre, $critere, $statut_interne, $id_groupe)
    160180{
    161181
     
    164184        if ($lettre)
    165185                $critere .= " AND upper( substring( nom_famille, 1, 1 ) ) like '$lettre' ";
     186
     187        $jointure_groupe = "";
     188        if ($id_groupe) {
     189                $critere .= " AND c.id_groupe=$id_groupe ";
     190                $jointure_groupe = " LEFT JOIN spip_asso_groupes_liaisons c ON b.id_auteur=c.id_auteur ";
     191        }
    166192        $chercher_logo = charger_fonction('chercher_logo', 'inc');
    167193        include_spip('inc/filtres_images_mini');
    168         $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", $critere, '', "nom_famille ", "$debut,$max_par_page" );
     194        $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" );
    169195        $auteurs = '';
    170196        $liste_id_auteurs = array();
     
    235261                . association_bouton(_T('asso:adherent_label_voir_membre'), 'voir-12.png', 'voir_adherent','id='.$id_auteur)
    236262                . "</td>\n"
    237                 . '<td class="'.$class. '"><input name="desactive[]" type="checkbox" value="'.$id_auteur.'" /></td>'
    238                 . '<td class="'.$class. '"><input name="delete[]" type="checkbox" value="'.$id_auteur.'" /></td>'
     263                . '<td class="'.$class. '"><input name="id_auteurs[]" type="checkbox" value="'.$id_auteur.'" /></td>'
    239264                . "</tr>\n";
    240265        }
     
    251276        . "<th>"._T('asso:adherent_libelle_validite')."</th>\n"
    252277        . '<th colspan="4" style="text-align:center;">'._T('asso:adherent_entete_action')."</th>\n"
    253         . "<th>"._T('asso:adherent_entete_desactiver_abrev')."</th>\n"
    254         . "<th>"._T('asso:adherent_entete_supprimer_abrev')."</th>\n"
     278        . '<th><input title="'._T('asso:selectionner_tout').'" type="checkbox" id="selectionnerTous" onclick="var currentVal = document.getElementById(\'selectionnerTous\').checked; var checkboxList = document.getElementsByName(\'id_auteurs[]\'); for (var i in checkboxList){checkboxList[i].checked=currentVal;}" /></th>'
    255279        . '</tr>'
    256280        . $auteurs
     
    277301       
    278302        $res .= "\n<div style='float:right;'>\n"
    279         .  (!$auteurs ? '' : ('<input type="submit" value="'._T('asso:bouton_confirmer').'" class="fondo" />'))
     303        .  (!$auteurs ? '' : ('<select name="action_adherents"><option value="" selected="">'._T('asso:choisir_action').'</option><option value="desactive">'.($statut_interne=='sorti'?_T('asso:reactiver_adherent'):_T('asso:desactiver_adherent')).'</option><option value="delete">'._T('asso:supprimer_adherent').'</option><option value="grouper">'._T('asso:rejoindre_groupe').'</option><option value="degrouper">'._T('asso:quitter_groupe').'</option></select><input type="submit" value="'._T('asso:bouton_confirmer').'" class="fondo" />'))
    280304        . '<input type="hidden" name="statut_courant" value="'.$statut_interne.'" />'
    281305        .  '</div>';
  • _plugins_/Association/Associaspip/exec/association.php

    r51244 r53901  
    5959                echo fin_cadre_formulaire(true);
    6060               
    61                 $coordonnees_actif = test_plugin_actif('COORDONNEES');
    62                 include_spip('inc/association_coordonnees');
    63 
    64                 /* on recupere tout dans un tableau php pour pouvoir extraire le tableau des id_auteur a envoyer en parametre aux fonction de recuperation d'emails et telephone */
    65                 $all = sql_allfetsel("id_auteur, statut_interne, fonction, nom_famille, prenom, sexe", 'spip_asso_membres', "fonction <> '' AND statut_interne <> 'sorti'", '',  "nom_famille");
    66                 $tr_class = "pair";
    67                 $id_auteurs = array();
    68                 foreach ($all as $data) {
    69                         $id_auteurs[] = $data['id_auteur'];
     61                /* affiche tous les groupes devant l'etre */
     62                $queryGroupesAffiches = sql_select('id_groupe, nom', 'spip_asso_groupes', 'affichage>0', '', 'affichage');
     63                while ($row = sql_fetch($queryGroupesAffiches)) {
     64                        echo '<br/><a title="'._T('asso:editer_groupe').'" href="'.generer_url_ecrire('edit_groupe', 'id='.$row['id_groupe']).'">'.gros_titre($row['nom'], '', false).'</a>';
     65                        echo debut_cadre_relief('', true);
     66                        echo recuperer_fond('prive/contenu/voir_membres_groupe', array('id_groupe' => $row['id_groupe']));
     67                        echo fin_cadre_relief(true);
    7068                }
    71 
    72                 $emails = association_recuperer_emails_string($id_auteurs);
    73 
    74                 echo '<br />';
    75                 echo gros_titre(_T('asso:le_bureau'),'',false);         
    76                 echo '<br />'; 
    7769               
    78                 echo debut_cadre_relief('', true);
    79                
    80                 echo "<table border='0' cellpadding='2' cellspacing='0' width='100%' class='arial2' style='border: 1px solid #aaaaaa;'>\n";
    81                 echo "<tr style='background-color: #DBE1C5;'>\n";
    82                 echo '<th>' . _T('asso:nom') . "</th>\n";
    83                 echo '<th>' . _T('asso:fonction') . "</th>\n";
    84                 if ($coordonnees_actif) {
    85                         $telephones = association_recuperer_telephones_string($id_auteurs);
    86                         echo '<th>' . _T('asso:telephone') . "</th>\n";
    87                 }
    88                 echo '<th>' . _T('asso:email') .  "</th>\n";
    89 
    90                 echo '</tr>';
    91 
    92                 foreach ($all as $data) {
    93                         $id_auteur=$data['id_auteur'];
    94                         $nom_affiche = association_calculer_nom_membre($data['sexe'], $data['prenom'], $data['nom_famille']);
    95                          
    96                         $auteur = generer_url_ecrire('auteur_infos',"id_auteur=$id_auteur");
    97                         $adh = generer_url_ecrire('voir_adherent',"id=$id_auteur");
    98                         echo "\n<tr class='".$tr_class."'>\n";
    99                         $tr_class = ($tr_class == "pair")?"impair":"pair";
    100 
    101                         echo "<td class='arial11 border1'>",
    102                                 "<a href='$auteur' title=\"",
    103                                 _T('lien_voir_auteur'),
    104                                 '">',
    105                                 htmlspecialchars($nom_affiche),
    106                                  "</a></td>\n";
    107 
    108                         echo "<td class='arial11 border1'>",
    109                                 "<a href='$adh' title=\"",
    110                                 _T('asso:adherent_label_voir_membre'),
    111                                 "\">",
    112                                 htmlspecialchars($data['fonction']),
    113                                  "</a></td>\n";
    114                         if ($coordonnees_actif) {
    115                                 echo '<td class="arial1 border1">'.$telephones[$id_auteur].'</td>';
    116                         }
    117                         echo '<td class="arial1 border1" style="text-align:center">'.$emails[$id_auteur].'</td>';
    118                         echo "</tr>\n";
    119                 }
    120                 echo '</table>';
    121                
    122                 echo fin_cadre_relief(true);   
    12370                echo fin_page_association();
    12471               
  • _plugins_/Association/Associaspip/exec/voir_adherent.php

    r51378 r53901  
    9292                 debut_cadre_relief(  "", false, "", $titre = $nom_membre);
    9393
    94                  echo _T('asso:liens_vers_les_justificatifs'), ' ', voir_adherent_recus($id_auteur), '<br /><br />';
     94                // Liste des groupes
     95                $query = sql_select('g.id_groupe as id_groupe, g.nom as nom', 'spip_asso_groupes g LEFT JOIN spip_asso_groupes_liaisons l ON g.id_groupe=l.id_groupe', 'l.id_auteur='.$id_auteur, '', 'g.nom');
     96                if (sql_count($query)) {
     97                        echo '<div class="cadre_padding">'._T('asso:groupes_dp');
     98                        if ($row=sql_fetch($query)) {
     99                                echo ' <a href="'.generer_url_ecrire('voir_groupe', 'id='.$row['id_groupe']).'">'.$row['nom'].'</a>';
     100                        }
     101                        while ($row=sql_fetch($query)) {
     102                                echo ', <a href="'.generer_url_ecrire('voir_groupe', 'id='.$row['id_groupe']).'">'.$row['nom'].'</a>';
     103                        }
     104                        echo '.</div>';
     105                }
     106
    95107
    96108                // FICHE HISTORIQUE COTISATIONS
    97109                echo '<fieldset><legend>'._T('asso:adherent_titre_historique_cotisations').'</legend>';
     110                echo _T('asso:liens_vers_les_justificatifs'), ' ', voir_adherent_recus($id_auteur), '<br /><br />';
    98111                /* si on a l'autorisation admin, on ajoute un bouton pour ajouter une cotisation */
    99112                if ($full) {
  • _plugins_/Association/Associaspip/formulaires/editer_asso_membres.html

    r51753 r53901  
    2828                </li>
    2929                ]
    30 
    31                 <li class="editer_fonction">
    32                         <label for="fonction"><strong><:asso:adherent_libelle_fonction:></strong></label>
    33                         <input type="text" name="fonction" value="[(#ENV{fonction})]" id="fonction"  class='formo'/>
    34                 </li>
    3530
    3631                <li class="editer_categorie">
     
    7671        <!--extra-->
    7772
    78         <p class="boutons"><input type="submit" value="<:pass_ok:>" class="submit" /></p>
     73<B_groupes_membre>
     74<p class="pagination">#PAGINATION</p>
     75<table class='formulaire_table_editable arial2' border='0' cellpadding='2' cellspacing='0' width='100%' style='border: 1px solid #aaaaaa;'>
     76        <tr style='background-color: #DBE1C5;'>
     77                <th><:asso:nom:></th>
     78                <th><:asso:fonction:></th>
     79                <th><:asso:action:><th>
     80        </tr>
     81<BOUCLE_groupes_membre(ASSO_GROUPES_LIAISONS asso_groupes){id_auteur=#ENV{id_auteur}}{par nom}{pagination}>
     82        <tr class="[(#COMPTEUR_BOUCLE|alterner{'pair','impair'})]">
     83                <td><a title="<:asso:adherent_label_voir_membre:>" href="#URL_ECRIRE{edit_groupe, id=#ID_GROUPE}">#NOM</a></td>
     84                <td><input type="text" value="[(#FONCTION)]" name="fonctions[#ID_GROUPE]" class="formo"></td>
     85                <td><a title="<:asso:exclure_du_groupe:>" href="#URL_ACTION_AUTEUR{exclure_du_groupe, #VAL{#ID_GROUPE}-#ENV{id_auteur}, #SELF}"><img src="#CHEMIN{img_pack/poubelle-12.gif}"></a><td>
     86        </tr>
     87</BOUCLE_groupes_membre>
     88</table>
     89</B_groupes_membre>
     90
     91<B_groupes_non_membre>
     92<div class="cadre_padding">
     93        #ACTION_FORMULAIRE{#ENV{action}}
     94        <h3 class="legend"><:asso:rejoindre_un_groupe:></h3>
     95        <p class="pagination">#PAGINATION</p>
     96        <ul>
     97<BOUCLE_groupes_non_membre(ASSO_GROUPES asso_groupes_liaisons){!id_auteur=#ENV{id_auteur}}{par nom}{pagination 40}>
     98                <li class="liste_auteurs">
     99                        <div class="choix">
     100                                <input type="checkbox" name="id_groupes[]" value="#ID_GROUPE"/>
     101                                <label>[(#NOM)]</label>
     102                        </div>
     103                </li>
     104</BOUCLE_groupes_non_membre>
     105        </ul>
     106</div>
     107<B_groupes_non_membre>
     108
     109        <p class="boutons"><input type="submit" value="<:pass_ok:>" class="submit" name="bsubmit"/></p>
    79110
    80111        </div>
  • _plugins_/Association/Associaspip/formulaires/editer_asso_membres.php

    r51383 r53901  
    4747
    4848function formulaires_editer_asso_membres_traiter($id_auteur) {
     49        /* traitement des appartenance a un groupe */
     50        $action_membre_groupes = charger_fonction('editer_membre_groupes','action');
     51        $action_membre_groupes($id_auteur);
     52        /* ajout a un groupe */
     53        $action_ajouter_groupes = charger_fonction('ajouter_membre_groupes', 'action');
     54        $action_ajouter_groupes($id_auteur);
     55
    4956        return formulaires_editer_objet_traiter('asso_membres', $id_auteur, '', '',  generer_url_ecrire('adherents'), '');
    5057}
  • _plugins_/Association/Associaspip/lang/asso_fr.php

    r53625 r53901  
    111111       
    112112               
     113        # Groupes
     114        'gerer_les_groupes' => 'G&eacute;rer les groupes',
     115        'gestion_groupes' => 'Gestion des groupes',
     116        'nom_groupe' => 'Nom du groupe',
     117        'ordre_affichage' => 'Ordre d\'affichage sur la page d\'accueil',
     118        'ajouter_un_groupe' => 'Ajouter un groupe',
     119        'tous_les_groupes' => 'Tous les groupes',
     120        'aucun_membre_dans_ce_groupe' => 'Aucun membre dans ce groupe',
     121        'editer_groupe' => 'Editer le groupe',
     122        'supprimer_groupe' => 'Supprimer le groupe',
     123        'ajouter_membres_au_groupe' => 'Ajouter ces membres au groupe',
     124        'titre_editer_groupe' => 'Editer le groupe',
     125        'ajouter' => 'Ajouter',
     126        'exclure' => 'Exclure',
     127        'supprimer_selectionnes' => 'Exclure les membres selectionn&eacute;s',
     128        'ok_edition_groupe' => 'Sauvegarder les modifications du champs Fonction',
     129        'ordre_affichage_groupe' => 'Ordre d\'affichage',
     130        'aide_groupes' => '<p><strong>Affichage d\'un groupe sur la page d\'accueil</strong></p><p>Pour afficher un groupe sur la page d\'accueil du plugin, par exemple le groupe "Bureau", il suffit de mettre un nombre entier diff&eacute;rent de z&eacute;ro dans le champs "Ordre d\'affichage".</p><p>Les groupes affich&eacute;s le sont par ordre croissant de cet index.</p>',
     131        'vous_vous_appretez_a_supprimer_le_groupe' => 'Vous vous appretez &agrave; supprimer le groupe ',
     132        'adherent_message_grouper' => '<p>S&eacute;lectionner les groupes que les adh&eacute;rents suivants vont rejoindre.</p>',
     133        'adherents_dp' => 'Adh&eacute;rents :',
     134        'groupes_dp' => 'Groupes :',
     135        'groupe_dp' => 'Groupe :',
     136        'rejoindre_un_groupe' => 'Rejoindre un ou plusieurs groupes',
     137        'quitter_groupe' => 'Quitter un groupe',
     138        'adherent_message_degrouper' => '<p>S&eacute;lectionner les groupes dont les adh&eacute;rents seront exclus.</p>',
     139        'titre_voir_groupe' => 'Voir le groupe',
     140                               
    113141        # Entetes globales
    114142        'entete_id' => 'ID',
     
    152180       
    153181# Adherents
     182 # Actions
     183        'selectionner_tout' => 'D&eacute;/S&eacute;lectionner tout',
     184        'choisir_action' => 'Pour la s&eacute;lection :',
     185        'desactiver_adherent' => 'D&eacute;sactiver',
     186        'reactiver_adherent' => 'R&eacute;activer',
     187        'supprimer_adherent' => 'Supprimer',
     188        'rejoindre_groupe' => 'Rejoindre un groupe',
    154189 # Titres
    155190        'adherent_titre_action_membres_actifs' => 'Action sur les membres actifs',
  • _plugins_/Association/Associaspip/plugin.xml

    r51780 r53901  
    66        </auteur>
    77        <version>2.1.0</version>
    8         <version_base>51602</version_base>
     8        <version_base>53901</version_base>
    99        <meta>association_metas</meta>
    1010        <etat>dev</etat>
     
    1313        <prefix>association</prefix>   
    1414        <install>base/association_gestion.php</install>
    15         <lien>http://www.spip-contrib.net/Plugin-Gestion-d-associations</lien>
     15        <lien>http://www.spip-contrib.net/Associaspip</lien>
    1616        <icon>img_pack/annonce.gif</icon>
    1717
Note: See TracChangeset for help on using the changeset viewer.