Changeset 65375 in spip-zone


Ignore:
Timestamp:
Aug 30, 2012, 10:28:54 AM (7 years ago)
Author:
gildas.cotomale@…
Message:

documentationet harmonisation du nommage des fonctions et corrections connexes

Location:
_plugins_/Association/Associaspip
Files:
74 edited

Legend:

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

    r64269 r65375  
    2121        $date = _request('date');
    2222        $journal = _request('journal');
    23         $montant =  association_recupere_montant(_request('montant'));
     23        $montant =  association_recuperer_montant('montant');
    2424        $justification = _request('justification');
    2525        $validite = _request('validite');
  • _plugins_/Association/Associaspip/action/ajouter_participations.php

    r58798 r65375  
    2323        $non_membres = _request('non_membres');
    2424        $inscrits = intval(_request('inscrits'));
    25         $montant = association_recupere_montant(_request('montant'));
     25        $montant = association_recuperer_montant('montant');
    2626        $date_paiement = _request('date_paiement');
    2727        $journal = _request('journal');
  • _plugins_/Association/Associaspip/action/editer_asso_activites.php

    r63500 r65375  
    1919    $id_activite = $securiser_action();
    2020    $erreur = '';
    21     $date_paiement = association_recupere_date(_request('date_paiement'));
     21    $date_paiement = association_recuperer_date('date_paiement');
    2222    $participant = _request('nom');
    2323    $id_adherent = intval(_request('id_adherent'));
     
    2727    }
    2828    $evenement = intval(_request('id_evenement'));
    29     $montant = association_recupere_montant(_request('montant'));
    30     $inscrits = association_recupere_montant(_request('inscrits'));
     29    $montant = association_recuperer_montant('montant');
     30    $inscrits = association_recuperer_montant('inscrits');
    3131    $modifs = array(
    3232        'id_evenement' => $evenement,
     
    3636        'montant' => $montant,
    3737        'date_paiement' => $date_paiement,
    38         'date_inscription' => association_recupere_date(_request('date_inscription')),
     38        'date_inscription' => association_recuperer_date('date_inscription'),
    3939        'commentaire' => _request('commentaire'),
    4040    );
  • _plugins_/Association/Associaspip/action/editer_asso_categories.php

    r63534 r65375  
    2323        'libelle' => _request('libelle'),
    2424        'valeur' => _request('valeur'),
    25         'duree' => association_recupere_montant(_request('duree')),
    26         'cotisation' => association_recupere_montant(_request('cotisation')),
     25        'duree' => association_recuperer_montant('duree'),
     26        'cotisation' => association_recuperer_montant('cotisation'),
    2727        'commentaires' => _request('commentaire'),
    2828    );
  • _plugins_/Association/Associaspip/action/editer_asso_comptes.php

    r63500 r65375  
    2020        $erreur = '';
    2121        include_spip('inc/association_comptabilite');
    22         $date = association_recupere_date(_request('date'));
     22        $date = association_recuperer_date('date');
    2323        $imputation = _request('imputation');
    24         $recette = association_recupere_montant(_request('recette'));
    25         $depense = association_recupere_montant(_request('depense'));
     24        $recette = association_recuperer_montant('recette');
     25        $depense = association_recuperer_montant('depense');
    2626        $justification = _request('justification');
    2727        $journal = _request('journal');
  • _plugins_/Association/Associaspip/action/editer_asso_dons.php

    r63500 r65375  
    1919        $id_don = $securiser_action();
    2020        $erreur = '';
    21         $date_don = association_recupere_date(_request('date_don'));
     21        $date_don = association_recuperer_date('date_don');
    2222        $bienfaiteur = _request('bienfaiteur');
    2323        $id_adherent = intval(_request('id_adherent'));
     
    2626                $bienfaiteur = association_calculer_nom_membre($data['sexe'], $data['prenom'], $data['nom_famille']);
    2727        }
    28         $argent = association_recupere_montant(_request('argent'));
    29         $valeur = association_recupere_montant(_request('valeur'));
     28        $argent = association_recuperer_montant('argent');
     29        $valeur = association_recuperer_montant('valeur');
    3030        $modifs = array(
    3131                'date_don' => $date_don,
  • _plugins_/Association/Associaspip/action/editer_asso_exercices.php

    r63534 r65375  
    2222        'intitule' => _request('intitule'),
    2323        'commentaire' => _request('commentaire'),
    24         'debut' => association_recupere_date(_request('debut')),
    25         'fin' => association_recupere_date(_request('fin')),
     24        'debut' => association_recuperer_date('debut'),
     25        'fin' => association_recuperer_date('fin'),
    2626    );
    2727    include_spip('base/association');
  • _plugins_/Association/Associaspip/action/editer_asso_membres.php

    r63534 r65375  
    2020        $modifs = array(
    2121                'commentaire' => _request('commentaire'),
    22                 'validite' => association_recupere_date(_request('validite')),
     22                'validite' => association_recuperer_date('validite'),
    2323                'categorie' => _request('categorie'),
    2424                'statut_interne' => _request('statut_interne'),
     
    2727        );
    2828        // pour ne pas ecraser les champs quand ils sont desactives
    29         if ($GLOBALS['association_metas']['civilite']=='on')
     29        if ($GLOBALS['association_metas']['civilite'])
    3030                $modifs['sexe'] = _request('sexe');
    31         if ($GLOBALS['association_metas']['prenom']=='on')
     31        if ($GLOBALS['association_metas']['prenom'])
    3232                $modifs['prenom'] = _request('prenom');
    33         if ($GLOBALS['association_metas']['id_asso']=='on')
     33        if ($GLOBALS['association_metas']['id_asso'])
    3434                $modifs['id_asso'] = _request('id_asso');
    3535        include_spip('base/association');
  • _plugins_/Association/Associaspip/action/editer_asso_plan.php

    r63534 r65375  
    2222        include_spip('base/association');
    2323        $champs = array(
    24                 'date_anterieure' => association_recupere_date(_request('date_anterieure')),
     24                'date_anterieure' => association_recuperer_date('date_anterieure'),
    2525                'active' => (_request('active')?true:false), // active est un booleen dans la base, et la request recupere l'etat de la checkbox
    2626                'code' => $code,
    2727                'intitule' => _request('intitule'),
    2828                'classe' => _request('classe'),
    29                 'solde_anterieur' => association_recupere_montant(_request('solde_anterieur')),
     29                'solde_anterieur' => association_recuperer_montant('solde_anterieur'),
    3030                'commentaire' => _request('commentaire'),
    3131                'type_op' => _request('type_op'),
  • _plugins_/Association/Associaspip/action/editer_asso_prets.php

    r63500 r65375  
    2626        $emprunteur = association_calculer_nom_membre($data['sexe'], $data['prenom'], $data['nom_famille']);
    2727    }
    28     $date_sortie = association_recupere_date(_request('date_sortie'));
    29     $date_retour = association_recupere_date(_request('date_retour'));
    30     $date_caution1 = association_recupere_date(_request('date_caution1'));
    31     $date_caution0 = association_recupere_date(_request('date_caution0'));
    32     $duree = association_recupere_montant(_request('duree'));
    33     $montant = association_recupere_montant(_request('montant'));
    34     $caution = association_recupere_montant(_request('prix_caution'));
     28    $date_sortie = association_recuperer_date('date_sortie');
     29    $date_retour = association_recuperer_date('date_retour');
     30    $date_caution1 = association_recuperer_date('date_caution1');
     31    $date_caution0 = association_recuperer_date('date_caution0');
     32    $duree = association_recuperer_montant('duree');
     33    $montant = association_recuperer_montant('montant');
     34    $caution = association_recuperer_montant('prix_caution');
    3535    $fiso_sortie = $date_sortie.'T'._request('heure_sortie').':00'; // si on n'indique que l'heure, on s'assure que ce sera bien compris hh:00 et non 00:mm sinon c'est hh:mm:00 qui est transmis...
    3636    $fiso_retour = $date_retour.'T'._request('heure_retour').':00'; // idem...
  • _plugins_/Association/Associaspip/action/editer_asso_ressources.php

    r63500 r65375  
    2020    $erreur = '';
    2121    $code= _request('code');
    22     $date_achat = association_recupere_date(_request('date_acquisition'));
    23     $prix_achat = association_recupere_montant(_request('prix_acquisition'));
     22    $date_achat = association_recuperer_date('date_acquisition');
     23    $prix_achat = association_recuperer_montant('prix_acquisition');
    2424    $quantite = floatval(_request('quantite'));
    2525    $statut = $quantite ? (_request('suspendu')?"-$quantite":$quantite) : _request('statut');
     
    2828        'code' => $code,
    2929        'intitule' => _request('intitule'),
    30         'prix_caution' => association_recupere_montant(_request('prix_caution')),
    31         'pu' => association_recupere_montant(_request('pu')),
    32         'ud' => _request('pu'),
     30        'prix_caution' => association_recuperer_montant('prix_caution'),
     31        'pu' => association_recuperer_montant('pu'),
     32        'ud' => _request('ud'),
    3333        'statut' => $statut,
    3434        'commentaire' => _request('commentaire'),
  • _plugins_/Association/Associaspip/action/editer_asso_ventes.php

    r63500 r65375  
    1818        $id_vente = $securiser_action();
    1919        $erreur = '';
    20         $date_vente = association_recupere_date(_request('date_vente'));
     20        $date_vente = association_recuperer_date('date_vente');
    2121        $article = _request('article');
    2222        $code = _request('code');
     
    2727                $acheteur = association_calculer_nom_membre($data['sexe'], $data['prenom'], $data['nom_famille']);
    2828        }
    29         $quantite = association_recupere_montant(_request('quantite'));
    30         $date_envoi = association_recupere_date(_request('date_envoi'));
    31         $frais_envoi = association_recupere_montant(_request('frais_envoi'));
    32         $prix_unite =  association_recupere_montant(_request('prix_vente'));
     29        $quantite = association_recuperer_montant('quantite');
     30        $date_envoi = association_recuperer_date('date_envoi');
     31        $frais_envoi = association_recuperer_montant('frais_envoi');
     32        $prix_unite =  association_recuperer_montant('prix_vente');
    3333        if (test_plugin_actif('CATALOGUE') && intval($code)==$code) { // le plugin "Catalogue est actif" : certains champs peuvent ne pas etre saisis...
    3434                if ($code>0) { // c'est une variante
  • _plugins_/Association/Associaspip/association_options.php

    r65343 r65375  
    11<?php
    22/***************************************************************************\
    3  *  Associaspip, extension de SPIP pour gestion d'associations             *
    4  *                                                                         *
    5  *  Copyright (c) 2007 Bernard Blazin & Fran�ois de Montlivault            *
    6  *  Copyright (c) 2010 Emmanuel Saint-James                                *
    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 Bernard Blazin & Francois de Montlivault
     6 * @copyright Copyright (c) 2010 Emmanuel Saint-James
     7 *
     8 *  @license http://opensource.org/licenses/gpl-license.php GNU Public License
    109\***************************************************************************/
     10
    1111
    1212if (!defined('_ECRIRE_INC_VERSION'))
    1313        return;
    1414
    15 // Le premier element indique un ancien membre
     15
     16/*****************************************
     17 * Initialisations
     18**/
     19
     20/**
     21 * @global array $GLOBALS['association_liste_des_statuts']
     22 * @name $association_liste_des_statuts
     23 */
    1624$GLOBALS['association_liste_des_statuts'] =
    17   array('sorti','prospect','ok','echu','relance');
    18 
     25  array('sorti','prospect','ok','echu','relance'); // Le premier element indique un ancien membre
     26
     27/**
     28 * @global array $GLOBALS['association_styles_des_statuts']
     29 * @name $association_styles_des_statuts
     30 */
    1931$GLOBALS['association_styles_des_statuts'] = array(
    2032        'echu' => 'impair',
     
    2537);
    2638
     39/**
     40 * @var const _DIR_PLUGIN_ASSOCIATION_ICONES
     41 *   Repertoire de base des images (icones/logos/etc) d'Associaspip
     42 */
    2743define('_DIR_PLUGIN_ASSOCIATION_ICONES', _DIR_PLUGIN_ASSOCIATION.'img_pack/');
    2844
    29 // boutons d'action (si page de script indiquee) dans les listing
    30 function association_bouton($texte, $image, $script='', $args='', $img_attributes='')
    31 {
    32         $res = ($script ? '<a href="'.generer_url_ecrire($script, $args).'">' : '' );
     45
     46/*****************************************
     47 * @defgroup association_bouton
     48 * Affichage HTML : boutons d'action dans les listing
     49 *
     50** @{ */
     51
     52/**
     53 * boutons d'action (si page de script indiquee) generique
     54 *
     55 * @param string $texte
     56 *   libelle du bouton
     57 * @param string $image
     58 *   nom du fichier de l'icone du bouton
     59 * @param string $script
     60 *   nom du fichier de traitement appele par le bouton (dans un lien "?exec=...")
     61 * @param string $exec_args
     62 *   autres parametres (outre le nom du script) passes a l'URL
     63 * @param string $img_attrs
     64 *   autres attributs passes a la balise affichant l'image
     65 * @return string $res
     66 *   code HTML du bouton
     67 *
     68 * @todo voir s'il est possible d'utiliser plutot la fonction bouton_action($libelle, $url, $class="", $confirm="", $title="") definie dans /ecrire/inc/filtres.php
     69 */
     70function association_bouton_faire($texte, $image, $script='', $exec_args='', $img_attrs='')
     71{
     72        $res = ($script ? '<a href="'.generer_url_ecrire($script, $exec_args).'">' : '' );
    3373        $res .= '<img src="'._DIR_PLUGIN_ASSOCIATION_ICONES.$image.'" alt="';
    3474        $res .= ($texte ? _T('asso:'.$texte).'" title="'._T('asso:'.$texte) : ' ' );
    35         $res .= '" '.$img_attributes.' />';
     75        $res .= '" '.$img_attrs.' />';
    3676        $res .= ($script?'</a>':'');
    3777        return $res;
    3878}
    3979
    40 // cas des boutons de vue non modifiable ou apercu dans les listing
     80/**
     81 * @name association_bouton_<agir>
     82 * cas specifique de :
     83 *
     84 * @param string $objet
     85 *   nom de l'objet pour lequel on genere le bouton : c'est ce nom, prefixe
     86 *   d'un <mot> selon une convention, qui correspond au fichier d'execution
     87 *   appele par le lien du bouton
     88 * @param int|string $args
     89 *   identifiant de l'objet (le nom du parametre est alors "id")
     90 *   ou chaine des parametres passes a l'URL
     91 * @param string $tag
     92 *   balise-HTML encadrante (doit fonctionner par paire ouvrante et fermante) ;
     93 *   "TD" par defaut car dans Associaspip un tel bouton est genere dans une cellule de tableau
     94 * @return string $res
     95 *   code HTML du bouton
     96 */
     97//@{
     98
     99/**
     100 * bouton de vue non modifiable ou apercu
     101 * <mot> = voir_
     102 */
    41103function association_bouton_afficher($objet, $args='', $tag='td')
    42104{
    43105        $res = ($tag?"<$tag class='action'>":'');
    44         $res .= association_bouton('bouton_voir', 'voir-12.png', "voir_$objet", is_numeric($args)?"id=$args":$args, 'width="12" height="12" alt="&#x2380;"');
     106        $res .= association_bouton_faire('bouton_voir', 'voir-12.png', "voir_$objet", is_numeric($args)?"id=$args":$args, 'width="12" height="12" alt="&#x2380;"');
    45107        $res .= ($tag?"</$tag>":'');
    46108        return $res;
    47109}
    48110
    49 // cas des boutons d'edition (modification) dans les listing
     111/**
     112 * bouton d'edition (modification)
     113 * <mot> = edit_
     114 */
    50115function association_bouton_modifier($objet, $args='', $tag='td')
    51116{
    52117        $res = ($tag?"<$tag class='action'>":'');
    53         $res .= association_bouton('bouton_modifier', 'edit-12.gif', "edit_$objet", is_numeric($args)?"id=$args":$args, 'width="12" height="12" alt="&#x2380;"');
     118        $res .= association_bouton_faire('bouton_modifier', 'edit-12.gif', "edit_$objet", is_numeric($args)?"id=$args":$args, 'width="12" height="12" alt="&#x2380;"');
    54119        $res .= ($tag?"</$tag>":'');
    55120        return $res;
    56121}
    57122
    58 // cas des boutons d'effacement (suppression) dans les listing
    59 // ToDo: voir s'il est possible d'utiliser plutot la fonction bouton_action($libelle, $url, $class="", $confirm="", $title="") definie dans /ecrire/inc/filtres.php
     123/**
     124 * bouton d'effacement (suppression)
     125 * <mot> = suppr_
     126 */
    60127function association_bouton_supprimer($objet, $args='', $tag='td')
    61128{
    62129        $res = ($tag?"<$tag class='action'>":'');
    63         $res .= association_bouton('bouton_supprimer', 'suppr-12.gif', "suppr_$objet", is_numeric($args)?"id=$args":$args, 'width="12" height="12" alt="&#x2327;"'); // 8 pluriel contre 3 singulier
     130        $res .= association_bouton_faire('bouton_supprimer', 'suppr-12.gif', "suppr_$objet", is_numeric($args)?"id=$args":$args, 'width="12" height="12" alt="&#x2327;"'); // 8 pluriel contre 3 singulier
    64131        $res .= ($tag?"</$tag>":'');
    65132        return $res;
    66133}
    67134
    68 function request_statut_interne()
    69 {
    70         $statut_interne = _request('statut_interne');
    71         if (in_array($statut_interne, $GLOBALS['association_liste_des_statuts'] ))
    72                 return 'statut_interne='. sql_quote($statut_interne);
    73         elseif ($statut_interne=='tous')
    74                 return "statut_interne LIKE '%'";
    75         else {
    76                 set_request('statut_interne', 'defaut');
    77                 $a = $GLOBALS['association_liste_des_statuts'];
    78                 array_shift($a);
    79                 return sql_in('statut_interne', $a);
    80         }
    81 }
    82 
    83 // demande de confirmation dans
    84 function bloc_confirmer_suppression($type,$id,$retour='')
    85 {
    86         $res = '<p><strong>'. _T('asso:vous_aller_effacer', array('quoi'=>'<i>'._T('asso:objet_num',array('objet'=>$type,'num'=>$id)).'</i>') ) .'</strong></p>';
    87         $res .= '<p class="boutons"><input type="submit" value="'._T('asso:bouton_confirmer').'" /></p>';
    88         echo redirige_action_post("supprimer_{$type}s", $id, ($retour?$retour:$type.'s'), '', $res);
    89 
    90 }
    91 
    92 // recupere dans une chaine un champ d'une table spip_asso_XXs pour un enregistrement identifie par son id_XX
    93 // un dernier drapeau mis a FALSE permet de traiter le cas des tables _plan|destination|destination_op qui n'ont pas de "s" final...
    94 /* conversion d'anciennes fonctions :
    95  * exercice_intitule($exo) <=> sql_asso1champ('exercice', $exo, 'intitule')
    96  * exercice_date_debut($exercice) <=> sql_asso1champ('exercice', $exercice, 'debut')
    97  * exercice_date_fin($exercice) <=> sql_asso1champ('exercice', $exercice, 'fin')
    98  */
    99 function sql_asso1champ($table, $id, $champ, $pluriel=TRUE)
    100 {
    101         return sql_getfetsel($champ, "spip_asso_$table".($pluriel?'s':''), "id_$table=".intval($id));
    102 }
    103 
    104 // recupere dans un tableau associatif un enregistrement d'une table spip_asso_XX identifie par son id_XX
    105 // un dernier drapeau mis a FALSE permet de traiter le cas des tables _plan|destination|destination_op qui n'ont pas de "s" final...
    106 function sql_asso1ligne($table, $id, $pluriel=TRUE)
    107 {
    108         return sql_fetsel('*', "spip_asso_$table".($pluriel?'s':''), "id_$table=".intval($id));
    109 }
    110 
    111 // Affichage micro-formate d'un nom complet (de membre) suivant la configuration du plugin (i.e. champs geres ou non)
     135//@}
     136
     137/** @} */
     138
     139
     140/*****************************************
     141 * @defgroup association_calculer
     142 * Affichage HTML dans les listing d'une chaine calculee selon la configuration
     143 *
     144** @{ */
     145
     146/**
     147 * Affichage d'un nom complet (de membre) suivant la configuration du plugin (i.e. champs geres ou non)
     148 *
     149 * @param string $civilite
     150 *   Civilite (M./Mme/Mle) ou titre (Dr./Pr./Mgr/Gle/etc.)
     151 * @param string $prenom
     152 *   Prenom(s)
     153 * @param string $nom
     154 *   Nom de famille
     155 * @param string $html_tag
     156 *   Indique la balise-HTML (paire ouvrante/fermante) servant a grouper le
     157 *   resultat. Sa presence (rien par defaut) indique d'appliquer le micro-
     158 *   formatage du groupe.
     159 * @return string $res
     160 *   Chaine du nom complet du membre, micro-formate ou non.
     161 */
    112162function association_calculer_nom_membre($civilite, $prenom, $nom, $html_tag='')
    113163{
     
    116166                $res = '<'.$html_tag.' class="'. (($civilite || $prenom)?'n':'fn') .'">';
    117167        }
    118         if ($GLOBALS['association_metas']['civilite']=='on' && $civilite) {
     168        if ($GLOBALS['association_metas']['civilite'] && $civilite) {
    119169                $res .= ($html_tag?'<span class="honorific-prefix">':'') .$civilite. ($html_tag?'</span>':'') .' ';
    120170        }
    121         if ($GLOBALS['association_metas']['prenom']=='on' && $prenom) {
     171        if ($GLOBALS['association_metas']['prenom'] && $prenom) {
    122172                $res .= ($html_tag?'<span class="given-name">':'') .$prenom. ($html_tag?'</span>':'') .' ';
    123173        }
     
    131181}
    132182
    133 // Affichage (dans un listing) du nom avec le lien vers la page correspondante
    134 // En fait c'est pour les modules dons/ventes/activites/prets ou l'acteur (donateur/acheteur/inscrit/emprunteur)
    135 // peut etre un membre/auteur (son id_acteur est alors renseigne) mais pas forcement son nom (qui peut etre different)
    136 // ou peut etre une personne exterieure a l'association (on a juste le nom obligatoire alors)
     183/**
     184 * Affichage du nom avec le lien vers la page correspondante
     185 *
     186 * En fait c'est pour les modules dons/ventes/activites/prets ou l'acteur (donateur/acheteur/inscrit/emprunteur)
     187 * peut etre un membre/auteur (son id_acteur est alors renseigne) mais pas
     188 * forcement son nom (qui peut etre different)
     189 * ou peut etre une personne exterieure a l'association (on a juste le nom alors
     190 * obligatoire)
     191 *
     192 * @param string $nom
     193 *   Nom complet affiche
     194 * @param int $id
     195 *   ID de l'objet lie
     196 * @param string $type
     197 *   Raccourci utilise pour faire le lien
     198 *   Par defaut : "membre"
     199 * @param string $html_tag
     200 *   Balise-HTML (paire ouvrante/fermante) encadrante
     201 * @return string $res
     202 *   Lien interne SPIP
     203 */
    137204function association_calculer_lien_nomid($nom, $id, $type='membre', $html_tag='')
    138205{
     
    154221}
    155222
    156 // Affichage de date localisee et micro-formatee
    157 function association_datefr($iso_date, $css_class='', $htm_abbr='abbr')
    158 {
    159         $res = ($css_class?"<$htm_abbr class='$css_class' title='$iso_date'>":'');
     223/** @} */
     224
     225
     226/*****************************************
     227 * @defgroup association_formater
     228 * Affichage HTML d'une chaine localisee et micro-formatee.
     229 * La chaine initiale est (essentiellement) issue de la base de donnees apres
     230 * passage par un @ref association_recuperer si necessaire.
     231 *
     232 * @note association_formater_<quoi> s'appelait association_<quoi>fr ;
     233 * "fr" initialement pour FRanciser puis est devenu synonyme de FoRmat
     234 *
     235** @{ */
     236
     237/**
     238 *  Affichage de date localisee et micro-formatee
     239 *
     240 * @param string $iso_date
     241 *   Date au format ISO-8601
     242 *   http://fr.wikipedia.org/wiki/ISO_8601#Date_et_heure
     243 * @param string $css_class
     244 *   Classe(s) CSS (separees par un espace) a rajouter
     245 *   Normalement : dtstart|dtend
     246 * @param string $html_tag
     247 *   Balise-HTML (paire ouvrante/fermante) encadrante
     248 *   Par defaut : "abbr"
     249 *   http://www.alsacreations.com/tuto/lire/1222-microformats-design-patterns.html#datetime-design-pattern
     250 *   Desactiver (chaine vide) pour ne pas micro-formater
     251 * @return string $res
     252 *   Date formatee
     253 */
     254function association_formater_date($iso_date, $css_class='', $htm_tag='abbr')
     255{
     256        $res = '';
     257        if ($html_tag)
     258                $res = "<$html_tag ". ($css_class?"class='$css_class' ":'') ."title='$iso_date'>";
    160259        $res .= affdate_base($iso_date, 'entier'); // on fait appel a la fonction centrale des filtres SPIP... comme ca c'est traduit et formate dans les langues supportees ! si on prefere les mois en chiffres et non en lettre, y a qu'a changer les chaines de langue date_mois_XX
    161         $res .= ($css_class?"</$htm_abbr>":'');
     260        if ($html_tag)
     261                $res .= ($html_tag?"</$htm_tag>":'');
    162262        return $res;
    163263}
    164264
    165 function association_recupere_date($valeur)
    166 {
    167         if ($valeur!='') {
    168                 $valeur = preg_replace('/\D/', '-', $valeur, 2); // la limitation a 2 separateurs permet de ne transformer que la partie "date" s'il s'agit d'un "datetime" par exemple.
    169         }
    170         return $valeur;
    171 }
    172 
    173 function association_verifier_date($date, $nullable=FALSE)
    174 {
    175         if ( $nullable && ($date=='0000-00-00' || !$date) )
    176                 return FALSE;
    177         if (!preg_match('/^\d{4}\D\d{2}\D\d{2}$/', $date)) // annee sur 4 chiffres ; mois sur 2 chiffres ; jour sur 2 chiffres ; separateur est caractere non numerique quelconque...
    178 #       if (!preg_match('/^\d{4}\D(\d|1[0-2])\D([1-9]|0[1-9]|[12]\d|3[01])$/', $date)) // annee sur 4 chiffres ; mois sur 1 ou 2 chiffres entre 1 et 12 ; jour sur 1 ou 2 chiffres eentre 1 et 31 ; separateur est n'importe quel caractere ne representant pas un chiffre arabe de la notation decimale standard...
    179                 return _T('asso:erreur_format_date', array('date'=>$date) ); // ...c'est un petit plus non documente (la documentation et le message d'erreur stipulent AAAA-MM-JJ : mois et jours toujours sur deux chiffres avec donc zero avant si inferieur a 10, separateur est tiret)
    180         list($annee, $mois, $jour) = preg_split('/\D/', $date);
    181         if (!checkdate($mois, $jour, $annee)) // la date doit etre valide : pas de 30 fevrier ou de 31 novembre par exemple.
    182                 return _T('asso:erreur_valeur_date', array('date'=>$date) );
    183 //      return FALSE;
    184 }
    185 
    186 // Affichage de duree localisee et micro-formatee
    187 // Nota: les cas de minutes/secondes doivent etre specifie comme des heures au format ISO...
    188 function association_dureefr($nombre, $unite='', $htm_abbr='abbr')
    189 {
    190         $frmt_h = '';
    191         $frmt_m = 'P';
    192         switch(strtoupper($unite)) { // http://ufxtract.com/testsuite/documentation/iso-duration.htm
    193                 case 'Y' : // year
    194                 case 'A' : // annee
    195                         $nombre = intval($nombre);
    196                         $frmt_m .= $nombre.'Y';
    197                         $valeur = association_nbrefr($nombre,0);
    198                         $unite = ($nombre<=1) ? _T('local:an') : _T('local:ans');
    199                         break;
    200                 case 'M' : // month/mois
    201                         $nombre = intval($nombre);
    202                         $frmt_m .= $nombre.'M';
    203                         $valeur = association_nbrefr($nombre,0);
    204                         $unite = ($nombre<=1) ? _T('spip:date_un_mois') : _T('spip:date_mois');
    205                         break;
    206                 case 'W' : // week
    207                 case 'S' : // semaine
    208                         $nombre = intval($nombre);
    209                         $frmt_m .= $nombre.'W';
    210                         $valeur = association_nbrefr($nombre,0);
    211                         $unite = ($nombre<=1) ? _T('spip:date_une_semaine') : _T('spip:date_semaines');
    212                         break;
    213                 case 'D' : // day
    214                 case 'J' : // jour
    215                         $nombre = intval($nombre);
    216                         $frmt_m .= $nombre.'D';
    217                         $valeur = association_nbrefr($nombre,0);
    218                         $unite = ($nombre<=1) ? _T('local:jour') : _T('spip:date_jours');
    219                         break;
    220                 case 'H' : // hour/heure
    221                         $frmt_m .= 'T'.str_replace('00M', '',  str_replace(':','H',$nombre.':00').'M' );
    222                         $valeur = association_nbrefr($nombre,0);
    223                         if (intval($nombre)>1)
    224                                 $unite = _T('spip:date_heures');
    225                         elseif (is_numeric($nombre))
    226                                 $unite = _T('spip:date_une_heure');
    227                         elseif (strstr($nombre,'0:00'))
    228                                 $unite = _T('spip:date_une_minute');
    229                         else {
    230                                 $nombre = explode(':',$nombre);
    231                                 $frmt_h = _T('spip:date_fmt_heures_minutes', array('h'=>$nombre[0],'m'=>$nombre[1]));
    232                         }
    233                         break;
    234                 case 'T' : // (full) ISO Time : no check...
    235                         $frmt_m .= 'T'.str_replace( array('HM','HS','MS','00H','00M'), array('H','H','M'), preg_replace('m:m','M',preg_replace('h:h','H',$nombre,1),1).'S' );
    236                         $nombre = explode(':',$nombre,2);
    237                         if ($nombre[0]>24) { // http://dev.mysql.com/doc/refman/4.1/en/time.html
    238                                 $nombre['-1'] = intval($nombre[0]/24);
    239                                 $nombre[0] = $nombre[0]%24;
    240                         }
    241                         switch($nombre['-1']) { // nombre de jours
    242                                 case 0:
    243                                 case '':
    244                                         $frmt_h = '';
    245                                         break;
    246                                 case 1:
    247                                         $frmt_h = _T('duree_temps', array('nombre'=>1,'unite'=>_T('local:jour')));
    248                                         break;
    249                                 default:
    250                                         $frmt_h =  _T('duree_temps', array('nombre'=>association_nbrefr($nommbre['-1'],0),'unite'=>_T('spip:date_jours')));
    251                                         break;
    252                         }
    253                         if ($nombre[0])
    254                                 $frmt_h .= ', ';
    255                         switch($nombre[0]) { // nombre d'heures
    256                                 case 0:
    257                                         $frmt_h .= '';
    258                                         break;
    259                                 case 1:
    260                                         $frmt_h .= _T('duree_temps', array('nombre'=>1,'unite'=>_T('spip:date_une_heure')));
    261                                         break;
    262                                 default:
    263                                         $frmt_h .= _T('duree_temps', array('nombre'=>association_nbrefr($nombre[0],0),'unite'=>_T('spip:date_heures')));
    264                                         break;
    265                         }
    266                         if ($nombre[1])
    267                                 $frmt_h .= ', ';
    268                         switch($nombre[1]) { // nombre de minutes
    269                                 case 0:
    270                                         $frmt_h .= '';
    271                                         break;
    272                                 case 1:
    273                                         $frmt_h .= _T('duree_temps', array('nombre'=>1,'unite'=>_T('spip:date_une_minute')));
    274                                         break;
    275                                 default:
    276                                         $frmt_h .= _T('duree_temps', array('nombre'=>association_nbrefr($nombre[1],0),'unite'=>_T('spip:date_minutes')));
    277                                         break;
    278                         }
    279                         if ($nombre[2])
    280                                 $frmt_h .= ', ';
    281                         switch($nombre[2]) { // nombre de secondes
    282                                 case 0:
    283                                         $frmt_h .= '';
    284                                         break;
    285                                 case 1:
    286                                         $frmt_h .= _T('duree_temps', array('nombre'=>1,'unite'=>_T('spip:date_une_seconde')));
    287                                         break;
    288                                 default:
    289                                         $frmt_h .= _T('duree_temps', array('nombre'=>association_nbrefr($nombre[2],0),'unite'=>_T('spip:date_secondes')));
    290                                         break;
    291                         }
    292                         $frmt_h .= '. ';
    293                         break;
    294                 case 'I' : // (full) ISO DateTime or Date : no check !!!
    295                 default :
    296                         $frmt_m .= $nombre;
    297                         $nombre = explode('T',$nombre,2);
    298                         $ladate = explode(':',$nombre[0]);
    299                         switch($ladate[0]) { // nombre d'annee
    300                                 case 0:
    301                                 case '':
    302                                         $frmt_h = '';
    303                                         break;
    304                                 case 1:
    305                                         $frmt_h = _T('duree_temps', array('nombre'=>1,'unite'=>_T('local:an')));
    306                                         break;
    307                                 default:
    308                                         $frmt_h =  _T('duree_temps', array('nombre'=>association_nbrefr($ladate[0],0),'unite'=>_T('local:ans')));
    309                                         break;
    310                         }
    311                         if ($ladate[1])
    312                                 $frmt_h .= ', ';
    313                         switch($ladate[1]) { // nombre de mois
    314                                 case 0:
    315                                         $frmt_h .= '';
    316                                         break;
    317                                 case 1:
    318                                         $frmt_h .= _T('duree_temps', array('nombre'=>1,'unite'=>_T('spip:date_un_mois')));
    319                                         break;
    320                                 default:
    321                                         $frmt_h .= _T('duree_temps', array('nombre'=>association_nbrefr($ladate[1],0),'unite'=>_T('spip:date_mois')));
    322                                         break;
    323                         }
    324                         if ($ladate[2])
    325                                 $frmt_h .= ', ';
    326                         switch($ladate[2]) { // nombre de jours
    327                                 case 0:
    328                                         $frmt_h .= '';
    329                                         break;
    330                                 case 1:
    331                                         $frmt_h .= _T('duree_temps', array('nombre'=>1,'unite'=>_T('local:jour')));
    332                                         break;
    333                                 default:
    334                                         $frmt_h .= _T('duree_temps', array('nombre'=>association_nbrefr($ladate[2],0),'unite'=>_T('spip:date_jours')));
    335                                         break;
    336                         }
    337                         if (count($lheure))
    338                                 $frmt_h .= ', ';
    339                         $lheure = explode(':',$nombre[1]);
    340                         switch($lheure[0]) { // nombre d'heures
    341                                 case 0:
    342                                         $frmt_h .= '';
    343                                         break;
    344                                 case 1:
    345                                         $frmt_h .= _T('duree_temps', array('nombre'=>1,'unite'=>_T('spip:date_une_heure')));
    346                                         break;
    347                                 default:
    348                                         $frmt_h .=  _T('duree_temps', array('nombre'=>association_nbrefr($lheure[0],0),'unite'=>_T('spip:date_heures')));
    349                                         break;
    350                         }
    351                         if ($lheure[1])
    352                                 $frmt_h .= ', ';
    353                         switch($lheure[1]) { // nombre d'heures
    354                                 case 0:
    355                                         $frmt_h .= '';
    356                                         break;
    357                                 case 1:
    358                                         $frmt_h .= _T('duree_temps', array('nombre'=>1,'unite'=>_T('spip:date_une_minute')));
    359                                         break;
    360                                 default:
    361                                         $frmt_h .=  _T('duree_temps', array('nombre'=>association_nbrefr($lheure[1],0),'unite'=>_T('spip:date_minutes')));
    362                                         break;
    363                         }
    364                         if ($lheure[2])
    365                                 $frmt_h .= ', ';
    366                         switch($lheure[2]) { // nombre d'heures
    367                                 case 0:
    368                                         $frmt_h = '';
    369                                         break;
    370                                 case 1:
    371                                         $frmt_h = _T('duree_temps', array('nombre'=>1,'unite'=>_T('spip:date_une_seconde')));
    372                                         break;
    373                                 default:
    374                                         $frmt_h =  _T('duree_temps', array('nombre'=>association_nbrefr($lheure[2],0),'unite'=>_T('spip:date_secondes')));
    375                                         break;
    376                         }
    377                         $frmt_h .= '. ';
    378                         break;
    379         }
    380         if (!$frmt_h)
    381                 $frmt_h = _T('asso:duree_temps', array('nombre'=>$valeur, 'unite'=>$unite) );
    382         return "<$htm_abbr class='duration' title='$frmt_m'>$frmt_h</$htm_abbr>";
    383 }
    384 
    385 // micro-Formatage des montants avec devise
    386 // on n'utilise pas la fontcion PHP money_format() --qui ne fonctionne pas sous Windows-- car on veut micro-formater avec une devise fixee par la configuration (en fait les chaines de langue) du plugin
    387 function association_prixfr($montant, $unite_code='', $unite_nom='', $htm_span='span', $htm_abbr='abbr')
    388 {
    389         $res = "<$htm_span class='money price'>"; // pour la reference est "price" <http://microformats.org/wiki/hproduct> (reconnu par les moteurs de recherche), mais "money" <http://microformats.org/wiki/currency-brainstorming> est d'usage courant aussi
    390         $montant = "<$htm_abbr class='amount' title='$montant'>". association_nbrefr($montant) ."</$htm_abbr>";
    391         $devise = "<$htm_abbr class='currency' title='". _T('asso:devise_code_iso') .'\'>'. _T('asso:devise_symbole') ."</$htm_abbr>";
    392         $res .= _T('asso:devise_montant', array('montant'=>$montant, 'devise'=>$devise) );
    393         $res .= ($unite_code?" <$htm_abbr class='unit' title='".($unite_nom?$unite_nom:$unite_code)."'>$unite_code</$htm_abbr>":'');
    394         return "$res</$htm_span>";
    395 }
    396 
    397 // Formatage des nombres selon la langue de l'interface
    398 function association_nbrefr($montant, $decimales=2, $l10n='')
    399 {
    400         /** recuperer le code des parametres regionnaux a utiliser
    401          * dans un premier temps, on essaye d'utiliser la langue puisque SPIP gere bien cela et offre la possibilite d'en faire plus avec  http://programmer.spip.org/Forcer-la-langue-selon-le-visiteur
    402          * comme ce n'est pas suffisant (le code de localisation est de la forme langue-pays ou langue_PAYS en utilisant les codes ISO), et recuperer le pays n'est pas simple sans faire appel a l'IP-geolocalisation http://stackoverflow.com/questions/2156231/how-do-you-detect-a-website-visitors-country-specifically-us-or-not
    403          * ni SPIP ni PHP n'offrant de moyen "simple" d'arriver a nos fin bah...
    404          **/
     265/**
     266 * Affichage de nombre localise
     267 *
     268 * @param float $nombre
     269 *   Valeur numerique au format informatique standard
     270 * @param int $decimales
     271 *   Nombre de decimales affichees.
     272 *   Par defaut : 2
     273 * @param string $l10n
     274 *   Code ISO-639 de la langue voulue
     275 *   Par defaut : on tente de detecter la langue du navigateur sinon celle du site
     276 * @return string $res
     277 *   Nombre formatee
     278 *
     279 * @note Perfectible... Avis aux contributeurs motives...
     280 */
     281function association_formater_nombre($nombre, $decimales=2, $l10n='')
     282{
     283        // recuperer le code des parametres regionnaux a utiliser
     284        // dans un premier temps, on essaye d'utiliser la langue puisque SPIP gere
     285        // bien cela et offre la possibilite d'en faire plus avec
     286        //  http://programmer.spip.org/Forcer-la-langue-selon-le-visiteur
     287        // Comme ce n'est pas suffisant (le code de localisation est de la forme
     288        // langue-pays ou langue_PAYS en utilisant les codes ISO), et recuperer le
     289        // pays n'est pas simple sans faire appel a l'IP-geolocalisation
     290        // http://stackoverflow.com/questions/2156231/how-do-you-detect-a-website-visitors-country-specifically-us-or-not
     291        // Ni SPIP ni PHP n'offrant de moyen "simple" d'arriver a nos fin bah...
    405292        if (!$l10n) { // pas de localae specifiee
    406293                $l10n = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
     
    421308                }
    422309        }
    423         /** formater selon la langue choisie/recuperee
    424          * @: http://stackoverflow.com/a/437642
    425          **/
     310        // formater selon la langue choisie/recuperee
     311        // http://stackoverflow.com/a/437642
    426312        setlocale(LC_NUMERIC, $l10n);
    427313        $locale = localeconv();
    428     return number_format(floatval($montant), $decimales, $locale['decimal_point'], $locale['thousands_sep']);
    429 }
    430 
    431 /* prend en parametre le nom de l'argument a chercher dans _request et retourne un float */
    432 function association_recupere_montant($valeur)
     314    return number_format(floatval($nombre), $decimales, $locale['decimal_point'], $locale['thousands_sep']);
     315}
     316
     317/**
     318 * Affichage de duree localisee et micro-formatee
     319 *
     320 * @param int|string $nombre
     321 *   Valeur numerique de la duree.
     322 * @param string $unite
     323 *   Lettre indiquant le type de duree affiche : Y|M|W|D|H
     324 *   respectivement pour annee|mois|semaine|jour|heures
     325 *   Noter qu'il est possible d'utiliser les equivalents francais : A|S|J
     326 *   Noter aussi qu'on peut avoir en prime T (horaire seule) ou I (date),
     327 *   et dans ce cas ce n'est un nombre entier qui est utilise mais une chaine du temps au format ISO
     328 * @param string $html_tag
     329 *   Balise-HTML (paire ouvrante/fermante) encadrante
     330 *   Par defaut : "abbr" avec la classe "duration"
     331 *   http://www.alsacreations.com/tuto/lire/1222-microformats-design-patterns.html#abbr-design-pattern
     332 *   Desactiver (chaine vide) pour ne pas micro-formater
     333 * @return string $res
     334 *   Duree formatee
     335 *
     336 * @note les cas de minutes/secondes doivent etre specifie comme des heures au format ISO...
     337 */
     338function association_formater_duree($nombre, $unite='', $htm_tag='abbr')
     339{
     340        $frmt_h = ''; // format human-readable
     341        $frmt_m = 'P'; // format machine-parsable
     342        switch(strtoupper($unite)) { // http://ufxtract.com/testsuite/documentation/iso-duration.htm
     343                case 'Y' : // year
     344                case 'A' : // annee
     345                        $nombre = intval($nombre);
     346                        $frmt_m .= $nombre.'Y';
     347                        $valeur = association_formater_nombre($nombre,0);
     348                        $unite = ($nombre<=1) ? _T('local:an') : _T('local:ans');
     349                        break;
     350                case 'M' : // month/mois
     351                        $nombre = intval($nombre);
     352                        $frmt_m .= $nombre.'M';
     353                        $valeur = association_formater_nombre($nombre,0);
     354                        $unite = ($nombre<=1) ? _T('spip:date_un_mois') : _T('spip:date_mois');
     355                        break;
     356                case 'W' : // week
     357                case 'S' : // semaine
     358                        $nombre = intval($nombre);
     359                        $frmt_m .= $nombre.'W';
     360                        $valeur = association_formater_nombre($nombre,0);
     361                        $unite = ($nombre<=1) ? _T('spip:date_une_semaine') : _T('spip:date_semaines');
     362                        break;
     363                case 'D' : // day
     364                case 'J' : // jour
     365                        $nombre = intval($nombre);
     366                        $frmt_m .= $nombre.'D';
     367                        $valeur = association_formater_nombre($nombre,0);
     368                        $unite = ($nombre<=1) ? _T('local:jour') : _T('spip:date_jours');
     369                        break;
     370                case 'H' : // hour/heure
     371                        $frmt_m .= 'T'.str_replace('00M', '',  str_replace(':','H',$nombre.':00').'M' );
     372                        $valeur = association_formater_nombre($nombre,0);
     373                        if (intval($nombre)>1)
     374                                $unite = _T('spip:date_heures');
     375                        elseif (is_numeric($nombre))
     376                                $unite = _T('spip:date_une_heure');
     377                        elseif (strstr($nombre,'0:00'))
     378                                $unite = _T('spip:date_une_minute');
     379                        else {
     380                                $nombre = explode(':',$nombre);
     381                                $frmt_h = _T('spip:date_fmt_heures_minutes', array('h'=>$nombre[0],'m'=>$nombre[1]));
     382                        }
     383                        break;
     384                case 'T' : // (full) ISO Time : no check...
     385                        $frmt_m .= 'T'.str_replace( array('HM','HS','MS','00H','00M'), array('H','H','M'), preg_replace('m:m','M',preg_replace('h:h','H',$nombre,1),1).'S' );
     386                        $nombre = explode(':',$nombre,2);
     387                        if ($nombre[0]>24) { // http://dev.mysql.com/doc/refman/4.1/en/time.html
     388                                $nombre['-1'] = intval($nombre[0]/24);
     389                                $nombre[0] = $nombre[0]%24;
     390                        }
     391                        switch($nombre['-1']) { // nombre de jours
     392                                case 0:
     393                                case '':
     394                                        $frmt_h = '';
     395                                        break;
     396                                case 1:
     397                                        $frmt_h = _T('duree_temps', array('nombre'=>1,'unite'=>_T('local:jour')));
     398                                        break;
     399                                default:
     400                                        $frmt_h =  _T('duree_temps', array('nombre'=>association_formater_nombre($nommbre['-1'],0),'unite'=>_T('spip:date_jours')));
     401                                        break;
     402                        }
     403                        if ($nombre[0])
     404                                $frmt_h .= ', ';
     405                        switch($nombre[0]) { // nombre d'heures
     406                                case 0:
     407                                        $frmt_h .= '';
     408                                        break;
     409                                case 1:
     410                                        $frmt_h .= _T('duree_temps', array('nombre'=>1,'unite'=>_T('spip:date_une_heure')));
     411                                        break;
     412                                default:
     413                                        $frmt_h .= _T('duree_temps', array('nombre'=>association_formater_nombre($nombre[0],0),'unite'=>_T('spip:date_heures')));
     414                                        break;
     415                        }
     416                        if ($nombre[1])
     417                                $frmt_h .= ', ';
     418                        switch($nombre[1]) { // nombre de minutes
     419                                case 0:
     420                                        $frmt_h .= '';
     421                                        break;
     422                                case 1:
     423                                        $frmt_h .= _T('duree_temps', array('nombre'=>1,'unite'=>_T('spip:date_une_minute')));
     424                                        break;
     425                                default:
     426                                        $frmt_h .= _T('duree_temps', array('nombre'=>association_formater_nombre($nombre[1],0),'unite'=>_T('spip:date_minutes')));
     427                                        break;
     428                        }
     429                        if ($nombre[2])
     430                                $frmt_h .= ', ';
     431                        switch($nombre[2]) { // nombre de secondes
     432                                case 0:
     433                                        $frmt_h .= '';
     434                                        break;
     435                                case 1:
     436                                        $frmt_h .= _T('duree_temps', array('nombre'=>1,'unite'=>_T('spip:date_une_seconde')));
     437                                        break;
     438                                default:
     439                                        $frmt_h .= _T('duree_temps', array('nombre'=>association_formater_nombre($nombre[2],0),'unite'=>_T('spip:date_secondes')));
     440                                        break;
     441                        }
     442                        $frmt_h .= '. ';
     443                        break;
     444                case 'I' : // (full) ISO DateTime or Date : no check !!!
     445                default :
     446                        $frmt_m .= $nombre;
     447                        $nombre = explode('T',$nombre,2);
     448                        $ladate = explode(':',$nombre[0]);
     449                        switch($ladate[0]) { // nombre d'annee
     450                                case 0:
     451                                case '':
     452                                        $frmt_h = '';
     453                                        break;
     454                                case 1:
     455                                        $frmt_h = _T('duree_temps', array('nombre'=>1,'unite'=>_T('local:an')));
     456                                        break;
     457                                default:
     458                                        $frmt_h =  _T('duree_temps', array('nombre'=>association_formater_nombre($ladate[0],0),'unite'=>_T('local:ans')));
     459                                        break;
     460                        }
     461                        if ($ladate[1])
     462                                $frmt_h .= ', ';
     463                        switch($ladate[1]) { // nombre de mois
     464                                case 0:
     465                                        $frmt_h .= '';
     466                                        break;
     467                                case 1:
     468                                        $frmt_h .= _T('duree_temps', array('nombre'=>1,'unite'=>_T('spip:date_un_mois')));
     469                                        break;
     470                                default:
     471                                        $frmt_h .= _T('duree_temps', array('nombre'=>association_formater_nombre($ladate[1],0),'unite'=>_T('spip:date_mois')));
     472                                        break;
     473                        }
     474                        if ($ladate[2])
     475                                $frmt_h .= ', ';
     476                        switch($ladate[2]) { // nombre de jours
     477                                case 0:
     478                                        $frmt_h .= '';
     479                                        break;
     480                                case 1:
     481                                        $frmt_h .= _T('duree_temps', array('nombre'=>1,'unite'=>_T('local:jour')));
     482                                        break;
     483                                default:
     484                                        $frmt_h .= _T('duree_temps', array('nombre'=>association_formater_nombre($ladate[2],0),'unite'=>_T('spip:date_jours')));
     485                                        break;
     486                        }
     487                        if (count($lheure))
     488                                $frmt_h .= ', ';
     489                        $lheure = explode(':',$nombre[1]);
     490                        switch($lheure[0]) { // nombre d'heures
     491                                case 0:
     492                                        $frmt_h .= '';
     493                                        break;
     494                                case 1:
     495                                        $frmt_h .= _T('duree_temps', array('nombre'=>1,'unite'=>_T('spip:date_une_heure')));
     496                                        break;
     497                                default:
     498                                        $frmt_h .=  _T('duree_temps', array('nombre'=>association_formater_nombre($lheure[0],0),'unite'=>_T('spip:date_heures')));
     499                                        break;
     500                        }
     501                        if ($lheure[1])
     502                                $frmt_h .= ', ';
     503                        switch($lheure[1]) { // nombre d'heures
     504                                case 0:
     505                                        $frmt_h .= '';
     506                                        break;
     507                                case 1:
     508                                        $frmt_h .= _T('duree_temps', array('nombre'=>1,'unite'=>_T('spip:date_une_minute')));
     509                                        break;
     510                                default:
     511                                        $frmt_h .=  _T('duree_temps', array('nombre'=>association_formater_nombre($lheure[1],0),'unite'=>_T('spip:date_minutes')));
     512                                        break;
     513                        }
     514                        if ($lheure[2])
     515                                $frmt_h .= ', ';
     516                        switch($lheure[2]) { // nombre d'heures
     517                                case 0:
     518                                        $frmt_h = '';
     519                                        break;
     520                                case 1:
     521                                        $frmt_h = _T('duree_temps', array('nombre'=>1,'unite'=>_T('spip:date_une_seconde')));
     522                                        break;
     523                                default:
     524                                        $frmt_h =  _T('duree_temps', array('nombre'=>association_formater_nombre($lheure[2],0),'unite'=>_T('spip:date_secondes')));
     525                                        break;
     526                        }
     527                        $frmt_h .= '. ';
     528                        break;
     529        }
     530        if (!$frmt_h)
     531                $frmt_h = _T('asso:duree_temps', array('nombre'=>$valeur, 'unite'=>$unite) );
     532        return $html_tag ? "<$htm_tag class='duration' title='". htmlspecialchars($frmt_m, ENT_QUOTES, $GLOBALS['meta']['charset']). "'>$frmt_h</$htm_tag>" : $frmt_h;
     533}
     534
     535/**
     536 * Affichage de prix (montant et devise) localisee et micro-formatee
     537 *
     538 * @param float|int $montant
     539 *   Montant (valeur chiffree) correspondant au prix
     540 * @param string $devise_code
     541 *   Trigramme representant le code ISO-4217 de la devise
     542 *   http://fr.wikipedia.org/wiki/ISO_4217
     543 *   Par defaut : la code defini dans le fichier de langues, sinon EUR
     544 * @param string $devise_symb
     545 *   Symbole ou nom generique abrege de la devise
     546 *   Par defaut : le symbole defini dans le fichier de langues si defini, sinon le code.
     547 * @param string $html_span
     548 *   Balise-HTML (paire ouvrante/fermante) encadrant l'ensemble
     549 *   Par defaut : "span" avec les classes "money price"
     550 *   http://www.alsacreations.com/tuto/lire/1222-microformats-design-patterns.html#value-class-pattern
     551 *   Desactiver (chaine vide) pour ne pas micro-formater
     552 * @param string $html_abbr
     553 *   Balise-HTML (paire ouvrante/fermante) encadrant chaque sous-partie
     554 *   Par defaut : "abbr" avec la classe "duration"
     555 * @return string $res
     556 *   Duree formatee
     557 *
     558 * @note On n'utilise pas la fontcion PHP money_format() --qui ne fonctionne pas
     559 * sous Windows-- car on veut micro-formater avec une devise fixee par la
     560 * configuration (en fait les chaines de langue) du plugin
     561 */
     562function association_formater_prix($montant, $devise_code='', $devise_symb='', $htm_span='span', $htm_abbr='abbr')
     563{
     564        $res = '';
     565        if ($html_span)
     566                $res .= "<$htm_span class='money price'>"; // pour la reference est "price" <http://microformats.org/wiki/hproduct> (reconnu par les moteurs de recherche), mais "money" <http://microformats.org/wiki/currency-brainstorming> est d'usage courant aussi
     567        $montant = ($html_abbr?"<$htm_abbr class='amount' title='$montant'>":'') . association_formater_nombre($montant) . ($html_abbr?"</$htm_abbr>":'');
     568        if ( !$devise_code ) {
     569                $devise_code = _T('asso:devise_code_iso');
     570                if ( !$devise_code )
     571                        $devise_code = 'EUR';
     572                $devise_symb = _T('asso:devise_symbole');
     573        }
     574        if ( !$devise_symb ) {
     575                if ( function_exists('formater_devise') ) // plugin "Devise" est actif
     576                        $devis_symp = formater_devise($devise_code, '%N');
     577                else
     578                        $devise_symb = $devise_code;
     579        }
     580        $devise = ($html_abbr ? "<$htm_abbr class='currency' title='". htmlspecialchars($devise_code, ENT_QUOTES, $GLOBALS['meta']['charset']) .'\'>' : '') . htmlspecialchars($devise_symb, ENT_QUOTES, $GLOBALS['meta']['charset']) . ($html_abbr?"</$htm_abbr>" :'');
     581        $res .= _T('asso:devise_montant', array('montant'=>$montant, 'devise'=>$devise) );
     582        return $html_span ? "$res</$htm_span>" : $res;
     583}
     584
     585/** @} */
     586
     587
     588/*****************************************
     589 * @defgroup association_recuperer
     590 * Transforme un champ de formulaire en vue de son insertion en base de donnees.
     591 * S'utilise donc sur un champ passe par le @ref association_verifier correspondant.
     592 * Assure donc un bon enregistrement et la restitution par le @ref association_formater correspondant.
     593 *
     594 * @param string $valeur
     595 *   Nom a recuperer (par GET ou POST ou Cookie) ...ou la valeur directement
     596 * @param bool $req
     597 *   Indique s'il s'agit du nom (vrai --par defaut) ou pas (faux, donc la valeur)
     598 *
     599** @{ */
     600
     601/**
     602 * @return string $valeur
     603 *   Date au format ISO
     604 */
     605function association_recuperer_date($valeur, $req=false)
    433606{
    434607        if ($valeur!='') {
    435                 $valeur = str_replace(' ', '', $valeur); /* suppprime les espaces separateurs de milliers */
    436                 $valeur = str_replace(',', '.', $valeur); /* convertit les , en . */
     608                $valeur = preg_replace('/\D/', '-', ($req?_request($valeur):$valeur), 2); // la limitation a 2 separateurs permet de ne transformer que la partie "date" s'il s'agit d'un "datetime" par exemple.
     609        }
     610        return $valeur;
     611}
     612
     613/**
     614 * @return float $valeur
     615 *   Nombre decimal
     616 */
     617function association_recuperer_montant($valeur, $req=false)
     618{
     619        if ($valeur!='') {
     620                $valeur = str_replace(' ', '', ($req?_request($valeur):$valeur) ); // suppprime les espaces separateurs de milliers
     621                $valeur = str_replace(',', '.', $valeur); // convertit les , en .
    437622                $valeur = floatval($valeur);
    438623        } else
     
    441626}
    442627
    443 /* s'assurer que la valeur saisie est un float positif */
    444 function association_verifier_montant($valeur)
    445 {
    446         if (association_recupere_montant($valeur)<0)
     628/** @} */
     629
     630
     631/*****************************************
     632 * @defgroup association_verifier
     633 * Verification du format de la valeur d'un champ de formulaire.
     634 * Permet d'appeler @ref association_recupere equivalent sur ce champ...
     635 *
     636 * @param string $valeur
     637 *   Nom a recuperer (par GET ou POST ou Cookie) ...ou la valeur directement
     638 * @param bool $rex
     639 *   Indique si la verification est plus lache (vrai) ou pas (faux --par defaut)
     640 *   [le nom de la variable signifie "RElaXed check"]
     641 * @param bool $req
     642 *   Indique s'il s'agit du nom (vrai --par defaut) ou pas (faux, donc la valeur)
     643 *   [le nom de la variable signifie "by REQuest"]
     644 * @return string
     645 *   Message d'erreur... (donc chaine vide si OK)
     646 *
     647** @{ */
     648
     649/**
     650 * S'assurer que la valeur saisie est une chaine de date valide
     651 */
     652function association_verifier_date($valeur, $rex=FALSE, $req=TRUE)
     653{
     654        $date = $req ? _request($valeur) : $valeur;
     655        if ( $rex && ($date=='0000-00-00' || !$date) )
     656                return '';
     657        if (!preg_match('/^\d{4}\D\d{2}\D\d{2}$/', $date)) // annee sur 4 chiffres ; mois sur 2 chiffres ; jour sur 2 chiffres ; separateur est caractere non numerique quelconque...
     658#       if (!preg_match('/^\d{4}\D(\d|1[0-2])\D([1-9]|0[1-9]|[12]\d|3[01])$/', $date)) // annee sur 4 chiffres ; mois sur 1 ou 2 chiffres entre 1 et 12 ; jour sur 1 ou 2 chiffres eentre 1 et 31 ; separateur est n'importe quel caractere ne representant pas un chiffre arabe de la notation decimale standard...
     659                return _T('asso:erreur_format_date', array('date'=>$date) ); // ...c'est un petit plus non documente (la documentation et le message d'erreur stipulent AAAA-MM-JJ : mois et jours toujours sur deux chiffres avec donc zero avant si inferieur a 10, et separateur est tiret)
     660        list($annee, $mois, $jour) = preg_split('/\D/', $date);
     661        if (!checkdate($mois, $jour, $annee)) // la date doit etre valide : pas de 30 fevrier ou de 31 novembre par exemple.
     662                return _T('asso:erreur_valeur_date', array('date'=>$date) );
     663        return '';
     664}
     665
     666/**
     667 * S'assurer que la valeur saisie est un flottant positif
     668 */
     669function association_verifier_montant($valeur, $req=TRUE)
     670{
     671        if (association_recuperer_montant($valeur,$req)<0)
    447672                return _T('asso:erreur_montant');
    448 //      else
    449 //              return FALSE;
    450 }
    451 
    452 /* s'assurer que l'entier saisie correspond bien a un id_auteur de la table spip_asso_membres (par defaut) ou spip_auteurs (si on elargi a tous les autteurs --ceci permet d'editer des membres effaces tant qu'ils sont references par SPIP) */
    453 function association_verifier_membre($id_auteur, $touslesauteurs=false)
    454 {
     673        else
     674                return '';
     675}
     676
     677/**
     678 * S'assurer que l'entier saisie correspond bien a un id_auteur
     679 * de la table spip_asso_membres (par defaut) ou spip_auteurs (si on elargi a tous
     680 * --ceci permet d'editer des membres effaces tant qu'ils sont references par SPIP)
     681 */
     682function association_verifier_membre($valeur, $rex=FALSE, $req=TRUE)
     683{
     684        $id_auteur = intval($req?_request($valeur):$valeur);
    455685        if ($id_auteur) {
    456                 $id_auteur = intval($id_auteur);
    457                 if (sql_countsel('spip_'.($touslesauteurs?'auteurs':'asso_membres'), "id_auteur=$id_auteur")==0) {
     686                if ( sql_countsel('spip_'.($rex?'auteurs':'asso_membres'), "id_auteur=$id_auteur")==0 ) {
    458687                        return _T('asso:erreur_id_adherent');
    459688                }
    460689        } else
    461                 return FALSE;
    462 }
    463 
    464 // Affichage du message indiquant la date
    465 function association_date_du_jour($heure=false)
    466 {
    467         $ladate = affdate_jourcourt(date('d/m/Y'));
    468         $hr = ($heure?date('H'):'');
    469         $mn = ($heure?date('i'):'');
    470         $res = '<p class="'. ($heure?'datetime':'date');
    471         $res .= '" title="'. date('Y-m-d') . ($heure?"T$hr:$mn":'');
    472         $lheure = ($heure? _T('spip:date_fmt_heures_minutes', array('h'=>$hr,'m'=>$mn)) :'');
    473         $res .= '">'.( $heure ? _T('asso:date_du_jour_heure', array('date'=>$ladate)) : _T('asso:date_du_jour',array('date'=>$ladate,'time'=>$lheure)) ).'</p>';
    474         return $res;
    475 }
    476 
    477 function association_header_prive($flux)
    478 {
    479         $c = direction_css(find_in_path('association.css'));
    480         return "$flux\n<link rel='stylesheet' type='text/css' href='$c' />";
    481 }
    482 
    483 // Filtre pour "afficher" ou "cacher" un bloc div
    484 // Utilise dans le formulaire cvt "editer_asso_comptes.html"
    485 function affichage_div($type_operation,$list_operation)
    486 {
    487         if(strpos($list_operation, '-')) {
    488                 $operations = explode('-', $list_operation);
    489                 $res = 'cachediv';
    490                 for($i=0;$i<count($operations);$i++) {
    491                         $operation = $GLOBALS['association_metas']['classe_'.$operations[$i]];
    492                         if($type_operation===$operation) {
    493                                 $res = '';
    494                                 break;
    495                         }
    496                 }
    497         } else {
    498                 $res = ($type_operation===$GLOBALS['association_metas']['classe_'.$list_operation])?'':'cachediv';
    499         }
    500         return $res;
    501 }
    502 
    503 /* selecteur d'exercice comptable */
    504 function association_selectionner_exercice($exercice='', $exec='', $plus='') {
     690                return '';
     691}
     692
     693/** @} */
     694
     695
     696/*****************************************
     697 * @defgroup association_selectionner
     698 * Selecteur HTML (liste deroulante) servant a filtrer le listing affiche en milieu de page
     699 *
     700 * @param int $sel
     701 *   ID selectionne : conserve la valeur selectionnee
     702 * @param string $exec
     703 *   Nom du fichier de l'espace prive auquel le formulaire sera soumis.
     704 *   Si present, le formulaire complet (balise-HTML "FORM") est genere.
     705 *   Si absent (par defaut), seul le selecteur (et le code supplementaire fourni
     706 *   par $plus) est(sont) renvoye(s).
     707 * @param string $plus
     708 *   Source HTML rajoute a la suite.
     709 *   (utile si on genere tout le formulaire avec des champs caches)
     710 * @return string $res
     711 *   Code HTML du selecteur (ou du formulaire complet si $exec est indique)
     712 *
     713** @{ */
     714
     715/**
     716 * Selecteur d'exercice comptable
     717 */
     718function association_selectionner_exercice($sel='', $exec='', $plus='')
     719{
    505720    $res = '<select name ="exercice" onchange="form.submit()">';
    506721#    $res .= '<option value="0" ';
     
    512727    while ($val = sql_fetch($sql)) {
    513728                $res .= '<option value="'.$val['id_exercice'].'" ';
    514                 if ($exercice==$val['id_exercice']) {
     729                if ( $sel==$val['id_exercice'] ) {
    515730                        $res .= ' selected="selected"';
    516731                }
     
    521736}
    522737
    523 /* selecteur d'exercice comptable */
    524 function association_selectionner_destination($destination='', $exec='', $plus='') {
    525 //    $res = '<select name ="destination[]" multiple="multiple" onchange="form.submit()">';
     738/**
     739 * Selecteur de destination comptable
     740 */
     741function association_selectionner_destination($sel='', $exec='', $plus='')
     742{
    526743    $res = '<select name ="destination" onchange="form.submit()">';
    527744    $res .= '<option value="0" ';
    528 //    if ( !(array_search(0, $destinations)===FALSE) ) {
    529     if (!$destination) {
     745    if ( !$sel) {
    530746                $res .= ' selected="selected"';
    531747    }
    532 //    $res .= '>'. _T('asso:toutes_destinations') .'</option><option disabled="disabled">--------</option>';
    533748    $res .= '>'. _T('asso:toutes_destinations') .'</option>';
    534749    $intitule_destinations = array();
     
    536751    while ($val = sql_fetch($sql)) {
    537752                $res .= '<option value="'.$val['id_destination'].'" ';
    538 //              if (!(array_search($val['id_destination'], $destinations)===FALSE)) {
    539                 if ($destination==$val['id_destination']) {
     753                if ( $sel==$val['id_destination'] ) {
    540754                        $res .= ' selected="selected"';
    541755                }
    542756                $res .= '>'.$val['intitule'].'</option>';
    543 //              $intitule_destinations[$val['id_destination']] = $val['intitule'];
    544757    }
    545758    $res .= '</select>'.$plus;
     
    547760                return $exec ? generer_form_ecrire($exec, $res.'<noscript><input type="submit" value="'._T('asso:bouton_lister').'" /></noscript>') : $res;
    548761        } else {
    549                 return FALSE;
    550         }
    551 }
    552 
    553 /* selecteur de grouoe de membres*/
    554 function association_selectionner_groupe($id_groupe='', $exec='', $plus='') {
     762                return '';
     763        }
     764}
     765
     766/**
     767 * Selecteur de grouoe de membres
     768 */
     769function association_selectionner_groupe($sel='', $exec='', $plus='')
     770{
    555771    $qGroupes = sql_select('nom, id_groupe', 'spip_asso_groupes', 'id_groupe>=100', '', 'nom');  // on ne prend en consideration que les groupe d'id >= 100, les autres sont reserves a la gestion des autorisations
    556772    if ( $qGroupes && sql_count($qGroupes) ) { // ne proposer que s'il y a des groupes definis
     
    559775                while ($groupe = sql_fetch($qGroupes)) {
    560776                        $res .= '<option value="'.$groupe['id_groupe'].'"';
    561                         if ($id_groupe==$groupe['id_groupe'])
     777                        if ( $sel==$groupe['id_groupe'] )
    562778                                $res .= ' selected="selected"';
    563779                        $res .= '>'.$groupe['nom'].'</option>';
     
    566782                return $exec ? generer_form_ecrire($exec, $res.'<noscript><input type="submit" value="'._T('asso:bouton_lister').'" /></noscript>') : $res;
    567783        } else {
    568                 return FALSE;
    569         }
    570 }
    571 
    572 /* selecteur de statut de membres*/
    573 function association_selectionner_statut($statut_interne='', $exec='', $plus='') {
     784                return '';
     785        }
     786}
     787
     788/**
     789 * Selecteur de statut de membres
     790 */
     791function association_selectionner_statut($sel='', $exec='', $plus='')
     792{
    574793    $res = '<select name="statut_interne" onchange="form.submit()">';
    575     $res .= '<option value="%"'. (($statut_interne=='defaut' || $statut_interne=='%')?' selected="selected"':'') .'>'._T('asso:entete_tous').'</option>';
     794    $res .= '<option value="%"'. (($sel=='defaut' || $sel=='%')?' selected="selected"':'') .'>'._T('asso:entete_tous').'</option>';
    576795    foreach ($GLOBALS['association_liste_des_statuts'] as $statut) {
    577796                $res .= '<option value="'.$statut.'"';
    578                 if ($statut_interne==$statut)
     797                if ( $sel==$statut )
    579798                        $res .= ' selected="selected"';
    580799                $res .= '> '._T('asso:adherent_entete_statut_'.$statut).'</option>';
     
    584803}
    585804
    586 /* selecteur de statut de membres*/
    587 function association_selectionner_id($id='', $exec='', $plus='') {
    588     $res = '<input type="text" name="id" onfocus=\'this.value=""\' size="5"  value="'. ($id?$id:_T('asso:entete_id')) .'" />'.$plus;
     805/**
     806 * Zone de saisie de numero de membre
     807 */
     808function association_selectionner_id($sel='', $exec='', $plus='')
     809{
     810    $res = '<input type="text" name="id" onfocus=\'this.value=""\' size="5"  value="'. ($sel?$sel:_T('asso:entete_id')) .'" />'.$plus;
    589811    return $exec ? generer_form_ecrire($exec, $res.'<noscript><input type="submit" value="'._T('asso:bouton_lister').'" /></noscript>') : $res;
    590812}
    591813
    592 /* selecteur d'annee parmi celles disponibles dans une table */
    593 function association_selectionner_annee($annee='', $dtable, $dchamp, $exec='', $plus='') {
     814/**
     815 * Selecteur d'annee parmi celles disponibles dans une table donnee
     816 *
     817 * @param string $annee
     818 *   Annee selectionnee. (annee courante par defaut)
     819 * @param string $dtable
     820 *   Nom (sans prefixe) de la table concernee
     821 * @param string $dchamp
     822 *   Nom (sans prefixe "date_") du champ contenant les annees recherchees
     823 *
     824 */
     825function association_selectionner_annee($annee='', $dtable, $dchamp, $exec='', $plus='')
     826{
    594827    if ($exec) {
    595828                $res = '<form method="post" action="'. generer_url_ecrire($exec) .'"><div>';
     
    602835    $an_max = sql_getfetsel("MAX(DATE_FORMAT(date_$dchamp, '%Y')) AS an_max", "spip_$dtable", '');
    603836    $an_min = sql_getfetsel("MIN(DATE_FORMAT(date_$dchamp, '%Y')) AS an_min", "spip_$dtable", '');
    604     if ($annee>$an_max || $annee<$an_min) { // a l'initialisation, l'annee courante est mise si rien n'est indique... or si l'annee n'est pas disponible dans la liste deroulante on est mal positionne et le changement de valeur n'est pas top
     837    if ( $annee>$an_max || $annee<$an_min ) { // a l'initialisation, l'annee courante est mise si rien n'est indique... or si l'annee n'est pas disponible dans la liste deroulante on est mal positionne et le changement de valeur n'est pas top
    605838                $res .= '<option value="'.$annee.'" selected="selected">'.$annee.'</option>';
    606839
     
    625858}
    626859
    627 function encadre($texte,$avant='[',$apres=']')
    628 {
    629     return ($texte=='')?'':$avant.$texte.$apres;
    630 }
    631 
    632 // Raccourcis
    633 // Les tables ayant 2 prefixes ("spip_asso_")
    634 // le raccourci "don" implique de declarer le raccourci "asso_don" etc.
     860/**
     861 * Selecteur de destinations comptables
     862 */
     863function association_selectionner_destinations($sel='', $exec='', $plus='')
     864{
     865    $res = '<select name ="destination[]" multiple="multiple" onchange="form.submit()">';
     866    $res .= '<option value="0" ';
     867    if ( !(array_search(0, $sel)===FALSE) ) {
     868                $res .= ' selected="selected"';
     869    }
     870    $res .= '>'. _T('asso:toutes_destinations') .'</option><option disabled="disabled">--------</option>';
     871    $intitule_destinations = array();
     872    $sql = sql_select('id_destination, intitule', 'spip_asso_destination','', 'intitule DESC');
     873    while ($val = sql_fetch($sql)) {
     874                $res .= '<option value="'.$val['id_destination'].'" ';
     875                if ( !(array_search($val['id_destination'], $sel)===FALSE) ) {
     876                        $res .= ' selected="selected"';
     877                }
     878                $intitule_destinations[$val['id_destination']] = $val['intitule'];
     879    }
     880    $res .= '</select>'.$plus;
     881    if ($GLOBALS['association_metas']['destinations']){
     882                return $exec ? generer_form_ecrire($exec, $res.'<noscript><input type="submit" value="'._T('asso:bouton_lister').'" /></noscript>') : $res;
     883        } else {
     884                return FALSE;
     885        }
     886}
     887
     888/** @} */
     889
     890
     891/*****************************************
     892 * @defgroup generer_url
     893 * Raccourcis
     894 *
     895 * Les tables ayant deux prefixes ("spip_asso_"),
     896 * le raccourci "x" implique de declarer le raccourci "asso_x"
     897 *
     898** @{ */
    635899
    636900function generer_url_asso_don($id, $param='', $ancre='') {
     
    668932        return  array('asso_activite', $id);
    669933}
     934
     935/** @} */
     936
     937
     938/*****************************************
     939 * @defgroup instituer_
     940 *
     941 * @param array $auteur
     942 * @return string
     943 *
     944** @{ */
    670945
    671946function instituer_adherent_ici($auteur=array()){
     
    673948        return $instituer_adherent($auteur);
    674949}
     950
    675951function instituer_statut_interne_ici($auteur=array()){
    676952        $instituer_statut_interne = charger_fonction('instituer_statut_interne', 'inc');
     
    678954}
    679955
    680 // recupeer la liste des colonne=>libelle d'un objet etendu
    681 function recuperer_iextras($ObjetEtendu)
     956/** @} */
     957
     958
     959/*****************************************
     960 * @defgroup association_totauxinfos
     961 * Informations de synthese, sur un objet, destinees a etre presente dans le bloc
     962 * d'infos contextuel debutant la colonne de gauche
     963 *
     964** @{ */
     965
     966/**
     967 * Rappels sur l'objet dans le bloc infos
     968 *
     969 * C'est un resume ou une petite presentation de l'objet en cours
     970 * d'edition/lecture : ces informations permettent de situer le contexte de la
     971 * page et n'apparaissent pas dans le bloc central !
     972 *
     973 * @param string $titre
     974 *   Titre affiche en gros dans le bloc.
     975 * @param string $type
     976 *   Nom du raccourci, affiche au dessus du titre.
     977 * @param int $id
     978 *   ID de l'objet, affiche au dessus du titre
     979 * @param array $DesLignes
     980 *   Tableau des lignes supplementaires a rajouter dans le bloc, sous la forme :
     981 *   chaine_de_langue_du_titre (sans prefixe) => texte contenu/explication associe.
     982 * @param string $PrefixeLangue
     983 *   Prefixe de langue associe aux chaines de langue des titres de lignes.
     984 *   Par defaut : asso
     985 * @param string $ObjetEtendu
     986 *   Nom de l'objet etendu dont on desire afficher les lignes des champs rajoutes par "Interface Champs Extras 2".
     987 *   Par defaut : rien
     988 * @return string $res
     989 *
     990 * @note
     991 *   Ce n'est pas redondant d'avoir a la fois $type et $ObjetEtendu qui peuvent
     992 *   avoir des valeurs differentes comme on peut le voir dans exec/adherent.php et exec/inscrits_activite.php !
     993 */
     994function association_totauxinfos_intro($titre, $type='', $id=0, $DesLignes=array(), $PrefixeLangue='asso', $ObjetEtendu='')
     995{
     996        $res = '';
     997        if ($type) {
     998                $res .= '<div style="text-align: center" class="verdana1 spip_x-small">'. _T('asso:titre_num', array('titre'=>_T("local:$type"), 'num'=>$id) ) .'</div>'; // presentation propre a Associaspip qui complete par un autre titre (voir ci-apres). Dans un SPIP traditionnel on aurait plutot : $res .= '<div style="font-weight: bold; text-align: center" class="verdana1 spip_xx-small">'. _T("$PrefixeLangue:$type") .'<br /><span class="spip_xx-large">'.$id.'</span></div>';
     999        }
     1000        $res .= '<div style="text-align: center" class="verdana1 spip_medium">'.$titre.'</div>';
     1001        if ( count($DesLignes) OR $ObjetEtendu )
     1002                $res .= '<dl class="verdana1 spip_xx-small">';
     1003        foreach ($DesLignes as $dt=>$dd) {
     1004                $res .= '<dt>'. _T("$PrefixeLangue:$dt") .'</dt><dd>'. propre($dd) .'</dd>'; // propre() encadre dans P... Cette presentation est propre a Associaspip. Habituellement on a : $res .= "<div class='$dt'><strong>". _T("$PrefixeLangue:$dt") ."</strong> $dd</div>";
     1005        }
     1006        if ($ObjetEtendu) {
     1007/* Le code suivant fonctionne, mais :
     1008-* il manque le formatage correct des donnees, surtout pour les listes (cas par exemple des : auteurs, mots cles, documents, enums definis dans l'interface).
     1009-* seuls les champs extras crees manuellement (par l'interface donc) sont pris en compte, pas ceux rajoutes via pipeline par d'autres plugins.
     1010                $champsExtras = association_trouver_iextras($ObjetEtendu);
     1011                if ( count($champsExtras) ) {
     1012                        $donneesExtras = sql_fetsel(array_keys($champsExtras), "spip_${ObjetEtendu}s", 'id_'.($type?$type:$ObjetEtendu).'='.intval($id) ); // on recupere les donnees... (il faut que le nom de la table soit le pluriel en "-s" de l'objet et que l'identifiant soit l'objet prefixe de "id_" :-S)
     1013                        foreach ($champsExtras as $col_name => $col_label) {
     1014                                $res .= '<dt>'. _T($col_label) .'</dt><dd>'. propre($donneesExtras[$col_name]) .'</dd>'; // propre() encadre dans P... Cette presentation est propre a Associaspip. L'appel au pipeline "afficher_contenu_objet" remplace tout le "foreach" avec plutot : $res .= "<div class='$col_name'><strong>$col_label</strong> $donneesExtras[$col_name]</div>";
     1015                        }
     1016                }
     1017du coup, on readapte : */
     1018                $res .= '<dt>+</dt><dd>'. pipeline('afficher_contenu_objet', array('args'=>array('type'=>$ObjetEtendu, 'id_objet'=>$id, 'contexte'=>array()), 'data'=>'',) ) .'</dd>';
     1019        }
     1020        if ( count($DesLignes) OR $ObjetEtendu )
     1021                $res .= '</dl>';
     1022        return $res;
     1023}
     1024
     1025/**
     1026 * Tableau presentant les chiffres de synthese de la statistique descriptive
     1027 *
     1028 * @param string $legende
     1029 *   Titre du tableau
     1030 * @param string $sql_table_asso
     1031 *   La table du plugin (sans prefixe "spip_asso") sur laquelle va porter les statistique.
     1032 * @param array $sql_champs
     1033 *   'chaine_de_langue' (sans prefixe) => "liste, des, champs, sur, laquelle, calculer, les statistiques"
     1034 * @param string $sql_criteres
     1035 *   Critere(s) de selection/restriction SQL des lignes (sinon toutes)
     1036 * @param int $decimales_significatives
     1037 *   Nombre de decimales affichees
     1038 * @param bool $avec_extrema
     1039 *   Indique s'il faut afficher (vrai) ou non (faux) les valeurs extremes.
     1040 *   http://fr.wikipedia.org/wiki/Crit%C3%A8res_de_position#Valeur_maximum_et_valeur_minimum
     1041 *   Par defaut : non, car le tableau deborde de ce petit cadre.
     1042 * @return string $res
     1043 *   Table HTML avec pour chaque ligne ($sql_champs) :
     1044 *   - le nom attribue au groupe de champs
     1045 *   - la moyenne arithmetique <http://fr.wikipedia.org/wiki/Moyenne#Moyenne_arithm.C3.A9tique>
     1046 *   - l'ecart-type <http://fr.wikipedia.org/wiki/Dispersion_statistique#.C3.89cart_type>
     1047 *   - ainsi que les extrema si on le desire
     1048 */
     1049function association_totauxinfos_stats($legende='', $sql_table_asso, $sql_champs, $sql_criteres='1=1',$decimales_significatives=1, $avec_extrema=false)
     1050{
     1051        if (!is_array($sql_champs) || !$sql_table_asso)
     1052                return FALSE;
     1053        $res = '<table width="100%" class="asso_infos">';
     1054        $res .= '<caption>'. _T('asso:totaux_moyens', array('de_par'=>_T("local:$legende"))) .'</caption><thead>';
     1055        $res .= '<tr class="row_first"> <th>&nbsp;</th>';
     1056        $res .= '<th title="'. _T('entete_stats_moy') .'">x&#772</th>'; // X <span style="font-size:75%;">X</span>&#772 <span style="text-decoration:overline;">X</span> X<span style="position:relative; bottom:1.0ex; letter-spacing:-1.2ex; right:1.0ex">&ndash;</span> x<span style="position:relative; bottom:1.0ex; letter-spacing:-1.2ex; right:1.0ex">&macr;</span>
     1057        $res .= '<th title="'. _T('entete_stats_mea') .'">&sigma;</th>'; // σ &sigma; &#963; &#x3C3;
     1058        if ($avec_extrema) {
     1059                $res .= '<th title="'. _T('entete_stats_min') .'">[&lt;</th>';
     1060                $res .= '<th title="'. _T('entete_stats_max') .'">&gt;]</th>';
     1061        }
     1062        $res .= '</tr>';
     1063        $res .= '</thead><tbody>';
     1064        $compteur = 0;
     1065        foreach ($sql_champs as $libelle=>$champs) {
     1066                $stats = sql_fetsel("AVG($champs) AS valMoy, STDDEV($champs) AS ekrTyp, MIN($champs) AS valMin, MAX($champs) AS valMax ", "spip_asso_$sql_table_asso", $sql_criteres);
     1067                $res .= '<tr class="'. ($compteur%2?'row_odd':'row_even') .'">';
     1068                $res .= '<td class"text">'. _T('asso:'.(is_numeric($libelle)?$champs:$libelle)) .'</td>';
     1069                $res .= '<td class="'.($decimales_significatives?'decimal':'integer').'">'. association_formater_nombre($stats['valMoy'],$decimales_significatives) .'</td>';
     1070                $res .= '<td class="'.($decimales_significatives?'decimal':'integer').'">'. association_formater_nombre($stats['ekrTyp'],$decimales_significatives) .'</td>';
     1071                if ($avec_extrema) {
     1072                        $res .= '<td class="'.($decimales_significatives?'decimal':'integer').'">'. association_formater_nombre($stats['valMin'],$decimales_significatives) .'</td>';
     1073                        $res .= '<td class="'.($decimales_significatives?'decimal':'integer').'">'. association_formater_nombre($stats['valMax'],$decimales_significatives) .'</td>';
     1074                }
     1075                $res .= '</tr>';
     1076                $compteur++;
     1077        }
     1078        $res .= '</tbody></table>';
     1079        return $res;
     1080}
     1081
     1082/**
     1083 * Tableau des decomptes statistiques dans le bloc infos
     1084 *
     1085 * @param string $legende
     1086 *   Complement du titre du tableau
     1087 * @param array $table_textes
     1088 *   'classe_unique_css_de_la_ligne' => 'chaine_de_langue' (sans prefixe "asso")
     1089 * @param array $table_nombres
     1090 *   'classe_unique_css_de_la_ligne' => effectif/occurence
     1091 * @param int $decimales_significatives
     1092 *   Nombre de decimales affichees
     1093 * @return string $res
     1094 *   Table HTML de deux colonnes et une ligne par paire libelle/effectif
     1095 *   puis une ligne totalisant les effectifs s'il y a plus d'une ligne.
     1096 *
     1097 * @note
     1098 *   Les classes CSS sont utilisees comme cle des tables parce-qu'il ne doit y en avoir qu'une par ligne.
     1099 */
     1100function association_totauxinfos_effectifs($legende='', $table_textes, $table_nombres, $decimales_significatives=0)
     1101{
     1102        if (!is_array($table_textes) || !is_array($table_nombres) )
     1103                return FALSE;
     1104        $nombre = $nombre_total = 0;
     1105        $res = '<table width="100%" class="asso_infos">';
     1106        $res .= '<caption>'. _T('asso:totaux_nombres', array('de_par'=>_T("local:$legende"))) .'</caption><tbody>';
     1107        foreach ($table_textes as $classe_css=>$libelle) {
     1108                $res .= '<tr class="'.$classe_css.'">';
     1109                $res .= '<td class"text">'._T('asso:'.$libelle).'</td>';
     1110                $res .= '<td class="' .($decimales_significatives?'decimal':'integer') .'">'. association_formater_nombre($table_nombres[$classe_css],$decimales_significatives) .'</td>';
     1111                $nombre_total += $table_nombres[$classe_css];
     1112                $res .= '</tr>';
     1113        }
     1114        $res .= '</tbody>';
     1115        if (count($table_nombres)>1) {
     1116                $res .= '<tfoot>';
     1117                $res .= '<tr><th class="text">'._T('asso:liste_nombre_total').'</th>';
     1118                $res .= '<th class="' .($decimales_significatives?'decimal':'integer') .'">'. association_formater_nombre($nombre_total,$decimales_significatives) .'</th></tr>';
     1119                $res .= '</tfoot>';
     1120        }
     1121        return $res.'</table>';
     1122}
     1123
     1124/**
     1125 * Tableau des totaux comptables
     1126 *
     1127 * @param string $legende
     1128 *   Complement du titre du tableau
     1129 * @param float $somme_recettes
     1130 *   Total des recettes
     1131 * @param float $somme_depenses
     1132 *   Total des depenses
     1133 * @return string $res
     1134 *   Table HTML presentant les recettes (sur une ligne) et les depenses (sur une autre ligne), puis le solde (sur une derniere ligne)
     1135 *
     1136 * @attention
     1137 *   Tous ces parametres sont facultatifs, mais un tableau est quand meme genere dans tous les cas !
     1138 */
     1139function association_totauxinfos_montants($legende='',$somme_recettes=0,$somme_depenses=0)
     1140{
     1141        $res = '<table width="100%" class="asso_infos">';
     1142        $res .= '<caption>'. _T('asso:totaux_montants', array('de_par'=>_T("local:$legende"))) .'</caption><tbody>';
     1143        if ($somme_recettes) {
     1144                $res .= '<tr class="impair">'
     1145                . '<th class="entree">'. _T('asso:bilan_recettes') .'</th>'
     1146                . '<td class="decimal">' .association_formater_prix($somme_recettes). ' </td>'
     1147                . '</tr>';
     1148        }
     1149        if ($somme_depenses) {
     1150                $res .= '<tr class="pair">'
     1151                . '<th class="sortie">'. _T('asso:bilan_depenses') .'</th>'
     1152                . '<td class="decimal">'.association_formater_prix($somme_depenses) .'</td>'
     1153                . '</tr>';
     1154        }
     1155        if ($somme_recettes && $somme_depenses) {
     1156                $solde = $somme_recettes-$somme_depenses;
     1157                $res .= '<tr class="'.($solde>0?'impair':'pair').'">'
     1158                . '<th class="solde">'. _T('asso:bilan_solde') .'</th>'
     1159                . '<td class="decimal">'.association_formater_prix($solde).'</td>'
     1160                . '</tr>';
     1161        }
     1162        return $res.'</tbody></table>';
     1163}
     1164
     1165/** @} */
     1166
     1167
     1168/*****************************************
     1169 * @defgroup association_bloc
     1170 *
     1171 *
     1172** @{ */
     1173
     1174/**
     1175 * Boite d'infos sur un objet (colonne gauche)
     1176 *
     1177 *
     1178 * @note
     1179 *   Une certaine similitude avec http://programmer.spip.org/boite_infos :)
     1180  */
     1181function association_bloc_infosgauche($TitreObjet, $NumObjet, $DesLignes=array(), $PrefixeLangue='asso', $ObjetEtendu='')
     1182{
     1183        $res = debut_boite_info(true);
     1184        $res .= association_totauxinfos_intro($TitreObjet, $TitreObjet, $NumObjet, $DesLignes, $PrefixeLangu, $ObjetEtendu);
     1185        $res .= association_date_du_jour();
     1186        $res .= fin_boite_info(true);
     1187        return $res;
     1188}
     1189
     1190/**
     1191 * Demande de confirmation dans la suppression d'un objet
     1192 *
     1193 * @param string $type
     1194 *   Type d'objet a supprimer
     1195 * @param int $id
     1196 *   ID de l'objet a supprimer
     1197 * @param string $retour
     1198 *   Nom du fichier d'action vers lequel le formulaire sera redirige, sans le prefixe "supprimer_".
     1199 *   Par defaut, quand rien n'est indique, c'est l'objet suffixe de "s" qui est utilise
     1200 */
     1201function association_bloc_suppression($type, $id, $retour='')
     1202{
     1203        $res = '<p><strong>'. _T('asso:vous_aller_effacer', array('quoi'=>'<i>'._T('asso:objet_num',array('objet'=>$type,'num'=>$id)).'</i>') ) .'</strong></p>';
     1204        $res .= '<p class="boutons"><input type="submit" value="'._T('asso:bouton_confirmer').'" /></p>';
     1205        echo redirige_action_post("supprimer_{$type}s", $id, ($retour?$retour:$type.'s'), '', $res);
     1206
     1207}
     1208
     1209/**
     1210 * Boite affichant le formulaire pour genere le PDF de la/le liste/tableau
     1211 *
     1212 * @param string $objet
     1213 *   Nom de l'objet : il s'agit imperativement d'un objet du plugin,
     1214 *   correspondant a une table avec le nom de l'objet suffixe de "s" et prefixe
     1215 *   de "spip_asso" (cela exclu quand meme les tables du plugin qui n'ont pas de
     1216 *   "s" final !)
     1217 * @param string $params
     1218 * @param string $prefixeLibelle
     1219 *   Prefixe rajoute au nom du champ pour former la chaine de langue (dont le
     1220 *   nommage est systematise dans "Associaspip")
     1221 * @param array $champsExclus
     1222 *   Liste (seules les valeurs du tableau sont prises en compte) des champs a ne
     1223 *   pas prendre en compte : tous les autres champs de la table sont recuperes
     1224 *   (mais seuls les champs geres par "Associaspip" et "Interface Champs Extras 2"
     1225 *   seront affiches/proposes dans le formulaire, d'ou pas d'exclu par defaut)
     1226 * @param bool $coords
     1227 *   Indique s'il faut (vrai) prendre en compte ou pas (faux) le plugin "Coordonnees"
     1228 * @return string $res
     1229 *   Form HTML complet dans un cadre. Ce formulaire sera traite par l'exec de
     1230 *   l'objet prefixe de "pdf_"
     1231 */
     1232function association_bloc_listepdf($objet, $params=array(), $prefixeLibelle='', $champsExclus=array(), $coords=true)
     1233{
     1234        $res = '';
     1235        if (test_plugin_actif('FPDF')) { // liste
     1236                $res .= debut_cadre_enfonce('',true);
     1237                $res .= '<h3>'. _T('plugins_vue_liste') .'</h3>';
     1238                $res .= '<div class="formulaire_spip formulaire_asso_liste_'.$objet.'s">';
     1239                $champsExtras = association_trouver_iextras("asso_$objet");
     1240                $frm = '<ul><li class="edit_champs">';
     1241                $desc_table = charger_fonction('trouver_table', 'base'); // http://doc.spip.org/@description_table deprecier donc preferer http://programmer.spip.net/trouver_table,620
     1242                $champsPresents = $desc_table("spip_asso_${objet}s");
     1243                foreach ($champsPresents['field'] as $k => $v) { // donner le menu des choix
     1244                        if ( !in_array($k, $champsExclus) ) { // affichable/selectionnable (champ ayant un libelle declare et connu)
     1245                                $lang_clef = $prefixeLibelle.$k;
     1246                                $lang_texte = _T('asso:'.$lang_clef);
     1247                                if ( $lang_clef!=str_replace(' ', '_', $lang_texte) ) { // champ natif du plugin
     1248                                        $frm .= "<div class='choix'><input type='checkbox' name='champs[$k]' id='liste_${objet}s_$k' /><label for='liste_${objet}s_$k'>$lang_texte</label></div>";
     1249                                } elseif( array_key_exists($k,$champsExtras) ) { // champs rajoute via cextra
     1250                                        $frm .= "<div class='choix'><input type='checkbox' name='champs[$k]' id='liste_${objet}s_$k' /><label for='liste_${objet}s_$k'>$champsExtras[$k]</label></div>";
     1251                                }
     1252                        }
     1253                }
     1254                if ($coords) {
     1255                        $frm .= '<div class="choix"><input type="checkbox" name="champs[email]" id="liste_'.$objet.'s_email" /><label for="liste_'.$objet.'_s_email">'. _T('asso:adherent_libelle_email') .'</label></div>'; // on ajoute aussi l'adresse electronique principale (table spip_auteurs ou spip_emails)
     1256                        if (test_plugin_actif('COORDONNEES')) {
     1257                                $frm .= '<div class="choix"><input type="checkbox" name="champs[adresse]" id="liste_'.$objet.'_s_adresse" /><label for="liste_'.$objet.'_s_adresse">'. _T('coordonnees:adresses') .'</label></div>'; // on ajoute aussi l'adresse postale (table spip_adresses)
     1258                                $frm .= '<div class="choix"><input type="checkbox" name="champs[telephone]" id="liste_'.$objet.'_s_telephone" /><label for="liste_'.$objet.'_s_telephone">'. _T('coordonnees:numeros') .'</label></div>'; // on ajoute aussi le numero de telephone (table spip_numeros)
     1259                        }
     1260                }
     1261                foreach ($params as $k => $v) { // on fait suivre les autres parametres dont la liste des auteurs a afficher
     1262                        $frm .= '<input type="hidden" name="'.$k.'" value="'. htmlspecialchars($v, ENT_QUOTES, $GLOBALS['meta']['charset']) .'" />'; // http://stackoverflow.com/questions/46483/htmlentities-vs-htmlspecialchars
     1263                }
     1264                $frm .= '</li></ul>';
     1265                $frm .= '<p class="boutons"><input type="submit" value="'. _T('asso:bouton_imprimer') .'" /></p>';
     1266                $res .= generer_form_ecrire("pdf_${objet}s", $frm, '', '');
     1267                $res .= '</div>';
     1268                $res .= fin_cadre_enfonce(true);
     1269        }
     1270
     1271        return $res;
     1272}
     1273
     1274/** @} */
     1275
     1276
     1277/*****************************************
     1278 * @defgroup sql_asso1
     1279 * Extension de l'API SQL pour Associaspip (operations qui reviennent souvent)
     1280 *
     1281 * @param string $table
     1282 *   Le nom de l'objet : correspond a la table sans prefixe "spip_asso" et sans le "s" final
     1283 * @param int $id
     1284 *   ID de la ligne a recuperer
     1285 * @param bool $pluriel
     1286 *   Indique qu'il s'agit d'une table avec (vrai, par defaut) ou sans (faux) un
     1287 *   suffixe "s". Mis a FALSE, permet de traiter le cas des tables _plan|destination|destination_op !
     1288 *
     1289** @{ */
     1290
     1291/**
     1292 * Recupere dans une chaine un champ d'une table spip_asso_XXs pour un enregistrement identifie par son id_XX
     1293 *
     1294 * @param string $champ
     1295 *   Nom du champ recherche
     1296 * @return string
     1297 *   Valeur du champ recherche
     1298 *
     1299 * @note Conversion d'anciennes fonctions :
     1300 * - exercice_intitule($exo) <=> sql_asso1champ('exercice', $exo, 'intitule')
     1301 * - exercice_date_debut($exercice) <=> sql_asso1champ('exercice', $exercice, 'debut')
     1302 * - exercice_date_fin($exercice) <=> sql_asso1champ('exercice', $exercice, 'fin')
     1303 */
     1304function sql_asso1champ($table, $id, $champ, $pluriel=TRUE)
     1305{
     1306        return sql_getfetsel($champ, "spip_asso_$table".($pluriel?'s':''), "id_$table=".intval($id));
     1307}
     1308
     1309/**
     1310 * Recupere dans un tableau associatif un enregistrement d'une table spip_asso_XX identifie par son id_XX
     1311 *
     1312 * @return array
     1313 *   Tableau des champs sous forme : 'nom_du_champ'=>"contenu du champ"
     1314 */
     1315function sql_asso1ligne($table, $id, $pluriel=TRUE)
     1316{
     1317        return sql_fetsel('*', "spip_asso_$table".($pluriel?'s':''), "id_$table=".intval($id));
     1318}
     1319
     1320/** @} */
     1321
     1322
     1323/*****************************************
     1324 * @defgroup divers
     1325 * Inclassables
     1326 *
     1327** @{ */
     1328
     1329/**
     1330 * Cree le critere SQL Where portant sur le champ "statut_interne"
     1331 *
     1332 * Pour l'instant, appele uniquement dans exec/adherents.php vers la ligne 25
     1333 */
     1334function request_statut_interne()
     1335{
     1336        $statut_interne = _request('statut_interne');
     1337        if (in_array($statut_interne, $GLOBALS['association_liste_des_statuts'] ))
     1338                return 'statut_interne='. sql_quote($statut_interne);
     1339        elseif ($statut_interne=='tous')
     1340                return "statut_interne LIKE '%'";
     1341        else {
     1342                set_request('statut_interne', 'defaut');
     1343                $a = $GLOBALS['association_liste_des_statuts'];
     1344                array_shift($a);
     1345                return sql_in('statut_interne', $a);
     1346        }
     1347}
     1348
     1349/**
     1350 * Affichage du message indiquant la date
     1351 *
     1352 * @param bool $heure
     1353 *   Indique s'il faut afficher (vrai) ou pas (faux, par defaut) l'heure.
     1354 * @return string $res
     1355 */
     1356function association_date_du_jour($heure=false)
     1357{
     1358        $ladate = affdate_jourcourt(date('d/m/Y'));
     1359        $hr = ($heure?date('H'):'');
     1360        $mn = ($heure?date('i'):'');
     1361        $res = '<p class="'. ($heure?'datetime':'date');
     1362        $res .= '" title="'. date('Y-m-d') . ($heure?"T$hr:$mn":'');
     1363        $lheure = ($heure? _T('spip:date_fmt_heures_minutes', array('h'=>$hr,'m'=>$mn)) :'');
     1364        $res .= '">'.( $heure ? _T('asso:date_du_jour_heure', array('date'=>$ladate)) : _T('asso:date_du_jour',array('date'=>$ladate,'time'=>$lheure)) ).'</p>';
     1365        return $res;
     1366}
     1367
     1368/**
     1369 * Injection de "association.css" dans le "header" de l'espace prive
     1370 * @param string $flux
     1371 * @return string $c
     1372 */
     1373function association_header_prive($flux)
     1374{
     1375        $c = direction_css(find_in_path('association.css'));
     1376        return "$flux\n<link rel='stylesheet' type='text/css' href='$c' />";
     1377}
     1378
     1379/**
     1380 * Filtre pour "afficher" ou "cacher" un bloc div
     1381 *
     1382 * Utilise dans le formulaire cvt "editer_asso_comptes.html"
     1383 *
     1384 * @param string $type_operation
     1385 * @param string $list_operation
     1386 * @return string $res
     1387 */
     1388function affichage_div($type_operation, $list_operation)
     1389{
     1390        if(strpos($list_operation, '-')) {
     1391                $operations = explode('-', $list_operation);
     1392                $res = 'cachediv';
     1393                for($i=0;$i<count($operations);$i++) {
     1394                        $operation = $GLOBALS['association_metas']['classe_'.$operations[$i]];
     1395                        if($type_operation===$operation) {
     1396                                $res = '';
     1397                                break;
     1398                        }
     1399                }
     1400        } else {
     1401                $res = ($type_operation===$GLOBALS['association_metas']['classe_'.$list_operation])?'':'cachediv';
     1402        }
     1403        return $res;
     1404}
     1405
     1406/**
     1407 * ??
     1408 *
     1409 * @param string $texte
     1410 * @param string $avant
     1411 * @param string $apres
     1412 * @return string
     1413 */
     1414function encadre($texte,$avant='[',$apres=']')
     1415{
     1416    return ($texte=='')?'':$avant.$texte.$apres;
     1417}
     1418
     1419/**
     1420 * Pour construire des menu avec SELECTED
     1421 *
     1422 * @param string $varaut
     1423 *   La valeur de l'option
     1424 * @param string $variable
     1425 *   La variable (passee par valeur) contenant la selection courante
     1426 * @param mixed $option
     1427 *   Quand cette variable est definie, indique de renvoyer un code partiel.
     1428 *   Par defaut c'est le code complet de l' Option HTML qui est retourne
     1429 * @return string
     1430 *   Option de select HTML
     1431 *
     1432 * @note
     1433 *   Utilise dans inc/instituer_statut_interne.php et inc/instituer_adherent.php
     1434 */
     1435function association_mySel($varaut, $variable, $option=NULL)
     1436{
     1437        if ( function_exists('mySel') ) //@ http://doc.spip.org/@mySel
     1438                return mySel($varaut, $variable, $option);
     1439        // la fonction mySel n'existe plus en SPIP 3 donc on la recree
     1440        $res = ' value="'.$varaut.'"'. (($variable==$varaut) ? ' selected="selected"' : '');
     1441        return  (!isset($option) ? $res : "<option$res>$option</option>\n");
     1442}
     1443
     1444/**
     1445 * Recupere la liste des champs extras manuellement rajoutes a un objet
     1446 *
     1447 * @param string $ObjetEtendu
     1448 *   Nom de l'objet dont on veut recuperer les champs etendus
     1449 * @return array $champsExtrasVoulus
     1450 *   'nom_de_la_colonne'=>"Libelle du champ"
     1451 */
     1452function association_trouver_iextras($ObjetEtendu)
    6821453{
    6831454        $champsExtrasVoulus = array();
     
    7021473}
    7031474
    704 // bloc infos integral (colonne gauche)
    705 // Rem: une certaine similitude avec http://programmer.spip.org/boite_infos :)
    706 function bloc_infos($TitreObjet, $NumObjet, $DesLignes=array(), $PrefixeLangue='asso', $ObjetEtendu='')
    707 {
    708         $res = debut_boite_info(true);
    709         $res .= totauxinfos_intro($TitreObjet, $TitreObjet, $NumObjet, $DesLignes, $PrefixeLangu, $ObjetEtendu);
    710         $res .= association_date_du_jour();
    711         $res .= fin_boite_info(true);
    712         return $res;
    713 }
    714 
    715 // Rappels sur l'objet dans le bloc infos
    716 // C'est un resume ou une petite presentation de l'objet en cours d'edition/lecture : ces informations permettent de situer le contexte de la page et n'apparaissent pas dans le bloc central !
    717 function totauxinfos_intro($titre, $type='', $id=0, $DesLignes=array(), $PrefixeLangue='asso', $ObjetEtendu='')
    718 {
    719         $res = '';
    720         if ($type) {
    721                 $res .= '<div style="text-align: center" class="verdana1 spip_x-small">'. _T('asso:titre_num', array('titre'=>_T("local:$type"), 'num'=>$id) ) .'</div>'; // presentation propre a Associaspip qui complete par un autre titre (voir ci-apres). Dans un SPIP traditionnel on aurait plutot : $res .= '<div style="font-weight: bold; text-align: center" class="verdana1 spip_xx-small">'. _T("$PrefixeLangue:$type") .'<br /><span class="spip_xx-large">'.$id.'</span></div>';
    722         }
    723         $res .= '<div style="text-align: center" class="verdana1 spip_medium">'.$titre.'</div>';
    724         if ( count($DesLignes) OR $ObjetEtendu )
    725                 $res .= '<dl class="verdana1 spip_xx-small">';
    726         foreach ($DesLignes as $dt=>$dd) {
    727                 $res .= '<dt>'. _T("$PrefixeLangue:$dt") .'</dt><dd>'. propre($dd) .'</dd>'; // propre() encadre dans P... Cette presentation est propre a Associaspip. Habituellement on a : $res .= "<div class='$dt'><strong>". _T("$PrefixeLangue:$dt") ."</strong> $dd</div>";
    728         }
    729         if ($ObjetEtendu) {
    730 /* Le code suivant fonctionne, mais :
    731 -* il manque le formatage correct des donnees, surtout pour les listes (cas par exemple des : auteurs, mots cles, documents, enums definis dans l'interface).
    732 -* seuls les champs extras crees manuellement (par l'interface donc) sont pris en compte, pas ceux rajoutes via pipeline par d'autres plugins.
    733                 $champsExtras = recuperer_iextras($ObjetEtendu);
    734                 if ( count($champsExtras) ) {
    735                         $donneesExtras = sql_fetsel(array_keys($champsExtras), "spip_${ObjetEtendu}s", 'id_'.($type?$type:$ObjetEtendu).'='.intval($id) ); // on recupere les donnees... (il faut que le nom de la table soit le pluriel en "-s" de l'objet et que l'identifiant soit l'objet prefixe de "id_" :-S)
    736                         foreach ($champsExtras as $col_name => $col_label) {
    737                                 $res .= '<dt>'. $col_label .'</dt><dd>'. propre($donneesExtras[$col_name]) .'</dd>'; // propre() encadre dans P... Cette presentation est propre a Associaspip. L'appel au pipeline "afficher_contenu_objet" remplace tout le "foreach" avec plutot : $res .= "<div class='$col_name'><strong>$col_label</strong> $donneesExtras[$col_name]</div>";
    738                         }
    739                 }
    740 du coup, on readapte : */
    741                 $res .= '<dt>+</dt><dd>'. pipeline('afficher_contenu_objet', array('args'=>array('type'=>$ObjetEtendu, 'id_objet'=>$id, 'contexte'=>array()), 'data'=>'',) ) .'</dd>';
    742         }
    743         if ( count($DesLignes) OR $ObjetEtendu )
    744                 $res .= '</dl>';
    745         return $res;
    746 }
    747 
    748 // Tableau presentant les chiffres de synthese de la statistique descriptive dans le bloc infos
    749 // On prend en entree : la table du plugin sur laquelle va porter les statistique, un tableau de item de langue decrivant la ligne et liste des champs sur lesquels calcuer les statistiques, le critere de selection SQL des lignes (sinon toutes)
    750 // On renvoie pour chaque ligne : la moyenne arithmetique <http://fr.wikipedia.org/wiki/Moyenne#Moyenne_arithm.C3.A9tique> et  l'ecart-type <http://fr.wikipedia.org/wiki/Dispersion_statistique#.C3.89cart_type> ainsi que les extrema <http://fr.wikipedia.org/wiki/Crit%C3%A8res_de_position#Valeur_maximum_et_valeur_minimum> si on le desire (par defaut non car tableau debordant dans ce petit cadre)
    751 function totauxinfos_stats($legende='',$sql_table_asso,$sql_champs,$sql_criteres='1=1',$decimales_significatives=1,$avec_extrema=false)
    752 {
    753         if (!is_array($sql_champs) || !$sql_table_asso)
    754                 return FALSE;
    755         $res = '<table width="100%" class="asso_infos">';
    756         $res .= '<caption>'. _T('asso:totaux_moyens', array('de_par'=>_T("local:$legende"))) .'</caption><thead>';
    757         $res .= '<tr class="row_first"> <th>&nbsp;</th>';
    758         $res .= '<th title="'. _T('entete_stats_moy') .'">x&#772</th>'; // X <span style="font-size:75%;">X</span>&#772 <span style="text-decoration:overline;">X</span> X<span style="position:relative; bottom:1.0ex; letter-spacing:-1.2ex; right:1.0ex">&ndash;</span> x<span style="position:relative; bottom:1.0ex; letter-spacing:-1.2ex; right:1.0ex">&macr;</span>
    759         $res .= '<th title="'. _T('entete_stats_mea') .'">&sigma;</th>'; // σ &sigma; &#963; &#x3C3;
    760         if ($avec_extrema) {
    761                 $res .= '<th title="'. _T('entete_stats_min') .'">[&lt;</th>';
    762                 $res .= '<th title="'. _T('entete_stats_max') .'">&gt;]</th>';
    763         }
    764         $res .= '</tr>';
    765         $res .= '</thead><tbody>';
    766         $compteur = 0;
    767         foreach ($sql_champs as $libelle=>$champs) {
    768                 $stats = sql_fetsel("AVG($champs) AS valMoy, STDDEV($champs) AS ekrTyp, MIN($champs) AS valMin, MAX($champs) AS valMax ", "spip_asso_$sql_table_asso", $sql_criteres);
    769                 $res .= '<tr class="'. ($compteur%2?'row_odd':'row_even') .'">';
    770                 $res .= '<td class"text">'. _T('asso:'.(is_numeric($libelle)?$champs:$libelle)) .'</td>';
    771                 $res .= '<td class="'.($decimales_significatives?'decimal':'integer').'">'. association_nbrefr($stats['valMoy'],$decimales_significatives) .'</td>';
    772                 $res .= '<td class="'.($decimales_significatives?'decimal':'integer').'">'. association_nbrefr($stats['ekrTyp'],$decimales_significatives) .'</td>';
    773                 if ($avec_extrema) {
    774                         $res .= '<td class="'.($decimales_significatives?'decimal':'integer').'">'. association_nbrefr($stats['valMin'],$decimales_significatives) .'</td>';
    775                         $res .= '<td class="'.($decimales_significatives?'decimal':'integer').'">'. association_nbrefr($stats['valMax'],$decimales_significatives) .'</td>';
    776                 }
    777                 $res .= '</tr>';
    778                 $compteur++;
    779         }
    780         $res .= '</tbody></table>';
    781         return $res;
    782 }
    783 
    784 // Tableau des decomptes statistiques dans le bloc infos
    785 // On prend en entree deux tableaux de taille egale (non controlee) --respectivement pour les intitules/libelles et les effectifs/occurences-- qui sont indexes par la classe CSS associee (parce-qu'elle doit etre unique pour chaque ligne)
    786 function totauxinfos_effectifs($legende='',$table_textes,$table_nombres,$decimales_significatives=0)
    787 {
    788         if (!is_array($table_textes) || !is_array($table_nombres) )
    789                 return FALSE;
    790         $nombre = $nombre_total = 0;
    791         $res = '<table width="100%" class="asso_infos">';
    792         $res .= '<caption>'. _T('asso:totaux_nombres', array('de_par'=>_T("local:$legende"))) .'</caption><tbody>';
    793         foreach ($table_textes as $classe_css=>$libelle) {
    794                 $res .= '<tr class="'.$classe_css.'">';
    795                 $res .= '<td class"text">'._T('asso:'.$libelle).'</td>';
    796                 $res .= '<td class="' .($decimales_significatives?'decimal':'integer') .'">'. association_nbrefr($table_nombres[$classe_css],$decimales_significatives) .'</td>';
    797                 $nombre_total += $table_nombres[$classe_css];
    798                 $res .= '</tr>';
    799         }
    800         $res .= '</tbody>';
    801         if (count($table_nombres)>1) {
    802                 $res .= '<tfoot>';
    803                 $res .= '<tr><th class="text">'._T('asso:liste_nombre_total').'</th>';
    804                 $res .= '<th class="' .($decimales_significatives?'decimal':'integer') .'">'. association_nbrefr($nombre_total,$decimales_significatives) .'</th></tr>';
    805                 $res .= '</tfoot>';
    806         }
    807         return $res.'</table>';
    808 }
    809 
    810 // Tableau des totaux comptables dans le bloc infos
    811 // On prend en entree : le complement de titre du tableau puis les sommes cumulees des recettes et des depenses. (tous ces parametres sont facultatifs, mais attention qu'un tableau est quand meme genere dans tous les cas)
    812 function totauxinfos_montants($legende='',$somme_recettes=0,$somme_depenses=0)
    813 {
    814         $res = '<table width="100%" class="asso_infos">';
    815         $res .= '<caption>'. _T('asso:totaux_montants', array('de_par'=>_T("local:$legende"))) .'</caption><tbody>';
    816         if ($somme_recettes) {
    817                 $res .= '<tr class="impair">'
    818                 . '<th class="entree">'. _T('asso:bilan_recettes') .'</th>'
    819                 . '<td class="decimal">' .association_prixfr($somme_recettes). ' </td>'
    820                 . '</tr>';
    821         }
    822         if ($somme_depenses) {
    823                 $res .= '<tr class="pair">'
    824                 . '<th class="sortie">'. _T('asso:bilan_depenses') .'</th>'
    825                 . '<td class="decimal">'.association_prixfr($somme_depenses) .'</td>'
    826                 . '</tr>';
    827         }
    828         if ($somme_recettes && $somme_depenses) {
    829                 $solde = $somme_recettes-$somme_depenses;
    830                 $res .= '<tr class="'.($solde>0?'impair':'pair').'">'
    831                 . '<th class="solde">'. _T('asso:bilan_solde') .'</th>'
    832                 . '<td class="decimal">'.association_prixfr($solde).'</td>'
    833                 . '</tr>';
    834         }
    835         return $res.'</tbody></table>';
    836 }
    837 
    838 // bloc affichant le formulaire pour genere le PDF de la/le liste/tableau
    839 function bloc_listepdf($objet, $params=array(), $prefixeLibelle='', $champsExclus=array(), $coords=true)
    840 {
    841         $res = '';
    842         if (test_plugin_actif('FPDF')) { // liste
    843                 $res .= debut_cadre_enfonce('',true);
    844                 $res .= '<h3>'. _T('plugins_vue_liste') .'</h3>';
    845                 $res .= '<div class="formulaire_spip formulaire_asso_liste_'.$objet.'s">';
    846                 $champsExtras = recuperer_iextras("asso_$objet");
    847                 $frm = '<ul><li class="edit_champs">';
    848                 $desc_table = charger_fonction('trouver_table', 'base'); // http://doc.spip.org/@description_table deprecier donc preferer http://programmer.spip.net/trouver_table,620
    849                 $champsPresents = $desc_table("spip_asso_${objet}s");
    850                 foreach ($champsPresents['field'] as $k => $v) { // donner le menu des choix
    851                         if ( !in_array($k, $champsExclus) ) { // affichable/selectionnable (champ ayant un libelle declare et connu)
    852                                 $lang_clef = $prefixeLibelle.$k;
    853                                 $lang_texte = _T('asso:'.$lang_clef);
    854                                 if ( $lang_clef!=str_replace(' ', '_', $lang_texte) ) { // champ natif du plugin
    855                                         $frm .= "<div class='choix'><input type='checkbox' name='champs[$k]' id='liste_${objet}s_$k' /><label for='liste_${objet}s_$k'>$lang_texte</label></div>";
    856                                 } elseif( array_key_exists($k,$champsExtras) ) { // champs rajoute via cextra
    857                                         $frm .= "<div class='choix'><input type='checkbox' name='champs[$k]' id='liste_${objet}s_$k' /><label for='liste_${objet}s_$k'>$champsExtras[$k]</label></div>";
    858                                 }
    859                         }
    860                 }
    861                 if ($coords) {
    862                         $frm .= '<div class="choix"><input type="checkbox" name="champs[email]" id="liste_'.$objet.'s_email" /><label for="liste_'.$objet.'_s_email">'. _T('asso:adherent_libelle_email') .'</label></div>'; // on ajoute aussi l'adresse electronique principale (table spip_auteurs ou spip_emails)
    863                         if (test_plugin_actif('COORDONNEES')) {
    864                                 $frm .= '<div class="choix"><input type="checkbox" name="champs[adresse]" id="liste_'.$objet.'_s_adresse" /><label for="liste_'.$objet.'_s_adresse">'. _T('coordonnees:adresses') .'</label></div>'; // on ajoute aussi l'adresse postale (table spip_adresses)
    865                                 $frm .= '<div class="choix"><input type="checkbox" name="champs[telephone]" id="liste_'.$objet.'_s_telephone" /><label for="liste_'.$objet.'_s_telephone">'. _T('coordonnees:numeros') .'</label></div>'; // on ajoute aussi le numero de telephone (table spip_numeros)
    866                         }
    867                 }
    868                 foreach ($params as $k => $v) { // on fait suivre les autres parametres dont la liste des auteurs a afficher
    869                         $frm .= '<input type="hidden" name="'.$k.'" value="'. htmlspecialchars($v, ENT_QUOTES, $GLOBALS['meta']['charset']) .'" />'; // http://stackoverflow.com/questions/46483/htmlentities-vs-htmlspecialchars
    870                 }
    871                 $frm .= '</li></ul>';
    872                 $frm .= '<p class="boutons"><input type="submit" value="'. _T('asso:bouton_imprimer') .'" /></p>';
    873                 $res .= generer_form_ecrire("pdf_${objet}s", $frm, '', '');
    874                 $res .= '</div>';
    875                 $res .= fin_cadre_enfonce(true);
    876         }
    877 
    878         return $res;
    879 }
     1475/** @} */
     1476
    8801477
    8811478// pour executer les squelettes comportant la balise Meta
    8821479include_spip('balise/meta');
     1480
    8831481// charger les metas donnees
    8841482$inc_meta = charger_fonction('meta', 'inc'); // inc_version l'a deja chargee
     
    8901488}
    8911489
    892 // Pour construire des menu avec SELECTED
    893 function association_mySel($varaut,$variable, $option=NULL)
    894 {
    895         if ( function_exists('mySel') ) //@ http://doc.spip.org/@mySel
    896                 return mySel($varaut, $variable, $option);
    897         // la fonction mySel n'existe plus en SPIP 3 donc on la recree
    898         $res = ' value="'.$varaut.'"'. (($variable==$varaut) ? ' selected="selected"' : '');
    899         return  (!isset($option) ? $res : "<option$res>$option</option>\n");
    900 }
    9011490
    9021491?>
  • _plugins_/Association/Associaspip/base/association.php

    r62712 r65375  
    160160        "prix_caution" => "DECIMAL(19,2) NOT NULL DEFAULT '0'", // pour le depot de garanti... http://lexinter.net/JF/cautionnement.htm
    161161        "pu" => "DECIMAL(19,2) NOT NULL DEFAULT '0'", // prix unitaire (par tranche de temps) de la location
    162         "ud" => "CHAR(1) NULL DEFAULT 'D'", // unite des durees (de tranches) de location/pret : ce champ pourrait etre un ENUM('Y','M','W','D','H','S') mais un CHAR(1) est plus portable, d'autant que les caracteres geres le sont par la fonction association_dureefr(); ce qui est ca de moins a gerer en base.
     162        "ud" => "CHAR(1) NULL DEFAULT 'D'", // unite des durees (de tranches) de location/pret : ce champ pourrait etre un ENUM('Y','M','W','D','H','S') mais un CHAR(1) est plus portable, d'autant que les caracteres geres le sont par la fonction association_formater_duree(); ce qui est ca de moins a gerer en base.
    163163        "statut" => "TINYINT NULL", // utiliser un entier permet de pouvoir associer la quantite acquise ...assez reduite (d'ou du TinyInt et non autre : il ne s'agit pas non plus de gerer un entrepot de grossiste... mais 2-3 unites sans devoir forcement creer des codes distincts --ce qui est recommande meme si on reste flexible)
    164164        "commentaire" => "TEXT NOT NULL",
  • _plugins_/Association/Associaspip/exec/action_adherents.php

    r60137 r65375  
    2929                        onglets_association('titre_onglet_membres');
    3030                        // info
    31                         echo totauxinfos_intro(_T('asso:confirmation'));
     31                        echo association_totauxinfos_intro(_T('asso:confirmation'));
    3232                        // datation et raccourcis
    3333                        icones_association(array('adherents'));
  • _plugins_/Association/Associaspip/exec/action_comptes.php

    r64270 r65375  
    5353        while($data = sql_fetch($query)) {
    5454                $res .= "<tr>"
    55                 . '<td><strong>'.association_datefr($data['date']).'</strong></td>'
     55                . '<td><strong>'. association_formater_date($data['date']).'</strong></td>'
    5656                . '<td><strong>'.propre($data['justification']).'</strong></td>'
    5757                . "<td><input type=checkbox name='definitif[]' value='".$data['id_compte']."' checked='checked' /></td></tr>\n";
  • _plugins_/Association/Associaspip/exec/activites.php

    r64275 r65375  
    4343                $liste_effectifs['impair'] = sql_countsel('spip_asso_activites AS a LEFT JOIN spip_evenements AS e ON a.id_evenement=e.id_evenement', "DATE_FORMAT(e.date_debut, '%Y')=$annee",'a.id_evenement', "SUM(a.inscrits)=0");
    4444                $liste_effectifs['impair'] = sql_countsel('spip_evenements', "DATE_FORMAT(date_debut, '%Y')=$annee")-$liste_effectifs['pair']; // le monde a l'envers... mais ca fonctionne
    45                 echo totauxinfos_effectifs('activites', $liste_libelles, $liste_effectifs);
     45                echo association_totauxinfos_effectifs('activites', $liste_libelles, $liste_effectifs);
    4646/*
    4747                // STATS sur toutes les participations
    48                 echo totauxinfos_stats('participations_par_personne_par_activite', 'activites', array('activite_entete_inscrits'=>'inscrits','entete_montant'=>'montant',), "DATE_FORMAT(date, '%Y')=$annee");
     48                echo association_totauxinfos_stats('participations_par_personne_par_activite', 'activites', array('activite_entete_inscrits'=>'inscrits','entete_montant'=>'montant',), "DATE_FORMAT(date, '%Y')=$annee");
    4949                // TOTAUX : montants des participations durant l'annee en cours
    5050                $data = sql_fetsel('SUM(recette) AS somme_recettes, SUM(depense) AS somme_depenses', 'spip_asso_comptes', "DATE_FORMAT('date', '%Y')=$annee AND imputation=".sql_quote($GLOBALS['association_metas']['pc_activites']) );
    51                 echo totauxinfos_montants('activites', $data['somme_recettes'], $data['somme_depenses']);
     51                echo association_totauxinfos_montants('activites', $data['somme_recettes'], $data['somme_depenses']);
    5252*/
    5353                // datation et raccourci vers la gestion des evenements
     
    121121                        echo '<tr class="'. ($inscrits['total']?'pair':'impair') . (($id_evenement==$data['id_evenement'])?' surligne':'') .'" id="'.$data['id_evenement'].'">';
    122122                        echo '<td class="integer">'.$data['id_evenement'].'</td>';
    123                         echo '<td class="date">'. association_datefr($data['date_debut'],'dtstart') .'</td>';
     123                        echo '<td class="date">'. association_formater_date($data['date_debut'],'dtstart') .'</td>';
    124124                        echo '<td class="date">'. substr($data['date_debut'],10,6) .'</td>';
    125125                        echo '<td class="text">'.$data['intitule'].'</td>';
    126126                        echo '<td class="text">'.$data['lieu'].'</td>';
    127127                        echo '<td class="integer">'.$inscrits['total'].'</td>';
    128                         echo '<td class="actions">'. association_bouton('activite_bouton_modifier_article', 'edit-12.gif', 'articles', 'id_article='.$data['id_article']) . '</td>';
    129                         echo '<td class="actions">'. association_bouton('activite_bouton_ajouter_inscription', 'creer-12.gif', 'edit_activite', 'id_evenement='.$data['id_evenement']) . '</td>';
    130                         echo '<td class="actions">'. association_bouton('activite_bouton_voir_liste_inscriptions', 'voir-12.png', 'inscrits_activite', 'id='.$data['id_evenement']) . '</td>';
     128                        echo '<td class="actions">'. association_bouton_faire('activite_bouton_modifier_article', 'edit-12.gif', 'articles', 'id_article='.$data['id_article']) . '</td>';
     129                        echo '<td class="actions">'. association_bouton_faire('activite_bouton_ajouter_inscription', 'creer-12.gif', 'edit_activite', 'id_evenement='.$data['id_evenement']) . '</td>';
     130                        echo '<td class="actions">'. association_bouton_faire('activite_bouton_voir_liste_inscriptions', 'voir-12.png', 'inscrits_activite', 'id='.$data['id_evenement']) . '</td>';
    131131                        echo "</tr>\n";
    132132                }
  • _plugins_/Association/Associaspip/exec/adherent.php

    r65117 r65375  
    4545                        $infos['adherent_libelle_categorie'] = $categorie;
    4646                }
    47                 $infos['adherent_libelle_validite'] = association_datefr($data['validite']);
     47                $infos['adherent_libelle_validite'] = association_formater_date($data['validite']);
    4848                if ($GLOBALS['association_metas']['id_asso']) {
    4949                        $infos['adherent_libelle_reference_interne'] = ($data['id_asso']?_T('asso:adherent_libelle_reference_interne').'<br/>'.$data['id_asso']:_T('asso:pas_de_reference_interne_attribuee')) ;
     
    5555                if ($telephones[$id_auteur])
    5656                        $infos['numeros'] =  $telephones[$id_auteur];
    57                 echo '<div class="vcard">'. totauxinfos_intro('<span class="fn">'.htmlspecialchars($nom_membre).'</span>', $statut, $id_auteur, $infos, 'asso', 'asso_membre') .'</div>';
     57                echo '<div class="vcard">'. association_totauxinfos_intro('<span class="fn">'.htmlspecialchars($nom_membre).'</span>', $statut, $id_auteur, $infos, 'asso', 'asso_membre') .'</div>';
    5858                // datation et raccourcis
    5959                if ($full)
     
    129129                                while ($evenement = sql_fetch($sql)) {
    130130                                        $date = substr($evenement['date_debut'],0,10);
    131                                         echo '<td class="date">'.association_datefr($date).'</td>';
     131                                        echo '<td class="date">'.association_formater_date($date).'</td>';
    132132                                        echo '<td class="text">'.$evenement['titre'].'</td>';
    133133                                }
    134134                                echo '<td class="integer">'.$data['inscrits'].'</td>';
    135                                 echo '<td class="decimal">'. association_prixfr($data['montant']) .'</td>';
    136                                 echo '<td class="action">', association_bouton('adherent_bouton_maj_inscription', 'edit-12.gif', 'edit_activite', 'id='.$data['id_activite']), '</td>';
     135                                echo '<td class="decimal">'. association_formater_prix($data['montant']) .'</td>';
     136                                echo '<td class="action">', association_bouton_faire('adherent_bouton_maj_inscription', 'edit-12.gif', 'edit_activite', 'id='.$data['id_activite']), '</td>';
    137137                                echo "</tr>\n";
    138138                        }
     
    155155                                echo '<tr>';
    156156                                echo '<td class="integer">'.$data['id_vente'].'</td>';
    157                                 echo '<td class="date">'.association_datefr($data['date_vente']).'</td>';
     157                                echo '<td class="date">'.association_formater_date($data['date_vente']).'</td>';
    158158                                echo '<td class="text">'.$data['article'].'</td>';
    159159                                echo '<td class="decimal">'.$data['quantite'].'</td>';
    160                                 echo '<td class="date">'.association_datefr($data['date_envoi']).'</td>';
    161                                 echo '<td class="action">'. association_bouton('adherent_bouton_maj_vente', 'edit-12.gif', 'edit_vente','id='.$data['id_vente']) .'</td>';
     160                                echo '<td class="date">'.association_formater_date($data['date_envoi']).'</td>';
     161                                echo '<td class="action">'. association_bouton_faire('adherent_bouton_maj_vente', 'edit-12.gif', 'edit_vente','id='.$data['id_vente']) .'</td>';
    162162                                echo "</tr>\n";
    163163                        }
     
    220220                                echo '<td class="integer">'.$data['id_pret'].'</td>';
    221221                                echo '<td class="text">'.$data['intitule'].'</td>';
    222                                 echo '<td class="date">'.association_datefr($data['date_sortie'],'dtstart').'</td>';
     222                                echo '<td class="date">'.association_formater_date($data['date_sortie'],'dtstart').'</td>';
    223223                                echo '<td class="date">';
    224224                                if($data['date_retour']<=$data['date_sortie']){
    225225                                        echo '&nbsp;';
    226226                                } else {
    227                                         echo association_datefr($data['date_retour'], 'dtend');
     227                                        echo association_formater_date($data['date_retour'], 'dtend');
    228228                                }
    229229                                echo '</td>';
    230                                 echo '<td class="action">' . association_bouton('adherent_bouton_maj_operation', 'edit-12.gif', 'edit_pret', 'agir=modifie&id_pret='.$data['id_pret']) . '</td>';
     230                                echo '<td class="action">' . association_bouton_faire('adherent_bouton_maj_operation', 'edit-12.gif', 'edit_pret', 'agir=modifie&id_pret='.$data['id_pret']) . '</td>';
    231231                                echo "</tr>\n";
    232232                        }
     
    249249                . '<td class="integer">'.$id.'</td>'
    250250                . '<td class="text">'.$row['journal'].'</td>'
    251                 . '<td class="date">'. association_datefr($row['date']). '</td>'
     251                . '<td class="date">'. association_formater_date($row['date']). '</td>'
    252252                . '<td class="text">'. propre($j) .'</td>'
    253                 . '<td class="decimal">'. association_prixfr($row['montant']) .'</td>'
    254                 . '<td class="action">'. association_bouton('adherent_label_voir_operation', 'voir-12.png', 'comptes','id_compte='.$id_compte) .'</td>' // pas plutot edit_compte ? (a propos, il faudrait carrement un voir_compte pour ne pas risquer de modifier ainsi une operation marquee "vu" et donc archivee/verouillee)
     253                . '<td class="decimal">'. association_formater_prix($row['montant']) .'</td>'
     254                . '<td class="action">'. association_bouton_faire('adherent_label_voir_operation', 'voir-12.png', 'comptes','id_compte='.$id_compte) .'</td>' // pas plutot edit_compte ? (a propos, il faudrait carrement un voir_compte pour ne pas risquer de modifier ainsi une operation marquee "vu" et donc archivee/verouillee)
    255255                . '</tr>';
    256256        }
  • _plugins_/Association/Associaspip/exec/adherents.php

    r65031 r65375  
    3636                        $liste_effectifs[$classe_css] = sql_countsel('spip_asso_membres', "statut_interne='$statut'");
    3737                }
    38                 echo totauxinfos_effectifs('adherents', $liste_libelles, $liste_effectifs);
     38                echo association_totauxinfos_effectifs('adherents', $liste_libelles, $liste_effectifs);
    3939                // TOTAUX : montants des cotisations durant l'annee en cours
    4040                $data = sql_fetsel('SUM(recette) AS somme_recettes, SUM(depense) AS somme_depenses', 'spip_asso_comptes', "DATE_FORMAT('date', '%Y')=DATE_FORMAT(NOW(), '%Y') AND imputation=".sql_quote($GLOBALS['association_metas']['pc_cotisations']) );
    41                 echo totauxinfos_montants('cotisations', $data['somme_recettes'], $data['somme_depenses']);
     41                echo association_totauxinfos_montants('cotisations', $data['somme_recettes'], $data['somme_depenses']);
    4242                // datation et raccourcis
    4343                if (autoriser('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.
     
    7070                if ( !$GLOBALS['association_metas']['id_asso'] )
    7171                        $champsExclus[] = 'id_asso';
    72                 echo bloc_listepdf('membre', array('where_adherents'=>$where_adherents, 'jointure_adherents'=>$jointure_adherents, 'statut_interne'=>$statut_interne), 'adherent_libelle_', $champsExclus, true);
     72                echo association_boite_listepdf('membre', array('where_adherents'=>$where_adherents, 'jointure_adherents'=>$jointure_adherents, 'statut_interne'=>$statut_interne), 'adherent_libelle_', $champsExclus, true);
    7373                debut_cadre_association('annonce.gif', 'adherent_titre_liste_actifs');
    7474                // FILTRES
     
    190190                                $auteurs .= '&nbsp;';
    191191                        } else {
    192                                 $auteurs .= '<abbr class="dtend" title="'.$data['validite'].'">'. association_datefr($data['validite']) .'</td>';
     192                                $auteurs .= '<abbr class="dtend" title="'.$data['validite'].'">'. association_formater_date($data['validite']) .'</td>';
    193193                        }
    194194                        $auteurs .= '</td>';
     
    196196                $auteurs .= '<td class="action">'
    197197                . '<a href="'. generer_url_ecrire('auteur_infos','id_auteur='.$id_auteur) .'">'.$icone.'</a></td>'
    198                 . '<td class="action">'. association_bouton('adherent_label_ajouter_cotisation', 'cotis-12.gif', 'ajout_cotisation','id='.$id_auteur) .'</td>'
    199                 . '<td class="action">'. association_bouton('adherent_label_modifier_membre', 'edit-12.gif', 'edit_adherent','id='.$id_auteur) .'</td>'
    200                 . '<td class="action">'. association_bouton('adherent_label_voir_membre', 'voir-12.png', 'adherent','id='.$id_auteur) .'</td>'
     198                . '<td class="action">'. association_bouton_faire('adherent_label_ajouter_cotisation', 'cotis-12.gif', 'ajout_cotisation','id='.$id_auteur) .'</td>'
     199                . '<td class="action">'. association_bouton_faire('adherent_label_modifier_membre', 'edit-12.gif', 'edit_adherent','id='.$id_auteur) .'</td>'
     200                . '<td class="action">'. association_bouton_faire('adherent_label_voir_membre', 'voir-12.png', 'adherent','id='.$id_auteur) .'</td>'
    201201                . '<td class="action"><input name="id_auteurs[]" type="checkbox" value="'.$id_auteur.'" /></td>'
    202202                . "</tr>\n";
  • _plugins_/Association/Associaspip/exec/ajout_cotisation.php

    r64269 r65375  
    2929                $categorie = sql_fetsel('*', 'spip_asso_categories', 'id_categorie='. intval($row['categorie']));
    3030                $infos['adherent_libelle_categorie'] = $categorie['libelle'];
    31                 $infos['entete_montant'] = association_prixfr($categorie['cotisation']);
    32                 $infos['adherent_libelle_validite'] = association_datefr($row['validite']);
    33                 echo totauxinfos_intro(htmlspecialchars(association_calculer_nom_membre($row['sexe'], $row['prenom'], $row['nom_famille'])), 'membre', $id_auteur, $infos );
     31                $infos['entete_montant'] = association_formater_prix($categorie['cotisation']);
     32                $infos['adherent_libelle_validite'] = association_formater_date($row['validite']);
     33                echo association_totauxinfos_intro(htmlspecialchars(association_calculer_nom_membre($row['sexe'], $row['prenom'], $row['nom_famille'])), 'membre', $id_auteur, $infos );
    3434                // datation et raccourcis
    3535                icones_association('', array(
  • _plugins_/Association/Associaspip/exec/ajout_inscription.php

    r59668 r65375  
    3030                // INTRO : Rappel Infos Evenement
    3131                $evenement = sql_fetsel('*', 'spip_evenements', "id_evenement=$id_evenement");
    32                 $infos['evenement_date_debut'] = association_datefr($evenement['date_debut'],'dtstart').' '.substr($data['date_debut'],10,6);
    33                 $infos['evenement_date_fin'] = association_datefr($evenement['date_fin'],'dtend').' '.substr($data['date_debut'],10,6);
     32                $infos['evenement_date_debut'] = association_formater_date($evenement['date_debut'],'dtstart').' '.substr($data['date_debut'],10,6);
     33                $infos['evenement_date_fin'] = association_formater_date($evenement['date_fin'],'dtend').' '.substr($data['date_debut'],10,6);
    3434                $infos['evenement_lieu'] = $evenement['lieu'];
    35                 echo totauxinfos_intro($evenement['titre'], 'evenement', $id_evenement, $infos, 'agenda');
     35                echo association_totauxinfos_intro($evenement['titre'], 'evenement', $id_evenement, $infos, 'agenda');
    3636                // datation et raccourcis
    3737                icones_association('');
  • _plugins_/Association/Associaspip/exec/ajout_participation.php

    r59668 r65375  
    3030                // INTRO : Rappel Infos Evenement
    3131                $evenement = sql_fetsel('*', 'spip_evenements', "id_evenement=$id_evenement");
    32                 $infos['evenement_date_debut'] = association_datefr($evenement['date_debut'],'dtstart').' '.substr($data['date_debut'],10,6);
    33                 $infos['evenement_date_fin'] = association_datefr($evenement['date_fin'],'dtend').' '.substr($data['date_debut'],10,6);
     32                $infos['evenement_date_debut'] = association_formater_date($evenement['date_debut'],'dtstart').' '.substr($data['date_debut'],10,6);
     33                $infos['evenement_date_fin'] = association_formater_date($evenement['date_fin'],'dtend').' '.substr($data['date_debut'],10,6);
    3434                $infos['evenement_lieu'] = $evenement['lieu'];
    35                 echo totauxinfos_intro($evenement['titre'], 'evenement', $id_evenement, $infos, 'agenda');
     35                echo association_totauxinfos_intro($evenement['titre'], 'evenement', $id_evenement, $infos, 'agenda');
    3636                // datation et raccourcis
    3737                icones_association('');
  • _plugins_/Association/Associaspip/exec/annexe.php

    r60428 r65375  
    3737                onglets_association('titre_onglet_comptes');
    3838                // INTRO : rappel de l'exercicee affichee
    39                 $infos['exercice_entete_debut'] = association_datefr($exercice_data['debut'], 'dtstart');
    40                 $infos['exercice_entete_fin'] = association_datefr($exercice_data['fin'], 'dtend');
    41                 echo totauxinfos_intro($exercice_data['intitule'], 'exercice', $exercice, $infos);
     39                $infos['exercice_entete_debut'] = association_formater_date($exercice_data['debut'], 'dtstart');
     40                $infos['exercice_entete_fin'] = association_formater_date($exercice_data['fin'], 'dtend');
     41                echo association_totauxinfos_intro($exercice_data['intitule'], 'exercice', $exercice, $infos);
    4242                // datation et raccourcis
    4343                icones_association(array('comptes', "exercice=$exercice"), array(
  • _plugins_/Association/Associaspip/exec/bilan.php

    r61847 r65375  
    3737                onglets_association('titre_onglet_comptes');
    3838                // INTRO : rappel de l'exercicee affichee
    39                 $infos['exercice_entete_debut'] = association_datefr($exercice_data['debut'], 'dtstart');
    40                 $infos['exercice_entete_fin'] = association_datefr($exercice_data['fin'], 'dtend');
    41                 echo totauxinfos_intro($exercice_data['intitule'], 'exercice', $exercice, $infos);
     39                $infos['exercice_entete_debut'] = association_formater_date($exercice_data['debut'], 'dtstart');
     40                $infos['exercice_entete_fin'] = association_formater_date($exercice_data['fin'], 'dtend');
     41                echo association_totauxinfos_intro($exercice_data['intitule'], 'exercice', $exercice, $infos);
    4242                // datation et raccourcis
    4343                icones_association(array('comptes', "exercice=$exercice"), array(
     
    174174                        echo '<tr id="'.$compteFinancier['id_plan'].'">';
    175175                        echo '<td class="text">'. $compteFinancier['code'] .' : '. $compteFinancier['intitule'] .'</td>';
    176                         echo '<td class="date">'. association_datefr($compteFinancier['date_anterieure'],'dtstart') .'</td>';
    177                         echo '<td class="decimal">'. association_prixfr($compteFinancier['solde_anterieur']) .'</td>';
    178                         echo '<td class="decimal">'. association_prixfr($compteFinancier['solde_anterieur']+$compteFinancier['solde']) .'</td>';
     176                        echo '<td class="date">'. association_formater_date($compteFinancier['date_anterieure'],'dtstart') .'</td>';
     177                        echo '<td class="decimal">'. association_formater_prix($compteFinancier['solde_anterieur']) .'</td>';
     178                        echo '<td class="decimal">'. association_formater_prix($compteFinancier['solde_anterieur']+$compteFinancier['solde']) .'</td>';
    179179                        $total_initial += $compteFinancier['solde_anterieur'];
    180180                        $total_actuel += $compteFinancier['solde_anterieur']+$compteFinancier['solde'];
     
    187187        echo "</tr>\n</tbody><tfoot>\n<tr>";
    188188        echo '<th  colspan="2" class="text">'. _T('asso:encaisse') .'</th>';
    189         echo '<th class="decimal">'. association_prixfr($total_initial) .'</th>';
    190         echo '<th class="decimal">'. association_prixfr($total_actuel) .'</th>';
     189        echo '<th class="decimal">'. association_formater_prix($total_initial) .'</th>';
     190        echo '<th class="decimal">'. association_formater_prix($total_actuel) .'</th>';
    191191        if( $compteFinancier['_58xx']['solde']!=0 ){
    192192                echo '<td  colspan="4" class="erreur">'. _T('asso:erreur_equilibre_comptes58') .'</td>';
  • _plugins_/Association/Associaspip/exec/categories.php

    r59890 r65375  
    2626                echo '';
    2727                // quelques stats sur les categories
    28                 echo totauxinfos_stats('tous', 'categories', array('entete_duree'=>'duree', 'entete_montant'=>'cotisation') );
     28                echo association_totauxinfos_stats('tous', 'categories', array('entete_duree'=>'duree', 'entete_montant'=>'cotisation') );
    2929                // datation et raccourcis
    3030                icones_association(array('association'), array(
     
    4848                        echo '<td class="text">'.$data['valeur'].'</td>';
    4949                        echo '<td class="text">'.$data['libelle'].'</td>';
    50                         echo '<td class="decimal">'. association_dureefr($data['duree'],'m') .'</td>';
    51                         echo '<td class="decimal">'. association_prixfr($data['cotisation']) .'</td>';
     50                        echo '<td class="decimal">'. association_formater_duree($data['duree'],'m') .'</td>';
     51                        echo '<td class="decimal">'. association_formater_prix($data['cotisation']) .'</td>';
    5252                        echo '<td class="text">'. propre($data['commentaires']) .'</td>';
    5353                        echo association_bouton_supprimer('categorie', $data['id_categorie'], 'td');
  • _plugins_/Association/Associaspip/exec/compte_bilan.php

    r62004 r65375  
    3131                onglets_association('titre_onglet_comptes');
    3232                // INTRO : rappel de l'exercicee affichee
    33                 $infos['exercice_entete_debut'] = association_datefr($exercice_data['debut'], 'dtstart');
    34                 $infos['exercice_entete_fin'] = association_datefr($exercice_data['fin'], 'dtend');
    35                 echo totauxinfos_intro($exercice_data['intitule'], 'exercice', $ids['exercice'], $infos);
     33                $infos['exercice_entete_debut'] = association_formater_date($exercice_data['debut'], 'dtstart');
     34                $infos['exercice_entete_fin'] = association_formater_date($exercice_data['fin'], 'dtend');
     35                echo association_totauxinfos_intro($exercice_data['intitule'], 'exercice', $ids['exercice'], $infos);
    3636                // pas de sommes de synthes puisque tous les totaux sont dans la zone centrale ;-
    3737                // datation et raccourcis
  • _plugins_/Association/Associaspip/exec/compte_resultat.php

    r64511 r65375  
    3131                onglets_association('titre_onglet_comptes');
    3232                // INTRO : rappel de l'exercicee affichee
    33                 $infos['exercice_entete_debut'] = association_datefr($exercice_data['debut'], 'dtstart');
    34                 $infos['exercice_entete_fin'] = association_datefr($exercice_data['fin'], 'dtend');
    35                 echo totauxinfos_intro($exercice_data['intitule'], 'exercice', $ids['exercice'], $infos);
     33                $infos['exercice_entete_debut'] = association_formater_date($exercice_data['debut'], 'dtstart');
     34                $infos['exercice_entete_fin'] = association_formater_date($exercice_data['fin'], 'dtend');
     35                echo association_totauxinfos_intro($exercice_data['intitule'], 'exercice', $ids['exercice'], $infos);
    3636                // pas de sommes de synthes puisque tous les totaux sont dans la zone centrale ;-
    3737                // datation et raccourcis
  • _plugins_/Association/Associaspip/exec/comptes.php

    r62084 r65375  
    5353                onglets_association('titre_onglet_comptes');
    5454                // INTRO : rappel de l'exercicee affichee
    55                 echo totauxinfos_intro($exercice_data['intitule'],'exercice',$id_exercice);
     55                echo association_totauxinfos_intro($exercice_data['intitule'],'exercice',$id_exercice);
    5656                $journaux = sql_allfetsel('journal, intitule', 'spip_asso_comptes RIGHT JOIN spip_asso_plan ON journal=code', "date>='$exercice_data[debut]' AND date<='$exercice_data[fin]'", "intitule DESC"); // on se permet sql_allfetsel car il s'agit d'une association (mois d'une demie dizaine de comptes) et non d'un etablissement financier (des milliers de comptes clients)
    5757                // TOTAUX : operations de l'exercice par compte financier (indique rapidement les comptes financiers les plus utilises ou les modes de paiement preferes...)
     
    6565                        }
    6666                        if (count($direction_libelles))
    67                                 echo totauxinfos_effectifs(_T('asso:compte_entete_financier') .': '. _T('asso:'.$direction.'s'), $direction_libelles, $direction_effectifs); // ToDo: tri par ordre decroissant (sorte de "top")
     67                                echo association_totauxinfos_effectifs(_T('asso:compte_entete_financier') .': '. _T('asso:'.$direction.'s'), $direction_libelles, $direction_effectifs); // ToDo: tri par ordre decroissant (sorte de "top")
    6868                }
    6969                // TOTAUX : operations de l'exercice par type d'operation
     
    7474                        $liste_libelles[$classe_css] = 'compte_liste_nombre_'.$classe_css;
    7575                }
    76                 echo totauxinfos_effectifs('compte_entete_imputation', $liste_libelles, $liste_effectifs);
     76                echo association_totauxinfos_effectifs('compte_entete_imputation', $liste_libelles, $liste_effectifs);
    7777                // STATS : montants de l'exercice pour l'imputation choisie (toutes si aucune)
    78                 echo totauxinfos_stats('mouvements', 'comptes', array('bilan_recettes'=>'recette','bilan_depenses'=>'depense',), $where, 2);
     78                echo association_totauxinfos_stats('mouvements', 'comptes', array('bilan_recettes'=>'recette','bilan_depenses'=>'depense',), $where, 2);
    7979                // TOTAUX : montants de l'exercice pour l'imputation choisie (toutes si aucune)
    8080                $data = sql_fetsel( 'SUM(recette) AS somme_recettes, SUM(depense) AS somme_depenses, code, classe',  'spip_asso_comptes RIGHT JOIN spip_asso_plan ON imputation=code', "$where AND classe<>".sql_quote($GLOBALS['association_metas']['classe_banques']). " AND classe<>".sql_quote($GLOBALS['association_metas']['classe_contributions_volontaires']), 'code'); // une contribution benevole ne doit pas etre comptabilisee en charge/produit
    81                 echo totauxinfos_montants(($imputation=='%' ? _T('asso:tous') : $imputation), $data['somme_recettes'], $data['somme_depenses']);
     81                echo association_totauxinfos_montants(($imputation=='%' ? _T('asso:tous') : $imputation), $data['somme_recettes'], $data['somme_depenses']);
    8282                // datation et raccourcis
    8383                icones_association(array(), array(
     
    198198                $comptes .= "<tr id='id_compte".$data['id_compte']."' class='$class'>"
    199199                . '<td class="integer">'.$data['id_compte'].'</td>'
    200                 . '<td class="date">'. association_datefr($data['date']) .'</td>'
     200                . '<td class="date">'. association_formater_date($data['date']) .'</td>'
    201201                . '<td class="text">'. $data['imputation'].'</td>'
    202202                . '<td class="text">&nbsp;'. propre($data['justification']) .'</td>'
    203                 . '<td class="decimal">'. association_prixfr($data['recette']-$data['depense']) .'</td>'
     203                . '<td class="decimal">'. association_formater_prix($data['recette']-$data['depense']) .'</td>'
    204204                . '<td class="text">&nbsp;'.$data['journal'].'</td>'
    205205                . ( $data['vu']
     
    213213                                        ? '<td class="action">&nbsp;</td>'
    214214                                        /* le reste est editable */
    215                                         : '<td class="action">'. association_bouton('mettre_a_jour', 'edit-12.gif', 'edit_compte', 'id='.$data['id_compte'], $onload_option) . '</td>'
     215                                        : '<td class="action">'. association_bouton_faire('mettre_a_jour', 'edit-12.gif', 'edit_compte', 'id='.$data['id_compte'], $onload_option) . '</td>'
    216216                                        )
    217217                                /* operation supprimable */
  • _plugins_/Association/Associaspip/exec/dons.php

    r64270 r65375  
    3636                onglets_association('titre_onglet_dons');
    3737                // INTRO : nom du module et annee affichee
    38                 echo totauxinfos_intro('','dons',$annee);
     38                echo association_totauxinfos_intro('','dons',$annee);
    3939                // TOTAUX : nombre de dons selon leur nature
    4040                $liste_libelles = array('pair'=>'dons_financier', 'prospect'=>'dons_en_nature', 'impair'=>'autres');
     
    4242                $liste_effectifs['prospect'] = sql_countsel('spip_asso_dons', "argent=0 AND colis<>'' AND  DATE_FORMAT(date_don, '%Y')='$annee' ");
    4343                $liste_effectifs['impair'] = sql_countsel('spip_asso_dons', "DATE_FORMAT(date_don, '%Y')='$annee' ")-$liste_effectifs['pair']-$liste_effectifs['prospect'];
    44                 echo totauxinfos_effectifs('dons', $liste_libelles, $liste_effectifs);
     44                echo association_totauxinfos_effectifs('dons', $liste_libelles, $liste_effectifs);
    4545                // STATS sur les donnations de l'annee
    46                 echo totauxinfos_stats('donnations', 'dons', array('dons_financier'=>'argent','don_en_nature'=>'valeur',), "DATE_FORMAT(date_don, '%Y')='$annee' ");
     46                echo association_totauxinfos_stats('donnations', 'dons', array('dons_financier'=>'argent','don_en_nature'=>'valeur',), "DATE_FORMAT(date_don, '%Y')='$annee' ");
    4747                // TOTAUX : montants des dons et remboursements financiers
    4848                $dons_financiers = sql_getfetsel('SUM(argent) AS somme_recettes', 'spip_asso_dons', "argent AND DATE_FORMAT(date_don, '%Y')=$annee" );
    4949                $remboursements = sql_getfetsel('SUM(argent) AS somme_reversees', 'spip_asso_dons', "argent AND contrepartie AND DATE_FORMAT(date_don, '%Y')=$annee" );
    50                 echo totauxinfos_montants($annee, $dons_financiers, $remboursements);
     50                echo association_totauxinfos_montants($annee, $dons_financiers, $remboursements);
    5151                // datation et raccourcis
    5252                icones_association(array(), array(
     
    8181                        echo '<tr class="'. (($data['argent'] && !$data['colis'])?'pair':(($data['argent'] && !$data['colis'])?'prospect':'impair')) . (($id_don==$data['id_don'])?' surligne':'') .'" id="'.$data['id_don'].'">';
    8282                        echo '<td class="integer">'.$data['id_don'].'</td>';
    83                         echo '<td class="date">'. association_datefr($data['date_don']) .'</td>';
     83                        echo '<td class="date">'. association_formater_date($data['date_don']) .'</td>';
    8484                        echo '<td class="text">'. association_calculer_lien_nomid($data['bienfaiteur'],$data['id_adherent']) .'</td>';
    85                         echo '<td class="decimal">'. association_prixfr($data['argent']) .'</td>';
     85                        echo '<td class="decimal">'. association_formater_prix($data['argent']) .'</td>';
    8686                        echo '<td class="text" colspan="'.($data['vu']?2:1).'">'
    87                                 .($data['vu'] ? '' :'<i>'._T('asso:valeur').': '.association_prixfr($data['valeur']).'</i><br />')
     87                                .($data['vu'] ? '' :'<i>'._T('asso:valeur').': '.association_formater_prix($data['valeur']).'</i><br />')
    8888                                .$data['colis'].'</td>';
    8989                        echo ($data['vu']
     
    9191                            : ('<td class="text">'. propre($data['contrepartie']) .'</td>')
    9292                                );
    93                         echo '<td  class="action">'. association_bouton('supprimer_le_don', 'suppr-12.gif', 'suppr_don', "id=$data[id_don]") .'</td>';
    94                         echo '<td class="action">' . association_bouton('mettre_a_jour_le_don', 'edit-12.gif', 'edit_don', "id=$data[id_don]") .'</td>';;
     93                        echo '<td  class="action">'. association_bouton_faire('supprimer_le_don', 'suppr-12.gif', 'suppr_don', "id=$data[id_don]") .'</td>';
     94                        echo '<td class="action">' . association_bouton_faire('mettre_a_jour_le_don', 'edit-12.gif', 'edit_don', "id=$data[id_don]") .'</td>';;
    9595                        echo "</tr>\n";
    9696                }
  • _plugins_/Association/Associaspip/exec/edit_activite.php

    r59880 r65375  
    2727                // INTRO : Rappel Infos Evenement
    2828                $evenement = sql_fetsel('*', 'spip_evenements', "id_evenement=$id_evenement");
    29                 $infos['evenement_date_du'] = association_datefr($evenement['date_debut'],'dtstart').' '.substr($data['date_debut'],10,6);
    30                 $infos['evenement_date_au'] = association_datefr($evenement['date_fin'],'dtend').' '.substr($data['date_debut'],10,6);
     29                $infos['evenement_date_du'] = association_formater_date($evenement['date_debut'],'dtstart').' '.substr($data['date_debut'],10,6);
     30                $infos['evenement_date_au'] = association_formater_date($evenement['date_fin'],'dtend').' '.substr($data['date_debut'],10,6);
    3131                $infos['evenement_lieu'] = $evenement['lieu'];
    32                 echo totauxinfos_intro($evenement['titre'], 'evenement', $id_evenement, $infos, 'agenda');
     32                echo association_totauxinfos_intro($evenement['titre'], 'evenement', $id_evenement, $infos, 'agenda');
    3333                // datation et raccourcis
    3434                icones_association('');
  • _plugins_/Association/Associaspip/exec/edit_adherent.php

    r59897 r65375  
    5151                        if ($telephones[$id_auteur])
    5252                                $infos['numeros'] =  $telephones[$id_auteur];
    53                         echo '<div class="vcard">'. totauxinfos_intro('<span class="fn">'.htmlspecialchars($nom_membre).'</span>', $statut, $id_auteur, $infos, 'coordonnees') .'</div>';
     53                        echo '<div class="vcard">'. association_totauxinfos_intro('<span class="fn">'.htmlspecialchars($nom_membre).'</span>', $statut, $id_auteur, $infos, 'coordonnees') .'</div>';
    5454                        // datation et raccourcis
    5555                        icones_association('');
  • _plugins_/Association/Associaspip/exec/edit_categorie.php

    r59668 r65375  
    2626                // INTRO : resume ressource
    2727                $infos['entete_utilisee'] = _T('asso:nombre_fois', array('nombre'=>sql_countsel('spip_asso_membres', "categorie=$id_categorie"), ));
    28                 echo totauxinfos_intro(sql_getfetsel('libelle', 'spip_asso_categories', "id_categorie=$id_categorie" ), 'categorie', $id_categorie, $infos );
     28                echo association_totauxinfos_intro(sql_getfetsel('libelle', 'spip_asso_categories', "id_categorie=$id_categorie" ), 'categorie', $id_categorie, $infos );
    2929                // datation et raccourcis
    3030                icones_association('');
  • _plugins_/Association/Associaspip/exec/edit_compte.php

    r59668 r65375  
    3131                onglets_association('titre_onglet_comptes');
    3232                // INTRO : resume compte
    33                 echo totauxinfos_intro('', 'compte', $id_compte, $infos );
     33                echo association_totauxinfos_intro('', 'compte', $id_compte, $infos );
    3434                // datation et raccourcis
    3535                icones_association('');
  • _plugins_/Association/Associaspip/exec/edit_destination.php

    r59668 r65375  
    2626                // INTRO :
    2727                $infos['entete_utilise'] = _T('asso:nombre_fois', array('nombre'=>sql_countsel('spip_asso_destination_op',"id_destination=$id_destination")) );
    28                 echo totauxinfos_intro(sql_getfetsel('intitule','spip_asso_destination',"id_destination=$id_destination"), 'destination', $id_destination, $infos );
     28                echo association_totauxinfos_intro(sql_getfetsel('intitule','spip_asso_destination',"id_destination=$id_destination"), 'destination', $id_destination, $infos );
    2929                // datation et raccourcis
    3030                icones_association('');
  • _plugins_/Association/Associaspip/exec/edit_don.php

    r59668 r65375  
    2626                onglets_association('titre_onglet_dons');
    2727                // INTRO : resume don
    28                 echo totauxinfos_intro('', 'don', $id_don, $infos );
     28                echo association_totauxinfos_intro('', 'don', $id_don, $infos );
    2929                // datation et raccourcis
    3030                icones_association('');
  • _plugins_/Association/Associaspip/exec/edit_exercice.php

    r59668 r65375  
    2828                // INTRO : resume ressource
    2929                $infos['entete_utilise'] = _T('asso:nombre_fois', array('nombre'=>sql_countsel('spip_asso_comptes', ""), )); // bof, le nombre d'operations est deja indique sur la page de comptes por l'exercice selectionne
    30                 $infos['entete_duree'] = association_dureefr(sql_getfetsel("TIMESTAMPDIFF(day,debut,fin) AS duree_jours", 'spip_asso_exercices', "id_exercice=$id_exercice"), 'D'); // voir note dans "/exec/exercices.php" au sujet de TIMESTAMPDIFF sachant que la simple diffrence "fin-debut" peut donner des resultats surprenants...
    31                 echo totauxinfos_intro(sql_getfetsel('intitule', 'spip_asso_exercices', "id_exercice=$id_exercice" ), 'exercice', $id_exercice, $infos);
     30                $infos['entete_duree'] = association_formater_duree(sql_getfetsel("TIMESTAMPDIFF(day,debut,fin) AS duree_jours", 'spip_asso_exercices', "id_exercice=$id_exercice"), 'D'); // voir note dans "/exec/exercices.php" au sujet de TIMESTAMPDIFF sachant que la simple diffrence "fin-debut" peut donner des resultats surprenants...
     31                echo association_totauxinfos_intro(sql_getfetsel('intitule', 'spip_asso_exercices', "id_exercice=$id_exercice" ), 'exercice', $id_exercice, $infos);
    3232                // datation et raccourcis
    3333                icones_association('');
  • _plugins_/Association/Associaspip/exec/edit_groupe.php

    r59897 r65375  
    3030                        $infos['commentaires'] = $groupe['commentaires'];
    3131                        $infos['destination_entete_utilise'] = _T('asso:nombre_fois', array('nombre'=>sql_countsel('spip_asso_groupes_liaisons',"id_groupe=$id_groupe")) );
    32                         echo totauxinfos_intro($groupe['nom'], 'groupe', $id_groupe, $infos );
     32                        echo association_totauxinfos_intro($groupe['nom'], 'groupe', $id_groupe, $infos );
    3333                }
    3434                // datation et raccourcis
  • _plugins_/Association/Associaspip/exec/edit_groupe_autorisations.php

    r59811 r65375  
    2828                $infos['commentaires'] = $groupe['commentaires'];
    2929                $infos['destination_entete_utilise'] = _T('asso:nombre_fois', array('nombre'=>sql_countsel('spip_asso_groupes_liaisons',"id_groupe=$id_groupe")) );
    30                 echo totauxinfos_intro(_T("asso:groupe_".$id_groupe), 'groupe', $id_groupe, $infos );
     30                echo association_totauxinfos_intro(_T("asso:groupe_".$id_groupe), 'groupe', $id_groupe, $infos );
    3131                // datation et raccourcis
    3232                icones_association(array('association_autorisations'));
  • _plugins_/Association/Associaspip/exec/edit_pret.php

    r59668 r65375  
    3131                // INTRO : resume ressource
    3232                $infos['ressource_pretee'] = _T('asso:nombre_fois', array('nombre'=>sql_countsel('spip_asso_prets', "id_ressource=$id_ressource"), ));
    33                 echo totauxinfos_intro(sql_getfetsel('intitule', 'spip_asso_ressources', "id_ressource=$id_ressource" ), 'ressource', $id_ressource, $infos );
     33                echo association_totauxinfos_intro(sql_getfetsel('intitule', 'spip_asso_ressources', "id_ressource=$id_ressource" ), 'ressource', $id_ressource, $infos );
    3434                // datation et raccourcis
    3535                icones_association('');
  • _plugins_/Association/Associaspip/exec/edit_relances.php

    r64081 r65375  
    8181                .'<td class="integer"><label for="mbr'.$data['id_auteur'].'">'.$data['id_auteur'].'</label></td>'
    8282                .'<td class="text"><label for="mbr'.$data['id_auteur'].'">'. association_calculer_nom_membre($data['sexe'], $data['prenom'], $data['nom_famille']) .'</label></td>'
    83                 .'<td class="date"><label for="mbr'.$data['id_auteur'].'">'. association_datefr($data['validite']) .'</label></td>'
     83                .'<td class="date"><label for="mbr'.$data['id_auteur'].'">'. association_formater_date($data['validite']) .'</label></td>'
    8484                .'<td class="action"><input name="id[]" type="checkbox" id="mbr'.$data['id_auteur'].'" value="'.$data['id_auteur'].'" checked="checked" /><input name="statut['.$data['id_auteur'].']" type="hidden" value="'.$data['statut_interne'].'" /></td>'
    8585                ."</tr>\n";
  • _plugins_/Association/Associaspip/exec/edit_ressource.php

    r59668 r65375  
    2626                // INTRO : resume ressource
    2727                $infos['ressource_pretee'] = _T('asso:nombre_fois', array('nombre'=>sql_countsel('spip_asso_prets', "id_ressource=$id_ressource"), ));
    28                 echo totauxinfos_intro(sql_getfetsel('intitule', 'spip_asso_ressources', "id_ressource=$id_ressource" ), 'ressource', $id_ressource, $infos );
     28                echo association_totauxinfos_intro(sql_getfetsel('intitule', 'spip_asso_ressources', "id_ressource=$id_ressource" ), 'ressource', $id_ressource, $infos );
    2929                // datation et raccourcis
    3030                icones_association('');
  • _plugins_/Association/Associaspip/exec/edit_vente.php

    r59668 r65375  
    2525                onglets_association('titre_onglet_ventes');
    2626                // info
    27                 echo totauxinfos_intro('', 'vente', $id_vente);
     27                echo association_totauxinfos_intro('', 'vente', $id_vente);
    2828                // datation et raccourcis
    2929                icones_association('');
  • _plugins_/Association/Associaspip/exec/encaisse.php

    r60667 r65375  
    3131                onglets_association('titre_onglet_comptes');
    3232                // INTRO : rappel de l'exercicee affichee
    33                 echo totauxinfos_intro('encaisse', '');
     33                echo association_totauxinfos_intro('encaisse', '');
    3434                // STATS recettes et depenses par comptes financiers (indique rapidement les comptes financiers avec les mouvements les plus importants --en montant !)
    3535                $journaux = sql_allfetsel('journal, intitule', 'spip_asso_comptes RIGHT JOIN spip_asso_plan ON journal=code', "date>=date_anterieure AND date<=NOW()", "intitule DESC"); // on se permet sql_allfetsel car il n'y en a pas des masses a priori...
    3636                foreach ($journaux as $financier) {
    37                         echo totauxinfos_stats($financier['intitule'], 'comptes', array('bilan_recettes'=>'recette','bilan_depenses'=>'depense',), 'journal='.sql_quote($financier['journal']) .' AND date>='. sql_quote($financier['date_anterieure']) .' AND date<=NOW()');
     37                        echo association_totauxinfos_stats($financier['intitule'], 'comptes', array('bilan_recettes'=>'recette','bilan_depenses'=>'depense',), 'journal='.sql_quote($financier['journal']) .' AND date>='. sql_quote($financier['date_anterieure']) .' AND date<=NOW()');
    3838                }
    3939                // datation et raccourcis
     
    7171                        echo '<tr id="'.$compteFinancier['id_plan'].'">';
    7272                        echo '<td class="text">'. $compteFinancier['code'] .' : '. $compteFinancier['intitule'] .'</td>';
    73                         echo '<td class="date">'. association_datefr($compteFinancier['date_anterieure'],'dtstart') .'</td>';
    74                         echo '<td class="decimal">'. association_prixfr($compteFinancier['solde_anterieur']) .'</td>';
    75                         echo '<td class="decimal">'. association_prixfr($compteFinancier['solde_anterieur']+$compteFinancier['solde_actuel']) .'</td>';
     73                        echo '<td class="date">'. association_formater_date($compteFinancier['date_anterieure'],'dtstart') .'</td>';
     74                        echo '<td class="decimal">'. association_formater_prix($compteFinancier['solde_anterieur']) .'</td>';
     75                        echo '<td class="decimal">'. association_formater_prix($compteFinancier['solde_anterieur']+$compteFinancier['solde_actuel']) .'</td>';
    7676                        $total_initial += $compteFinancier['solde_anterieur'];
    7777                        $total_actuel += $compteFinancier['solde_anterieur']+$compteFinancier['solde_actuel'];
     
    7979                echo "</tr>\n</tbody><tfoot>\n<tr>";
    8080                echo '<th  colspan="2" class="text">'. _T('asso:encaisse_total_general') .'</th>';
    81                 echo '<th class="decimal">'. association_prixfr($total_initial) .'</th>';
    82                 echo '<th class="decimal">'. association_prixfr($total_actuel) .'</th>';
     81                echo '<th class="decimal">'. association_formater_prix($total_initial) .'</th>';
     82                echo '<th class="decimal">'. association_formater_prix($total_actuel) .'</th>';
    8383                $solde_virementsinternes = sql_getfetsel('SUM(recette)-SUM(depense)', 'spip_asso_comptes', 'imputation='.sql_quote($GLOBALS['association_metas']['pc_intravirements']), 'imputation');
    8484                if( $solde_virementsinternes!=0 ){ // desequilible du compte de virements internes (ceci ne devrait arriver que si l'operation n'est pas enregistree via ce plugin !) /!\ Attention a bien forcer la comparaison avec zero car '0.00' sera faux !
    85                         echo '<tr class="erreur"><td  colspan="3" class="message_erreur">'. _T('asso:erreur_equilibre_comptes58') .'</td><td class="decimal">'. association_prixfr($solde_virementsinternes) .'</td></tr>';
     85                        echo '<tr class="erreur"><td  colspan="3" class="message_erreur">'. _T('asso:erreur_equilibre_comptes58') .'</td><td class="decimal">'. association_formater_prix($solde_virementsinternes) .'</td></tr>';
    8686                }
    8787                echo "</tr>\n</tfoot>\n</table>\n";
  • _plugins_/Association/Associaspip/exec/exercices.php

    r59890 r65375  
    2727                echo '';
    2828                // quelques stats sur les categories
    29                 echo totauxinfos_stats('tous', 'exercices', array('semaines'=>"TIMESTAMPDIFF(week,debut,fin)", 'mois'=>"TIMESTAMPDIFF(month,debut,fin)") );
     29                echo association_totauxinfos_stats('tous', 'exercices', array('semaines'=>"TIMESTAMPDIFF(week,debut,fin)", 'mois'=>"TIMESTAMPDIFF(month,debut,fin)") );
    3030                /* portability issue on "DATEDIFF(week,debut,fin)"
    3131                 * MS SQL Server : "DATEDIFF(day,debut,fin)" & "DATEDIFF(week,debut,fin)" & "DATEDIFF(month,debut,fin)"
     
    5656                        echo '<td class="integer">'.$data['id_exercice'].'</td>';
    5757                        echo '<td class="text">'.$data['intitule'].'</td>';
    58                         echo '<td class="date">'. association_datefr($data['debut'],'dtstart') .'</td>';
    59                         echo '<td class="date">'. association_datefr($data['fin'],'dtend') .'</td>';
     58                        echo '<td class="date">'. association_formater_date($data['debut'],'dtstart') .'</td>';
     59                        echo '<td class="date">'. association_formater_date($data['fin'],'dtend') .'</td>';
    6060                        echo '<td class="text">'. propre($data['commentaire']) .'</td>';
    6161                        echo association_bouton_supprimer('exercice', 'id='.$data['id_exercice'], 'td');
  • _plugins_/Association/Associaspip/exec/inscrits_activite.php

    r64916 r65375  
    2626                $evenement = sql_fetsel('*', 'spip_evenements', "id_evenement=$id_evenement") ;
    2727                // INTRO : Rappel Infos Evenement
    28                 $infos['evenement_date_du'] = association_datefr($evenement['date_debut'],'dtstart').' '.substr($data['date_debut'],10,6);
    29                 $infos['evenement_date_au'] = association_datefr($evenement['date_fin'],'dtend').' '.substr($data['date_debut'],10,6);
     28                $infos['evenement_date_du'] = association_formater_date($evenement['date_debut'],'dtstart').' '.substr($data['date_debut'],10,6);
     29                $infos['evenement_date_au'] = association_formater_date($evenement['date_fin'],'dtend').' '.substr($data['date_debut'],10,6);
    3030                $infos['evenement_lieu'] = $evenement['lieu'];
    31                 echo totauxinfos_intro($evenement['titre'], 'evenement', $id_evenement, $infos, 'agenda', 'evenement');
     31                echo association_totauxinfos_intro($evenement['titre'], 'evenement', $id_evenement, $infos, 'agenda', 'evenement');
    3232                // STATS sur les participations (nombre de personnes inscrites et montant paye)
    33                 echo totauxinfos_stats('participations', 'activites', array('activite_entete_inscrits'=>'inscrits','entete_montant'=>'montant',), "id_evenement=$id_evenement");
     33                echo association_totauxinfos_stats('participations', 'activites', array('activite_entete_inscrits'=>'inscrits','entete_montant'=>'montant',), "id_evenement=$id_evenement");
    3434                // TOTAUX : nombres d'inscrits par etat de paiement
    3535                $liste_libelles = $liste_effectifs = array();
     
    3838                $liste_effectifs['valide'] = sql_getfetsel('COUNT(*)+SUM(inscrits) AS valide', 'spip_asso_activites', "id_evenement=$id_evenement AND date_paiement<date_inscription ");
    3939                $liste_effectifs['impair'] = sql_getfetsel('COUNT(*)+SUM(inscrits) AS impair', 'spip_asso_activites', "id_evenement=$id_evenement AND NOT date_paiement<date_inscription ");
    40                 echo totauxinfos_effectifs('activites', $liste_libelles, $liste_effectifs);
     40                echo association_totauxinfos_effectifs('activites', $liste_libelles, $liste_effectifs);
    4141                // TOTAUX : montants des participations
    4242                $montant = sql_fetsel('SUM(montant) AS encaisse', 'spip_asso_activites', "id_evenement=$id_evenement " );
    43                 echo totauxinfos_montants('participations', $montant['encaisse'], NULL);
     43                echo association_totauxinfos_montants('participations', $montant['encaisse'], NULL);
    4444                // datation et raccourcis
    4545                $res['activite_bouton_ajouter_inscription'] = array('panier_in.gif', 'edit_activite', "id_evenement=$id_evenement");
     
    8282                        echo '<tr class="'.(($data['date_paiement']=='0000-00-00')?'pair':'valide').'">';
    8383                        echo '<td class="integer">'.$data['id_activite'].'</td>';
    84                         echo '<td class="date">'.association_datefr($data['date']).'</td>';
     84                        echo '<td class="date">'. association_formater_date($data['date']). '</td>';
    8585                        echo '<td class="text">'.  association_calculer_lien_nomid($data['nom'],$data['id_adherent']) .'</td>';
    8686                        echo '<td class="integer">'.$data['inscrits'].'</td>';
    87                         echo '<td class="decimal">'. association_prixfr($data['montant']) .'</td>';
     87                        echo '<td class="decimal">'. association_formater_prix($data['montant']) .'</td>';
    8888                        echo association_bouton_supprimer('activite', $data['id_activite'], 'td');
    89                         echo '<td class="action">', association_bouton('activite_bouton_maj_inscription', 'cotis-12.gif', 'edit_activite','id='.$data['id_activite']), '</td>';
     89                        echo '<td class="action">', association_bouton_faire('activite_bouton_maj_inscription', 'cotis-12.gif', 'edit_activite','id='.$data['id_activite']), '</td>';
    9090                        if ($data['commentaire']) {
    9191                                echo '</tr><tr class="'.(($data['date_paiement']<$data['date_inscription'])?'pair':'valide').'"><td colspan="7" class="text">&nbsp;'.$data['commentaire'].'</td>';
  • _plugins_/Association/Associaspip/exec/membres_groupe.php

    r64275 r65375  
    3030                }
    3131                $infos['entete_utilise'] = _T('asso:nombre_fois', array('nombre'=>sql_countsel('spip_asso_groupes_liaisons',"id_groupe=$id_groupe")) );
    32                 echo totauxinfos_intro(($id_groupe<100)?_T("asso:groupe_".$id_groupe):$groupe['nom'], 'groupe', $id_groupe, $infos );
     32                echo association_totauxinfos_intro(($id_groupe<100)?_T("asso:groupe_".$id_groupe):$groupe['nom'], 'groupe', $id_groupe, $infos );
    3333                // datation et raccourcis
    3434                icones_association('', array(
  • _plugins_/Association/Associaspip/exec/pdf_membres.php

    r65117 r65375  
    4343
    4444                //On définit les colonnes (champs,largeur,intitulé,alignement)
    45                 $champsExtras = recuperer_iextras("asso_$objet");
     45                $champsExtras = association_trouver_iextras("asso_$objet");
    4646                $desc_table = charger_fonction('trouver_table', 'base'); // cf. http://programmer.spip.net/sql_showtable,619
    4747                $champs = $desc_table('spip_asso_membres');
  • _plugins_/Association/Associaspip/exec/plan_comptable.php

    r60426 r65375  
    101101                        echo '<td class="text">'.$data['code'].'</td>';
    102102                        echo '<td class="text">'.$data['intitule'].'</td>';
    103                         echo '<td class="decimal">'. association_prixfr($data['solde_anterieur']) .'</td>';
    104                         echo '<td class="date">'. association_datefr($data['date_anterieure'], 'dtstart') .'</td>';
     103                        echo '<td class="decimal">'. association_formater_prix($data['solde_anterieur']) .'</td>';
     104                        echo '<td class="date">'. association_formater_date($data['date_anterieure'], 'dtstart') .'</td>';
    105105                        echo association_bouton_supprimer('plan', $data['id_plan'], 'td');
    106106                        echo association_bouton_modifier('plan', $data['id_plan'], 'td');
  • _plugins_/Association/Associaspip/exec/prets.php

    r64916 r65375  
    2727                $unite = $ressource['ud']?$ressource['ud']:'D';
    2828                $infos['ressources_libelle_code'] = $ressource['code'];
    29                 $infos['ressources_libelle_caution'] = association_prixfr($ressource['prix_caution']);
     29                $infos['ressources_libelle_caution'] = association_formater_prix($ressource['prix_caution']);
    3030                if (is_numeric($ressource['statut'])) { /* utilisation des 3 nouveaux statuts numeriques (gestion de quantites/exemplaires) */
    3131                        if ($ressource['statut']>0) {
     
    5959                }
    6060                $infos['statut'] =  '<img src="'._DIR_PLUGIN_ASSOCIATION_ICONES.'puce-'.$puce.'.gif" title="'.$ressource['statut'].'" alt="" /> '. _T("asso:ressources_libelle_statut_$type");
    61                 echo totauxinfos_intro($ressource['intitule'], 'ressource', $id_ressource, $infos, 'asso', 'asso_ressource');
     61                echo association_totauxinfos_intro($ressource['intitule'], 'ressource', $id_ressource, $infos, 'asso', 'asso_ressource');
    6262                // TOTAUX : nombres d'emprunts de la ressource depuis le debut
    6363                $liste_libelles = $liste_effectifs = array();
     
    6666                $liste_effectifs['pair'] = sql_countsel('spip_asso_prets', "id_ressource=$id_ressource AND date_retour>date_sortie");
    6767                $liste_effectifs['impair'] = sql_countsel('spip_asso_prets', "id_ressource=$id_ressource AND date_retour<=date_sortie");
    68                 echo totauxinfos_effectifs('prets', $liste_libelles, $liste_effectifs);
     68                echo association_totauxinfos_effectifs('prets', $liste_libelles, $liste_effectifs);
    6969                // STATS sur la duree et le montant des emprunts
    70                 echo totauxinfos_stats('prets', 'prets', array('entete_duree'=>'duree','entete_montant'=>'duree*prix_unitaire',), "id_ressource=$id_ressource");
     70                echo association_totauxinfos_stats('prets', 'prets', array('entete_duree'=>'duree','entete_montant'=>'duree*prix_unitaire',), "id_ressource=$id_ressource");
    7171                // TOTAUX : montants generes par les umprunts de la ressources
    7272                $recettes = sql_getfetsel('SUM(duree*prix_unitaire) AS totale', 'spip_asso_prets', "id_ressource=$id_ressource");
    73                 echo totauxinfos_montants('emprunts', $recettes, $ressource['prix_acquisition']); // /!\ les recettes sont calculees simplement (s'il y a un systeme de penalite pour retard, il faut s'adapter a la saisie pour que le module soit utile) ; les depenses ne prennent pas en compte les eventuels frais d'entretien ou de reparation de la ressource...
     73                echo association_totauxinfos_montants('emprunts', $recettes, $ressource['prix_acquisition']); // /!\ les recettes sont calculees simplement (s'il y a un systeme de penalite pour retard, il faut s'adapter a la saisie pour que le module soit utile) ; les depenses ne prennent pas en compte les eventuels frais d'entretien ou de reparation de la ressource...
    7474                // datation et raccourcis
    7575                if ( (is_numeric($ressource['statut']) && $ressource['statut']>0) || $ressource['statut']=='ok' )
     
    9090                        echo '<tr class="'.($data['date_retour']>$data['date_sortie']?'pair':'impair').'" id="'.$data['id_pret'].'">';
    9191                        echo '<td class="integer">'.$data['id_pret'].'</td>';
    92                         echo '<td class="date">'. association_datefr($data['date_sortie'], 'dtstart') .'</td>';
     92                        echo '<td class="date">'. association_formater_date($data['date_sortie'], 'dtstart') .'</td>';
    9393                        $id_emprunteur = intval($data['id_emprunteur']);
    9494                        $auteur = sql_fetsel('*', 'spip_asso_membres', "id_auteur=$id_emprunteur");
    9595                        echo '<td class="n">'.association_calculer_nom_membre($auteur['sexe'], $auteur['prenom'], $auteur['nom_famille'],'span');
    96                         echo '</td><td class="date">'.association_dureefr($data['duree'],$unite) .'</td>';
    97                         echo '<td class="date">'. ($data['date_retour']<$data['date_sortie'] ? '&nbsp' : association_datefr($data['date_retour'],'dtend') ) .'</td>';
    98                         echo '<td class="action">'. association_bouton('prets_nav_annuler', 'suppr-12.gif', 'suppr_pret', 'id_pret='.$data['id_pret'].'&id_ressource='.$id_ressource) .'</td>';
    99                         echo '<td class="action">' . association_bouton('prets_nav_editer', 'edit-12.gif', 'edit_pret', 'id_pret='.$data['id_pret']) . '</td>';
     96                        echo '</td><td class="date">'.association_formater_duree($data['duree'],$unite) .'</td>';
     97                        echo '<td class="date">'. ($data['date_retour']<$data['date_sortie'] ? '&nbsp' : association_formater_date($data['date_retour'],'dtend') ) .'</td>';
     98                        echo '<td class="action">'. association_bouton_faire('prets_nav_annuler', 'suppr-12.gif', 'suppr_pret', 'id_pret='.$data['id_pret'].'&id_ressource='.$id_ressource) .'</td>';
     99                        echo '<td class="action">' . association_bouton_faire('prets_nav_editer', 'edit-12.gif', 'edit_pret', 'id_pret='.$data['id_pret']) . '</td>';
    100100                        echo "</tr>\n";
    101101                }
  • _plugins_/Association/Associaspip/exec/ressources.php

    r64270 r65375  
    3434                $liste_libelles['sorti'] = '<img src="'._DIR_PLUGIN_ASSOCIATION_ICONES.'puce-poubelle.gif" alt="" /> '. _T('asso:ressources_libelle_statut_sorti') ;
    3535                $liste_effectifs['sorti'] = sql_countsel('spip_asso_ressources', "statut IN ('sorti','',NULL)");
    36                 echo totauxinfos_effectifs('ressources', $liste_libelles, $liste_effectifs);
     36                echo association_totauxinfos_effectifs('ressources', $liste_libelles, $liste_effectifs);
    3737/* mdr : cela n'a de sens que si les ressources se pretent toutes sur la meme unite...
    3838                // STATS sur tous les prets
    39                 echo totauxinfos_stats('prets', 'prets', array('entete_duree'=>'duree',), "DATE_FORMAT(date_sortie, '%Y')=DATE_FORMAT(NOW(), '%Y')");
     39                echo association_totauxinfos_stats('prets', 'prets', array('entete_duree'=>'duree',), "DATE_FORMAT(date_sortie, '%Y')=DATE_FORMAT(NOW(), '%Y')");
    4040rdm */
    4141                // TOTAUX : montants des locations sur l'annee en cours
    4242                $recettes = sql_getfetsel('SUM(duree*prix_unitaire) AS somme_recettes', 'spip_asso_prets', "DATE_FORMAT('date_sortie', '%Y')=DATE_FORMAT(NOW(), '%Y') ");
    4343                $depences = sql_getfetsel('SUM(prix_acquisition) AS somme_depences', 'spip_asso_ressources', "DATE_FORMAT('date_acquisition', '%Y')=DATE_FORMAT(NOW(), '%Y') ");
    44                 echo totauxinfos_montants('ressources', $recettes, $depenses);
     44                echo association_totauxinfos_montants('ressources', $recettes, $depenses);
    4545                // datation et raccourcis
    4646                icones_association(array(), array(
     
    9393                        echo "<tr class='$css'>";
    9494                        echo '<td class="integer">'.$data['id_ressource'].'</td>';
    95                         echo '<td class="actions">'. association_bouton('','puce-'.$puce.'.gif', '', '', 'title="'.$data['statut'].'"') .'</td>';
     95                        echo '<td class="actions">'. association_bouton_faire('','puce-'.$puce.'.gif', '', '', 'title="'.$data['statut'].'"') .'</td>';
    9696                        echo '<td class="text">'.$data['intitule'].'</td>';
    9797                        echo '<td class="text">'.$data['code'].'</td>';
    98                         echo '<td class="decimal">'.association_prixfr($data['pu']).' / '.association_dureefr(1,$data['ud']).'</td>';
    99                         echo '<td class="decimal">'.association_prixfr($data['prix_caution']).'</td>';
    100                         echo '<td class="action">', association_bouton('ressources_nav_supprimer', 'suppr-12.gif', 'suppr_ressource', 'id='.$data['id_ressource']), '</td>';
    101                         echo '<td class="action">', association_bouton('ressources_nav_editer', 'edit-12.gif', 'edit_ressource', 'id='.$data['id_ressource']), '</td>';
    102                         echo '<td class="action">', association_bouton('prets_nav_gerer', 'voir-12.png', 'prets', 'id='.$data['id_ressource']), '</td>';
     98                        echo '<td class="decimal">'.association_formater_prix($data['pu']).' / '.association_formater_duree(1,$data['ud']).'</td>';
     99                        echo '<td class="decimal">'.association_formater_prix($data['prix_caution']).'</td>';
     100                        echo '<td class="action">', association_bouton_faire('ressources_nav_supprimer', 'suppr-12.gif', 'suppr_ressource', 'id='.$data['id_ressource']), '</td>';
     101                        echo '<td class="action">', association_bouton_faire('ressources_nav_editer', 'edit-12.gif', 'edit_ressource', 'id='.$data['id_ressource']), '</td>';
     102                        echo '<td class="action">', association_bouton_faire('prets_nav_gerer', 'voir-12.png', 'prets', 'id='.$data['id_ressource']), '</td>';
    103103                        echo "</tr>\n";
    104104                }
  • _plugins_/Association/Associaspip/exec/suppr_activite.php

    r64270 r65375  
    3030                        // info
    3131                        $infos['evenement'] = sql_getfetsel('titre', 'spip_evenements', 'id_evenement='.intval($activite['id_evenement']) );
    32                         $infos['date'] = association_datefr($activite['date_inscription']);
    33                         $infos['activite_entete_inscrits'] = association_prixfr($activite['inscrits']);
    34                         $infos['entete_montant'] = association_prixfr($activite['montant']);
    35                         totauxinfos_intro(association_calculer_lien_nomid($activite['nom'],$activite['id_adherent']), 'activite', $id_activite, $infos );
     32                        $infos['date'] = association_formater_date($activite['date_inscription']);
     33                        $infos['activite_entete_inscrits'] = association_formater_prix($activite['inscrits']);
     34                        $infos['entete_montant'] = association_formater_prix($activite['montant']);
     35                        association_totauxinfos_intro(association_calculer_lien_nomid($activite['nom'],$activite['id_adherent']), 'activite', $id_activite, $infos );
    3636                        // datation et raccourcis
    3737                        icones_association('');
    3838                        debut_cadre_association('activites.gif', 'activite_titre_inscriptions_activites');
    39                         echo bloc_confirmer_suppression('activite', $id_activite);
     39                        echo association_bloc_suppression('activite', $id_activite);
    4040                        fin_page_association();
    4141                }
  • _plugins_/Association/Associaspip/exec/suppr_categorie.php

    r64270 r65375  
    2626                $categorie = sql_fetsel('*', 'spip_asso_categories', "id_categorie=$id_categorie" );
    2727                $infos['entete_code'] = $categorie['valeur'];
    28                 $infos['entete_duree'] = association_dureefr($categorie['duree'], 'M');
    29                 $infos['entete_montant'] = association_prixfr($categorie['cotisation']);
     28                $infos['entete_duree'] = association_formater_duree($categorie['duree'], 'M');
     29                $infos['entete_montant'] = association_formater_prix($categorie['cotisation']);
    3030                $infos['entete_utilise'] = _T('asso:nombre_fois', array('nombre'=>sql_countsel('spip_asso_membres', "categorie=$id_categorie"), ));
    31                 echo totauxinfos_intro($categorie['libelle'], 'categorie', $id_categorie, $infos );
     31                echo association_totauxinfos_intro($categorie['libelle'], 'categorie', $id_categorie, $infos );
    3232                // datation et raccourcis
    3333                icones_association(array('categories'));
    3434                debut_cadre_association('calculatrice.gif', 'categories_de_cotisations');
    35                 echo bloc_confirmer_suppression('categorie', $id_categorie);
     35                echo association_bloc_suppression('categorie', $id_categorie);
    3636                fin_page_association();
    3737        }
  • _plugins_/Association/Associaspip/exec/suppr_destination.php

    r64270 r65375  
    2626                // INTRO :
    2727                $infos['entete_utilise'] = _T('asso:nombre_fois', array('nombre'=>sql_countsel('spip_asso_destination_op',"id_destination=$id_destination")) );
    28                 echo totauxinfos_intro(sql_getfetsel('intitule','spip_asso_destination',"id_destination=$id_destination"), 'destination', $id_destination, $infos );
     28                echo association_totauxinfos_intro(sql_getfetsel('intitule','spip_asso_destination',"id_destination=$id_destination"), 'destination', $id_destination, $infos );
    2929                // datation et raccourcis
    3030                icones_association('');
    3131                debut_cadre_association('euro-39.gif', 'suppression_de_destination');
    32                 bloc_confirmer_suppression('destination',$id_destination);
     32                echo association_bloc_suppression('destination', $id_destination);
    3333                fin_page_association();
    3434        }
  • _plugins_/Association/Associaspip/exec/suppr_don.php

    r64270 r65375  
    3030                        onglets_association('titre_onglet_dons');
    3131                        // info
    32                         $infos['argent'] = association_prixfr($don['argent']);
    33                         $infos['colis'] = ($don['valeur'] ? '('.association_prixfr($don['valeur']).')<br />' : '') .$don['colis'];
     32                        $infos['argent'] = association_formater_prix($don['argent']);
     33                        $infos['colis'] = ($don['valeur'] ? '('.association_formater_prix($don['valeur']).')<br />' : '') .$don['colis'];
    3434                        $infos['contrepartie'] = $don['contrepartie'];
    35                         totauxinfos_intro(association_calculer_lien_nomid($don['bienfaiteur'],$don['id_adherent']), 'don', $id_don, $infos );
     35                        association_totauxinfos_intro(association_calculer_lien_nomid($don['bienfaiteur'],$don['id_adherent']), 'don', $id_don, $infos );
    3636                        // datation et raccourcis
    3737                        icones_association('');
    3838                        debut_cadre_association('dons-24.gif', 'action_sur_les_dons');
    39                         echo bloc_confirmer_suppression('don', $id_don);
     39                        echo association_bloc_suppression('don', $id_don);
    4040                        fin_page_association();
    4141                }
  • _plugins_/Association/Associaspip/exec/suppr_exercice.php

    r64270 r65375  
    2727                // info
    2828                $exercice = sql_fetsel('*', 'spip_asso_exercices', "id_exercice=$id_exercice" );
    29                 $infos['exercice_entete_debut'] = association_datefr($exercice['debut'], 'dtstart');
    30                 $infos['exercice_entete_fin'] = association_datefr($exercice['fin'], 'dtend');
    31                 echo totauxinfos_intro(sql_getfetsel('intitule', 'spip_asso_exercices', "id_exercice=$id_exercice" ), 'exercice', $id_exercice, $infos);
     29                $infos['exercice_entete_debut'] = association_formater_date($exercice['debut'], 'dtstart');
     30                $infos['exercice_entete_fin'] = association_formater_date($exercice['fin'], 'dtend');
     31                echo association_totauxinfos_intro(sql_getfetsel('intitule', 'spip_asso_exercices', "id_exercice=$id_exercice" ), 'exercice', $id_exercice, $infos);
    3232                // datation et raccourcis
    3333                icones_association(array('exercices'));
    3434                debut_cadre_association('calculatrice.gif', 'exercice_budgetaire_titre');
    35                 echo bloc_confirmer_suppression('exercice', $id_exercice);
     35                echo association_bloc_suppression('exercice', $id_exercice);
    3636                fin_page_association();
    3737        }
  • _plugins_/Association/Associaspip/exec/suppr_groupe.php

    r64270 r65375  
    2929                $infos['commentaires'] = $groupe['commentaires'];
    3030                $infos['destination_entete_utilise'] = _T('asso:nombre_fois', array('nombre'=>sql_countsel('spip_asso_groupes_liaisons',"id_groupe=$id_groupe")) );
    31                 echo totauxinfos_intro($groupe['nom'], 'groupe', $id_groupe, $infos );
     31                echo association_totauxinfos_intro($groupe['nom'], 'groupe', $id_groupe, $infos );
    3232                // datation et raccourcis
    3333                icones_association('');
    3434                debut_cadre_association('annonce.gif', 'suppression_de_groupe');
    35                 bloc_confirmer_suppression('groupe',$id_groupe);
     35                echo association_bloc_suppression('groupe', $id_groupe);
    3636                fin_page_association();
    3737        }
  • _plugins_/Association/Associaspip/exec/suppr_plan.php

    r64270 r65375  
    2727                $plan = sql_fetsel('*', 'spip_asso_plan', "id_plan=$id_plan");
    2828                $infos['entete_code'] = $plan['code'];
    29                 $infos['solde_initial'] = association_prixfr($plan['solde_anterieur']);
    30                 $infos['entete_date'] = association_datefr($plan['date_anterieure']);
     29                $infos['solde_initial'] = association_formater_prix($plan['solde_anterieur']);
     30                $infos['entete_date'] = association_formater_date($plan['date_anterieure']);
    3131                $infos['entete_utilise'] = _T('asso:nombre_fois', array('nombre'=>sql_countsel('spip_asso_comptes',"imputation='$plan[code]' OR journal='$plan[code]'")) );
    32                 echo totauxinfos_intro($plan['intitule'], 'plan', $id_plan, $infos );
     32                echo association_totauxinfos_intro($plan['intitule'], 'plan', $id_plan, $infos );
    3333                // datation et raccourcis
    3434                icones_association('');
    3535                debut_cadre_association('euro-39.gif', 'suppression_de_compte');
    36                 echo bloc_confirmer_suppression('plan', $id_plan,'plan');
     36                echo association_bloc_suppression('plan', $id_plan,'plan');
    3737                fin_page_association();
    3838        }
  • _plugins_/Association/Associaspip/exec/suppr_pret.php

    r64270 r65375  
    5959                $infos['statut'] =  '<img src="'._DIR_PLUGIN_ASSOCIATION_ICONES.'puce-'.$puce.'.gif" title="'.$data['statut'].'" alt="" /> '. _T("asso:ressource_statut_$type");
    6060                $infos['nombre_prets'] = sql_countsel('spip_asso_prets', "id_ressource=$id_ressource");
    61                 echo totauxinfos_intro($data['intitule'], 'ressource', $id_ressource, $infos );
     61                echo association_totauxinfos_intro($data['intitule'], 'ressource', $id_ressource, $infos );
    6262                // datation et raccourcis
    6363                icones_association('');
    6464                debut_cadre_association('pret-24.gif', 'prets_titre_suppression_prets');
    65                 echo bloc_confirmer_suppression('pret', "$id_pret-$id_ressource");
     65                echo association_bloc_suppression('pret', "$id_pret-$id_ressource");
    6666                fin_page_association();
    6767        }
  • _plugins_/Association/Associaspip/exec/suppr_ressource.php

    r64270 r65375  
    2727                $data = sql_fetsel('*', 'spip_asso_ressources', "id_ressource=$id_ressource" ) ;
    2828                $infos['ressources_libelle_code'] = $data['code'];
    29                 $infos['ressources_libelle_caution'] = association_prixfr($data['prix_caution']);
     29                $infos['ressources_libelle_caution'] = association_formater_prix($data['prix_caution']);
    3030                if (is_numeric($data['statut'])) { // utilisation des 3 nouveaux statuts numeriques (gestion de quantites/exemplaires)
    3131                        if ($data['statut']>0) {
     
    6060                $infos['statut'] =  '<img src="'._DIR_PLUGIN_ASSOCIATION_ICONES.'puce-'.$puce.'.gif" title="'.$data['statut'].'" alt="" /> '. _T("asso:ressources_statut_$type");
    6161                $infos['ressource_pretee'] = _T('asso:nombre_fois', array('nombre'=>sql_countsel('spip_asso_prets', "id_ressource=$id_ressource"), ));
    62                 echo totauxinfos_intro($data['intitule'], 'ressource', $id_ressource, $infos ); // indice de popularite
     62                echo association_totauxinfos_intro($data['intitule'], 'ressource', $id_ressource, $infos ); // indice de popularite
    6363                // STATS sur la duree et le montant des emprunts
    64                 echo totauxinfos_stats('prets', 'prets', array('entete_duree'=>'duree','entete_montant'=>'duree*prix_unitaire',), "id_ressource=$id_ressource");
     64                echo association_totauxinfos_stats('prets', 'prets', array('entete_duree'=>'duree','entete_montant'=>'duree*prix_unitaire',), "id_ressource=$id_ressource");
    6565                // datation et raccourcis
    6666                icones_association('');
    6767                debut_cadre_association('pret-24.gif', 'ressources_titre_suppression_ressources');
    68                 echo bloc_confirmer_suppression('ressource', $id_ressource );
     68                echo association_bloc_suppression('ressource', $id_ressource );
    6969                fin_page_association();
    7070        }
  • _plugins_/Association/Associaspip/exec/suppr_vente.php

    r64270 r65375  
    2525                onglets_association('titre_onglet_ventes');
    2626                // info
    27                 echo totauxinfos_intro(sql_getfetsel("CONCAT(article,' -- ',acheteur) AS intitule", 'spip_asso_ventes', "id_vente=$id_vente" ), 'vente', $id_vente, $infos );
     27                echo association_totauxinfos_intro(sql_getfetsel("CONCAT(article,' -- ',acheteur) AS intitule", 'spip_asso_ventes', "id_vente=$id_vente" ), 'vente', $id_vente, $infos );
    2828                // datation et raccourcis
    2929                icones_association('');
    3030                debut_cadre_association('ventes.gif', 'action_sur_les_ventes_associatives');
    31                 echo bloc_confirmer_suppression('vente', $id_vente);
     31                echo association_bloc_suppression('vente', $id_vente);
    3232                fin_page_association();
    3333        }
  • _plugins_/Association/Associaspip/exec/synchronis_activites.php

    r64334 r65375  
    2626                // INTRO : Rappel Infos Evenement
    2727                $evenement = sql_fetsel('*', 'spip_evenements', "id_evenement=$id_evenement") ;
    28                 $infos['evenement_date_du'] = association_datefr($evenement['date_debut'],'dtstart').' '.substr($data['date_debut'],10,6);
    29                 $infos['evenement_date_au'] = association_datefr($evenement['date_fin'],'dtend').' '.substr($data['date_debut'],10,6);
     28                $infos['evenement_date_du'] = association_formater_date($evenement['date_debut'],'dtstart').' '.substr($data['date_debut'],10,6);
     29                $infos['evenement_date_au'] = association_formater_date($evenement['date_fin'],'dtend').' '.substr($data['date_debut'],10,6);
    3030                $infos['evenement_lieu'] = $evenement['lieu'];
    31                 echo totauxinfos_intro($evenement['titre'], 'evenement', $id_evenement, $infos, 'agenda');
     31                echo association_totauxinfos_intro($evenement['titre'], 'evenement', $id_evenement, $infos, 'agenda');
    3232                // TOTAUX : nombres d'inscrits par etat de paiement
    3333                $liste_libelles = $liste_effectifs = array();
  • _plugins_/Association/Associaspip/exec/ventes.php

    r61705 r65375  
    3636                onglets_association('titre_onglet_ventes');
    3737                // INTRO : nom du module et annee affichee
    38                 echo totauxinfos_intro('','ventes',$annee);
     38                echo association_totauxinfos_intro('','ventes',$annee);
    3939                // TOTAUX : nombre de ventes selon etat de livraison
    4040                $liste_libelles = array('pair'=>'ventes_enregistrees', 'impair'=>'ventes_expediees', );
    4141                $liste_effectifs['pair'] = sql_countsel('spip_asso_ventes', "date_envoi<date_vente AND  DATE_FORMAT(date_vente, '%Y')=$annee ");
    4242                $liste_effectifs['impair'] = sql_countsel('spip_asso_ventes', "date_envoi>=date_vente AND  DATE_FORMAT(date_vente, '%Y')=$annee ");
    43                 echo totauxinfos_effectifs('ventes', $liste_libelles, $liste_effectifs);
     43                echo association_totauxinfos_effectifs('ventes', $liste_libelles, $liste_effectifs);
    4444                // STATS sur les paniers/achats/commandes
    45                 echo totauxinfos_stats('paniers/commandes', 'ventes', array('entete_quantite'=>'quantite','entete_montant'=>'prix_vente*quantite',), "DATE_FORMAT(date_vente, '%Y')=$annee");
     45                echo association_totauxinfos_stats('paniers/commandes', 'ventes', array('entete_quantite'=>'quantite','entete_montant'=>'prix_vente*quantite',), "DATE_FORMAT(date_vente, '%Y')=$annee");
    4646                // TOTAUX : montants des ventes et des frais de port
    4747/* Il est interessant d'interroger le livre comptable pour des cas complexes et si on sait recuperer les achats-depenses liees aux ventes(c'est faisable s'ils ne concerne qu'un ou deux comptes) ; mais ici, les montant etant dupliques dans la table des ventes autant faire simple...
    4848                $data1 = sql_fetsel('SUM(recette) AS somme_recettes, SUM(depense) AS somme_depenses', 'spip_asso_comptes', "DATE_FORMAT(date, '%Y')=$annee AND imputation=".sql_quote($GLOBALS['association_metas']['pc_ventes']) );
    4949                $data2 = sql_fetsel('SUM(recette) AS somme_recettes, SUM(depense) AS somme_depenses', 'spip_asso_comptes', "DATE_FORMAT(date, '%Y')=$annee AND imputation=".sql_quote($GLOBALS['association_metas']['pc_frais_envoi']) );
    50                 echo totauxinfos_montants($annee, $data1['somme_recettes']-$data1['somme_depenses']+$data2['somme_recettes']-$data2['somme_depenses']);
     50                echo association_totauxinfos_montants($annee, $data1['somme_recettes']-$data1['somme_depenses']+$data2['somme_recettes']-$data2['somme_depenses']);
    5151*/
    5252                $data = sql_fetsel('SUM(prix_vente*quantite) AS somme_ventes, SUM(frais_envoi) AS somme_frais', 'spip_asso_ventes', "DATE_FORMAT(date_vente, '%Y')=$annee" );
    53                 echo totauxinfos_montants($annee, $data['somme_ventes']+$data['somme_frais'], $data['somme_frais']); // les frais de port etant facturees a l'acheteur, ce sont bien des recettes... mais ces frais n'etant (normalement) pas refacturees (et devant meme etre transparents) ils n'entrent pas dans la marge (enfin, facon de dire car les couts d'acquisition ne sont pas pris en compte... le "solde" ici est le montant effectif des ventes.)
     53                echo association_totauxinfos_montants($annee, $data['somme_ventes']+$data['somme_frais'], $data['somme_frais']); // les frais de port etant facturees a l'acheteur, ce sont bien des recettes... mais ces frais n'etant (normalement) pas refacturees (et devant meme etre transparents) ils n'entrent pas dans la marge (enfin, facon de dire car les couts d'acquisition ne sont pas pris en compte... le "solde" ici est le montant effectif des ventes.)
    5454                // datation et raccourcis
    5555                icones_association(array(), array(
     
    7878                        echo '<tr class="'. ($data['date_envoi']<$data['date_vente']?'pair':'impair') . (($id_vente==$data['id_vente'])?' surligne':'') .'" id="'.$data['id_vente'].'">';
    7979                        echo '<td class="integer">'.$data['id_vente'].'</td>';
    80                         echo '<td class="date">'. association_datefr($data['date_vente'],'dtstart') .'</td>';
     80                        echo '<td class="date">'. association_formater_date($data['date_vente'],'dtstart') .'</td>';
    8181                        echo '<td class="text">'
    8282                                . (test_plugin_actif('CATALOGUE') && (intval($data['article'])==$data['article'])
     
    8888                        echo '<td class="decimal">'.$data['quantite'].'</td>';
    8989                        echo '<td class="decimal">'
    90                         . association_prixfr($data['quantite']*$data['prix_vente']).'</td>';
     90                        . association_formater_prix($data['quantite']*$data['prix_vente']).'</td>';
    9191                        echo association_bouton_supprimer('vente', 'id='.$data['id_vente'], 'td');
    92                         echo '<td class="action">'. association_bouton('mettre_a_jour_la_vente', 'edit-12.gif', 'edit_vente','id='.$data['id_vente']) . '</td>';
     92                        echo '<td class="action">'. association_bouton_faire('mettre_a_jour_la_vente', 'edit-12.gif', 'edit_vente','id='.$data['id_vente']) . '</td>';
    9393                        echo "</tr>\n";
    9494                }
  • _plugins_/Association/Associaspip/formulaires/ajouter_cotisation.php

    r64269 r65375  
    5151        if ($GLOBALS['association_metas']['comptes']) {
    5252                // verifier que le montant est bien positif ou nul
    53                 if ($erreur = association_verifier_montant(_request('montant')) )
     53                if ($erreur = association_verifier_montant('montant') )
    5454                        $erreurs['montant'] = $erreur;
    5555                // verifier validite de la date
    56                 if ($erreur = association_verifier_date(_request('date')) )
     56                if ($erreur = association_verifier_date('date') )
    5757                        $erreurs['date'] = $erreur;
    5858                // verifier si besoin que le montant des destinations correspond bien au montant de l'opération, sauf si on a deja une erreur de montant
    5959                if (($GLOBALS['association_metas']['destinations']) && !array_key_exists('montant', $erreurs)) {
    6060                        include_spip('inc/association_comptabilite');
    61                         if ($err_dest = association_verifier_montant_destinations(_request('montant'))) {
     61                        if ($err_dest = association_verifier_montant_destinations('montant') ) {
    6262                                $erreurs['destinations'] = $err_dest;
    6363                        }
    6464                }
    6565        }
    66         if ($erreur = association_verifier_date(_request('validite'))) {
     66        if ($erreur = association_verifier_date('validite') ) {
    6767                $erreurs['validite'] = $erreur;
    6868        }
     69
    6970        if (count($erreurs)) {
    7071                $erreurs['message_erreur'] = _T('asso:erreur_titre');
  • _plugins_/Association/Associaspip/formulaires/editer_asso_activites.php

    r60116 r65375  
    7777        if ($erreur = association_verifier_date(_request('date_inscription')) )
    7878                $erreurs['date_inscription'] = $erreur;
    79         if ($erreur = association_verifier_date(_request('date_paiement'), true) )
     79        if ($erreur = association_verifier_date('date_paiement', true) )
    8080                $erreurs['date_paiement'] = $erreur;
    8181        /* on verifie la validite des nombres */
    82         if ($erreur = association_verifier_montant(_request('inscrits')) )
     82        if ($erreur = association_verifier_montant('inscrits') )
    8383                $erreurs['inscrits'] = $erreur;
    84         if ($erreur = association_verifier_montant(_request('montant')) )
     84        if ($erreur = association_verifier_montant('montant') )
    8585                $erreurs['montant'] = $erreur;
    8686        /* verifier si on a un numero d'adherent qu'il existe dans la base */
    87         if ($erreur = association_verifier_membre(_request('id_adherent')) )
     87        if ($erreur = association_verifier_membre('id_adherent') )
    8888                $erreurs['id_adherent'] = $erreur;
    8989        /* verifier si besoin que le montant des destinations correspond bien au montant de l'opération */
    9090        if (($GLOBALS['association_metas']['destinations']) && !array_key_exists('montant', $erreurs)) {
    9191                include_spip('inc/association_comptabilite');
    92                 if ($err_dest = association_verifier_montant_destinations(_request('argent'))) {
     92                if ($err_dest = association_verifier_montant_destinations('argent') ) {
    9393                        $erreurs['destinations'] = $err_dest;
    9494                }
  • _plugins_/Association/Associaspip/formulaires/editer_asso_categories.php

    r58798 r65375  
    2424        /* paufiner la presentation des montants  */
    2525        if ($contexte['cotisation'])
    26                 $contexte['cotisation'] = association_nbrefr($contexte['cotisation']);
     26                $contexte['cotisation'] = association_formater_nombre($contexte['cotisation']);
    2727
    2828        /* renvoyer le contexte pour (p)re-remplir le formulaire  */
     
    3535
    3636        /* on verifie que cotisation et duree ne sont pas negatifs */
    37         if ($erreur = association_verifier_montant(_request('cotisation')) )
     37        if ($erreur = association_verifier_montant('cotisation') )
    3838                $erreurs['cotisation'] = $erreur;
    39         if ($erreur = association_verifier_montant(_request('duree')) )
     39        if ($erreur = association_verifier_montant('duree') )
    4040                $erreurs['duree'] = $erreur;
    4141
  • _plugins_/Association/Associaspip/formulaires/editer_asso_comptes.php

    r58798 r65375  
    4747    }
    4848    /* meilleure presentation des montants */
    49     $contexte['depense'] = association_nbrefr($contexte['depense']);
    50     $contexte['recette'] = association_nbrefr($contexte['recette']);
     49    $contexte['depense'] = association_formater_nombre($contexte['depense']);
     50    $contexte['recette'] = association_formater_nombre($contexte['recette']);
    5151    /* Recuperation du plan comptable sous forme de tableaux javascript correspondants aux classes utilisees.
    5252     * Ces tableaux sont ensuite utilises pour initialiser le selecteur d'imputation (javascript)
     
    5959    $erreurs = array();
    6060    /* on verifie que l'on a bien soit depense soit recette different de 0 et qu'aucun n'est negatif */
    61     $recette = association_recupere_montant(_request('recette'));
    62     $depense = association_recupere_montant(_request('depense'));
     61    $recette = association_recuperer_montant('recette');
     62    $depense = association_recuperer_montant('depense');
    6363    if (($recette<0) || ($depense<0) || ($recette>0 && $depense>0) || ($recette==0 && $depense==0))     {
    6464        $erreurs['montant'] = _T('asso:erreur_recette_depense');
     
    7575    if (($GLOBALS['association_metas']['destinations']) && !array_key_exists('montant', $erreurs)) {
    7676        include_spip('inc/association_comptabilite');
    77         if ($err_dest = association_verifier_montant_destinations($recette+$depense)) {
     77        if ($err_dest = association_verifier_montant_destinations($recette+$depense, false) ) {
    7878            $erreurs['destinations'] = $err_dest;
    7979        }
    8080    }
    8181    /* verifier la validite de la date */
    82     if ($erreur = association_verifier_date(_request('date')) )
     82    if ($erreur = association_verifier_date('date') )
    8383        $erreurs['date'] = $erreur;
    8484    if (count($erreurs)) {
  • _plugins_/Association/Associaspip/formulaires/editer_asso_dons.php

    r62713 r65375  
    3838        /* paufiner la presentation des valeurs  */
    3939        if ($contexte['argent'])
    40                 $contexte['argent'] = association_nbrefr($contexte['argent']);
     40                $contexte['argent'] = association_formater_nombrer($contexte['argent']);
    4141        if ($contexte['valeur'])
    42                 $contexte['valeur'] = association_nbrefr($contexte['valeur']);
     42                $contexte['valeur'] = association_formater_nombre($contexte['valeur']);
    4343        // on ajoute les metas de destinations
    4444        if ($GLOBALS['association_metas']['destinations']) {
     
    6363        $erreurs = array();
    6464        /* on verifie que argent et valeur ne soient pas negatifs */
    65         if ($erreur = association_verifier_montant(_request('argent')) )
     65        if ($erreur = association_verifier_montant('argent') )
    6666                $erreurs['argent'] = $erreur;
    67         if ($erreur = association_verifier_montant(_request('valeur')) )
     67        if ($erreur = association_verifier_montant('valeur') )
    6868                $erreurs['valeur'] = $erreur;
    6969        /* verifier si on a un numero d'adherent qu'il existe dans la base */
    70         if ($erreur = association_verifier_membre(_request('id_adherent')) )
     70        if ($erreur = association_verifier_membre('id_adherent') )
    7171                $erreurs['id_adherent'] = $erreur;
    7272        /* verifier si besoin que le montant des destinations correspond bien au montant de l'opération */
    7373        if (($GLOBALS['association_metas']['destinations']) && !array_key_exists('argent', $erreurs)) {
    7474                include_spip('inc/association_comptabilite');
    75                 if ($err_dest = association_verifier_montant_destinations(_request('argent'))) {
     75                if ($err_dest = association_verifier_montant_destinations('argent') ) {
    7676                        $erreurs['destinations'] = $err_dest;
    7777                }
    7878        }
    7979        /* verifier la date */
    80         if ($erreur = association_verifier_date(_request('date_don')) )
     80        if ($erreur = association_verifier_date('date_don') )
    8181                $erreurs['date_don'] = $erreur;
     82
    8283        if (count($erreurs)) {
    8384                $erreurs['message_erreur'] = _T('asso:erreur_titre');
  • _plugins_/Association/Associaspip/formulaires/editer_asso_plan.php

    r60423 r65375  
    5454        }
    5555        /* verifier le montant */
    56         if ($erreur = association_verifier_montant(_request('solde_anterieur')) )
     56        if ($erreur = association_verifier_montant('solde_anterieur') )
    5757                $erreurs['solde_anterieur'] = $erreur;
    5858        /* verifier la date */
    59         if ($erreur = association_verifier_date(_request('date_anterieure')) )
     59        if ($erreur = association_verifier_date('date_anterieure') )
    6060                $erreurs['date_anterieure'] = $erreur;
    6161        /* verifie la validite d'un changement */
     
    113113        } else {
    114114                $res['message_ok'] = '';
    115                 $res['redirect'] = generer_url_ecrire('plan_comptable'); /* on renvoit sur la page adherents mais on perd a l'occasion d'eventuel filtres inseres avant d'arriver au formulaire de cotisation... */
     115                $res['redirect'] = generer_url_ecrire('plan_comptable'); // on renvoit sur la page adherents mais on perd a l'occasion d'eventuel filtres inseres avant d'arriver au formulaire de cotisation...
    116116        }
    117117        return $res;
  • _plugins_/Association/Associaspip/formulaires/editer_asso_prets.php

    r62726 r65375  
    6262        /* paufiner la presentation des valeurs  */
    6363        if ($contexte['montant'])
    64                 $contexte['montant'] = association_nbrefr($contexte['montant']);
     64                $contexte['montant'] = association_formater_nombre($contexte['montant']);
    6565        if ($contexte['prix_unitaire'])
    66                 $contexte['prix_unitaire'] = association_nbrefr($contexte['prix_unitaire']);
     66                $contexte['prix_unitaire'] = association_formater_nombre($contexte['prix_unitaire']);
    6767        if ($contexte['duree'])
    68                 $contexte['duree'] = association_nbrefr($contexte['duree']);
     68                $contexte['duree'] = association_formater_nombre($contexte['duree']);
    6969
    7070        /* on concatene au _hidden inseres dans $contexte par l'appel a formulaire_editer_objet les id_compte et id_ressource qui seront utilises dans l'action editer_asso_prets */
     
    9797        /* on verifie que montant et duree ne soient pas negatifs */
    9898        set_request('montant', _request('prix_unitaire')*_request('duree') );
    99         if ($erreur = association_verifier_montant(_request('montant')) )
     99        if ($erreur = association_verifier_montant('montant') )
    100100                $erreurs['montant'] = $erreur;
    101         if ($erreur = association_verifier_montant(_request('prix_unitaire')) )
     101        if ($erreur = association_verifier_montant('prix_unitaire') )
    102102                $erreurs['prix_unitaire'] = $erreur;
    103         if ($erreur = association_verifier_montant(_request('duree')) )
     103        if ($erreur = association_verifier_montant('duree') )
    104104                $erreurs['duree'] = $erreur;
    105105        /* verifier si on a un numero d'adherent qu'il existe dans la base */
    106         if ($erreur = association_verifier_membre(_request('id_emprunteur')) )
     106        if ($erreur = association_verifier_membre('id_emprunteur') )
    107107                $erreurs['id_emprunteur'] = $erreur;
    108108        /* verifier si besoin que le montant des destinations correspond bien au montant de l'opération */
    109109        if (($GLOBALS['association_metas']['destinations']) && !array_key_exists('montant', $erreurs)) {
    110110                include_spip('inc/association_comptabilite');
    111                 if ($err_dest = association_verifier_montant_destinations(_request('montant'))) {
     111                if ($err_dest = association_verifier_montant_destinations('montant') ) {
    112112                        $erreurs['destinations'] = $err_dest;
    113113                }
    114114        }
    115115        /* verifier les dates */
    116         if ($erreur = association_verifier_date(_request('date_sortie')) )
     116        if ($erreur = association_verifier_date('date_sortie') )
    117117                $erreurs['date_sortie'] = $erreur;
    118         if ($erreur = association_verifier_date(_request('date_retour'), true) )
     118        if ($erreur = association_verifier_date('date_retour', true) )
    119119                $erreurs['date_retour'] = $erreur;
    120         if ($erreur = association_verifier_date(_request('date_caution1'), true) )
     120        if ($erreur = association_verifier_date('date_caution1', true) )
    121121                $erreurs['date_caution1'] = $erreur;
    122         if ($erreur = association_verifier_date(_request('date_caution0'), true) )
     122        if ($erreur = association_verifier_date('date_caution0', true) )
    123123                $erreurs['date_caution0'] = $erreur;
    124124
  • _plugins_/Association/Associaspip/formulaires/editer_asso_ressources.php

    r62712 r65375  
    5050        /* paufiner la presentation des valeurs  */
    5151        if ($contexte['pu'])
    52                 $contexte['pu'] = association_nbrefr($contexte['pu']);
     52                $contexte['pu'] = association_formater_nombre($contexte['pu']);
    5353        if ($contexte['prix_acquisition'])
    54                 $contexte['prix_acquisition'] = association_nbrefr($contexte['prix_acquisition']);
     54                $contexte['prix_acquisition'] = association_formater_nombre($contexte['prix_acquisition']);
    5555        if ($contexte['prix_caution'])
    56                 $contexte['prix_caution'] = association_nbrefr($contexte['prix_caution']);
     56                $contexte['prix_caution'] = association_formater_nombre($contexte['prix_caution']);
    5757        if (is_numeric($contexte['statut']))
    58                 $contexte['statut'] = association_nbrefr($contexte['statut']);
     58                $contexte['statut'] = association_formater_nombre($contexte['statut']);
    5959
    6060        // on ajoute les metas de destinations
     
    8181        $erreurs = array();
    8282        /* on verifie que prix de location et d'achat ne soit pas negatifs */
    83         if ($erreur = association_verifier_montant(_request('pu')) )
     83        if ($erreur = association_verifier_montant('pu') )
    8484                $erreurs['pu'] = $erreur;
    85         if ($erreur = association_verifier_montant(_request('prix_caution')) )
     85        if ($erreur = association_verifier_montant('prix_caution') )
    8686                $erreurs['prix_caution'] = $erreur;
    87         if ($erreur = association_verifier_montant(_request('prix_acquisition')) )
     87        if ($erreur = association_verifier_montant('prix_acquisition') )
    8888                $erreurs['prix_acquisition'] = $erreur;
    89         if ($erreur = association_verifier_montant(_request('quantite')) )
     89        if ($erreur = association_verifier_montant('quantite') )
    9090                $erreurs['statut'] = $erreur;
    9191        /* verifier si besoin que le montant des destinations correspond bien au montant de l'opération */
    9292        if (($GLOBALS['association_metas']['destinations']) && !array_key_exists('prix_acquisition', $erreurs)) {
    9393                include_spip('inc/association_comptabilite');
    94                 if ($err_dest = association_verifier_montant_destinations(_request('prix_acquisition'))) {
     94                if ($err_dest = association_verifier_montant_destinations('prix_acquisition') ) {
    9595                        $erreurs['destinations'] = $err_dest;
    9696                }
    9797        }
    9898        /* verifier la date */
    99         if ($erreur = association_verifier_date(_request('date_acquisition')) )
     99        if ($erreur = association_verifier_date('date_acquisition') )
    100100                $erreurs['date_acquisition'] = $erreur;
    101101
  • _plugins_/Association/Associaspip/formulaires/editer_asso_ventes.php

    r59545 r65375  
    3939        /* paufiner la presentation des valeurs  */
    4040        if ($contexte['prix_vente'])
    41                 $contexte['prix_vente'] = association_nbrefr($contexte['prix_vente']);
     41                $contexte['prix_vente'] = association_formater_nombre($contexte['prix_vente']);
    4242        if ($contexte['frais_envoi'])
    43                 $contexte['frais_envoi'] = association_nbrefr($contexte['frais_envoi']);
     43                $contexte['frais_envoi'] = association_formater_nombre($contexte['frais_envoi']);
    4444        if ($contexte['quantite'])
    45                 $contexte['quantite'] = association_nbrefr($contexte['quantite']);
     45                $contexte['quantite'] = association_formater_nombre($contexte['quantite']);
    4646        // on ajoute les metas de classe_banques et destinations
    4747        $contexte['classe_banques'] = $GLOBALS['association_metas']['classe_banques'];
     
    6767        $erreurs = array();
    6868        /* on verifie que quantite, prix_vente et frais_envoi ne soient pas negatifs */
    69         if ($erreur = association_verifier_montant(_request('prix_vente')) )
     69        if ($erreur = association_verifier_montant('prix_vente') )
    7070                $erreurs['prix_vente'] = $erreur;
    71         if ($erreur = association_verifier_montant(_request('frais_envoi')) )
     71        if ($erreur = association_verifier_montant('frais_envoi') )
    7272                $erreurs['frais_envoi'] = $erreur;
    73         if ($erreur = association_verifier_montant(_request('quantite')) )
     73        if ($erreur = association_verifier_montant('quantite') )
    7474                $erreurs['quantite'] = $erreur;
    7575        /* verifier si on a un numero d'adherent qu'il existe dans la base */
    76         if ($erreur = association_verifier_membre(_request('id_acheteur')) )
     76        if ($erreur = association_verifier_membre('id_acheteur') )
    7777                $erreurs['id_acheteur'] = $erreur;
    7878        /* verifier si besoin que le montant des destinations correspond bien au montant de l'opération */
    7979        if ($GLOBALS['association_metas']['destinations'] && !array_key_exists('prix_vente', $erreurs)) {
    8080                include_spip('inc/association_comptabilite');
    81                 if ($err_dest = association_verifier_montant_destinations(_request('prix_vente'))) {
     81                if ($err_dest = association_verifier_montant_destinations('prix_vente') )
    8282                        $erreurs['destinations'] = $err_dest;
    83                 }
    8483        }
    8584        /* verifier les dates */
    86         if ($erreur = association_verifier_date(_request('date_vente')) )
     85        if ($erreur = association_verifier_date('date_vente') )
    8786                $erreurs['date_vente'] = $erreur;
    88         if ($erreur = association_verifier_date(_request('date_envoi')) )
     87        if ($erreur = association_verifier_date('date_envoi') )
    8988                $erreurs['date_envoi'] = $erreur;
     89
    9090        if (count($erreurs)) {
    9191                $erreurs['message_erreur'] = _T('asso:erreur_titre');
  • _plugins_/Association/Associaspip/formulaires/parametrer_etiquettes.php

    r64359 r65375  
    2828
    2929        foreach(array('nb_colonne', 'nb_ligne', 'largeur_page', 'hauteur_page', 'marge_haut_page', 'marge_bas_page', 'marge_gauche_page', 'marge_droite_page', 'marge_gauche_etiquette', 'marge_droite_etiquette', 'espace_etiquettesh', 'espace_etiquettesl') as $value) { // on verifie que les valeurs sont des nombres (idealement des entiers) positifs
    30                 if ($erreur = association_verifier_montant(_request($value)) )
     30                if ($erreur = association_verifier_montant($value) )
    3131                        $erreurs[$value] = $erreur;
    3232        }
  • _plugins_/Association/Associaspip/inc/association_comptabilite.php

    r64577 r65375  
    7171                if ($unique==false) {
    7272                    $res .= '<li class="editer_montant_dest['.$idIndex.']"><input name="montant_dest['.$idIndex.']" value="'
    73                         . association_nbrefr(association_recupere_montant($destMontant))
     73                        . association_formater_nombre($destMontant)
    7474                        . '" type="text" id="montant_dest['.$idIndex.']" /></li>'
    7575                        . '<button class="destButton" type="button" onClick="addFormField(); return false;">+</button>';
     
    240240                $err = _T('asso:erreur_destination_dupliquee');
    241241            }
    242             $total_destination += association_recupere_montant($toutesDestinationsMontants[$id]); /* les montants sont dans un autre tableau aux meme cles */
    243         }
    244         /* on verifie que la somme des montants des destinations correspond au montant attendu */
    245         if ($montant_attendu!=$total_destination) {
     242            $total_destination += association_recuperer_montant($toutesDestinationsMontants[$id], false); // les montants sont dans un autre tableau aux meme cles
     243        }
     244        if ( _request($montant_attendu)!=$total_destination ) { // on verifie que la somme des montants des destinations correspond au montant attendu
    246245            $err .= _T('asso:erreur_montant_destination');
    247246        }
    248     } else { /* une seule destination, le montant peut ne pas avoir ete precise, dans ce cas pas de verif, c'est le montant attendu qui sera entre dans la base */
    249         /* quand on a une seule destination, l'id dans les tableaux est forcement 1 par contruction de l'editeur */
    250         if ($toutesDestinationsMontants[1]) {
    251             $montant = association_recupere_montant($toutesDestinationsMontants[1]);
    252             /* on verifie que le montant indique correspond au montant attendu */
    253             if ($montant_attendu!=$montant) {
     247    } else { // une seule destination, le montant peut ne pas avoir ete precise, dans ce cas pas de verif, c'est le montant attendu qui sera entre dans la base
     248        if ($toutesDestinationsMontants[1]) { // quand on a une seule destination, l'id dans les tableaux est forcement 1 par contruction de l'editeur
     249            if ( _request($montant_attendu)!=association_recuperer_montant($toutesDestinationsMontants[1], false) ) { // on verifie que le montant indique correspond au montant attendu
    254250                $err = _T('asso:erreur_montant_destination');
    255251            }
     
    277273    if (count($toutesDestinations)>1) {
    278274        foreach ($toutesDestinations as $id => $id_destination) {
    279             $montant = association_recupere_montant($toutesDestinationsMontants[$id]);  /* le tableau des montants a des cles indentique a celui des id */
     275            $montant = association_recuperer_montant($toutesDestinationsMontants[$id], false);  // le tableau des montants a des cles indentique a celui des id
    280276            $id_dest_op = sql_insertq('spip_asso_destination_op', array(
    281277                'id_compte' => $id_compte,
     
    488484                echo '<td class="text">'. $data['intitule'] .'</td>';
    489485                if ($direction) { // mode liste comptable
    490                     echo '<td class="decimal">'. association_nbrefr($data['valeurs']) .'</td>';
     486                    echo '<td class="decimal">'. association_formater_nombre($data['valeurs']) .'</td>';
    491487                    $total_valeurs += $data['valeurs'];
    492488                } else { // mode liste standard
    493                     echo '<td class="decimal">'. association_nbrefr($data['recettes']) .'</td>';
     489                    echo '<td class="decimal">'. association_formater_nombre($data['recettes']) .'</td>';
    494490                    $total_recettes += $data['recettes'];
    495                     echo '<td class="decimal">'. association_nbrefr($data['depenses']) .'</td>';
     491                    echo '<td class="decimal">'. association_formater_nombre($data['depenses']) .'</td>';
    496492                    $total_depenses += $data['depenses'];
    497                     //echo '<td class="decimal">'. association_nbrefr($data['soldes']) .'</td>';
     493                    //echo '<td class="decimal">'. association_formater_nombre($data['soldes']) .'</td>';
    498494                    $total_valeurs += $data['soldes'];
    499495                }
     
    506502    echo '<th class="text">'. _T("asso:$prefixe".'_total') .'</th>';
    507503    if ($direction) { // mode liste comptable
    508         echo '<th class="decimal">'. association_nbrefr($total_valeurs) . '</th>';
     504        echo '<th class="decimal">'. association_formater_nombre($total_valeurs) . '</th>';
    509505    } else { // mode liste standard
    510         echo '<th class="decimal">'. association_nbrefr($total_recettes) . '</th>';
    511         echo '<th class="decimal">'. association_nbrefr($total_depenses) . '</th>';
    512         // echo '<th class="decimal">'. association_nbrefr($total_valeurs) . '</th>';
     506        echo '<th class="decimal">'. association_formater_nombre($total_recettes) . '</th>';
     507        echo '<th class="decimal">'. association_formater_nombre($total_depenses) . '</th>';
     508        // echo '<th class="decimal">'. association_formater_nombre($total_valeurs) . '</th>';
    513509    }
    514510    echo "</tr>\n</tfoot>\n</table>\n";
     
    529525    $res = $recettes-$depenses;
    530526    echo '<th class="text">'. (($res<0) ? _T('asso:cpte_resultat_perte') : _T('asso:cpte_resultat_benefice')) .'</th>';
    531     echo '<th class="decimal">'. association_nbrefr(abs($res)) .'</th>';
     527    echo '<th class="decimal">'. association_formater_nombre(abs($res)) .'</th>';
    532528    echo "</tr></tfoot></table>";
    533529}
     
    857853                    $this->Cell(20, 6, utf8_decode($data['code']), 0, 0, 'R', true);
    858854                    $this->Cell(($this->largeur_utile)-(2*$this->space_h+50), 6, utf8_decode($data['intitule']), 0, 0, 'L', true);
    859                     $this->Cell(30, 6, association_nbrefr($data['valeurs']), 0, 0, 'R', true);
     855                    $this->Cell(30, 6, association_formater_nombre($data['valeurs']), 0, 0, 'R', true);
    860856                    if ($direction) { // mode liste comptable
    861                         $this->Cell(30, 6, association_nbrefr($data['valeurs']), 0, 0, 'R', true);
     857                        $this->Cell(30, 6, association_formater_nombre($data['valeurs']), 0, 0, 'R', true);
    862858                        $total_valeurs += $data['valeurs'];
    863859                    } else { // mode liste standard
    864                         $this->Cell(30, 6, association_nbrefr($data['depenses']>0?$data['depenses']:$data['recettes']), 0, 0, 'R', true);
     860                        $this->Cell(30, 6, association_formater_nombre($data['depenses']>0?$data['depenses']:$data['recettes']), 0, 0, 'R', true);
    865861                        $total_recettes += $data['recettes'];
    866862                        $total_depenses += $data['depenses'];
     
    876872        if ($direction) { // mode liste comptable : charge, produit, actifs, passifs
    877873            $this->Cell(($this->largeur_utile)-(2*$this->space_h+30), 6, html_entity_decode(_T("asso:$prefixe".'_total')), 1, 0, 'R', true);
    878             $this->Cell(30, 6, association_nbrefr($total_valeurs), 1, 0, 'R', true);
     874            $this->Cell(30, 6, association_formater_nombre($total_valeurs), 1, 0, 'R', true);
    879875        } else { // mode liste standard : contributions volontaires et autres
    880876            $this->Cell(($this->largeur_utile)/2-(2*$this->space_h+30), 6, html_entity_decode(_T("asso:$prefixe".'_total_depenses')), 1, 0, 'R', true);
    881             $this->Cell(30, 6, association_nbrefr($total_depenses), 1, 0, 'R', true);
     877            $this->Cell(30, 6, association_formater_nombre($total_depenses), 1, 0, 'R', true);
    882878            $xc += ( $this->largeur_utile)/2;
    883879            $this->SetXY($xc, $yc); // positionne le curseur sur l'autre demi page
    884880            $this->Cell(($this->largeur_utile)/2-(2*$this->space_h+30), 6, html_entity_decode(_T("asso:$prefixe".'_total_recettes')), 1, 0, 'R', true);
    885             $this->Cell(30, 6, association_nbrefr($total_recettes), 1, 0, 'R', true);
     881            $this->Cell(30, 6, association_formater_nombre($total_recettes), 1, 0, 'R', true);
    886882        }
    887883        $yc += 6;
     
    913909        $this->SetXY($xc, $yc);
    914910        $this->Cell(($this->largeur_utile)-(2*$this->space_h+30), 6, html_entity_decode(_T('asso:cpte_resultat_'.($leSolde<0?'perte':'benefice'))), 1, 0, 'R', true);
    915         $this->Cell(30, 6, association_nbrefr($leSolde), 1, 0, 'R', true);
     911        $this->Cell(30, 6, association_formater_nombre($leSolde), 1, 0, 'R', true);
    916912        $yc += 6;
    917913        $this->Ln($this->space_v); // Saut de ligne
  • _plugins_/Association/Associaspip/modeles/liste_disponibilites.html

    r63476 r65375  
    3131                        <td class="text">#INTITULE</td>
    3232                [(#ENV{acquisition}|=={oui}|oui)
    33                         <td class="date"> [(#DATE_ACQUISITION|appliquer_filtre{association_datefr})]</td>
     33                        <td class="date"> [(#DATE_ACQUISITION|appliquer_filtre{association_formater_date})]</td>
    3434                ]
    3535                [(#ENV{remarques}|=={oui}|oui)
    3636                        <td class="text">#COMMENTAIRE</td>
    3737                ]
    38                         <td class="decimal">[(#PU|appliquer_filtre{association_prixfr})] [/ (#VAL{1}|appliquer_filtre{association_dureefr{#UD}})]</td>
    39                         <td class="decimal">[(#PRIX_CAUTION|appliquer_filtre{association_prixfr})]</td>
     38                        <td class="decimal">[(#PU|appliquer_filtre{association_formater_prix})] [/ (#VAL{1}|appliquer_filtre{association_formater_duree{#UD}})]</td>
     39                        <td class="decimal">[(#PRIX_CAUTION|appliquer_filtre{association_formater_prix})]</td>
    4040                        <td>
    4141                                [(#STATUT|=={ok}|ou{#STATUT|>{0}}|oui)[<img src="(#CHEMIN{plugins/auto/Associaspip/img_pack/puce-verte.gif})" alt="#STATUT" />] <:asso:ressources_libelle_statut_ok:>]
     
    4848                [(#ENV{retour}|=={oui}|oui)
    4949                        <td class="date">
    50                                 [(#DATE_RETOUR|appliquer_filtre{association_datefr})]
     50                                [(#DATE_RETOUR|appliquer_filtre{association_formater_date})]
    5151                        </td>
    5252                ]
Note: See TracChangeset for help on using the changeset viewer.