Changeset 66289 in spip-zone


Ignore:
Timestamp:
Sep 27, 2012, 11:17:56 AM (7 years ago)
Author:
gildas.cotomale@…
Message:

autorisations et corrections diverses

Location:
_plugins_/Association/Associaspip
Files:
29 edited

Legend:

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

    r66074 r66289  
    2424        $inscrits = association_recuperer_entier('inscrits');
    2525        $montant = association_recuperer_montant('montant');
    26         $date_paiement = _request('date_paiement');
     26        $date_paiement = association_recuperer_date('date_paiement');
    2727        $journal = _request('journal');
    28         $statut = _request('statut');
     28        $statut = association_passeparam_statut();
    2929        $commentaire = _request('commentaire');
    3030#       $action = _request('action');
  • _plugins_/Association/Associaspip/action/desactiver_adherents.php

    r53901 r66289  
    11<?php
    22/***************************************************************************\
    3  *  Associaspip, extension de SPIP pour gestion d'associations             *
    4  *                                                                         *
    5  *  Copyright (c) 2007 Bernard Blazin & François de Montlivault (V1)       *
    6  *  Copyright (c) 2010-2011 Emmanuel Saint-James & Jeannot Lapin (V2)      *
    7  *  Ecrit par Marcel BOLLA en 09/2011                                      *
    8  *                                                                         *
    9  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
    10  *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
     3 *  Associaspip, extension de SPIP pour gestion d'associations
     4 *
     5 * @copyright Copyright (c) 2007 (v1) Bernard Blazin & Francois de Montlivault
     6 * @copyright Copyright (c) 2010--2011 (v2) Emmanuel Saint-James & Jeannot Lapin
     7 *
     8 *  @license http://opensource.org/licenses/gpl-license.php GNU Public License
    119\***************************************************************************/
    1210
     11if (!defined('_ECRIRE_INC_VERSION'))
     12        return;
    1313
    14 if (!defined("_ECRIRE_INC_VERSION")) return;
    15 
    16 function action_desactiver_adherents() {               
     14function action_desactiver_adherents() {
    1715        $securiser_action = charger_fonction('securiser_action', 'inc');
    1816        $securiser_action();
    19         $statut_courant = _request('statut_courant');
     17        $statut_courant = association_passeparam_statut('courant');
    2018        $where = sql_in('id_auteur', _request('id_auteurs'));
    2119        if($statut_courant==='sorti') {
    2220                sql_updateq('spip_asso_membres', array("statut_interne" => 'prospect'), $where);
    23         }
    24         else {
     21        } else {
    2522                sql_updateq('spip_asso_membres', array("statut_interne" => 'sorti'), $where);
    2623        }
  • _plugins_/Association/Associaspip/action/editer_asso_membres.php

    r65453 r66289  
    11<?php
    22/***************************************************************************\
    3  *  Associaspip, extension de SPIP pour gestion d'associations             *
    4  *                                                                         *
    5  *  Copyright (c) 2007 Bernard Blazin & François 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.   *
     3 *  Associaspip, extension de SPIP pour gestion d'associations
     4 *
     5 * @copyright Copyright (c) 2007 (v1) Bernard Blazin & Francois de Montlivault
     6 * @copyright Copyright (c) 2010--2011 (v2) Emmanuel Saint-James & Jeannot Lapin
     7 *
     8 *  @license http://opensource.org/licenses/gpl-license.php GNU Public License
    109\***************************************************************************/
    11 
    1210
    1311if (!defined('_ECRIRE_INC_VERSION'))
     
    2220                'validite' => association_recuperer_date('validite'),
    2321                'categorie' => _request('categorie'),
    24                 'statut_interne' => _request('statut_interne'),
     22                'statut_interne' =>association_passeparam_statut('interne'),
    2523                'nom_famille' => _request('nom_famille'),
    2624        );
  • _plugins_/Association/Associaspip/action/editer_asso_ressources.php

    r66074 r66289  
    2323    $prix_achat = association_recuperer_montant('prix_acquisition');
    2424    $quantite = floatval(_request('quantite'));
    25     $statut = $quantite ? (_request('suspendu')?"-$quantite":$quantite) : _request('statut');
     25    $statut = $quantite ? (_request('suspendu')?"-$quantite":$quantite) :association_passeparam_statut();
    2626    $champs = array(
    2727        'date_acquisition' => $date_achat,
  • _plugins_/Association/Associaspip/action/relancer_adherents.php

    r64081 r66289  
    2020        $count = $securiser_action();
    2121        $sujet = _request('sujet');
     22        $relance = association_recuperer_entier('relance');
    2223        $message = html_entity_decode(_request('message'), ENT_QUOTES, 'UTF-8');
    2324        $statut_tab = (isset($_POST['statut'])) ? $_POST['statut']:array(); // contient un tableau id_auteur => statut_interne
     
    3435        $nb_membres_avec_email = 0;
    3536        $membres_sans_email = array();
    36 
     37        // envoyer les messages
    3738        foreach ($emails_auteurs as $id_auteur => $emails) {
    3839                if (count($emails)) { // decompte des membres avec email
     
    4748                        } else {
    4849                                $emails_envoyes_ok++;
    49                                 if ($statut_tab[$id_auteur]=='echu') {
     50                                if ($relance && $statut_tab[$id_auteur]=='echu') { // dans le cas d'une relance on met a jour le statut interne (qui passe d'echu a relance) ; et dans le cas d'en simple publipostage (ou pour les membres non echus) le statut n'est pas modifie
    5051                                        sql_updateq('spip_asso_membres',
    5152                                                array('statut_interne' => 'relance'),
  • _plugins_/Association/Associaspip/association_autorisations.php

    r59906 r66289  
    33        return;
    44
    5 // fonction pour le pipeline, n'a rien a effectuer
    6 function association_autoriser(){}
    7 
    8 // autorisation d'editer des membres (ou de creer un membre depuis un auteur spip)
    9 function autoriser_associer_adherents_dist($faire, $type, $id, $qui, $opt) {
    10         return ($qui['statut']=='0minirezo' && !$qui['restreint']); // on retourne ok pour tous les admins non restreints
    11 }
    12 
    13 /* Les autorisation d'acces sont geres par des groupes de membres(d'auteur SPIP en fait,
    14 un auteur non membre peut avoir un access, par exemple le personnel administratif de l'asso) */
    15 /* Mapping des id de groupes et des autorisations associées, qu'ils soient ou non present dans le groupe, les webmestres ont tous les acces, les admins non restreints certains */
    16 /* 1 => edition des groupes y compris ceux d'autorisation. defaut: webmestres */
    17 /* 2 => edition des groupes d'id>100. defaut : admin non restreints */
    18 /* 3 => voir les groupes d'id>100. defaut : redacteurs */
    19 /* 10 => expert-comptable: toutes les autorisations sur la compta. */
    20 /* 11 => comptable: peut enregistrer des ecritures mais pas modifier le plan comptable */
    21 /* 12 => auditeur: acces en lecture seule a la comptabilité */
    22 /* 20 => editer le profil et les options de l'association. defaut : webmestres */
    23 /* 21 => voir info association. defaut : redacteurs */
    24 /* 30 => editer membres. Ajouter/Supprimer des membres, editer les membres(ajout cotisations, modifications informations). defaut : admin non restreint */
    25 /* 31 => voir membres. Lister les membres et voir leur page. defaut : admin non restreint */
    26 
    27 
    28 /* teste si un auteur est dans un groupe ou une liste de groupes */
    29 /* $id_groups peut etre un tableau ou un simple id de groupe */
    30 /* return a boolean */
     5/**
     6 * Fonction pour le pipeline, n'a rien a effectuer
     7 *
     8 * @note
     9 *   http://programmer.spip.net/autoriser
     10 */
     11function association_autoriser(){
     12}
     13
     14/**
     15 * Teste si un auteur est dans un groupe ou une liste de groupes
     16 *
     17 * @param int $id_auteur
     18 * @param int|array $id_groups
     19 * @return bool
     20 */
    3121function is_in_groups($id_auteur, $id_groupes)
    3222{
     
    3727                $where .= "id_groupe=$id_groupes";
    3828        }
    39 
    4029        if (sql_countsel("spip_asso_groupes_liaisons", $where) != 0) {
    4130                return true;
     
    4534}
    4635
    47 
    48 /**** Groupes ****/
    49 /* gestion des autorisations. defaut : webmestres */
     36/*****************************************
     37 * @defgroup autoriser_associer
     38 *
     39 * Groupes
     40 * Les autorisation d'acces sont geres par des groupes de membres(d'auteur SPIP
     41 * en fait, un auteur non membre peut avoir un access, par exemple le personnel
     42 * administratif de l'asso)
     43 *
     44 * Mapping des id de groupes et des autorisations associées :
     45 * - qu'ils soient ou on present dans le groupe, les webmestres ont tous les acces,
     46 * - les admins non restreints certains.
     47 * 0x Groupes ****************************
     48 * 01 => edition des groupes y compris ceux d'autorisation. defaut: webmestres
     49 * 02 => edition des groupes d'id>100. defaut : admin non restreints
     50 * 03 => voir les groupes d'id>100. defaut : redacteurs
     51 * 1x Comptabilite ***********************
     52 * 10 => expert-comptable : toutes les autorisations sur la compta.
     53 * 11 => comptable/tresorier : peut enregistrer des ecritures mais pas modifier le plan comptable
     54 * 12 => auditeur : acces en lecture seule a la comptabilité
     55 * 2x Association ************************
     56 * 20 => editer le profil et les options de l'association. defaut : webmestres
     57 * 21 => voir info association. defaut : redacteurs
     58 * 3x Membres ****************************
     59 * 30 => editer membres. Ajouter/Supprimer des membres, editer les membres (ajout cotisations, modifications informations). defaut : admin non restreint
     60 * 31 => voir membres. Lister les membres et voir leur page. defaut : admin non restreint
     61 * 32 => synchroniser les membres. defaut : admin non restreint
     62 * 33 => relancer les membres. defaut : admin non restreint
     63 * 4x Dons *******************************
     64 * 5x Ventes *****************************
     65 * 6x Prets ******************************
     66 * 7x Ressources *************************
     67 * 8x Activites **************************
     68 * 9x ************************************
     69 *
     70 * @param string $faire
     71 *   Action demandee (par exemple : voir / modifier / etc.)
     72 * @param string $type
     73 *   Objet concerne (par exemple : don / membre / vente / etc.)
     74 * @param int $id
     75 * @param int $qui
     76 *   Auteur (par defaut celui connecte)
     77 * @param array $opt
     78 *   Options supplementaires pour l'autorisation
     79 * @return bool
     80 * @note
     81 *   http://programmer.spip.net/La-librairie-autoriser
     82 *   http://programmer.spip.net/Definir-des-boutons
     83 *   http://programmer.spip.net/Definir-des-onglets
     84 *   http://programmer.spip.net/Processus-de-la-fonction-autoriser
     85 *   http://programmer.spip.net/Creer-ou-surcharger-des
     86 *
     87** @{ */
     88
     89/**
     90 * Ceux qui peuvent voir les infos de l'association doivent avoir le bouton dans
     91 * l'espace privé avec l'interface normale
     92 * defaut : redacteurs.
     93 * groupe : -.
     94 */
     95function autoriser_association_bouton_dist($faire, $type, $id, $qui, $opt) {
     96        return autoriser_association_voir_profil_dist($faire, $type, $id, $qui, $opt);
     97}
     98
     99/**
     100 * Ceux qui peuvent voir les infos de l'association doivent avoir le bouton dans
     101 * l'espace privé avec le plugin navigation prive (bando)
     102 * defaut : redacteurs.
     103 * groupe : -.
     104 */
     105function autoriser_association_bando_bouton_dist($faire, $type, $id, $qui, $opt) {
     106        return autoriser_association_voir_profil_dist($faire, $type, $id, $qui, $opt);
     107}
     108
     109/**
     110 * Autorisation d'editer des membres (ou de creer un membre depuis un auteur spip)
     111 * defaut : admins non restreints.
     112 * groupe : -.
     113 */
     114function autoriser_associer_adherents_dist($faire, $type, $id, $qui, $opt) {
     115        return ($qui['statut']=='0minirezo' && !$qui['restreint']); // on retourne ok pour tous les admins non restreints
     116}
     117
     118/**
     119 * Gestion des autorisations.
     120 * defaut : webmestres.
     121 * groupe : 01.
     122 */
    50123function autoriser_association_gerer_autorisations_dist($faire, $type, $id, $qui, $opt) {
    51124        if ($qui['statut']=='0minirezo' && $qui['webmestre']=='oui') {
    52125                return true; // on retourne ok pour tous les webmestres
    53126        }
    54         return is_in_groups($qui['id_auteur'], 1); /* c'est le groupe 1 qui liste les gens qui peuvent toucher aux autorisations */
    55 }
    56 
    57 /* edition des groupes */
     127        return is_in_groups($qui['id_auteur'], 1); // c'est le groupe 1 qui liste les gens qui peuvent toucher aux autorisations
     128}
     129
     130/**
     131 * Edition des groupes.
     132 * defaut : admins non-restreints.
     133 * groupe : 01,02.
     134 */
    58135function autoriser_association_editer_groupes_dist($faire, $type, $id, $qui, $opt) {
    59         /* si l'id est-il inferieur a 100 et different de 0(creation d'un groupe) -> groupe d'autorisations: on retourne le resultat de la fonction d'autorisation de gestion des autorisations */
    60         if ($id!=0 && $id<100) { /* on n'arrive jamais ici sauf si quelqu'un entre des urls a la main ce qui peut arriver */
    61                 return autoriser_association_gerer_autorisations_dist($faire, $type, $id, $qui, $opt); 
    62         }
    63 
     136        if ($id!=0 && $id<100) { // on n'arrive jamais ici sauf si quelqu'un entre des urls a la main ce qui peut arriver
     137                return autoriser_association_gerer_autorisations_dist($faire, $type, $id, $qui, $opt); // si l'id est-il inferieur a 100 (groupe d'autorisations) et different de 0 (creation d'un groupe) : on retourne le resultat de la fonction d'autorisation de gestion des autorisations
     138        }
    64139        if ($qui['statut']=='0minirezo' && !$qui['restreint']) {
    65140                return true; // on retourne ok pour tous les admins non restreints
    66141        }
    67 
    68         return is_in_groups($qui['id_auteur'], array(1,2)); // c'est le groupe 2 qui a le pouvoir de modifier les groupes(mais pas les autorisations), le groupe 1 peut modifier tout ce qui touche aux groupes(ceux d'autorisations inclus)
    69 }
    70 
    71 /* voir les groupes. defaut : redacteurs */
     142        return is_in_groups($qui['id_auteur'], array(1,2)); // c'est le groupe 2 qui a le pouvoir de modifier les groupes (mais pas les autorisations), le groupe 1 peut modifier tout ce qui touche aux groupes (ceux d'autorisations inclus)
     143}
     144
     145/**
     146 * Voir les groupes.
     147 * defaut : redacteurs.
     148 * groupe : 03.
     149 */
    72150function autoriser_association_voir_groupes_dist($faire, $type, $id, $qui, $opt) {
    73         /* si l'id est-il inferieur a 100 et different de 0(creation d'un groupe) -> groupe d'autorisations: on retourne le resultat de la fonction d'autorisation de gestion des autorisations */
    74         if ($id!=0 && $id<100) { /* on n'arrive jamais ici sauf si quelqu'un entre des urls a la main ce qui peut arriver */
    75                 return autoriser_association_gerer_autorisations_dist($faire, $type, $id, $qui, $opt); 
    76         }
    77 
    78         /* defaut : redacteurs */
     151        if ($id!=0 && $id<100) { // on n'arrive jamais ici sauf si quelqu'un entre des urls a la main ce qui peut arriver
     152                return autoriser_association_gerer_autorisations_dist($faire, $type, $id, $qui, $opt); // si l'id est-il inferieur a 100 (groupe d'autorisations) et different de 0 (creation d'un groupe) : on retourne le resultat de la fonction d'autorisation de gestion des autorisations
     153        }
    79154        if ($qui['statut']=='0minirezo' || $qui['statut']=='1comite') {
    80                 return true;
    81         }
    82 
     155                return true; // on retourne ok pour tous les redacteurs
     156        }
    83157        return is_in_groups($qui['id_auteur'], array(3)); // c'est le groupe 3 qui a le pouvoir de voir les groupes(mais pas ceux des autorisations)
    84158}
    85159
    86 
    87 /**** Profil Association ****/
    88 /* modifier le profil de l'association. defaut : webmestre */
     160/**
     161 * Configurer la compatabilite. (expert comptable)
     162 * defaut : webmestre
     163 * groupe : 10
     164 */
     165function autoriser_association_configurer_compta_dist($faire, $type, $id, $qui, $opt) {
     166        if ($qui['statut']=='0minirezo' && $qui['webmestre']=='oui') {
     167                return true; // on retourne ok pour tous les webmestres
     168        }
     169        return is_in_groups($qui['id_auteur'], array(10)); // c'est le groupe 10 qui a le pouvoir de configurer la comptabilite
     170}
     171
     172/**
     173 * Modifier le profil de l'association.
     174 * defaut : webmestre
     175 * groupe : 20
     176 */
    89177function autoriser_association_editer_profil_dist($faire, $type, $id, $qui, $opt) {
    90178        if ($qui['statut']=='0minirezo' && $qui['webmestre']=='oui') {
    91179                return true; // on retourne ok pour tous les webmestres
    92180        }
    93 
    94         return is_in_groups($qui['id_auteur'], array(20)); // c'est le groupe 20 qui a le pouvoir d'editer le profil de l'association.
    95 }
    96 
    97 /* voir le profil de l'association. defaut : rédacteurs */
     181        return is_in_groups($qui['id_auteur'], array(20,10)); // c'est le groupe 20 qui a le pouvoir d'editer le profil de l'association. le groupe 10 peut avoir besoin d'acceder a certains options de configuration aussi.
     182}
     183
     184/**
     185 * Voir le profil de l'association.
     186 * defaut : rédacteurs.
     187 * groupe : 20,21.
     188 */
    98189function autoriser_association_voir_profil_dist($faire, $type, $id, $qui, $opt) {
    99         if ($qui['statut']=='0minirezo' || $qui['statut']=='1comite') return true;
    100 
     190        if ($qui['statut']=='0minirezo' || $qui['statut']=='1comite') {
     191                return true; // on retourne ok pour tous les redacteurs
     192        }
    101193        return is_in_groups($qui['id_auteur'], array(21,20)); // c'est le groupe 21 qui a le pouvoir de voir les informations de l'association, le 20 celui de les editer aussi
    102194}
    103195
    104 /* ceux qui peuvent voir les infos de l'association doivent avoir le bouton dans l'espace privé avec l'interface normale ou plugin navigation prive(bando) */
    105 function autoriser_association_bouton_dist($faire, $type, $id, $qui, $opt) {
    106         return autoriser_association_voir_profil_dist($faire, $type, $id, $qui, $opt);
    107 }
    108 function autoriser_association_bando_bouton_dist($faire, $type, $id, $qui, $opt) {
    109         return autoriser_association_voir_profil_dist($faire, $type, $id, $qui, $opt);
    110 }
    111 
    112 
    113 /**** Gestion des membres ****/
    114 /* editer les informations des membres. defaut : admin non restreint. */
     196/**
     197 * Editer les informations des membres.
     198 * defaut : admin non restreint.
     199 * groupe : 30
     200 */
    115201function autoriser_association_editer_membres($faire, $type, $id, $qui, $opt) {
    116         /* defaut: tous les admins non restreints */
    117         if ($qui['statut']=='0minirezo' && !$qui['restreint']) {
    118                 return true;
    119         }
    120 
     202        if ($qui['statut']=='0minirezo' && !$qui['restreint']) {
     203                return true; // retourne ok pour les admins complets
     204        }
    121205        return is_in_groups($qui['id_auteur'], array(30)); // c'est le groupe 30 qui a le pouvoir de modifier les infos de tout le monde
    122206}
    123207
    124 /* voir la page des membres et leurs pages personnelle. defaut : admin non restreint. Pour les pages de membres, le membre en question y a forcement accès */
     208/**
     209 * Voir la page des membres et leurs pages personnelle.
     210 * defaut : admin non restreint.
     211 *   Pour les pages de membres, le membre en question y a forcement accès
     212 * groupe : 30,31.
     213 */
    125214function autoriser_association_voir_membres($faire, $type, $id, $qui, $opt) {
    126         /* defaut: tous les admins non restreints */
    127         if ($qui['statut']=='0minirezo' && !$qui['restreint']) {
    128                 return true;
    129         }
    130 
    131         /* si l'auteur connecté correspond à la page du membre a visiter c'est ok */
     215        if ($qui['statut']=='0minirezo' && !$qui['restreint']) {
     216                return true; // ok pour les admins non restreints
     217        }
    132218        if ($id == intval($GLOBALS['visiteur_session']['id_auteur'])) {
    133                 return true;
    134         }
    135 
     219                return true; // ok si l'auteur connecté correspond à la page du membre a visiter
     220        }
    136221        return is_in_groups($qui['id_auteur'], array(31,30)); // c'est le groupe 31 qui a le pouvoir de voir les infos de tout le monde, le 30 celui de les editer
    137222}
    138223
     224/**
     225 * Voir la page des membres et leurs pages personnelle.
     226 * defaut : admin non restreint.
     227 *   Pour les pages de membres, le membre en question y a forcement accès
     228 * groupe : 31,32.
     229 */
     230function autoriser_association_synchroniser_membres($faire, $type, $id, $qui, $opt) {
     231        if ($qui['statut']=='0minirezo' && !$qui['restreint']) {
     232                return true; // ok pour les admins non restreints
     233        }
     234        if ($id == intval($GLOBALS['visiteur_session']['id_auteur'])) {
     235                return true; // ok si l'auteur connecté correspond à la page du membre a visiter
     236        }
     237        return is_in_groups($qui['id_auteur'], array(31,30)); // c'est le groupe 31 qui a le pouvoir de voir les infos de tout le monde, le 32 celui de les synchroniser
     238}
     239
    139240?>
  • _plugins_/Association/Associaspip/association_options.php

    r66195 r66289  
    10551055function association_selectionner_lettre($lettre='', $table, $champ, $exec='', $plus='', $lst=FALSE)
    10561056{
     1057    $lettre = strtoupper($lettre);
    10571058    if ($exec) {
    10581059                $res = '<form method="post" action="'. generer_url_ecrire($exec) .'"><div>';
     
    10661067        $res .= ((!$lettre||$lettre=='%')?' selected="selected"':'');
    10671068        $res .='>'. _T('asso:entete_tous') .'</option>';
    1068     $sql = sql_select("UPPER( LEFT( $champ, 1 ) ) AS init", "spip_$table", '',  'init ASC', "$champ");
     1069    $sql = sql_select("UPPER( LEFT( $champ, 1 ) ) AS init", "spip_$table", '',  'init ASC', "$champ"); // LEFT(field, n) ==  SUBSTRING(field, 1, n)
    10691070    while ($val = sql_fetch($sql)) {
    10701071                $res .= '<option value="'.$val['init'].'"';
     
    19411942 *
    19421943 * @return int $an
     1944 * @return array($an, $sql_where)
    19431945 */
    19441946function association_passeparam_annee($type='', $table='', $id=0)
     
    19801982}
    19811983
     1984/**
     1985 * &statut=
     1986 *
     1987 * @return string $statut
     1988 * @return array($statut, $sql_where)
     1989 * Pour l'instant, appele uniquement dans exec/adherents.php vers la ligne 25
     1990 */
     1991function association_passeparam_statut($type='', $defaut='')
     1992{
     1993        if ($type) // recuperer en priorite :
     1994                $statut = trim(_request("statut_$type", $_GET));
     1995        else
     1996                $statut = '';
     1997        if (!$statut) // pas de statut_... alors c'est le nom generique qui est utilise
     1998                $statut = trim(_request('statut'));
     1999        if (!$statut) // statut non precise non precisee
     2000                $statut = $defaut; // on prend celui par defaut (tous)
     2001        if ($defaut && $type) {
     2002                switch ($type) {
     2003                        case 'interne' :
     2004                                if (in_array($statut, $GLOBALS['association_liste_des_statuts'] ))
     2005                                        $sql_where = 'statut_interne='. sql_quote($statut_interne);
     2006                                elseif ($statut=='tous')
     2007                                        $sql_where = "statut_interne LIKE '%'";
     2008                                else {
     2009                                        set_request('statut_interne', $defaut);
     2010                                        $a = $GLOBALS['association_liste_des_statuts'];
     2011                                        $sql_where = sql_in('statut_interne', array_shift($a) );
     2012                                }
     2013                                break;
     2014                }
     2015                return array($statut, $sql_where);
     2016        } else
     2017                return $statut;
     2018}
     2019
    19822020/** @} */
    19832021
     
    19902028 *
    19912029** @{ */
    1992 
    1993 /**
    1994  * Cree le critere SQL Where portant sur le champ "statut_interne"
    1995  *
    1996  * Pour l'instant, appele uniquement dans exec/adherents.php vers la ligne 25
    1997  */
    1998 function request_statut_interne()
    1999 {
    2000         $statut_interne = _request('statut_interne');
    2001         if (in_array($statut_interne, $GLOBALS['association_liste_des_statuts'] ))
    2002                 return 'statut_interne='. sql_quote($statut_interne);
    2003         elseif ($statut_interne=='tous')
    2004                 return "statut_interne LIKE '%'";
    2005         else {
    2006                 set_request('statut_interne', 'defaut');
    2007                 $a = $GLOBALS['association_liste_des_statuts'];
    2008                 array_shift($a);
    2009                 return sql_in('statut_interne', $a);
    2010         }
    2011 }
    20122030
    20132031/**
  • _plugins_/Association/Associaspip/exec/adherents.php

    r66195 r66289  
    11<?php
    22/***************************************************************************\
    3  *  Associaspip, extension de SPIP pour gestion d'associations             *
    4  *                                                                         *
    5  *  Copyright (c) 2007 Bernard Blazin & Fran�ois 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.   *
     3 *  Associaspip, extension de SPIP pour gestion d'associations
     4 *
     5 * @copyright Copyright (c) 2007 (v1) Bernard Blazin & Francois de Montlivault
     6 * @copyright Copyright (c) 2010--2011 (v2) Emmanuel Saint-James & Jeannot Lapin
     7 *
     8 *  @license http://opensource.org/licenses/gpl-license.php GNU Public License
    109\***************************************************************************/
    11 
    1210
    1311if (!defined('_ECRIRE_INC_VERSION'))
    1412        return;
    15 
    16 include_spip('inc/navigation_modules');
    1713
    1814function exec_adherents()
     
    2218                echo minipres();
    2319        } else {
    24                 // recuperation des variables
    25                 $critere = request_statut_interne(); // peut appeler set_request
    26                 $statut_interne = _request('statut_interne');
     20                include_spip('inc/navigation_modules');
     21                list($statut_interne, $critere) = association_passeparam_statut('interne', 'defaut');
    2722                $lettre = _request('lettre');
    2823                onglets_association('titre_onglet_membres', 'adherents');
     
    4338                raccourcis_association(array(), array(
    4439                        'gerer_les_groupes' => array('annonce.gif', 'groupes', array('voir_groupes', 'association', 100) ), // l'id groupe passe en parametre est a 100 car ce sont les groupes definis par l'utilisateur et non ceux des autorisation qu'on liste dans cette page
    45                         'menu2_titre_relances_cotisations' => array('relance-24.png', 'edit_relances' ),
    46                         'synchronise_asso_membre_lien' => array('reload-32.png', 'synchroniser_asso_membres' ),
     40                        'menu2_titre_relances_cotisations' => array('relance-24.png', 'edit_relances', array('relancer_membres', 'association') ),
     41                        'synchronise_asso_membre_lien' => array('reload-32.png', 'synchroniser_asso_membres', array('synchroniser_membres', 'association') ),
    4742                ));
    48                 if ( test_plugin_actif('FPDF') && test_plugin_actif('COORDONNEES') ) { // etiquettes
     43                if ( test_plugin_actif('FPDF') && test_plugin_actif('COORDONNEES') && autoriser('relancer_membres', 'association') ) { // etiquettes
    4944                        echo debut_cadre_enfonce('',true);
    5045                        echo recuperer_fond('prive/editer/imprimer_etiquettes');
     
    8479}
    8580
    86 /* 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) */
     81/**
     82 * liste des adherents
     83 *
     84 * @param string $lettre
     85 *   Filtre lettre
     86 * @param string $critere
     87 *   SQL de restriction selon statut
     88 * @param string $statut_interne
     89 *   Filtre statut interne
     90 * @param int $id_groupe
     91 *   Filtre groupe
     92 * @return array
     93 *   Liste du :
     94 *   - critere de requete SQL en fonction des filtres actifs,
     95 *   - possible jonction SQL sur la table des groupes,
     96 *   - code HTML du tableau affichant la liste des membres en fonction des
     97 *     filtres actifs et de la configuration (champs affiches ou pas)
     98 */
    8799function adherents_liste($lettre, $critere, $statut_interne, $id_groupe)
    88100{
    89101        if ($lettre)
    90                 $critere .= " AND UPPER( SUBSTRING( nom_famille, 1, 1 ) ) LIKE '$lettre' ";
    91         $jointure_groupe = '';
     102                $critere .= " AND UPPER(nom_famille) LIKE UPPER('$lettre%') "; // le 1er UPPER (plutot que LOWER puisque les lettres sont mises et passees en majuscule) sur le champ est requis car LIKE est sensible a la casse... le 2nd UPPER est pour contrer les requetes entrees manuellement... (remarque, avec MySQL 5 et SQL Server, on aurait pu avoir simplement "nom_famille LIKE '$lettre%' COLLATE UTF_GENERAL_CI" ou mieux ailleurs : "nom_famille ILIKE '$lettre%'" mais c'est pas forcement portable)
    92103        if ($id_groupe) {
    93104                $critere .= " AND c.id_groupe=$id_groupe ";
    94105                $jointure_groupe = ' LEFT JOIN spip_asso_groupes_liaisons c ON a.id_auteur=c.id_auteur ';
     106        } else {
     107                $jointure_groupe = '';
    95108        }
    96109        $chercher_logo = charger_fonction('chercher_logo', 'inc');
    97110        include_spip('inc/filtres_images_mini');
    98         $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 ', sql_asso1page() );
     111        $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, prenom, validite', sql_asso1page() );
    99112        $auteurs = '';
    100113        while ($data = sql_fetch($query)) {
     
    172185                }
    173186                $auteurs .= '<td class="action">'
    174                 . '<a href="'. generer_url_ecrire('auteur_infos','id_auteur='.$id_auteur) .'">'.$icone.'</a></td>'
    175                 . association_bouton_act('adherent_label_ajouter_cotisation', 'cotis-12.gif', 'ajout_cotisation','id='.$id_auteur)
    176                 . association_bouton_edit('adherent','id='.$id_auteur)
    177                 . association_bouton_act('adherent_label_voir_membre', 'voir-12.png', 'adherent','id='.$id_auteur)
     187                . '<a href="'. generer_url_ecrire('auteur_infos','id_auteur='.$id_auteur) .'">'.$icone.'</a></td>';
     188                if (autoriser('editer_membres', 'association')) {
     189                        $auteurs .= association_bouton_act('adherent_label_ajouter_cotisation', 'cotis-12.gif', 'ajout_cotisation','id='.$id_auteur)
     190                        . association_bouton_edit('adherent','id='.$id_auteur);
     191                }
     192                $auteurs .= association_bouton_act('adherent_label_voir_membre', 'voir-12.png', 'adherent','id='.$id_auteur)
    178193                . association_bouton_coch('id_auteurs', $id_auteur)
    179194                . "</tr>\n";
    180195        }
    181 
    182196        $res = "<table width='100%' class='asso_tablo' id='liste_adherents'>\n"
    183197        . "<thead>\n<tr>";
     
    205219                $res .= '<th>'._T('asso:adherent_libelle_validite').'</th>';
    206220        }
    207         $res .= '<th colspan="4" class="actions">'._T('asso:entete_actions').'</th>'
     221        $res .= '<th colspan="'. (autoriser('editer_membres', 'association')?4:2) .'" class="actions">'._T('asso:entete_actions').'</th>'
    208222        . '<th><input title="'._T('asso:selectionner_tout').'" type="checkbox" id="selectionnerTous" onclick="var currentVal = this.checked; var checkboxList = document.getElementsByName(\'id_auteurs[]\'); for (var i in checkboxList){checkboxList[i].checked=currentVal;}" /></th>'
    209223        . "</tr>\n</thead><tbody>"
     
    216230                $res .= "</td><td align='right' class='formulaire'><form>\n";
    217231                if ($auteurs) {
    218                         $res .=  '<select name="action_adherents"><option value="" selected="">'._T('asso:choisir_action').'</option><option value="desactive">'
    219                         .($statut_interne=='sorti' ? _T('asso:reactiver_adherent') : _T('asso:desactiver_adherent'))
    220                         .'</option><option value="delete">'._T('asso:supprimer_adherent').'</option>';
     232                        if (autoriser('editer_membres', 'association')) {
     233                                $res .=  '<select name="action_adherents"><option value="" selected="">'._T('asso:choisir_action').'</option><option value="desactive">'
     234                                .($statut_interne=='sorti' ? _T('asso:reactiver_adherent') : _T('asso:desactiver_adherent'))
     235                                .'</option><option value="delete">'._T('asso:supprimer_adherent').'</option>';
     236                        }
    221237                        if (autoriser('editer_groupes', 'association', 100)) {
    222238                                $res .=sql_countsel('spip_asso_groupes', '') ? '<option value="grouper">'._T('asso:rejoindre_groupe').'</option><option value="degrouper">'._T('asso:quitter_un_groupe').'</option>' : '';
     
    228244        }
    229245        $res .= '</tr></table>';
    230 
    231246        return  array($critere, $jointure_groupe, generer_form_ecrire('action_adherents', $res));
    232247}
    233248
     249/**
     250 * Affiche le code d'une categorie a partir de son ID
     251 *
     252 * @param int $c
     253 *   spip_asso_categories.id_categorie
     254 * @return string
     255 *   spip_asso_categories.valeur
     256 */
    234257function affiche_categorie($c)
    235258{
  • _plugins_/Association/Associaspip/exec/association.php

    r66074 r66289  
    11<?php
    22/***************************************************************************\
    3  *  Associaspip, extension de SPIP pour gestion d'associations             *
    4  *                                                                         *
    5  *  Copyright (c) 2007 Bernard Blazin & Fran�ois 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.   *
     3 *  Associaspip, extension de SPIP pour gestion d'associations
     4 *
     5 * @copyright Copyright (c) 2007 (v1) Bernard Blazin & Francois de Montlivault
     6 * @copyright Copyright (c) 2010--2011 (v2) Emmanuel Saint-James & Jeannot Lapin
     7 *
     8 *  @license http://opensource.org/licenses/gpl-license.php GNU Public License
    109\***************************************************************************/
    11 
    1210
    1311if (!defined('_ECRIRE_INC_VERSION'))
    1412        return;
    15 
    16 include_spip ('inc/navigation_modules');
    1713
    1814function exec_association()
     
    2218                echo minipres();
    2319        } else {
     20                include_spip ('inc/navigation_modules');
    2421                onglets_association('', 'association');
    2522                // presentation du plugin
     
    3128                        'categories_de_cotisations' => array('cotisation.png', 'categories', array('editer_profil', 'association'), ),
    3229                        'gerer_les_autorisations' => array('annonce.gif', 'association_autorisations', array('gerer_autorisations', 'association'), ),
    33                         'plan_comptable' => array('plan_compte.png', 'plan_comptable', array('associer', 'comptes') ),
    34                         'destination_comptable' => array('euro-39.gif', 'destination', array('associer', 'comptes') && $GLOBALS['association_metas']['destinations'] ),
    35                         'exercices_budgetaires_titre' => array('calculatrice.gif', 'exercices', array('associer', 'comptes') ),
     30                        'plan_comptable' => array('plan_compte.png', 'plan_comptable', array('configurer_compta', 'association') ),
     31                        'destination_comptable' => array('euro-39.gif', 'destination', array('configurer_compta', 'association') && $GLOBALS['association_metas']['destinations'] ),
     32                        'exercices_budgetaires_titre' => array('calculatrice.gif', 'exercices', array('configurer_compta', 'association') ),
    3633                ));
    37 
    3834                debut_cadre_association('assoc_qui.png', 'association_infos_contacts');
    3935                echo '<div class="vcard" id="vcard-asso">';
  • _plugins_/Association/Associaspip/exec/association_autorisations.php

    r66273 r66289  
    33 *  Associaspip, extension de SPIP pour gestion d'associations
    44 *
    5  * @copyright Copyright (c) 2007 Bernard Blazin & Francois de Montlivault
    6  * @copyright Copyright (c) 2010 Emmanuel Saint-James
     5 * @copyright Copyright (c) 2007 (v1) Bernard Blazin & Francois de Montlivault
     6 * @copyright Copyright (c) 2010--2011 (v2) Emmanuel Saint-James & Jeannot Lapin
    77 *
    88 *  @license http://opensource.org/licenses/gpl-license.php GNU Public License
  • _plugins_/Association/Associaspip/exec/categories.php

    r66074 r66289  
    11<?php
    22/***************************************************************************\
    3  *  Associaspip, extension de SPIP pour gestion d'associations             *
    4  *                                                                         *
    5  *  Copyright (c) 2007 Bernard Blazin & Fran�ois 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.   *
     3 *  Associaspip, extension de SPIP pour gestion d'associations
     4 *
     5 * @copyright Copyright (c) 2007 (v1) Bernard Blazin & Francois de Montlivault
     6 * @copyright Copyright (c) 2010--2011 (v2) Emmanuel Saint-James & Jeannot Lapin
     7 *
     8 *  @license http://opensource.org/licenses/gpl-license.php GNU Public License
    109\***************************************************************************/
    11 
    1210
    1311if (!defined('_ECRIRE_INC_VERSION'))
    1412        return;
    1513
    16 include_spip ('inc/navigation_modules');
    17 
    1814function exec_categories()
    1915{
    20         if (!autoriser('associer', 'comptes')) {
     16        if (!autoriser('editer_profil', 'association')) {
    2117                include_spip('inc/minipres');
    2218                echo minipres();
    2319        } else {
     20                include_spip ('inc/navigation_modules');
    2421                onglets_association('categories_de_cotisations', 'association');
    2522                // notice
  • _plugins_/Association/Associaspip/exec/destination.php

    r66074 r66289  
    11<?php
    22/***************************************************************************\
    3  *  Associaspip, extension de SPIP pour gestion d'associations             *
    4  *                                                                         *
    5  *  Copyright (c) 2007 Bernard Blazin & Fran�ois 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.   *
     3 *  Associaspip, extension de SPIP pour gestion d'associations
     4 *
     5 * @copyright Copyright (c) 2007 (v1) Bernard Blazin & Francois de Montlivault
     6 * @copyright Copyright (c) 2010--2011 (v2) Emmanuel Saint-James & Jeannot Lapin
     7 *
     8 *  @license http://opensource.org/licenses/gpl-license.php GNU Public License
    109\***************************************************************************/
    11 
    1210
    1311if (!defined('_ECRIRE_INC_VERSION'))
    1412        return;
    1513
    16 include_spip ('inc/navigation_modules');
    17 
    1814function exec_destination()
    1915{
    20         if (!autoriser('associer', 'comptes')) {
     16        if (!autoriser('configurer_compta', 'association')) {
    2117                include_spip('inc/minipres');
    2218                echo minipres();
    2319        } else {
     20                include_spip ('inc/navigation_modules');
    2421                onglets_association('plan_comptable', 'association');
    2522                // notice
  • _plugins_/Association/Associaspip/exec/edit_adherent.php

    r66195 r66289  
    33 *  Associaspip, extension de SPIP pour gestion d'associations
    44 *
    5  * @copyright Copyright (c) 2007 Bernard Blazin & Francois de Montlivault
    6  * @copyright Copyright (c) 2010 Emmanuel Saint-James
     5 * @copyright Copyright (c) 2007 (v1) Bernard Blazin & Francois de Montlivault
     6 * @copyright Copyright (c) 2010--2011 (v2) Emmanuel Saint-James & Jeannot Lapin
    77 *
    88 *  @license http://opensource.org/licenses/gpl-license.php GNU Public License
  • _plugins_/Association/Associaspip/exec/edit_categorie.php

    r66273 r66289  
    33 *  Associaspip, extension de SPIP pour gestion d'associations
    44 *
    5  * @copyright Copyright (c) 2007 Bernard Blazin & Francois de Montlivault
    6  * @copyright Copyright (c) 2010 Emmanuel Saint-James
     5 * @copyright Copyright (c) 2007 (v1) Bernard Blazin & Francois de Montlivault
     6 * @copyright Copyright (c) 2010--2011 (v2) Emmanuel Saint-James & Jeannot Lapin
    77 *
    88 *  @license http://opensource.org/licenses/gpl-license.php GNU Public License
     
    1414function exec_edit_categorie()
    1515{
    16         if (!autoriser('associer', 'comptes')) {
     16        if (!autoriser('editer_profil', 'association')) {
    1717                        include_spip('inc/minipres');
    1818                        echo minipres();
  • _plugins_/Association/Associaspip/exec/edit_destination.php

    r66273 r66289  
    33 *  Associaspip, extension de SPIP pour gestion d'associations
    44 *
    5  * @copyright Copyright (c) 2007 Bernard Blazin & Francois de Montlivault
    6  * @copyright Copyright (c) 2010 Emmanuel Saint-James
     5 * @copyright Copyright (c) 2007 (v1) Bernard Blazin & Francois de Montlivault
     6 * @copyright Copyright (c) 2010--2011 (v2) Emmanuel Saint-James & Jeannot Lapin
    77 *
    88 *  @license http://opensource.org/licenses/gpl-license.php GNU Public License
     
    1414function exec_edit_destination()
    1515{
    16         if (!autoriser('associer', 'comptes')) {
     16        if (!autoriser('configurer_compta', 'association')) {
    1717                include_spip('inc/minipres');
    1818                echo minipres();
  • _plugins_/Association/Associaspip/exec/edit_exercice.php

    r66273 r66289  
    44 *
    55 * @copyright Copyright (c) 2007 Bernard Blazin & Francois de Montlivault
    6  * @copyright Copyright (c) 2010-2011 Emmanuel Saint-James
     6 * @copyright Copyright (c) 2010--2011 Emmanuel Saint-James
    77 * @copyright Copyright (c) 201108 Marcel Bolla
    88 *
     
    1515function exec_edit_exercice()
    1616{
    17         if (!autoriser('associer', 'comptes')) {
     17        if (!autoriser('configurer_compta', 'association')) {
    1818                include_spip('inc/minipres');
    1919                echo minipres();
  • _plugins_/Association/Associaspip/exec/edit_groupe.php

    r66273 r66289  
    33 *  Associaspip, extension de SPIP pour gestion d'associations
    44 *
    5  * @copyright Copyright (c) 2007 Bernard Blazin & Francois de Montlivault
    6  * @copyright Copyright (c) 2010 Emmanuel Saint-James
     5 * @copyright Copyright (c) 2007 (v1) Bernard Blazin & Francois de Montlivault
     6 * @copyright Copyright (c) 2010--2011 (v2) Emmanuel Saint-James & Jeannot Lapin
    77 *
    88 *  @license http://opensource.org/licenses/gpl-license.php GNU Public License
  • _plugins_/Association/Associaspip/exec/edit_groupe_autorisations.php

    r66273 r66289  
    33 *  Associaspip, extension de SPIP pour gestion d'associations
    44 *
    5  * @copyright Copyright (c) 2007 Bernard Blazin & Francois de Montlivault
    6  * @copyright Copyright (c) 2010 Emmanuel Saint-James
     5 * @copyright Copyright (c) 2007 (v1) Bernard Blazin & Francois de Montlivault
     6 * @copyright Copyright (c) 2010--2011 (v2) Emmanuel Saint-James & Jeannot Lapin
    77 *
    88 *  @license http://opensource.org/licenses/gpl-license.php GNU Public License
  • _plugins_/Association/Associaspip/exec/edit_plan.php

    r66273 r66289  
    33 *  Associaspip, extension de SPIP pour gestion d'associations
    44 *
    5  * @copyright Copyright (c) 2007 Bernard Blazin & Francois de Montlivault
    6  * @copyright Copyright (c) 2010 Emmanuel Saint-James
     5 * @copyright Copyright (c) 2007 (v1) Bernard Blazin & Francois de Montlivault
     6 * @copyright Copyright (c) 2010--2011 (v2) Emmanuel Saint-James & Jeannot Lapin
    77 *
    88 *  @license http://opensource.org/licenses/gpl-license.php GNU Public License
     
    1414function exec_edit_plan()
    1515{
    16         if (!autoriser('associer', 'comptes')) {
     16        if (!autoriser('configurer_compta', 'association')) {
    1717                include_spip('inc/minipres');
    1818                echo minipres();
  • _plugins_/Association/Associaspip/exec/edit_relances.php

    r66273 r66289  
    33 *  Associaspip, extension de SPIP pour gestion d'associations
    44 *
    5  * @copyright Copyright (c) 2007 Bernard Blazin & Francois de Montlivault
    6  * @copyright Copyright (c) 2010 Emmanuel Saint-James
     5 * @copyright Copyright (c) 2007 (v1) Bernard Blazin & Francois de Montlivault
     6 * @copyright Copyright (c) 2010--2011 (v2) Emmanuel Saint-James & Jeannot Lapin
    77 *
    88 *  @license http://opensource.org/licenses/gpl-license.php GNU Public License
     
    1414function exec_edit_relances()
    1515{
    16         if (!autoriser('editer_membres', 'association')) {
     16        if (!autoriser('relancer_membres', 'association')) {
    1717                        include_spip('inc/minipres');
    1818                        echo minipres();
     
    2424                // datation et raccourcis
    2525                raccourcis_association('adherents');
    26                 $statut_interne = _request('statut_interne');
    27                 if (!$statut_interne)
    28                         $statut_interne = 'echu';
     26                list($statut_interne, $critere) = association_passeparam_statut('interne', 'echu');
    2927                $id_groupe = association_recuperer_entier('groupe');
     28                $num_relance = association_recuperer_entier('relance');
    3029                debut_cadre_association('relance-24.png', 'tous_les_membres_a_relancer');
    3130                // Filtres
     31                $filtre_relance = '<select name="relance" onchange="form.submit()">';
     32                $filtre_relance .= '<option value="" ';
     33                $filtre_relance .= (($num_relance==0 || $num_relance='')?' selected="selected"':'');
     34                $filtre_relance .= '>'. _T('asso:autre') .'</option>';
     35                $filtre_relance .= '<option value="1" ';
     36                $filtre_relance .= (($num_relance==1)?' selected="selected"':'');
     37                $filtre_relance .= '>'. _T('asso:relance') .'</option>';
    3238                filtres_association(array(
    3339                        'groupe'=>$id_groupe,
    3440                        'statut'=>$statut_interne,
    35                 ), 'edit_relances');
     41                ), 'edit_relances', array(
     42                        'relance'=>$filtre_relance,
     43                ));
    3644                // MAILING
    3745                $res = '<div class="formulaire_spip formulaire_editer_relances"><form>'
     
    5664                        . '<th>' . _T('asso:envoi') .'</th>'
    5765                        . "</tr>\n</thead><tbody>"
    58                         .  relances_while($statut_interne, $groupe)
     66                        .  relances_liste($critere, $groupe)
    5967                        . "</tbody>\n</table>\n";
    6068                $res .= '<p class="boutons"><input type="submit" value="'. ( isset($action) ? _T('asso:bouton_'.$action) : _T('asso:bouton_envoyer') ) .'" /></p>';
     
    6472}
    6573
    66 function relances_while($statut_interne, $id_groupe=0)
     74/**
     75 * Liste des membres
     76 *
     77 * @param string $critere
     78 *   SQL de restriction selon statut
     79 * @param int $id_groupe
     80 *   Filtre groupe
     81 * @return string
     82 *   code HTML du tableau affichant la liste des membres en fonction des filtres
     83 *   actifs avec cases a cocher de selection
     84 */
     85function relances_liste($critere, $id_groupe=0)
    6786{
     87        if ($id_groupe) {
     88                $critere .= " AND id_groupe=$id_groupe ";
     89                $jointure_groupe = ' LEFT JOIN spip_asso_groupes_liaisons a_g_l ON a_m.id_auteur=a_g_l.id_auteur ';
     90        } else {
     91                $jointure_groupe = '';
     92        }
    6893        $query = sql_select(
    69                 'id_auteur, sexe, nom_famille, prenom, statut_interne, validite', // select
    70                 'spip_asso_membres AS a_m'. ($id_groupe?' LEFT JOIN spip_asso_groupes_liaisons a_g_l ON a_m.id_auteur=a_g_l.id_auteur ':''), // from
    71                 " statut_interne LIKE '$statut_interne' AND statut_interne <> 'sorti'". ($id_groupe?' AND id_groupe='.intval($id_groupe):''), //where
    72                 '', // limit
    73                 'nom_famille, prenom, validite' // order by
    74         );
     94                'id_auteur, sexe, nom_famille, prenom, statut_interne, validite', "spip_asso_membres AS a_m $jointure_groupe", $critere, '', 'nom_famille, prenom, validite' );
    7595        $res = '';
    7696        while ($data = sql_fetch($query)) {
  • _plugins_/Association/Associaspip/exec/membres_groupe.php

    r66273 r66289  
    33 *  Associaspip, extension de SPIP pour gestion d'associations
    44 *
    5  * @copyright Copyright (c) 2007 Bernard Blazin & Francois de Montlivault
    6  * @copyright Copyright (c) 2010 Emmanuel Saint-James
     5 * @copyright Copyright (c) 2007 (v1) Bernard Blazin & Francois de Montlivault
     6 * @copyright Copyright (c) 2010--2011 (v2) Emmanuel Saint-James & Jeannot Lapin
    77 *
    88 *  @license http://opensource.org/licenses/gpl-license.php GNU Public License
  • _plugins_/Association/Associaspip/exec/plan_comptable.php

    r66074 r66289  
    11<?php
    22/***************************************************************************\
    3  *  Associaspip, extension de SPIP pour gestion d'associations             *
    4  *                                                                         *
    5  *  Copyright (c) 2007 Bernard Blazin & Fran�ois 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.   *
     3 *  Associaspip, extension de SPIP pour gestion d'associations
     4 *
     5 * @copyright Copyright (c) 2007 (v1) Bernard Blazin & Francois de Montlivault
     6 * @copyright Copyright (c) 2010--2011 (v2) Emmanuel Saint-James & Jeannot Lapin
     7 *
     8 *  @license http://opensource.org/licenses/gpl-license.php GNU Public License
    109\***************************************************************************/
    11 
    1210
    1311if (!defined('_ECRIRE_INC_VERSION'))
    1412        return;
    15 
    16 include_spip ('inc/navigation_modules');
    1713
    1814function exec_plan_comptable()
     
    2218                echo minipres();
    2319        } else {
     20                include_spip ('inc/navigation_modules');
    2421                onglets_association('plan_comptable', 'association');
    2522                // notice
  • _plugins_/Association/Associaspip/exec/suppr_categorie.php

    r66195 r66289  
    33 *  Associaspip, extension de SPIP pour gestion d'associations
    44 *
    5  * @copyright Copyright (c) 2007 Bernard Blazin & Francois de Montlivault
    6  * @copyright Copyright (c) 2010 Emmanuel Saint-James
     5 * @copyright Copyright (c) 2007 (v1) Bernard Blazin & Francois de Montlivault
     6 * @copyright Copyright (c) 2010--2011 (v2) Emmanuel Saint-James & Jeannot Lapin
    77 *
    88 *  @license http://opensource.org/licenses/gpl-license.php GNU Public License
     
    1414function exec_suppr_categorie()
    1515{
    16         if (!autoriser('associer', 'comptes')) {
     16        if (!autoriser('editer_profil', 'association')) {
    1717                include_spip('inc/minipres');
    1818                echo minipres();
  • _plugins_/Association/Associaspip/exec/suppr_destination.php

    r66195 r66289  
    33 *  Associaspip, extension de SPIP pour gestion d'associations
    44 *
    5  * @copyright Copyright (c) 2007 Bernard Blazin & Francois de Montlivault
    6  * @copyright Copyright (c) 2010 Emmanuel Saint-James
     5 * @copyright Copyright (c) 2007 (v1) Bernard Blazin & Francois de Montlivault
     6 * @copyright Copyright (c) 2010--2011 (v2) Emmanuel Saint-James & Jeannot Lapin
    77 *
    88 *  @license http://opensource.org/licenses/gpl-license.php GNU Public License
     
    1414function exec_suppr_destination()
    1515{
    16         if (!autoriser('associer', 'comptes')) {
     16        if (!autoriser('configurer_compta', 'association')) {
    1717                include_spip('inc/minipres');
    1818                echo minipres();
  • _plugins_/Association/Associaspip/exec/suppr_groupe.php

    r66195 r66289  
    33 *  Associaspip, extension de SPIP pour gestion d'associations
    44 *
    5  * @copyright Copyright (c) 2007 Bernard Blazin & Francois de Montlivault
    6  * @copyright Copyright (c) 2010 Emmanuel Saint-James
     5 * @copyright Copyright (c) 2007 (v1) Bernard Blazin & Francois de Montlivault
     6 * @copyright Copyright (c) 2010--2011 (v2) Emmanuel Saint-James & Jeannot Lapin
    77 *
    88 *  @license http://opensource.org/licenses/gpl-license.php GNU Public License
  • _plugins_/Association/Associaspip/exec/suppr_plan.php

    r66195 r66289  
    33 *  Associaspip, extension de SPIP pour gestion d'associations
    44 *
    5  * @copyright Copyright (c) 2007 Bernard Blazin & Francois de Montlivault
    6  * @copyright Copyright (c) 2010 Emmanuel Saint-James
     5 * @copyright Copyright (c) 2007 (v1) Bernard Blazin & Francois de Montlivault
     6 * @copyright Copyright (c) 2010--2011 (v2) Emmanuel Saint-James & Jeannot Lapin
    77 *
    88 *  @license http://opensource.org/licenses/gpl-license.php GNU Public License
     
    1414function exec_suppr_plan()
    1515{
    16         if (!autoriser('associer', 'comptes')) {
     16        if (!autoriser('configurer_compta', 'association')) {
    1717                include_spip('inc/minipres');
    1818                echo minipres();
  • _plugins_/Association/Associaspip/formulaires/imprimer_etiquettes.php

    r64953 r66289  
    44{
    55        include_spip('base/abstract_sql');
     6        include_spip('association_options');
    67        $valeurs = array(
    7                 'statut_interne'=>_request('statut_interne'),
     8                'statut_interne'=>association_passeparam_statut('interne'),
    89                'filtre_email'=>true
    910        );
     
    6061        include_spip('inc/acces');
    6162        include_spip('pdf/extends');
     63        include_spip('association_options');
    6264        $pas_horizontal = (($GLOBALS['association_metas']['etiquette_largeur_page']-$GLOBALS['association_metas']['etiquette_marge_gauche_page']-$GLOBALS['association_metas']['etiquette_marge_droite_page']-($GLOBALS['association_metas']['etiquette_nb_colonne']-1)*$GLOBALS['association_metas']['etiquette_espace_etiquettesl'])/$GLOBALS['association_metas']['etiquette_nb_colonne'])+$GLOBALS['association_metas']['etiquette_espace_etiquettesl'];
    6365        $pas_vertical = ($GLOBALS['association_metas']['etiquette_hauteur_page']-$GLOBALS['association_metas']['etiquette_marge_haut_page']-$GLOBALS['association_metas']['etiquette_marge_bas_page']-($GLOBALS['association_metas']['etiquette_nb_ligne']-1)*$GLOBALS['association_metas']['etiquette_espace_etiquettesh'])/$GLOBALS['association_metas']['etiquette_nb_ligne']+$GLOBALS['association_metas']['etiquette_espace_etiquettesh'];
     
    7981        $table = array('m'=>'spip_asso_membres', 'al'=>'spip_adresses_liens','a'=>'spip_adresses');
    8082        $where = "al.objet='auteur' AND al.id_objet=m.id_auteur AND al.id_adresse=a.id_adresse AND ( (code_postal<>'' AND ville<>'') OR (boite_postale<>'') )";
    81         $statut_interne = _request('statut_interne');
    82         if ($statut_interne=='') {
    83                 $statut_interne = 'tous';
    84         }
    85         if ($statut_interne!='tous'){
    86                 $where .= ' AND statut_interne = '.sql_quote($statut_interne);
    87         }
     83        list($statut_interne, $critere) = association_passeparam_statut('interne', 'defaut');
     84        $where .= $critere;
    8885        $filtre_categorie = _request('filtre_categorie');
    8986        if ($filtre_categorie){
     
    9996        include_spip('filtres','inc'); // http://doc.spip.org/@extraire_multi
    10097        while($val = sql_fetch($res)) {
    101                 if ($GLOBALS['association_metas']['etiquette_avec_civilite']) {
    102                         $vnom = trim($val['sexe'].' '.$val['nom_famille'].' '.$val['prenom']);
    103                 } else {
    104                         $vnom = $val['prenom'].' '.$val['nom_famille'];
    105                 }
    106                 // cf. : http://fr.wikipedia.org/wiki/Adresse_postale#Exemples
    107                 $etiquette = array(
     98                $etiquette = array( // cf. : http://fr.wikipedia.org/wiki/Adresse_postale#Exemples
    10899                        'ligne1'=>$val['id_auteur'],
    109                         'ligne2'=>$vnom,
     100                        'ligne2'=>association_formater_nom( ($GLOBALS['association_metas']['etiquette_avec_civilite']?$val['sexe']:''), $val['prenom'], $val['nom_famille'], ''),
    110101                        'ligne4'=>$val['voie'],
    111102                        'ligne3'=>$val['complement'],
     
    114105                        'ligne7'=>($val['pays']==$GLOBALS['association_metas']['pays'] ? '' : extraire_multi(sql_getfetsel('nom','spip_pays', (is_numeric($val['pays'])?'id_pays':'code').'='.sql_quote($val['pays']) ,'','')) ), // pas terrible de devoir faire une requete separee pour une adresse, mais ceci ne devrait pas se produire souvent (en general)
    115106                );
    116                 if((fmod($indice,$GLOBALS['association_metas']['etiquette_nb_colonne']*$GLOBALS['association_metas']['etiquette_nb_ligne'])==0)and ($indice>0)) {
     107                if ( (fmod($indice,$GLOBALS['association_metas']['etiquette_nb_colonne']*$GLOBALS['association_metas']['etiquette_nb_ligne'])==0)and ($indice>0) ) {
    117108                        $pdf->AddPage();
    118109                        $num_page++;
  • _plugins_/Association/Associaspip/formulaires/relancer_adherents.php

    r64081 r66289  
    2626        $contexte['_sujet'] = $sujet;
    2727        $contexte['_message'] = $message;
    28         $id_tab = _request('id');
     28        $id_tab = association_passeparam_id();
    2929        $id_tab = (isset($id_tab)) ? $id_tab:array();
    30         $statut_tab = _request('statut');
     30        $statut_tab = association_passeparam_statut();
    3131        $statut_tab = (isset($statut_tab)) ? $statut_tab:array();
    3232        $contexte['_nb_messages'] = count ($id_tab);
  • _plugins_/Association/Associaspip/lang/asso_fr.php

    r65937 r66289  
    345345        'aide_gerer_autorisations' => 'Pour donner des autorisations, ajouter simplement la personne au groupe ad&eacute;quat. Voir la <a href="http://www.spip-contrib.net/Associaspip#restriction_access">documentation online</a> pour plus de d&eacute;tails.',
    346346        # nom des groupes d'autorisations (par ordre croissant d'id_groupe)
    347         'groupe_1' => 'Editer les droits acc&egrave;s',
    348         'groupe_2' => 'Editer les groupes',
     347        'groupe_1' => '&Eacute;diter les droits acc&egrave;s',
     348        'groupe_2' => '&Eacute;diter les groupes',
    349349        'groupe_3' => 'Voir les groupes',
     350        'groupe_10' => 'Configurer la comptabilit&eacute;',
     351        'groupe_11' => '&Eacute;diter les op&eacute;rations comptables',
     352        'groupe_12' => 'Voir la comptabilit&eacute;',
    350353        'groupe_20' => "Editer le profil de l'association",
    351354        'groupe_21' => "Voir le profil de l'association",
    352         'groupe_30' => 'Editer le profil des membres',
     355        'groupe_30' => '&Eacute;diter le profil des membres',
    353356        'groupe_31' => 'Voir le profil des membres',
     357        'groupe_32' => 'Synchroniser les membres',
     358        'groupe_33' => 'Relancer les membres',
    354359# Association (accueil)
    355360        'association_infos_contacts' => "Profil de l'association", // information sur l'association (objet, declaration, etc.), ses coordonnees (adresse, numero et email principaux) et les contacts (nom, fonction, numero, email)
Note: See TracChangeset for help on using the changeset viewer.