Changeset 65937 in spip-zone


Ignore:
Timestamp:
Sep 17, 2012, 1:48:18 AM (9 years ago)
Author:
gildas.cotomale@…
Message:

suite de la refactorisation du code et corrections diverses

Location:
_plugins_/Association/Associaspip
Files:
35 edited

Legend:

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

    r65375 r65937  
    3535                        $variante = sql_fetsel('*', 'spip_cat_variantes', 'id_cat_variante='.$code);
    3636                        if (!$article)
    37                                 $article = $variante['id_article'];
    38                         if ($prix_unite==0)
     37                                $article = '[->art'.$variante['id_article'].'] : '.$variante['titre'];
     38                        if (!$prix_unite)
    3939                                $prix_unite = $variante['prix']*(1+$variante['tva']);
    4040                } else { // c'est une option
    4141                        $option = sql_fetsel('*', 'spip_cat_options', 'id_cat_option='.abs($code));
    4242                        if (!$article)
    43                                 $article = $option['id_article'];
    44                         if ($prix_unite==0)
    45                                 $prix_unite = $option['prix']*(1+$option['tva']);
     43                                $article = '[->art'.$option['id_article'].'] & '.$option['titre'];
     44#                       if (!$prix_unite) // normalement le prix de l'option s'ajoute au prix de base...
     45                                $prix_unite += $option['prix']*(1+$option['tva']);
    4646                }
    4747        }
  • _plugins_/Association/Associaspip/action/synchroniser_asso_activites.php

    r64350 r65937  
    1919        $securiser_action();
    2020
    21         $evt = _request('id_evenement');
     21        $evt = intval(_request('id_evenement'));
    2222        $act = array(); // liste des id_activite rajoutes
    2323        $imp = _request('imp');
    24         $anciennes_reponses = sql_select('id_adherent', 'spip_asso_activites', "id_evenement=$evt");
    25         $nouvelles_reponses = sql_select('id_auteur, date', 'spip_evenements_participants', "id_evenement=$evt AND " .sql_in('reponse', $imp). " AND " .sql_in('id_auteur', $anciennes_reponses, 'NOT') );
    26         while ($nouvelle_reponse = sql_fetch($nouvelles_reponses)) { // inserer
     24        $anciennes_reponses = sql_in_select('id_auteur', 'id_adherent', 'spip_asso_activites', "id_evenement=$evt");
     25        $nouvelles_reponses = sql_select('id_auteur, date', 'spip_evenements_participants', "id_evenement=$evt AND " . sql_in('reponse', (is_array($imp)?$imp:array($imp)) ) . " AND NOT $anciennes_reponses" );
     26        while ($nouvelle_reponse = sql_fetch($nouvelles_reponses)) { // inserer un a un
    2727                $act[] = sql_insertq('spip_asso_activites', array(
    2828                        'id_evenement' => $evt,
     
    3131                ));
    3232        }
    33 
     33        sql_free($nouvelles_reponses);
    3434        return count($act); // on retourne le nombre de membres inseres dans la table
    3535}
  • _plugins_/Association/Associaspip/association_options.php

    r65873 r65937  
    9797        $res .= ($script ? '<a href="'.generer_url_ecrire($script, $exec_args).'">' : '' );
    9898        $res .= '<img src="'._DIR_PLUGIN_ASSOCIATION_ICONES.$image.'" alt="';
    99         $res .= ($texte ? _T('asso:'.$texte).'" title="'._T('asso:'.$texte) : ' ' );
     99        $res .= ($texte ?association_langue($texte).'" title="'. association_langue($texte) : ' ' );
    100100        $res .= '" '.$img_attrs.' />';
    101101        $res .= ($script?'</a>':'');
     
    288288 *   Date formatee
    289289 */
    290 function association_formater_date($iso_date, $css_class='', $format='entier', $html_abbr='abbr')
    291 {
     290function association_formater_date($iso_date, $css_class='', $format='entier', $html_abbr='auto')
     291{
     292        if ( !$iso_date || substr_count($iso_date, '0000-00-00') ) // date indeterminee
     293                return '';
    292294        $res = '';
     295        if ( $html_abbr=='auto' )
     296                $html_abbr = ($GLOBAL['meta']['html5']?'time':'abbr');
    293297        if ( $html_abbr )
    294                 $res = "<$html_abbr ". ($css_class?"class='$css_class' ":'') ."title='$iso_date'>";
     298                $res = "<$html_abbr ". ($css_class?"class='$css_class' ":'') . ($html_abbr=='time'?'datetime':'title'). "='$iso_date'>";
    295299        $res .= affdate_base($iso_date, $format?$format:'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
    296300        return $res. ($html_abbr?"</$html_abbr>":'');
     
    305309 *   Nombre de decimales affichees.
    306310 *   Par defaut : 2
    307  * @param string $l10n
    308  *   Code ISO-639 de la langue voulue
    309  *   Par defaut : on tente de detecter la langue du navigateur sinon celle du site
     311 * @param string $css_class
     312 *   Classe(s) CSS (separees par un espace) a rajouter
     313 * @param string $html_abbr
     314 *   Balise-HTML (paire ouvrante/fermante) encadrante
    310315 * @return string $res
    311316 *   Nombre formatee
     
    313318 * @note Perfectible... Avis aux contributeurs motives...
    314319 */
    315 function association_formater_nombre($nombre, $decimales=2, $l10n='')
    316 {
    317         // recuperer le code des parametres regionnaux a utiliser
    318         // dans un premier temps, on essaye d'utiliser la langue puisque SPIP gere
    319         // bien cela et offre la possibilite d'en faire plus avec
    320         //  http://programmer.spip.org/Forcer-la-langue-selon-le-visiteur
    321         // Comme ce n'est pas suffisant (le code de localisation est de la forme
    322         // langue-pays ou langue_PAYS en utilisant les codes ISO), et recuperer le
    323         // pays n'est pas simple sans faire appel a l'IP-geolocalisation
    324         // http://stackoverflow.com/questions/2156231/how-do-you-detect-a-website-visitors-country-specifically-us-or-not
    325         // Ni SPIP ni PHP n'offrant de moyen "simple" d'arriver a nos fin bah...
    326         if (!$l10n) { // pas de localae specifiee
    327                 $l10n = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
    328                 if (!$l10n) { // pas specifie par le navigateur non plus ?
    329                         $l10n = array('french', 'fr_FR', 'fr_FR@euro', 'fr_FR.iso88591', 'fr_FR.iso885915@euro', 'fr_FR.utf8', 'fr_FR.utf8@euro'); // alors on s'impose...
    330                 } else { // si specifie, on va transformer en tableau http://www.thefutureoftheweb.com/blog/use-accept-language-header
    331                         preg_match_all('/([a-z]{1,8}(-[a-z]{1,8})?)\s*(;\s*q\s*=\s*(1|0\.[0-9]+))?/i', $l10n, $lang_parse);
    332                         if (count($lang_parse[1])) { // creer la liste locale=>preference
    333                                 $langues = array_combine($lang_parse[1], $lang_parse[4]);
    334                                 foreach ($langues as $langue => $taux) { // pour les taux de preferences non specifies, mettre a 100%
    335                                         if ($taux==='')
    336                                                 $langues[$langue] = 1;
    337                                 }
    338                                 arsort($langues, SORT_NUMERIC); // ordonne par taux de preferences
    339                                 $l10n = array_keys($langues); // on recupere la liste des langues triees
    340                         }
    341 
    342                 }
    343         }
    344         // formater selon la langue choisie/recuperee
    345         // http://stackoverflow.com/a/437642
    346         setlocale(LC_NUMERIC, $l10n);
     320function association_formater_nombre($nombre, $decimales=2, $css_class='', $html_abbr='')
     321{
     322        if ( $html_abbr )
     323                $res = "<$html_abbr ". ($css_class?"class='$css_class' ":'') ."title='$iso_date'>";
     324        else
     325                $res = '';
     326        setlocale(LC_NUMERIC, utiliser_langue_visiteur() );
    347327        $locale = localeconv();
    348     return number_format(floatval($nombre), $decimales, $locale['decimal_point'], $locale['thousands_sep']);
     328    $res .= number_format(floatval($nombre), $decimales, $locale['decimal_point'], $locale['thousands_sep']);
     329        return $res. ($html_abbr?"</$html_abbr>":'');
    349330}
    350331
     
    630611 *   Le texte brut initial
    631612 * @param string $filtre
    632  *   Filtre SPIP a appliquer au texte
    633  * @param array $params
    634  *   Liste des parametres du filtre
     613 *   Filtre SPIP a appliquer au texte.
     614 *   Pour les filtres avec parametre, il faut utiliser une liste debutant par le
     615 *   nom du filtre suivi des parametres.
    635616 * @param string $html_span
    636617 *   Balise-HTML (paire ouvrante/fermante) encadrante
     
    643624 *   http://spipistrelle.clinamen.org/spip.php?article16
    644625 */
    645 function association_formater_texte($texte, $filtre='', $params=array(), $css_class='', $html_span='' )
     626function association_formater_texte($texte, $filtre='', $css_class='', $html_span='' )
    646627{
    647628        $res = '';
     
    651632                $res = "<$html_span". ($css_class?" class='$css_class' ":'') .'>';
    652633        include_spip('inc/texte'); // pour nettoyer_raccourci_typo
    653         if ( !is_array($params) )
    654                 $params = array($params);
     634        if ( is_array($filtre) ) {
     635                $params = $filtre;
     636                $filtre = array_shift($params);
     637        } else {
     638                $params = array();
     639        }
    655640        $ok = array_unshift($params, $texte);
    656641        $res .= $filtre?call_user_func_array($filtre, $params):$texte;
     
    675660        if ( is_array($icone) )
    676661                $icone = $icone[$statut];
    677         return association_bouton_act($statut, 'puce-'.$icone.'.gif', '', '', $img_attrs, '').' '._T("asso:$acote") ; // c'est comme un bouton... sans action/lien...
     662        return association_bouton_act($statut, 'puce-'.$icone.'.gif', '', '', $img_attrs, '').' '. association_langue($acote) ; // c'est comme un bouton... sans action/lien...
    678663}
    679664
     
    695680 *   Date formatee
    696681 */
    697 function association_formater_heure($iso_date, $css_class='', $html_abbr='abbr')
     682function association_formater_heure($iso_date, $css_class='', $html_abbr='auto')
    698683{
    699684        $res = '';
     685        if ( $html_abbr=='auto' )
     686                $html_abbr = ($GLOBAL['meta']['html5']?'time':'abbr');
    700687        if ( $html_abbr )
    701                 $res = "<$html_abbr ". ($css_class?"class='$css_class' ":'') ."title='$iso_date'>";
     688                $res = "<$html_abbr ". ($css_class?"class='$css_class' ":'') . ($html_abbr=='time'?'datetime':'title'). "='$iso_date'>";
    702689        $res .= affdate_heure($iso_date); // 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
    703690        return $res . ($html_abbr?"</$html_abbr>":'');
     
    733720}
    734721
     722/**
     723 * Afficher le nom ou le lien sur un objet a partir de son id
     724 *
     725 * @param int $id
     726 *   Valeur de l'identifiant pour faire le lien ou recuperer le nom
     727 * @param string|array $nom
     728 *   Le pseudonyme a afficher (directement donnee) ; ou
     729 *   La liste de : la table dans laquelle la recuperer, le champ le contenant
     730 *   (par defaut "titre") et la cle primaire a utiliser pour la requete (par
     731 *   defaut "id_auteur"). Le cas particulier de la liste vide permet de generer
     732 *   le nom complet du membre ayant l'ID fourni.
     733 * @param string $lien
     734 *   Nom de l'objet pour lequel on genere le lien sous forme de raccourci SPIP
     735 * @param string $html_span
     736 *   Balise HTML encadrante (paire ouvrante/fermante) a utiliser pour encadrer
     737 *   l'ensemble. Par defaut : "span". Il faut mettre un chaine vide pour ne pas
     738 *   microformater...
     739 * @return string $res
     740 *   Code HTML correspondant
     741 */
     742function association_formater_idnom($id, $nom='', $lien='', $html_span='span') {
     743        $res = '';
     744        if ( is_array($nom) ) { // requeter le nom... (rajoute de la charge sur la base de donnees)
     745                $table = ($nom[0] ? $nom[0] : ($nom['table'] ? $nom['table'] : ($nom['from'] ? $nom['from'] : ($nom['tables']?$nom['tables']:'spip_asso_membres') ) ) ) ; // on recupere le nom de la table a interroger
     746                if ( $table=='spip_asso_membres' || $table=='asso_membres' ) { // cas special d'un membre
     747                        $membre = sql_fetsel('*', 'spip_asso_membres', "id_auteur=$id");
     748                        $res = association_calculer_nom_membre($membre['sexe'], $membre['prenom'], $membre['nom_famille'], $html_span);
     749                } else { // cas general
     750                        $champ = ($nom[1] ? $nom[1] : ($nom['field'] ? $nom['field'] : ($nom['select'] ? $nom['select'] : (($table=='spip_auteurs' || $table=='auteurs')?'nom':'titre') ) ) ) ; // on recupere le nom du champ contenant le nom recherche
     751                        $clef = ($nom[2] ? $nom[2] : ($nom['pk'] ? $nom['pk'] : ($nom['id'] ? $nom['id'] : 'id_auteur' ) ) ) ; // on recupere le nom du champ contenant le nom recherche
     752                        $nom = sql_getfetsel($champ, $table, "$clef=".sql_quote($id) );
     753                        if ( $nom )
     754                                $res = ($html_span?"<$html_span class='n'>":'') . $nom . ($html_span?"</$html_span>":'');
     755                        elseif ( $lien=='membre')
     756                                association_formater_idnom($id, array(), $lien, $html_span);
     757                }
     758        } elseif ( $nom ) { // utiliser nom...
     759                $res = ($html_span?"<$html_span class='n'>":'') .$nom. ($html_span?"</$html_span>":'');
     760        }
     761        if ( $lien ) {
     762                $res = propre('['.$res."->$lien$id]");
     763        }
     764        return $res;
     765}
     766
    735767/** @} */
    736768
     
    756788{
    757789        $valeur = ($req?_request($valeur):$valeur);
    758         if ($valeur!='') {
     790        if ( $valeur ) {
    759791                $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.
    760792        }
     
    769801{
    770802        $valeur = ($req?_request($valeur):$valeur);
    771         if ($valeur!='') {
    772                 $valeur = str_replace(' ', '', $valeur); // suppprime les espaces separateurs de milliers
    773                 $valeur = str_replace(',', '.', $valeur); // convertit les , en .
     803        if ( $valeur ) {
     804                setlocale(LC_NUMERIC, utiliser_langue_visiteur() );
     805                $locale = localeconv(); // recuperer les parametres regionnaux
     806                $valeur = str_replace($locale['thousands_sep'], '', $valeur); // suppprime les separateurs de milliers
     807                $valeur = str_replace($locale['decimal_point'], '.', $valeur); // remplacer le separateur decimal par le point
    774808                $valeur = floatval($valeur);
    775         } else
    776                 $valeur = 0.0;
    777         return $valeur;
     809        }
     810        return floatval($valeur);
    778811}
    779812
     
    892925    }
    893926    $res .= '</select>'.$plus;
     927    sql_free($sql);
    894928    return $exec ? generer_form_ecrire($exec, $res.'<noscript><input type="submit" value="'._T('asso:bouton_lister').'" /></noscript>') : $res;
    895929}
     
    916950    }
    917951    $res .= '</select>'.$plus;
     952    sql_free($sql);
    918953    if ($GLOBALS['association_metas']['destinations']){
    919954                return $exec ? generer_form_ecrire($exec, $res.'<noscript><input type="submit" value="'._T('asso:bouton_lister').'" /></noscript>') : $res;
     
    931966    if ( $qGroupes && sql_count($qGroupes) ) { // ne proposer que s'il y a des groupes definis
    932967                $res = '<select name="groupe" onchange="form.submit()">';
    933                 $res .= '<option value="">'._T('asso:tous_les_groupes').'</option>';
     968                $res .= '<option value="">'. _T('asso:tous_les_groupes') .'</option>';
    934969                while ($groupe = sql_fetch($qGroupes)) {
    935970                        $res .= '<option value="'.$groupe['id_groupe'].'"';
     
    939974                }
    940975                $res .= '</select>'.$plus;
    941                 return $exec ? generer_form_ecrire($exec, $res.'<noscript><input type="submit" value="'._T('asso:bouton_lister').'" /></noscript>') : $res;
     976                return $exec ? generer_form_ecrire($exec, $res.'<noscript><input type="submit" value="'. _T('asso:bouton_lister') .'" /></noscript>') : $res;
    942977        } else {
    943978                return '';
    944979        }
     980        //sql_free($qGroupes);
    945981}
    946982
     
    951987{
    952988    $res = '<select name="statut_interne" onchange="form.submit()">';
    953     $res .= '<option value="%"'. (($sel=='defaut' || $sel=='%')?' selected="selected"':'') .'>'._T('asso:entete_tous').'</option>';
     989    $res .= '<option value="%"'. (($sel=='defaut' || $sel=='%')?' selected="selected"':'') .'>'. _T('asso:entete_tous') .'</option>';
    954990    foreach ($GLOBALS['association_liste_des_statuts'] as $statut) {
    955991                $res .= '<option value="'.$statut.'"';
    956992                if ( $sel==$statut )
    957993                        $res .= ' selected="selected"';
    958                 $res .= '> '._T('asso:adherent_entete_statut_'.$statut).'</option>';
     994                $res .= '> '. _T('asso:adherent_entete_statut_'.$statut) .'</option>';
    959995        }
    960996        $res .= '</select>'.$plus;
    961     return $exec ? generer_form_ecrire($exec, $res.'<noscript><input type="submit" value="'._T('asso:bouton_lister').'" /></noscript>') : $res;
     997    return $exec ? generer_form_ecrire($exec, $res.'<noscript><input type="submit" value="'. _T('asso:bouton_lister') .'" /></noscript>') : $res;
    962998}
    963999
     
    9681004{
    9691005    $res = '<input type="text" name="id" onfocus=\'this.value=""\' size="5"  value="'. ($sel?$sel:_T('asso:entete_id')) .'" />'.$plus;
    970     return $exec ? generer_form_ecrire($exec, $res.'<noscript><input type="submit" value="'._T('asso:bouton_lister').'" /></noscript>') : $res;
     1006    return $exec ? generer_form_ecrire($exec, $res.'<noscript><input type="submit" value="'. _T('asso:bouton_lister') .'" /></noscript>') : $res;
    9711007}
    9721008
     
    9931029    }
    9941030    $pager = '';
     1031    if ( !$annee ) { // annee non precisee (ou valant 0)
     1032                $annee = date('Y'); // on prend l'annee courante
     1033        }
    9951034    $res .= '<select name ="annee" onchange="form.submit()">';
    9961035    $an_max = sql_getfetsel("MAX(DATE_FORMAT(date_$dchamp, '%Y')) AS an_max", "spip_$dtable", '');
     
    10121051    }
    10131052    $res .= '</select>'.$plus;
     1053    sql_free($sql);
    10141054    if ($exec) {
    1015                 $res .= '<noscript><input type="submit" value="'._T('asso:bouton_lister').'" /></noscript>';
     1055                $res .= '<noscript><input type="submit" value="'. _T('asso:bouton_lister') .'" /></noscript>';
    10161056                $res .= '</div></form>';
    10171057    }
     
    10411081    $res .= '</select>'.$plus;
    10421082    if ($GLOBALS['association_metas']['destinations']){
    1043                 return $exec ? generer_form_ecrire($exec, $res.'<noscript><input type="submit" value="'._T('asso:bouton_lister').'" /></noscript>') : $res;
     1083                return $exec ? generer_form_ecrire($exec, $res.'<noscript><input type="submit" value="'. _T('asso:bouton_lister') .'" /></noscript>') : $res;
    10441084        } else {
    10451085                return FALSE;
    10461086        }
     1087        //sql_free($sql);
    10471088}
    10481089
     
    11801221 * @param array $DesLignes
    11811222 *   Tableau des lignes supplementaires a rajouter dans le bloc, sous la forme :
    1182  *   chaine_de_langue_du_titre (sans prefixe) => texte contenu/explication associe.
    1183  * @param string $PrefixeLangue
    1184  *   Prefixe de langue associe aux chaines de langue des titres de lignes.
    1185  *   Par defaut : asso
     1223 *   'chaine_de_langue_du_titre' => "texte contenu/explication associe."
    11861224 * @param string $ObjetEtendu
    11871225 *   Nom de l'objet etendu dont on desire afficher les lignes des champs rajoutes par "Interface Champs Extras 2".
     
    11931231 *   avoir des valeurs differentes comme on peut le voir dans exec/adherent.php et exec/inscrits_activite.php !
    11941232 */
    1195 function association_totauxinfos_intro($titre, $type='', $id=0, $DesLignes=array(), $PrefixeLangue='asso', $ObjetEtendu='')
     1233function association_totauxinfos_intro($titre, $type='', $id=0, $DesLignes=array(), $ObjetEtendu='')
    11961234{
    11971235        $res = '';
    11981236        if ($type) {
    1199                 $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>';
     1237                $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">'. association_langue($type) .'<br /><span class="spip_xx-large">'.$id.'</span></div>';
    12001238        }
    12011239        $res .= '<div style="text-align: center" class="verdana1 spip_medium">'.$titre.'</div>';
     
    12051243                $res .= '<dl class="verdana1 spip_xx-small">';
    12061244        foreach ($DesLignes as $dt=>$dd) {
    1207                 $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>";
     1245                $res .= '<dt>'. association_langue($dt) .'</dt><dd>'. propre($dd) .'</dd>'; // propre() paragraphe (rajoute <p>)... mais ce comportement peut etre change en mettant "paragrapher" a false dans mes_options.php : http://www.spip.net/fr_article889.html Cette presentation-ci est propre a Associaspip ; Habituellement on a : $res .= "<div class='$dt'><strong>". association_langue($dt) ."</strong> $dd</div>";
    12081246        }
    12091247        if ($ObjetEtendu) {
     
    12721310                $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);
    12731311                $res .= '<tr class="'. ($compteur%2?'row_odd':'row_even') .'">';
    1274                 $res .= '<td class"text">'. _T('asso:'.(is_numeric($libelle)?$champs:$libelle)) .'</td>';
     1312                $res .= '<td class"text">'. association_langue((is_numeric($libelle)?$champs:$libelle)) .'</td>';
    12751313                $res .= '<td class="'.($decimales_significatives?'decimal':'integer').'">'. association_formater_nombre($stats['valMoy'],$decimales_significatives) .'</td>';
    12761314                $res .= '<td class="'.($decimales_significatives?'decimal':'integer').'">'. association_formater_nombre($stats['ekrTyp'],$decimales_significatives) .'</td>';
     
    13111349        foreach ($lignes as $classe_css=>$params) {
    13121350                $res .= '<tr class="'.$classe_css.'">';
    1313                 $res .= '<td class"text">'._T('asso:'.$params[0]).'</td>';
     1351                $res .= '<td class"text">'. association_langue($params[0]) .'</td>';
    13141352                $nbr_actuel = is_array($params[1]) ? call_user_func_array('sql_countsel', $params[1]) : $params[1] ;
    13151353                $res .= '<td class="' .($decimales_significatives?'decimal':'integer') .'">'. association_formater_nombre($nbr_actuel, $decimales_significatives) .'</td>';
     
    13861424 *   Une certaine similitude avec http://programmer.spip.org/boite_infos :)
    13871425  */
    1388 function association_bloc_infosgauche($TitreObjet, $NumObjet, $DesLignes=array(), $PrefixeLangue='asso', $ObjetEtendu='')
     1426function association_bloc_infosgauche($TitreObjet, $NumObjet, $DesLignes=array(), $ObjetEtendu='')
    13891427{
    13901428        $res = debut_boite_info(true);
    1391         $res .= association_totauxinfos_intro($TitreObjet, $TitreObjet, $NumObjet, $DesLignes, $PrefixeLangu, $ObjetEtendu);
     1429        $res .= association_totauxinfos_intro($TitreObjet, $TitreObjet, $NumObjet, $DesLignes, $ObjetEtendu);
    13921430        $res .= association_date_du_jour();
    13931431        $res .= fin_boite_info(true);
     
    14081446function association_bloc_suppression($type, $id, $retour='')
    14091447{
    1410         $res = '<p><strong>'. _T('asso:vous_aller_effacer', array('quoi'=>'<i>'._T('asso:objet_num',array('objet'=>$type,'num'=>$id)).'</i>') ) .'</strong></p>';
    1411         $res .= '<p class="boutons"><input type="submit" value="'._T('asso:bouton_confirmer').'" /></p>';
     1448        $res = '<p><strong>'. _T('asso:vous_aller_effacer', array('quoi'=>'<i>'. _T('asso:objet_num', array('objet'=>$type,'num'=>$id)) .'</i>') ) .'</strong></p>';
     1449        $res .= '<p class="boutons"><input type="submit" value="'. _T('asso:bouton_confirmer') .'" /></p>';
    14121450        echo redirige_action_post("supprimer_{$type}s", $id, ($retour?$retour:$type.'s'), '', $res);
    14131451
     
    14931531                        if ( !in_array($k, $champsExclus) ) { // affichable/selectionnable (champ ayant un libelle declare et connu)
    14941532                                $lang_clef = $prefixeLibelle.$k;
    1495                                 $lang_texte = _T('asso:'.$lang_clef);
     1533                                $lang_texte = association_langue($lang_clef);
    14961534                                if ( $lang_clef!=str_replace(' ', '_', $lang_texte) ) { // champ natif du plugin
    14971535                                        $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>";
     
    15761614        foreach ($presentation as &$param) { // entetes
    15771615                $entete = array_shift($param);
    1578                 $res .= '<th>'. ($entete ? _T((strpos($entete,':') ? '' : 'asso:').$entete) : '&nbsp;' ) .'</th>';
     1616                $res .= '<th>'. ($entete ? association_langue($entete) : '&nbsp;' ) .'</th>';
    15791617        }
    15801618        if ( count($boutons) ) { // colonne(s) de bouton(s) d'action
    1581                 $res .= '<th colspan="'. count($boutons) .'" class="actions">'. _T('asso:entete_action'.(count($boutons)-1?'s':'')) .'</th>';
     1619                $res .= '<th colspan="'. count($boutons) .'" class="actions">'. _T('asso:entete_action' .(count($boutons)-1?'s':'')) .'</th>';
    15821620        }
    15831621        $res .= "</tr>\n</thead><tbody>";
     
    16271665                                        $td_css = 'image';
    16281666                                        break;
    1629                                 case 'texte' : // ajouter : propre()
     1667                                case 'code' :
     1668                                case 'texte' :
    16301669                                default :
    16311670                                        $td_css = 'text';
     
    16471686        }
    16481687        $res .= "</tbody>\n</table>\n";
     1688        sql_free($reponse_sql);
    16491689        if ( $cle1 && $selection ) {
    16501690                $res .= '<script type="text/javascript"> document.getElementById("'.$objet.$selection.'").scrollIntoView(true); </script>' ; // comme on ne peut placer un evenement "onLoad" que sur une roussource externe (IMG, FRAME, SCRIPT, BODY) ; il vaut mieux appliquer faire un SCRIPT inclus (tout juste apres ou dans HEAD si possible)
     
    17131753}
    17141754
     1755/**
     1756 * Operation ensembliste sur deux requetes
     1757 *
     1758 * @param string $operateur
     1759 *   Operation ensembliste a realiser : UNION (reunion, par defaut), INTERSECT
     1760 *   (intersection), MINUS (difference) ou EXCEPT ; sans duplication ou avec (ALL)
     1761 * @param array $q...
     1762 *   Elements d'une requete telle que passee a "sql_select"
     1763 * @return ressource
     1764 *
     1765 * @note
     1766 *   D'une part le support des differents operateurs varie d'un SGBDR a l'autre.
     1767 *   D'autre part il est souvent possible d'obtenir le meme resultat sans leur
     1768 *   usage mais au prix de requetes bien moins simples.
     1769 *   http://www.gplivna.eu/papers/sql_set_operators.htm
     1770 *   http://www.dba-ora.fr/article-sql-union-intersect-minus-101360158.html
     1771 *   http://cerig.efpg.inpg.fr/tutoriel/bases-de-donnees/chap21.htm
     1772 *   Le besoin de cette fontion vient de la necessite de reunir plusieurs etats
     1773 *   en une requte pour "association_bloc_listehtml()" et de ne rien trouver dans
     1774 *   l'API SQL de SPIP. Entre temps, la solution a ete de recourir a des CASE WHEN...THEN... END
     1775 *   qui semble aussi (ou plus) performant qu'une reUNION d'une meme table sur
     1776 *   elle-meme et tout aussi portable... La discussion reste ouverte...
     1777 *   http://www.sqlservercentral.com/Forums/Topic686395-8-1.aspx
     1778 *   http://www.sswug.org/articles/viewarticle.aspx?id=19349
     1779 *   http://db2portal.blogspot.fr/2009/11/replacing-union-with-case.html
     1780 *   http://www.componentace.com/help/absdb_manual/increasesqlperformance.htm
     1781 *   http://dba.stackexchange.com/questions/21904/refactoring-series-of-unions-in-single-table-sql-sybase
     1782 *   http://stackoverflow.com/questions/2563811/sqlite-is-the-case-statement-expensive
     1783 *   http://www.pcreview.co.uk/forums/case-access-sql-t1169064.html
     1784 */
     1785function sql_asso1set($operateur='UNION', $q1=array(), $q2=array() )
     1786{
     1787        $nbr_requetes = func_num_args()-1;
     1788        if ( $nbr_requetes<2 ) // il en faut au moins 2 !
     1789                return FALSE;
     1790        if ( !$operateur ) // non precise ?
     1791                $operateur = 'UNION';
     1792        $requete_finale = func_get_arg(1);
     1793        for ( $i=2; $i<$nbr_requetes; $i++ ) {
     1794                $requete_finale .= "\n $operateur \n". call_user_func_array('sql_get_select', func_get_arg($i) );
     1795        }
     1796        return sql_querry($requete_finale);
     1797}
     1798
    17151799/** @} */
     1800
     1801
     1802
     1803
     1804/*****************************************
     1805 * @defgroup association_passeparam
     1806 * Les champs passes aux "exec" par l'URL etant normalises pour les filtres,
     1807 * ils partagent le meme code de passage de valeur et les memes noms de parametres
     1808 * (ce qui n'est pas le cas avec association_recuperer_ !)
     1809 *
     1810 * @return string $res
     1811 *   Valeur du request...
     1812 *
     1813** @{ */
     1814
     1815
     1816/**
     1817 * &id=
     1818 *
     1819 * @return int $id
     1820 */
     1821function association_passeparam_id($type)
     1822{
     1823        if ($type) // recuperer en priorite : id_compte, id_don, id_evenement, id_ressource, id_vente, etc.
     1824                $id = intval(_request("id_$type", $_GET));
     1825        else
     1826                $id = 0;
     1827        if (!$id) // pas d'id_... alors c'est le nom generrique qui est utilise
     1828                $id = intval(_request('id'));
     1829        return $id;
     1830}
     1831
     1832/**
     1833 * &annee=
     1834 *
     1835 * @return int $an
     1836 */
     1837function association_passeparam_annee($type)
     1838{
     1839#       if ($type) // recuperer en priorite :
     1840#               $an = intval(_request("annee_$type", $_GET));
     1841#       else
     1842#               $an = 0;
     1843#       if (!$an) // pas d'annee_... alors c'est le nom generrique qui est utilise
     1844                $an = intval(_request('annee'));
     1845        if (!$an) // annee non precisee
     1846                $an = date('Y'); // on prend l'annee courante
     1847        return $an;
     1848}
     1849
     1850/**
     1851 * &exercice=
     1852 *
     1853 * @return int $exo
     1854 */
     1855function association_passeparam_exercice()
     1856{
     1857        $exo = intval(_request('exercie'));
     1858        if (!$exo) // exercice non precise
     1859                $exo = sql_getfetsel('id_exercice','spip_asso_exercices','','','debut DESC'); // on recupere le dernier exercice en date
     1860        return $exo;
     1861}
     1862
     1863/** @} */
     1864
     1865
    17161866
    17171867
     
    17461896 * (et l'heure si option activee)
    17471897 *
    1748  * @return string $res
    1749  */
    1750 function association_date_du_jour()
    1751 {
    1752         $ladate = affdate_jourcourt(date('d/m/Y'));
    1753         $hr = (_ASSOCIASPIP_AUJOURDHUI_HORAIRE?date('H'):'');
    1754         $mn = (_ASSOCIASPIP_AUJOURDHUI_HORAIRE?date('i'):'');
    1755         $res = '<p class="'. (_ASSOCIASPIP_AUJOURDHUI_HORAIRE?'datetime':'date');
    1756         $res .= '" title="'. date('Y-m-d') . (_ASSOCIASPIP_AUJOURDHUI_HORAIRE?"T$hr:$mn":'');
    1757         $lheure = (_ASSOCIASPIP_AUJOURDHUI_HORAIRE ? _T('spip:date_fmt_heures_minutes', array('h'=>$hr,'m'=>$mn)) :'');
    1758         $res .= '">'. (_ASSOCIASPIP_AUJOURDHUI_HORAIRE ? _T('asso:date_du_jour_heure', array('date'=>$ladate,'time'=>$lheure)) : _T('asso:date_du_jour',array('date'=>$ladate)) ).'</p>';
    1759         return $res;
     1898 * @param bool $phraser
     1899 *   Indique si l'horodatage est insere dans la chaine de langue prevue a cet
     1900 *   effet (vrai, par defaut) ou s'il est renvoye seul (faux)
     1901 * @return string $res
     1902 */
     1903function association_date_du_jour($phraser=TRUE)
     1904{
     1905        $frmt_m = date('Y-m-d'. (_ASSOCIASPIP_AUJOURDHUI_HORAIRE?'\TH:i:s':'') ); // format machine-parsable : idealement "\TH:i:s.uP" mais il faut PHP "up"date (plus precisement 5.1.0 pour "e" et 5.1.3 pour "P" et 5.2.0 pour "u")
     1906        $format = 'affdate_'. (_ASSOCIASPIP_AUJOURDHUI_HORAIRE?'heure':'base');
     1907        $frmt_h = $format($frmt_m, 'entier');  // format human-readable
     1908        if ( $phraser )
     1909                return '<p class="clear date">'. _T('asso:date_du_jour', array('date'=> ($GLOBAL['meta']['html5']?'<time datetime="':'<abbr title="'). $frmt_m.'">'.$frmt_h. ($GLOBAL['meta']['html5']?'</time>':'</abbr>') ) ) .'</p>';
     1910        else
     1911                return $frmt_h;
    17601912}
    17611913
     
    19022054                                                        $datum_parsed = _T("item:$datum_raw");
    19032055                                                        break;
    1904 //                                              case 'asso_activite' :
    19052056                                                case 'asso_categorie' :
    19062057                                                case 'asso_compte' :
    1907 //                                              case 'asso_don' :
    19082058                                                case 'asso_exercice' :
    19092059                                                case 'asso_membre' :
    19102060                                                case 'asso_ressource' :
    1911 //                                              case 'asso_vente' :
    19122061                                                        $raccourci = substr($ChampExtra['type'], 4); // on vire le prefixe "asso_"
    19132062                                                        if ( $ChampExtra['traitement'] )
     
    19152064                                                        else { // il faut une requete de plus
    19162065                                                                switch ($raccourci) { // $valeur prend ici le champ SQL contenant la valeur desiree.
    1917 //                                                                      case 'activite' :
    19182066                                                                        case 'categorie' :
    19192067                                                                                $valeur = 'libelle';
     
    19222070                                                                                $valeur = 'justification';
    19232071                                                                                break;
    1924 //                                                                      case 'don' :
    19252072                                                                        case 'exercice' :
    19262073                                                                                $valeur = 'intitule';
     
    19322079                                                                                $valeur = 'intitule';
    19332080                                                                                break;
    1934 //                                                                      case 'vente' :
    19352081                                                                        default :
    19362082                                                                                $valeur = 'titre'; // sauf coincidence heurese, on devrait avoir une erreur...
    19372083                                                                                break;
    19382084                                                                }
    1939                                                                 $datum_parsed = sql_getfetsel($valeur, "spip_$ChampExtra[type]s", 'id_'.($raccourci=='membre'?'auteur':$raccourci).'='.intval($datum_raw) ); // on recupere la donnee grace a la cle etrangere... (il faut que la table soit suffixee de "s" et que l'identifiant soit l'objet prefixe de "id_" :-S)
     2085                                                                $datum_parsed = association_formater_idnom($datum_raw, array("spip_$ChampExtra[type]s", $valeur, 'id_'.$raccourci) , ''); // on recupere la donnee grace a la cle etrangere... (il faut que la table soit suffixee de "s" et que l'identifiant soit l'objet prefixe de "id_" :-S)
    19402086                                                        }
     2087                                                        break;
     2088                                                case 'asso_activite' :
     2089                                                case 'asso_don' :
     2090                                                case 'asso_vente' :
     2091                                                        $raccourci = substr($ChampExtra['type'], 4); // on vire le prefixe "asso_"
     2092                                                        if ( $ChampExtra['traitement'] )
     2093                                                                $datum_parsed = $ChampExtra['traitement']('[->'.$raccourci.$datum_raw.']');
     2094                                                        else
     2095                                                                $datum_parsed = _T('asso:objet_num', array('objet'=>$raccourci, 'num'=>$datum_raw) );
    19412096                                                        break;
    19422097                                                case 'article' :
     
    19782133}
    19792134
     2135/**
     2136 * Encapsulation de _T()
     2137 *
     2138 * @param string $chaine
     2139 *   Chaine de langue avec eventuellement le prefixe "asso" omis
     2140 * @return string
     2141 *   Libelle localise
     2142 */
     2143function association_langue($chaine)
     2144{
     2145        if ( is_string($chaine) ) {
     2146                $head = $chaine;
     2147                $tail = array();
     2148        } elseif ( is_array($chaine) ) {
     2149                $head = array_shift($chaine);
     2150                $tail = $chaine;
     2151        } else
     2152                return '';
     2153        return _T((strpos($head,':') ? '' : 'asso:').$head, $tail );
     2154}
     2155
    19802156/** @} */
    19812157
  • _plugins_/Association/Associaspip/exec/activites.php

    r65873 r65937  
    2222                echo minipres();
    2323        } else {
    24                 $id_evenement = intval(_request('id'));
     24                $id_evenement = association_passeparam_id('evenement');
    2525                if ($id_evenement) { // la presence de ce parametre interdit la prise en compte d'autres (a annuler donc si presents dans la requete)
    2626                        $annee = sql_getfetsel("DATE_FORMAT(date_debut, '%Y')",'spip_evenements', "id_evenement=$id_evenement"); // on recupere l'annee correspondante
    27                 } else {
    28                         $annee = intval(_request('annee')); // on recupere l'annee requetee
    29                         $id_mot = intval(_request('mot')); // on recupere l'id du mot cle requete
    30                         $id_evenement = ''; // ne pas afficher ce disgracieux '0'
    31                 }
    32                 if (!$annee) {
    33                         $annee = date('Y'); // par defaut c'est l'annee courante
    34                         $id_evenement = ''; // virer l'ID inexistant
     27                } else { // on peut prendre en compte les filtres ; on recupere les parametres de :
     28                        $annee = association_passeparam_annee();
     29                        $id_mot = intval(_request('mot')); // id du mot cle
    3530                }
    3631                onglets_association('titre_onglet_activite', 'activites');
    37                 // TOTAUX : nombre d'activites de l'annee en cours repartis par mots-clefs
    38                 // TOTAUX : nombre d'activites de l'annee en cours repartis par iscriptions
     32                // TOTAUX : nombre d'activites de l'annee en cours selon iscriptions
     33                $id_evenements = sql_in_select('id_evenement', 'id_evenement', 'spip_evenements', "DATE_FORMAT(date_debut, '%Y')=$annee");
    3934                $liste_effectifs = array();
    40                 $liste_effectifs['pair'] = sql_count(sql_select('*, SUM(a.inscrits)', 'spip_asso_activites AS a INNER 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"));
    41                 $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");
    42                 $liste_effectifs['impair'] = sql_countsel('spip_evenements', "DATE_FORMAT(date_debut, '%Y')=$annee")-$liste_effectifs['pair']; // le monde a l'envers... mais ca fonctionne
     35                $liste_effectifs['impair'] = sql_countsel('spip_asso_activites', $id_evenements, 'id_evenement');
     36                $liste_effectifs['pair'] = sql_countsel('spip_evenements', "DATE_FORMAT(date_debut, '%Y')=$annee")-$liste_effectifs['impair'];
    4337                echo association_totauxinfos_effectifs('activites', array(
    44                         'pair'=>array( 'activites_avec_inscrits', $liste_effectifs['pair'], ),
    45                         'impair'=>array( 'activites_sans_inscrits', $liste_effectifs['impair'], ),
     38                        'pair'=>array( 'activites_sans_inscrits', $liste_effectifs['pair'], ),
     39                        'impair'=>array( 'activites_avec_inscrits', $liste_effectifs['impair'], ),
    4640                ));
    47 /*
    4841                // STATS sur toutes les participations
    49                 echo association_totauxinfos_stats('participations_par_personne_par_activite', 'activites', array('activite_entete_inscrits'=>'inscrits','entete_montant'=>'montant',), "DATE_FORMAT(date, '%Y')=$annee");
    50 */
     42//              echo association_totauxinfos_stats('participations_par_personne_par_activite', 'activites', array('activite_entete_inscrits'=>'inscrits','entete_montant'=>'montant',), "DATE_FORMAT(date_inscription, '%Y')=$annee"); // v1
     43                echo association_totauxinfos_stats('participations_par_personne_par_activite', 'activites AS a INNER JOIN spip_evenements AS e ON a.id_evenement=e.id_evenement', array('entete_quantite'=>'inscrits','entete_montant'=>'montant',), "DATE_FORMAT(e.date_debut, '%Y')=$annee"); // v2
    5144                // TOTAUX : montants des participations durant l'annee en cours
    52                 $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']) );
     45                $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']) ); // 1. on peut interroger les recettes directement dans la table des activites 2. les paiement en avance (reservations qui tombent dans l'anne d'avant) ou en retard (paiement a credit qui tombent dans l'annee d'apres) peuvent fausser la donne
    5346                echo association_totauxinfos_montants('activites', $data['somme_recettes'], $data['somme_depenses']);
    5447                // datation et raccourci vers la gestion des evenements
     
    7770                        }
    7871                        $filtre_motscles = '<select name="mot" onchange="form.submit()">';
    79                         $filtre_motscles .= '<option value="">'._T('asso:entete_tous').'</option>';
     72                        $filtre_motscles .= '<option value="">' ._T('asso:entete_tous') .'</option>';
    8073                        $query_groupes = sql_select('id_groupe, titre', 'spip_groupes_mots', "tables_liees LIKE '%evenements%'");
    8174                        while($data_groupes = sql_fetch($query_groupes)) {
     
    9184                                $filtre_motscles .= '</optgroup>';
    9285                        }
    93                         $filtre_motscles .= '</select></td>';
     86                        $filtre_motscles .= '</select>';
    9487                } else { // pas de mots cles...
    9588                        $filtre_motscles = '';
     
    10396                //TABLEAU
    10497                echo association_bloc_listehtml(
    105 //                      array('*, e.id_evenement, e.titre AS intitule'.$mc_sel, 'spip_evenements AS e'.$mc_join, "DATE_FORMAT(date_debut, '%Y')=$annee $mc_where", '', 'date_debut DESC', sql_asso1page() ), // requete
    106                         array("e.id_evenement, e.date_debut, e.date_fin, e.titre  AS intitule, e.lieu,  COUNT(a.id_activite)+SUM(a.inscrits) as personnes, SUM(a.montant) as montants, CASE WHEN SUM(a.inscrits)=0 THEN 'sans' ELSE 'avec' END invites $mc_sel", "spip_evenements AS e LEFT JOIN spip_asso_activites AS a ON e.id_evenement=a.id_evenement $mc_join", "DATE_FORMAT(date_debut, '%Y')=$annee $mc_where", 'e.id_evenement', 'date_debut DESC, date_fin DESC', sql_asso1page() ), // requete
     98                        array("e.id_evenement, e.date_debut, e.date_fin, e.titre  AS intitule, e.lieu,  COUNT(a.id_activite) AS inscriptions, SUM(a.inscrits) AS quantites, SUM(a.montant) AS montants, CASE COUNT(a.id_activite) WHEN 0 THEN 0 ELSE 1 END AS participations $mc_sel", "spip_evenements AS e LEFT JOIN spip_asso_activites AS a ON e.id_evenement=a.id_evenement $mc_join", "DATE_FORMAT(date_debut, '%Y')=$annee $mc_where", 'e.id_evenement', 'date_debut DESC, date_fin DESC', sql_asso1page() ), // requete
    10799                        array(
    108100                                'id_evenement' => array('asso:entete_id', 'entier'),
     
    111103                                'intitule' => array('asso:entete_intitule', 'texte', '', '', 'summary'),
    112104                                'lieu' => array('agenda:evenement_lieu', 'texte', '', '', 'location'),
    113                                 'personnes' => array('asso:activite_entete_inscrits', 'entier'),
    114                                 'montants' => array('asso:entete_montant', 'prix'),
     105                                'inscriptions' => array('asso:activite_entete_inscrits', 'entier'),
     106                                'quantites' => array('asso:entete_quantite', 'entier'),
     107                                'montants' => array('asso:entete_montant', 'prix', 'fee'),
    115108                        ), // entetes et formats des donnees
    116109                        array(
     
    119112                        ), // boutons d'action
    120113                        'id_evenement', // champ portant la cle des lignes et des boutons
    121                         array('sans'=>'pair vevent', 'avec vevent'=>'impair'), 'invites', $id_evenement
     114                        array('pair vevent', 'impair vevent'), 'participations', $id_evenement
    122115                );
    123116                //SOUS-PAGINATION
  • _plugins_/Association/Associaspip/exec/adherent.php

    r65873 r65937  
    5050                }
    5151                if ($adresses[$id_auteur])
    52                         $infos['adresses'] = $adresses[$id_auteur];
     52                        $infos['coordonnees:adresses'] = $adresses[$id_auteur];
    5353                if ($emails[$id_auteur])
    54                         $infos['emails'] = $emails[$id_auteur];
     54                        $infos['coordonnees:emails'] = $emails[$id_auteur];
    5555                if ($telephones[$id_auteur])
    56                         $infos['numeros'] =  $telephones[$id_auteur];
    57                 echo '<div class="vcard">'. association_totauxinfos_intro('<span class="fn">'.htmlspecialchars($nom_membre).'</span>', $statut, $id_auteur, $infos, 'asso', 'asso_membre') .'</div>';
     56                        $infos['coordonnees:numeros'] =  $telephones[$id_auteur];
     57                echo '<div class="vcard">'. association_totauxinfos_intro('<span class="fn">'.htmlspecialchars($nom_membre).'</span>', $statut, $id_auteur, $infos, 'asso_membre') .'</div>';
    5858                // datation et raccourcis
    5959                if ($full)
     
    113113                                        'date_debut' => array('asso:entete_date', 'date'),
    114114                                        'titre' => array('asso:adherent_entete_activite', 'texte', $full?'propre':'nettoyer_raccourcis_typo', ),
    115                                         'inscrits' => array('asso:adherent_entete_inscrits', 'entier'),
     115                                        'inscrits' => array('asso:entete_quantite', 'entier'),
    116116                                        'montant' => array('asso:entete_montant', 'prix'),
    117117                                ), // entetes et formats des donnees
     
    129129                                array(
    130130                                        'id_vente' => array('asso:entete_id', 'entier'),
    131                                         'date_vente' => array('asso:entete_date', 'date'),
     131                                        'date_vente' => array('asso:ventes_entete_date_vente', 'date'),
    132132                                        'article' => array('asso:entete_article', 'texte', $full?'propre':'nettoyer_raccourcis_typo', ),
    133133                                        'quantite' => array('asso:entete_quantite', 'nombre'),
    134                                         'date_envoie' => array('asso:vente_entete_date_envoi', 'date'),
     134                                        'date_envoie' => array('asso:ventes_entete_date_envoi', 'date'),
    135135                                ), // entetes et formats des donnees
    136136                                $full ? array(
  • _plugins_/Association/Associaspip/exec/ajout_inscription.php

    r65825 r65937  
    3030                // INTRO : Rappel Infos Evenement
    3131                $evenement = sql_fetsel('*', 'spip_evenements', "id_evenement=$id_evenement");
    32                 $infos['evenement_date_debut'] = association_formater_heure($evenement['date_debut'],'dtstart');
    33                 $infos['evenement_date_fin'] = association_formater_heure($evenement['date_fin'],'dtend');
    34                 $infos['evenement_lieu'] = $evenement['lieu'];
    35                 echo association_totauxinfos_intro($evenement['titre'], 'evenement', $id_evenement, $infos, 'agenda');
     32                $format = 'association_formater_'. (($evenement['horaire']=='oui')?'heure':'date');
     33                $infos['agenda:evenement_date_du'] = $format($evenement['date_debut'],'dtstart');
     34                $infos['agenda:evenement_date_au'] = $format($evenement['date_fin'],'dtend');
     35                $infos['agenda:evenement_lieu'] = '<span class="location">'.$evenement['lieu'].'</span>';
     36                echo '<div class="vevent">'. association_totauxinfos_intro('<span class="summary">'.$evenement['titre'].'</span>', 'evenement', $id_evenement, $infos, 'evenement') .'</div>';
    3637                // datation et raccourcis
    3738                raccourcis_association('');
  • _plugins_/Association/Associaspip/exec/ajout_participation.php

    r65825 r65937  
    3030                // INTRO : Rappel Infos Evenement
    3131                $evenement = sql_fetsel('*', 'spip_evenements', "id_evenement=$id_evenement");
    32                 $infos['evenement_date_debut'] = association_formater_heure($evenement['date_debut'],'dtstart');
    33                 $infos['evenement_date_fin'] = association_formater_heure($evenement['date_fin'],'dtend');
    34                 $infos['evenement_lieu'] = $evenement['lieu'];
    35                 echo association_totauxinfos_intro($evenement['titre'], 'evenement', $id_evenement, $infos, 'agenda');
     32                $format = 'association_formater_'. (($evenement['horaire']=='oui')?'heure':'date');
     33                $infos['agenda:evenement_date_du'] = $format($evenement['date_debut'],'dtstart');
     34                $infos['agenda:evenement_date_au'] = $format($evenement['date_fin'],'dtend');
     35                $infos['agenda:evenement_lieu'] = '<span class="location">'.$evenement['lieu'].'</span>';
     36                echo '<div class="vevent">'. association_totauxinfos_intro('<span class="summary">'.$evenement['titre'].'</span>', 'evenement', $id_evenement, $infos, 'evenement') .'</div>';
    3637                // datation et raccourcis
    3738                raccourcis_association('');
  • _plugins_/Association/Associaspip/exec/annexe.php

    r65825 r65937  
    2626                echo minipres();
    2727        } else {
    28                 $plan = sql_countsel('spip_asso_plan');
    29                 $exercice = intval(_request('exercice'));
    30                 if(!$exercice){
    31                         /* on recupere l'id_exercice dont la date "fin" est "la plus grande" */
    32                         $exercice = sql_getfetsel('id_exercice','spip_asso_exercices', '', '', 'fin DESC');
    33                         if(!$exercice)
    34                                 $exercice = 0;
    35                 }
    36                 $exercice_data = sql_asso1ligne('exercice', $exercice);
     28// initialisations
     29                include_spip('inc/association_comptabilite');
     30                $ids = association_passe_parametres_comptables();
     31                $exercice_data = sql_asso1ligne('exercice', $ids['exercice']);
     32// traitements
    3733                onglets_association('titre_onglet_comptes', 'comptes');
    3834                // INTRO : rappel de l'exercicee affichee
    3935                $infos['exercice_entete_debut'] = association_formater_date($exercice_data['debut'], 'dtstart');
    4036                $infos['exercice_entete_fin'] = association_formater_date($exercice_data['fin'], 'dtend');
    41                 echo association_totauxinfos_intro($exercice_data['intitule'], 'exercice', $exercice, $infos);
     37                echo association_totauxinfos_intro($exercice_data['intitule'], 'exercice', $ids['exercice'], $infos);
    4238                // datation et raccourcis
    4339                raccourcis_association(array('comptes', "exercice=$exercice"), array(
     
    4743                ));
    4844                debut_cadre_association('finances-24.png', 'annexe_titre_general', $exercice_data['intitule']);
     45                // Filtres
     46                filtres_association(array(
     47                        'exercice'=>$ids['exercice'],
     48                        'destination'=>$ids['destination'],
     49                ), 'annexe');
    4950                echo _T('asso:non_implemente');
    5051                // http://www.aquadesign.be/actu/article-3678.php
  • _plugins_/Association/Associaspip/exec/categories.php

    r65873 r65937  
    3737                                'id_categorie' => array('asso:entete_id', 'entier'),
    3838                                'valeur' => array('asso:entete_code', 'code', 'x-spip_asso_categories'),
    39                                 'libelle' => array('asso:libelle_intitule', 'texte', '', '', 'n'),
     39                                'libelle' => array('asso:libelle_intitule', 'texte', '', 'n'),
    4040                                'duree' => array('asso:entete_duree', 'duree', 'M'),
    4141                                'cotisation' => array('asso:entete_montant', 'prix', 'subscription'),
  • _plugins_/Association/Associaspip/exec/comptes.php

    r65873 r65937  
    2222        } else {
    2323// initialisations
    24                 $id_exercice = intval(_request('exercice'));
    25                 if(!$id_exercice){ // on recupere l'id du dernier exercice
    26                         $id_exercice = sql_getfetsel('id_exercice','spip_asso_exercices','','','debut DESC');
    27                 }
     24                $id_exercice = association_passeparam_exercice();
    2825                $vu = _request('vu');
    2926                if (!is_numeric($vu))
     
    3229                if (!$imputation)
    3330                        $imputation= '%';
    34                 $id_compte = intval(_request('id_compte', $_GET));
    35                 if (!$id_compte) {
    36                         $id_compte = intval(_request('id'));
    37                 }
     31                $id_compte = association_passeparam_id('compte')
    3832                if (!$id_compte) {
    3933                                $id_compte = '';
  • _plugins_/Association/Associaspip/exec/dons.php

    r65873 r65937  
    2323                echo minipres();
    2424        } else {
    25                 $id_don = intval(_request('id'));
     25                $id_don = association_passeparam_id('don');
    2626                if ($id_don) { // la presence de ce parametre interdit la prise en compte d'autres (a annuler donc si presents dans la requete)
    2727                        $annee = sql_getfetsel("DATE_FORMAT(date_don, '%Y')",'spip_asso_dons', "id_don=$id_don"); // on recupere l'annee correspondante
    28                 } else {
    29                         $annee = intval(_request('annee')); // on recupere l'annee requetee
    30                         $id_don = ''; // ne pas afficher ce disgracieux '0'
    31                 }
    32                 if (!$annee) {
    33                         $annee = date('Y'); // par defaut c'est l'annee courante
    34                         $id_don = ''; // virer l'ID inexistant
     28                } else { // on peut prendre en compte les filtres ; on recupere les parametres :
     29                        $annee = association_passeparam_annee();
     30                        $type = _request('type'); // type de don
    3531                }
    3632                onglets_association('titre_onglet_dons', 'dons');
     
    4339                );
    4440                echo association_totauxinfos_effectifs('dons', array(
    45                         'pair' => array( 'dons_financier', $liste_effectifs['argent'], ),
     41                        'pair' => array( 'dons_en_argent', $liste_effectifs['argent'], ),
    4642                        'prospect' => array('dons_en_nature', $liste_effectifs['colis'], ),
    47                         'impair' => array('autres', sql_countsel('spip_asso_dons', "DATE_FORMAT(date_don, '%Y')='$annee' ")-$liste_effectifs['argent']-$liste_effectifs['colis'] ),
     43                        'impair' => array('dons_mixtes', sql_countsel('spip_asso_dons', "DATE_FORMAT(date_don, '%Y')='$annee' ")-$liste_effectifs['argent']-$liste_effectifs['colis'] ),
    4844                ));
    4945                // STATS sur les donnations de l'annee
    50                 echo association_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_en_argent'=>'argent','dons_en_nature'=>'valeur',), "DATE_FORMAT(date_don, '%Y')='$annee' ");
    5147                // TOTAUX : montants des dons et remboursements financiers
    5248                $dons_financiers = sql_getfetsel('SUM(argent) AS somme_recettes', 'spip_asso_dons', "argent AND DATE_FORMAT(date_don, '%Y')=$annee" );
     
    5955                debut_cadre_association('dons-24.gif', 'tous_les_dons');
    6056                // FILTRES
     57                $filtre_typedon = '<select name="type" onchange="form.submit()">';
     58                $filtre_typedon .= '<option value="">' ._T('asso:entete_tous') .'</option>';
     59                $filtre_typedon .= '<option value="argent"'. ($type=='argent'?' selected="selected"':'') .'>'. _T('asso:dons_en_argent') .'</option>';
     60                $filtre_typedon .= '<option value="colis"'. ($type=='colis'?' selected="selected"':'') .'>'. _T('asso:dons_en_nature') .'</option>';
     61//              $filtre_typedon .= '<option value="argent AND colis"'. (($type=='argent AND colis' OR $type=='colis AND argent')?' selected="selected"':'') .'>'. _T('asso:dons_mixtes') .'</option>';
     62                $filtre_typedon .= '</select>';
    6163                filtres_association(array(
    6264                        'annee' => array($annee, 'asso_dons', 'don'),
    6365#                       'id' => $id_don,
    64                 ), 'dons');
    65                 //TABLEAU
    66                 echo "<table width='100%' class='asso_tablo' id='asso_tablo_dons'>\n";
    67                 echo "<thead>\n<tr>";
    68                 echo '<th>'. _T('asso:entete_id') .'</th>';
    69                 echo '<th>'. _T('asso:entete_date') .'</th>';
    70                 echo '<th>'. _T('asso:entete_nom') .'</th>';
    71                 echo '<th>'. _T('asso:argent') .'</th>';
    72                 echo '<th>'. _T('asso:colis') .'</th>';
    73                 echo '<th>&nbsp;</th>';
    74                 echo '<th colspan="2" class="actions">' . _T('asso:entete_actions') .'</th>';
    75                 echo "</tr>\n</thead><tbody>";
    76                 $association_imputation = charger_fonction('association_imputation', 'inc');
    77                 $critere1 = $association_imputation('pc_dons', 'a_c');
    78                 if ($critere1)
    79                         $critere1 .= ' AND ';
    80                 $critere2 = $association_imputation('pc_colis', 'a_c');
    81                 if ($critere2)
    82                         $critere2 .= ($critere1?' OR ':' AND ');
    83                 $query = sql_select('DISTINCT a_d.*', 'spip_asso_dons AS a_d LEFT JOIN spip_asso_comptes AS a_c ON a_c.id_journal=a_d.id_don', "$critere2$critere1 DATE_FORMAT(date_don, '%Y')=$annee", '',  'id_don' ) ;
    84                 while ($data = sql_fetch($query)) {
    85                         echo '<tr class="'. (($data['argent'] && !$data['colis'])?'pair':(($data['argent'] && !$data['colis'])?'prospect':'impair')) . (($id_don==$data['id_don'])?' surligne':'') .'" id="'.$data['id_don'].'">';
    86                         echo '<td class="integer">'.$data['id_don'].'</td>';
    87                         echo '<td class="date">'. association_formater_date($data['date_don']) .'</td>';
    88                         echo '<td class="text">'. association_calculer_lien_nomid($data['bienfaiteur'],$data['id_adherent']) .'</td>';
    89                         echo '<td class="decimal">'. association_formater_prix($data['argent'], 'donation cash') .'</td>';
    90                         echo '<td class="text" colspan="'.($data['vu']?2:1).'">'
    91                                 .($data['vu'] ? '' :'<i>'._T('asso:valeur').': '.association_formater_prix($data['valeur'], 'donation estimated').'</i><p class="n">')
    92                                 .$data['colis'].'</p></td>';
    93                         echo ($data['vu']
    94                                 ? ('<td class="text">&nbsp;</td>')
    95                             : ('<td class="text">'. propre($data['contrepartie']) .'</td>')
    96                                 );
    97                         echo '<td  class="action">'. association_bouton_suppr('don', "id=$data[id_don]");
    98                         echo '<td class="action">' . association_bouton_edit('don', "id=$data[id_don]");
    99                         echo "</tr>\n";
    100                 }
    101                 echo "</tbody>\n</table>\n";
     66                ), 'dons', array(
     67                        'type' => $filtre_typedon,
     68                ));
     69                $critere_type = $type?"$type AND ":'';
     70                // TABLEAU
     71                echo association_bloc_listehtml(
     72                        array("*, CASE WHEN argent<>0 AND colis='' THEN 'argent' WHEN argent=0 AND colis<>''  THEN 'colis' ELSE 'mixte' END AS type_don ", 'spip_asso_dons', "$critere_type DATE_FORMAT(date_don, '%Y')=$annee", '', 'date_don DESC'), // requete
     73                        array(
     74                                'id_don' => array('asso:entete_id', 'entier'),
     75                                'date_don' => array('asso:entete_date', 'date', ''),
     76                                'id_adherent' => array('asso:entete_nom', 'idnom', array('spip_asso_dons', 'bienfaiteur', 'id_adherent'), 'membre'),
     77                                'argent' => array('asso:argent', 'prix', 'donation cash'),
     78                                'colis' => array('asso:colis', 'texte', 'propre'), // voir s'il est possible de mettre la valeur au survol
     79//                              'valeur' => array('asso:valeur', 'prix', 'donation estimated'),
     80//                              'contrepartiet' => array('asso:argent', 'texte', 'propre'),
     81//                              'commentaire' => array('asso:entete_commentaire', 'texte', 'propre'),
     82                        ), // entetes et formats des donnees
     83                        array(
     84                                array('suppr', 'don', 'id=$$'),
     85                                array('edit', 'don', 'id=$$'),
     86                        ), // boutons d'action
     87                        'id_don', // champ portant la cle des lignes et des boutons
     88                        array('argent'=>'pair', 'colis'=>'prospect', 'mixte'=>'impair'), 'type_don', $id_don
     89                );
    10290                fin_page_association();
    10391        }
  • _plugins_/Association/Associaspip/exec/edit_activite.php

    r65825 r65937  
    2727                // INTRO : Rappel Infos Evenement
    2828                $evenement = sql_fetsel('*', 'spip_evenements', "id_evenement=$id_evenement");
    29                 $format = 'association_formater_'. ($evenement['horaire']=='oui')?'heure':'date';
    30                 $infos['evenement_date_du'] = $format($evenement['date_debut'],'dtstart');
    31                 $infos['evenement_date_au'] = $format($evenement['date_fin'],'dtend');
    32                 $infos['evenement_lieu'] = $evenement['lieu'];
    33                 echo association_totauxinfos_intro($evenement['titre'], 'evenement', $id_evenement, $infos, 'agenda');
     29                $format = 'association_formater_'. (($evenement['horaire']=='oui')?'heure':'date');
     30                $infos['agenda:evenement_date_du'] = $format($evenement['date_debut'],'dtstart');
     31                $infos['agenda:evenement_date_au'] = $format($evenement['date_fin'],'dtend');
     32                $infos['agenda:evenement_lieu'] = '<span class="location">'.$evenement['lieu'].'</span>';
     33                echo '<div class="vevent">'. association_totauxinfos_intro('<span class="summary">'.$evenement['titre'].'</span>', 'evenement', $id_evenement, $infos, 'evenement') .'</div>';
    3434                // datation et raccourcis
    3535                raccourcis_association('');
  • _plugins_/Association/Associaspip/exec/edit_adherent.php

    r65825 r65937  
    4545                        // INFOs
    4646                        if ($adresses[$id_auteur])
    47                                 $infos['adresses'] = $adresses[$id_auteur];
     47                                $infos['coordonnees:adresses'] = $adresses[$id_auteur];
    4848                        if ($emails[$id_auteur])
    49                                 $infos['emails'] = $emails[$id_auteur];
     49                                $infos['coordonnees:emails'] = $emails[$id_auteur];
    5050                        if ($telephones[$id_auteur])
    51                                 $infos['numeros'] =  $telephones[$id_auteur];
    52                         echo '<div class="vcard">'. association_totauxinfos_intro('<span class="fn">'.htmlspecialchars($nom_membre).'</span>', $statut, $id_auteur, $infos, 'coordonnees') .'</div>';
     51                                $infos['coordonnees:numeros'] =  $telephones[$id_auteur];
     52                        echo '<div class="vcard">'. association_totauxinfos_intro('<span class="fn">'.htmlspecialchars($nom_membre).'</span>', $statut, $id_auteur, $infos ) .'</div>';
    5353                        // datation et raccourcis
    5454                        raccourcis_association('');
  • _plugins_/Association/Associaspip/exec/edit_categorie.php

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

    r65825 r65937  
    2727                onglets_association('exercices_budgetaires_titre', 'association');
    2828                // INTRO : resume ressource
    29                 $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
     29                $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 pour l'exercice selectionne
    3030                $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...
    3131                echo association_totauxinfos_intro(sql_getfetsel('intitule', 'spip_asso_exercices', "id_exercice=$id_exercice" ), 'exercice', $id_exercice, $infos);
  • _plugins_/Association/Associaspip/exec/edit_pret.php

    r65825 r65937  
    1818function exec_edit_pret()
    1919{
    20         $id_pret = intval(_request('id_pret'));
    21         if (!autoriser('associer', 'activites', $id_pret)) {
     20        $id_pret = association_passeparam_id('pret');
     21        if (!autoriser('associer', 'activites')) {
    2222                        include_spip('inc/minipres');
    2323                        echo minipres();
  • _plugins_/Association/Associaspip/exec/inscrits_activite.php

    r65873 r65937  
    2424                $id_evenement = intval(_request('id'));
    2525                onglets_association('titre_onglet_activite', 'activites');
    26                 $evenement = sql_fetsel('*', 'spip_evenements', "id_evenement=$id_evenement") ;
     26                $evenement = sql_fetsel('*', 'spip_evenements', "id_evenement=$id_evenement");
     27                $annee = substr($evenement['date_debut'],0,4);
    2728                // INTRO : Rappel Infos Evenement
    2829                $format = 'association_formater_'. (($evenement['horaire']=='oui')?'heure':'date');
    29                 $infos['evenement_date_du'] = $format($evenement['date_debut'],'dtstart');
    30                 $infos['evenement_date_au'] = $format($evenement['date_fin'],'dtend');
    31                 $infos['evenement_lieu'] = '<span class="location">'.$evenement['lieu'].'</span>';
    32                 echo '<div class="vevent">'. association_totauxinfos_intro('<span class="summary">'.$evenement['titre'].'</span>', 'evenement', $id_evenement, $infos, 'agenda', 'evenement') .'</div>';
    33                 // STATS sur les participations (nombre de personnes inscrites et montant paye)
    34                 echo association_totauxinfos_stats('participations', 'activites', array('activite_entete_inscrits'=>'inscrits','entete_montant'=>'montant',), "id_evenement=$id_evenement");
    35                 // TOTAUX : nombres d'inscrits par etat de paiement
    36                 echo association_totauxinfos_effectifs('activites', array(
    37                         'valide' => array( 'asso:activite_entete_validees', sql_getfetsel('COUNT(*)+SUM(inscrits) AS valide', 'spip_asso_activites', "id_evenement=$id_evenement AND date_paiement<date_inscription "), ),
    38                         'pair' => array( 'asso:activite_entete_impayees', sql_getfetsel('COUNT(*)+SUM(inscrits) AS pair', 'spip_asso_activites', "id_evenement=$id_evenement AND NOT date_paiement<date_inscription "), ),
     30                $infos['agenda:evenement_date_du'] = $format($evenement['date_debut'],'dtstart');
     31                $infos['agenda:evenement_date_au'] = $format($evenement['date_fin'],'dtend');
     32                $infos['agenda:evenement_lieu'] = '<span class="location">'.$evenement['lieu'].'</span>';
     33                echo '<div class="vevent">'. association_totauxinfos_intro('<span class="summary">'.$evenement['titre'].'</span>', 'evenement', $id_evenement, $infos, 'evenement') .'</div>';
     34                // TOTAUX : nombres d'inscriptions par etat de paiement
     35                echo association_totauxinfos_effectifs('participations', array(
     36                        'valide' => array( 'asso:activite_entete_validees', array('spip_asso_activites', "id_evenement=$id_evenement AND date_paiement<date_inscription "), ),
     37                        'pair' => array( 'asso:activite_entete_impayees', array('spip_asso_activites', "id_evenement=$id_evenement AND NOT date_paiement<date_inscription "), ),
    3938                ));
     39                // STATS sur les participations a cette activite (nombre de place et montant paye)
     40                echo association_totauxinfos_stats('participations', 'activites', array('entete_quantite'=>'inscrits','entete_montant'=>'montant',), "id_evenement=$id_evenement");
    4041                // TOTAUX : montants des participations
    41                 $montant = sql_fetsel('SUM(montant) AS encaisse', 'spip_asso_activites', "id_evenement=$id_evenement " );
    42                 echo association_totauxinfos_montants('participations', $montant['encaisse'], NULL);
     42                echo association_totauxinfos_montants('participations', array('SUM(montant) AS encaisse', 'spip_asso_activites', "id_evenement=$id_evenement " ), NULL);
    4343                // datation et raccourcis
    4444                $res['activite_bouton_modifier_article'] = array('edit-12.gif', array('articles', 'id_article='.$evenement['id_article']));
     
    5050                        $res['activite_bouton_synchroniser_inscriptions'] = array('reload-32.png', array('synchronis_activites', "id=$id_evenement"));
    5151                }
    52                 raccourcis_association(array('activites','annee='.substr($evenement['date_debut'],0,4)), $res);
     52                raccourcis_association(array('activites',"annee=$annee"), $res);
    5353                debut_cadre_association('activites.gif', 'activite_titre_inscriptions_activites');
    54         // FILTRES
    55                 echo '<form method="get" action="'. generer_url_ecrire('inscrits_activite') .'">';
    56                 echo "\n<input type='hidden' name='exec' value='inscrits_activite' />\n";
    57                 echo '<input type="hidden" name="id" value="'.$id_evenement.'" />';
    58                 echo "\n<table width='100%' class='asso_tablo_filtres'><tr>";
    59                 echo '<td id="filtre_statut">';
    60                 echo '<select name="statut" onchange="form.submit()">';
    61                 echo '<option value="0"'. ((!$statut)?' selected="selected"':'') .'>'._T('asso:activite_entete_toutes').'</option>';
    62                 echo '<option value="+1"'. (($statut>0)?' selected="selected"':'') .'>'._T('asso:activite_entete_validees').'</option>';
    63                 echo '<option value="-1"'. (($statut<0)?' selected="selected"':'') .'>'._T('asso:activite_entete_impayees').'</option>';
    64                 echo '</select></td>';
    65                 echo '<noscript><td><input type="submit" value="'._T('asso:bouton_filtrer').'" /></td></noscript>';
    66                 echo '</tr></table></form>';
    67         //TABLEAU
    68                 echo "<table width='100%' class='asso_tablo' id='asso_tablo_activite'>\n";
    69                 echo "<thead>\n<tr>";
    70                 echo '<th>'. _T('asso:entete_id') .'</th>';
    71                 echo '<th>'. _T('asso:entete_date') .'</th>';
    72                 echo '<th>'. _T('asso:entete_nom') .'</th>';
    73                 echo '<th>'. _T('asso:activite_entete_inscrits') .'</th>';
    74                 echo '<th>'. _T('asso:entete_montant') .'</th>';
    75                 echo '<th colspan="2" class="actions">'. _T('asso:entete_actions') .'</th>';
    76                 echo "</tr>\n</thead><tbody>";
     54                // FILTRES
     55                $filtre_statut = '<select name="statut" onchange="form.submit()">';
     56                $filtre_statut .= '<option value="">' ._T('asso:entete_tous') .'</option>';
     57                $filtre_statut .= '<option value="1"'. ($statut>0?' selected="selected"':'') .'>'. _T('asso:activite_entete_validees') .'</option>';
     58                $filtre_statut .= '<option value="-1"'. ($statut<0?' selected="selected"':'') .'>'. _T('asso:activite_entete_impayees') .'</option>';
     59                $filtre_statut .= '</select>';
     60                filtres_association(array(
     61//                      'annee' => array($annee, 'asso_activites', 'inscription'),
     62#                       'id' => $id_activite,
     63                ), 'inscrits_activite', array(
     64                        'statut' => $filtre_statut,
     65                        0 => '<input type="hidden" name="id" value="'.$id_evenement.'" />',
     66                ));
     67        // TABLEAU
    7768                if ($statut) { // restriction de la selection
    7869                        $critereSupplementaire = ' AND '. ($statut>0?"date_paiement<date_inscription ":"date_paiement>=date_inscription ");
    7970                }
    80                 $query = sql_select('*', 'spip_asso_activites', "id_evenement=$id_evenement $critereSupplementaire ", '', 'id_activite') ;
    81                 while ($data = sql_fetch($query)) {
    82                         echo '<tr class="'.(($data['date_paiement']=='0000-00-00')?'pair':'valide').'">';
    83                         echo '<td class="integer">'.$data['id_activite'].'</td>';
    84                         echo '<td class="date">'. association_formater_date($data['date']). '</td>';
    85                         echo '<td class="text">'.  association_calculer_lien_nomid($data['nom'],$data['id_adherent']) .'</td>';
    86                         echo '<td class="integer">'.$data['inscrits'].'</td>';
    87                         echo '<td class="decimal">'. association_formater_prix($data['montant']) .'</td>';
    88                         echo association_bouton_suppr('activite', $data['id_activite']);
    89                         echo association_bouton_act('activite_bouton_maj_inscription', 'cotis-12.gif', 'edit_activite','id='.$data['id_activite']);
    90                         if ($data['commentaire']) {
    91                                 echo '</tr><tr class="'.(($data['date_paiement']<$data['date_inscription'])?'pair':'valide').'"><td colspan="7" class="text">&nbsp;'.$data['commentaire'].'</td>';
    92                         }
    93                         echo "</tr>\n";
    94                 }
    95                 echo "</tbody>\n</table>\n";
     71                echo association_bloc_listehtml(
     72                        array("*, CASE date_paiement WHEN '0000-00-00' THEN 0 ELSE 1 END AS statut_paiement ", 'spip_asso_activites', "id_evenement=$id_evenement $critereSupplementaire ", '', 'id_activite DESC'), // requete
     73                        array(
     74                                'id_activite' => array('asso:entete_id', 'entier'),
     75//                              'date_inscription' => array('asso:entete_date', 'date', ''),
     76                                'date_paiement' => array('asso:entete_date', 'date', ''),
     77                                'id_adherent' => array('asso:entete_nom', 'idnom', array('spip_asso_activites', 'nom', 'id_adherent'), 'membre'),
     78                                'inscrits' => array('asso:entete_quantite', 'entier'),
     79                                'montant' => array('asso:entete_montant', 'prix', 'fees'),
     80                                'commentaire' => array('asso:entete_commentaire', 'texte', 'propre'),
     81                        ), // entetes et formats des donnees
     82                        array(
     83                                array('suppr', 'activite', 'id=$$'),
     84                                array('act', 'activite_bouton_maj_inscription', 'cotis-12.gif', 'edit_activite', 'id=$$'),
     85                        ), // boutons d'action
     86                        'id_activite', // champ portant la cle des lignes et des boutons
     87                        array('pair', 'valide'), 'statut_paiement'
     88                );
    9689                fin_page_association();
    9790        }
  • _plugins_/Association/Associaspip/exec/prets.php

    r65873 r65937  
    1818function exec_prets()
    1919{
    20         if (!autoriser('associer', 'activites', $id_ressource)) {
     20        if (!autoriser('associer', 'activites')) {
    2121                include_spip('inc/minipres');
    2222                echo minipres();
    2323        } else {
    24                 $id_ressource = intval(_request('id'));
     24                $id_pret = intval(_request('id_pret'));
     25                if ($id_pret) { // la presence de ce parametre interdit la prise en compte d'autres (a annuler donc si presents dans la requete)
     26                        $id_ressource = sql_getfetsel('id_ressource','spip_asso_prets', "id_pret=$id_pret"); // on recupere la ressource correspondante
     27                } else { // on peut prendre en compte les filtres ; on recupere les parametres de :
     28                        $id_ressource = association_passeparam_id('ressource');
     29                        $annee = association_passeparam_annee();
     30                        $etat = _request('etat'); // etat de restitution du pret
     31                }
    2532                onglets_association('titre_onglet_prets', 'ressources');
    2633                $ressource = sql_fetsel('*', 'spip_asso_ressources', "id_ressource=$id_ressource" ) ;
    2734                $unite = $ressource['ud']?$ressource['ud']:'D';
    28                 $infos['ressources_libelle_code'] = association_formater_code($ressource['code'], 'x-spip_asso_ressources');
     35                $infos['entete_code'] = association_formater_code($ressource['code'], 'x-spip_asso_ressources');
    2936                $infos['ressources_entete_montant'] = association_formater_prix($ressource['pu'], 'rent');
    3037                $infos['ressources_entete_caution'] = association_formater_prix($ressource['prix_caution'], 'guarantee');
     
    6067                }
    6168                $infos['statut'] = '<span class="'.(is_numeric($data['statut'])?'quanttity':'availability').'">'. association_formater_puce($ressource['statut'], $puce, "ressources_libelle_statut_$type") .'</span>';
    62                 echo '<div class="hproduct">'. association_totauxinfos_intro('<span class="n">'.$ressource['intitule'].'</span>', 'ressource', $id_ressource, $infos, 'asso', 'asso_ressource') .'</div>';
     69                echo '<div class="hproduct">'. association_totauxinfos_intro('<span class="n">'.$ressource['intitule'].'</span>', 'ressource', $id_ressource, $infos, 'asso_ressource') .'</div>';
    6370                // TOTAUX : nombres d'emprunts de la ressource depuis le debut
    6471                echo association_totauxinfos_effectifs('prets', array(
    65                         'pair' => array( 'prets_restitues', sql_countsel('spip_asso_prets', "id_ressource=$id_ressource AND date_retour>date_sortie"), ), // restitues, termines, anciens, ...
    66                         'impair' => array( 'prets_encours', sql_countsel('spip_asso_prets', "id_ressource=$id_ressource AND date_retour<=date_sortie"), ), // dus, en attente, en cours, nouveaux, ...
     72                        'pair' => array( 'prets_restitues', sql_countsel('spip_asso_prets', "id_ressource=$id_ressource AND date_retour<NOW() AND date_retour<>'0000-00-00T00:00:00' "), ), // restitues, termines, anciens, ...
     73                        'impair' => array( 'prets_encours', sql_countsel('spip_asso_prets', "id_ressource=$id_ressource AND (date_retour>NOW() OR date_retour='0000-00-00T00:00:00' ) "), ), // dus, en attente, en cours, nouveaux, ...
    6774                ));
    6875                // STATS sur la duree et le montant des emprunts
     
    7683                raccourcis_association('ressources', $res);
    7784                debut_cadre_association('pret-24.gif', 'prets_titre_liste_reservations');
    78                 echo "<table width='100%' class='asso_tablo' id='asso_tablo_prets'>\n";
    79                 echo "<thead>\n<tr>";
    80                 echo '<th>'._T('asso:entete_id').'</th>';
    81                 echo '<th>'._T('asso:prets_entete_date_sortie').'</th>';
    82                 echo '<th>'._T('asso:entete_nom').'</th>';
    83                 echo '<th>'._T('asso:prets_entete_duree').'</th>';
    84                 echo '<th>'._T('asso:prets_entete_date_retour').'</th>';
    85                 echo '<th colspan="2" class="actions">'._T('asso:entete_actions').'</th>';
    86                 echo "</tr>\n</thead><tbody>";
    87                 $query = sql_select('*', 'spip_asso_prets', "id_ressource=$id_ressource", '', 'date_sortie DESC' );
    88                 while ($data = sql_fetch($query)) {
    89                         echo '<tr class="'.($data['date_retour']>$data['date_sortie']?'pair':'impair').'" id="'.$data['id_pret'].'">';
    90                         echo '<td class="integer">'.$data['id_pret'].'</td>';
    91                         echo '<td class="date">'. association_formater_date($data['date_sortie'], 'dtstart') .'</td>';
    92                         $auteur = sql_fetsel('*', 'spip_asso_membres', "id_auteur=$data[id_emprunteur]");
    93                         echo '<td class="text">'.association_calculer_nom_membre($auteur['sexe'], $auteur['prenom'], $auteur['nom_famille'],'span');
    94                         echo '</td><td class="date">'.association_formater_duree($data['duree'],$unite) .'</td>';
    95                         echo '<td class="date">'. ($data['date_retour']<$data['date_sortie'] ? '&nbsp' : association_formater_date($data['date_retour'],'dtend') ) .'</td>';
    96                         echo association_bouton_suppr('pret', 'id_pret='.$data['id_pret'].'&id_ressource='.$id_ressource);
    97                         echo association_bouton_edit('pret', 'id_pret='.$data['id_pret']);
    98                         echo "</tr>\n";
    99                 }
    100                 echo "</tbody>\n</table>\n";
     85                // Filtres
     86                /// annees ? (il peut y en avoir beaucoup de prets)
     87                /// etats : sortis | restitues
     88                /// caution : restitues ou pas
     89                /// locations : facturees ou gracieuses
     90                // TABLEAU
     91                echo association_bloc_listehtml(
     92                        array("*, CASE WHEN date_retour='0000-00-00T00:00:00' THEN 1 WHEN date_retour>NOW() THEN 1 ELSE 0 END AS statut_sortie ", 'spip_asso_prets', "id_ressource=$id_ressource", '', 'date_sortie DESC'), // requete
     93                        array(
     94                                'id_pret' => array('asso:entete_id', 'entier'),
     95                                'date_sortie' => array('asso:prets_entete_date_sortie', 'date', 'dtstart'),
     96                                'id_emprunteur' => array('asso:entete_nom', 'idnom', array(), 'membre'),
     97                                'duree' => array('asso:entete_duree', 'duree', $unite),
     98                                'date_retour' => array('asso:prets_entete_date_retour', 'date', 'dtend'),
     99                        ), // entetes et formats des donnees
     100                        array(
     101                                array('suppr', 'pret', 'id=$$'),
     102                                array('edit', 'pret', 'id=$$'),
     103                        ), // boutons d'action
     104                        'id_pret', // champ portant la cle des lignes et des boutons
     105                        array('pair', 'impair'), 'statut_sortie', $id_pret
     106                );
    101107                fin_page_association();
    102108        }
  • _plugins_/Association/Associaspip/exec/ressources.php

    r65873 r65937  
    2222                echo minipres();
    2323        } else {
     24                $id_ressource = association_passeparam_id('ressource');
    2425                onglets_association('titre_onglet_prets', 'ressources');
    2526                // INTRO : presentation du module
     
    8182                        }
    8283                }
     84                // Filtres
     85                /// annees d'acquisition ?
     86                /// statut de disponibilite ?
    8387                // affichage du tableau
    8488                echo association_bloc_listehtml(
     
    8791                                'id_ressource' => array('asso:entete_id', 'entier'),
    8892                                'statut' => array('', 'puce', $s_ico, ''), // quantity? availability?
    89                                 'intitule' => array('asso:entete_article', 'texte', '', '', 'n'),
     93                                'date_acquisition' => array('asso:entete_date', 'date', 'dtstart', 'mois_annee'),
     94                                'intitule' => array('asso:entete_article', 'texte', '', 'n'),
    9095                                'code' => array('asso:entete_code', 'code', 'x-spip_asso_ressources'),
    9196                                'pu' => array('asso:ressources_entete_montant', 'prix', 'rent'),
     
    99104                        ), // boutons d'action
    100105                        'id_ressource', // champ portant la cle des lignes et des boutons
    101                         $s_css, 'statut'
     106                        $s_css, 'statut', $id_ressource
    102107                );
    103108                fin_page_association();
  • _plugins_/Association/Associaspip/exec/suppr_activite.php

    r65825 r65937  
    2121                echo minipres();
    2222        } else {
    23                 $id_activite = intval(_request('id'));
     23                $id_activite = association_passeparam_id('activite');
    2424                $activite = sql_fetsel('*', 'spip_asso_activites', "id_activite=$id_activite");
    25                 if (!$activite) {
     25                if ( !$activite ) {
    2626                        include_spip('inc/minipres');
    27                         echo minipres(_T('zxml_inconnu_id') . $id_don);
     27                        echo minipres(_T('zxml_inconnu_id') . $id_activite);
    2828                } else {
    2929                        onglets_association('titre_onglet_activite', 'activites');
    30                         // info
    31                         $infos['evenement'] = sql_getfetsel('titre', 'spip_evenements', 'id_evenement='.intval($activite['id_evenement']) );
    32                         $infos['date'] = association_formater_date($activite['date_inscription']);
     30                        // INTRO : Rappel Infos Evenement & Participant
     31                        $evenement = sql_fetsel('*', 'spip_evenements', 'id_evenement='.$activite['id_evenement']);
     32                        $infos['evenement'] = $evenement['titre'];
     33                        $format = 'association_formater_'. (($evenement['horaire']=='oui')?'heure':'date');
     34                        $infos['agenda:evenement_date_du'] = $format($evenement['date_debut'],'dtstart');
     35                        $infos['agenda:evenement_date_au'] = $format($evenement['date_fin'],'dtend');
     36                        $infos['agenda:evenement_lieu'] = $evenement['lieu'];
     37                        $infos[''] = typo('----'); // separateur
     38                        $infos['nom'] = association_formater_idnom($activite['id_adherent'], $activite['nom'], '');
     39//                      $infos['date'] = association_formater_date($activite['date_inscription']);
     40                        $infos['date'] = association_formater_date($activite['date_paiement']);
    3341                        $infos['activite_entete_inscrits'] = association_formater_nombre($activite['inscrits'], 0);
    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 );
     42                        $infos['entete_montant'] = association_formater_prix($activite['montant'], 'fees');
     43                        association_totauxinfos_intro('', 'activite', $id_activite, $infos );
    3644                        // datation et raccourcis
    3745                        raccourcis_association('');
  • _plugins_/Association/Associaspip/exec/suppr_don.php

    r65873 r65937  
    3030                        onglets_association('titre_onglet_dons', 'dons');
    3131                        // info
     32                        $infos['entete_date'] = association_formater_date($don['date_don'], '');
     33                        $infos['entete_nom'] = association_formater_idnom($don['id_adherent'], $don['bienfaiteur'], 'membre');
    3234                        $infos['argent'] = association_formater_prix($don['argent'], 'donation cash');
    33                         $infos['colis'] = ($don['valeur'] ? '('.association_formater_prix($don['valeur'], 'donation estimated').')<p class="n">' : '') .$don['colis'] .($don['valeur']?'</p>':'');
     35                        $infos['colis'] = ($don['valeur'] ? '('.association_formater_prix($don['valeur'], 'donation estimated').')<div class="n">' : '') .$don['colis'] .($don['valeur']?'</div>':'');
    3436                        $infos['contrepartie'] = $don['contrepartie'];
    35                         echo '<div class="hproduct">'. association_totauxinfos_intro(association_calculer_lien_nomid($don['bienfaiteur'],$don['id_adherent']), 'don', $id_don, $infos ) .'</div>';
     37                        $infos['entete_commentaire'] = $don['commentaire'];
     38                        echo '<div class="hproduct">'. association_totauxinfos_intro('', 'don', $id_don, $infos ) .'</div>';
    3639                        // datation et raccourcis
    3740                        raccourcis_association('');
  • _plugins_/Association/Associaspip/exec/suppr_exercice.php

    r65825 r65937  
    2929                $infos['exercice_entete_debut'] = association_formater_date($exercice['debut'], 'dtstart');
    3030                $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);
     31                echo association_totauxinfos_intro($exercice['intitule'], 'exercice', $id_exercice, $infos);
    3232                // datation et raccourcis
    3333                raccourcis_association('exercices');
  • _plugins_/Association/Associaspip/exec/suppr_groupe.php

    r65828 r65937  
    2727                $groupe = sql_fetsel('*', 'spip_asso_groupes', "id_groupe=$id_groupe" );
    2828                $infos['ordre_affichage_groupe'] = $groupe['affichage'];
    29                 $infos['commentaires'] = $groupe['commentaires'];
     29                $infos['entete_commentaire'] = $groupe['commentaires'];
    3030                $infos['entete_utilise'] = _T('asso:nombre_fois', array('nombre'=>sql_countsel('spip_asso_groupes_liaisons',"id_groupe=$id_groupe")) );
    3131                echo association_totauxinfos_intro($groupe['nom'], 'groupe', $id_groupe, $infos );
  • _plugins_/Association/Associaspip/exec/suppr_pret.php

    r65873 r65937  
    2222                        echo minipres();
    2323        } else {
    24                 $id_pret = intval(_request('id_pret'));
    25                 $id_ressource = intval(_request('id_ressource'));
     24                $id_pret = association_passeparam_id('pret');
    2625                onglets_association('titre_onglet_prets', 'ressources');
    2726                $pret = sql_fetsel('*', 'spip_asso_prets', "id_pret=$id_pret" ) ;
    28                 $ressource = sql_fetsel('*', 'spip_asso_ressources', "id_ressource=$id_ressource" ) ;
     27                $ressource = sql_fetsel('*', 'spip_asso_ressources', 'id_ressource='.$pret['id_ressource'] ) ;
    2928                $infos['entete_article'] = $ressource['intitule'];
    30                 $auteur = sql_fetsel('*', 'spip_asso_membres', "id_auteur=$pret[id_emprunteur]");
    31                 $infos['entete_nom'] = association_calculer_nom_membre($auteur['sexe'], $auteur['prenom'], $auteur['nom_famille'],'span');
     29                $infos['entete_nom'] = association_formater_idnom($pret['id_emprunteur'], array(), 'membre');
    3230                $infos['prets_entete_date_sortie'] = association_formater_date($pret['date_sortie'],'dtstart');
    3331                $infos['prets_entete_date_retour'] = association_formater_date($pret['date_retour'],'dtend');
     32                $infos['entete_montant'] = association_formater_prix($pret['prix_unitaire']*$pret['duree'], 'fees');
    3433                echo association_totauxinfos_intro('', 'pret', $id_pret, $infos );
    3534                // datation et raccourcis
    3635                raccourcis_association('');
    3736                debut_cadre_association('pret-24.gif', 'prets_titre_suppression_prets');
    38                 echo association_bloc_suppression('pret', "$id_pret-$id_ressource");
     37                echo association_bloc_suppression('pret', "$id_pret-$pret[id_ressource]");
    3938                fin_page_association();
    4039        }
  • _plugins_/Association/Associaspip/exec/suppr_vente.php

    r65825 r65937  
    2525                onglets_association('titre_onglet_ventes', 'ventes');
    2626                // info
    27                 echo association_totauxinfos_intro(sql_getfetsel("CONCAT(article,' -- ',acheteur) AS intitule", 'spip_asso_ventes', "id_vente=$id_vente" ), 'vente', $id_vente, $infos );
     27                $vente = sql_fetsel('*', 'spip_asso_ventes', "id_vente=$id_vente");
     28                $infos['ventes_entete_date_vente'] = association_formater_date($vente['date_vente'],'dtstart');
     29                $infos['ventes_entete_date_envoi'] = association_formater_date($vente['date_envoi'],'dtend');
     30                $infos['entete_intitule'] = '<span class="n">'. (test_plugin_actif('CATALOGUE') && (is_numeric($vente['article'])) ? ( association_formater_idnom($vente['article'], array('spip_articles', 'titre', 'id_article'), 'article') . association_formater_idnom($vente['code'], array('spip_cat_variantes', 'titre', 'id_cat_variante'), '') ) : $vente['article'] ) .'</span>';
     31//              $infos['entete_code'] = association_formater_code($vente['code'], 'x-spip_asso_ventes');
     32                $infos['entete_nom'] = association_formater_idnom($vente['id_acheteur'], $vente['acheteur'], 'membre');
     33                $infos['entete_quantite'] = association_formater_nombre($vente['quantite'], 2, 'quantity');
     34                $infos['entete_montant'] = association_formater_prix($vente['prix_vente'], 'purchase cost offer');
     35                $infos['entete_commentaire'] = $vente['commentaire'];
     36                echo '<div class="hproduct">'. association_totauxinfos_intro('', 'vente', $id_vente, $infos ) .'</div>';
    2837                // datation et raccourcis
    2938                raccourcis_association('');
  • _plugins_/Association/Associaspip/exec/synchronis_activites.php

    r65825 r65937  
    2626                // INTRO : Rappel Infos Evenement
    2727                $evenement = sql_fetsel('*', 'spip_evenements', "id_evenement=$id_evenement") ;
    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);
    30                 $infos['evenement_lieu'] = $evenement['lieu'];
    31                 echo association_totauxinfos_intro($evenement['titre'], 'evenement', $id_evenement, $infos, 'agenda');
    32                 // TOTAUX : nombres d'inscrits par etat de paiement
    33                 $liste_libelles = $liste_effectifs = array();
    34                 $liste_libelles['oui'] = _T('agenda:label_reponse_jyparticipe');
    35                 $liste_libelles['nsp'] = _T('agenda:label_reponse_jyparticipe_peutetre');
    36                 $liste_libelles['non'] = _T('agenda:label_reponse_jyparticipe_pas');
    37                 $liste_effectifs['oui'] = sql_getfetsel('COUNT(*)', 'spip_evenements_participants', "id_evenement=$id_evenement AND reponse='oui' ");
    38                 $liste_effectifs['non'] = sql_getfetsel('COUNT(*)', 'spip_evenements_participants', "id_evenement=$id_evenement AND reponse='non' ");
    39                 $liste_effectifs['nsp'] = sql_getfetsel('COUNT(*)', 'spip_evenements_participants', "id_evenement=$id_evenement AND reponse='?' ");
     28                $format = 'association_formater_'. (($evenement['horaire']=='oui')?'heure':'date');
     29                $infos['agenda:evenement_date_du'] = $format($evenement['date_debut'],'dtstart');
     30                $infos['agenda:evenement_date_au'] = $format($evenement['date_fin'],'dtend');
     31                $infos['agenda:evenement_lieu'] = '<span class="location">'.$evenement['lieu'].'</span>';
     32                echo '<div class="vevent">'. association_totauxinfos_intro('<span class="summary">'.$evenement['titre'].'</span>', 'evenement', $id_evenement, $infos, 'evenement') .'</div>';
     33                // TOTAUX : nombres d'inscrits par reponse
     34                echo association_totauxinfos_effectifs('inscriptions', array(
     35                        'oui'=>array( 'agenda:label_reponse_jyparticipe', array('spip_evenements_participants', "id_evenement=$id_evenement AND reponse='oui' "), ),
     36                        'nsp'=>array( 'agenda:label_reponse_jyparticipe_peutetre', array('spip_evenements_participants', "id_evenement=$id_evenement AND reponse='?' "), ),
     37                        'non'=>array( 'agenda:label_reponse_jyparticipe_pas', array('spip_evenements_participants', "id_evenement=$id_evenement AND reponse='non' "), ),
     38                        'etc'=>array( 'autres', array('spip_evenements_participants', "id_evenement=$id_evenement AND reponse NOT IN ('non', 'oui', '?') "), ),
     39                ));
    4040                // datation et raccourcis
    41                 raccourcis_association('');
     41                raccourcis_association(array('inscrits_activite', "id=$id_evenement"));
    4242                debut_cadre_association('reload-32.png', 'options_synchronisation');
    4343                echo recuperer_fond('prive/editer/synchroniser_asso_activites', array (
  • _plugins_/Association/Associaspip/exec/ventes.php

    r65873 r65937  
    2323                echo minipres();
    2424        } else {
    25                 $id_vente = intval(_request('id'));
     25                $id_vente = association_passeparam_id('vente');
    2626                if ($id_vente) { // la presence de ce parametre interdit la prise en compte d'autres (a annuler donc si presents dans la requete)
    2727                        $annee = sql_getfetsel("DATE_FORMAT(date_vente, '%Y')",'spip_asso_ventes', "id_vente=$id_vente"); // on recupere l'annee correspondante
    28                 } else {
    29                         $annee = intval(_request('annee')); // on recupere l'annee requetee
    30                         $id_vente = ''; // ne pas afficher ce disgracieux '0'
    31                 }
    32                 if (!$annee) {
    33                         $annee = date('Y'); // par defaut c'est l'annee courante
    34                         $id_vente = ''; // virer l'ID inexistant
     28                } else { // on peut prendre en compte les filtres ; on recupere les parametres de :
     29                        $annee = association_passeparam_annee();
     30                        $etat = _request('etat'); // etat d'avancement de la commande
    3531                }
    3632                onglets_association('titre_onglet_ventes', 'ventes');
     
    6056                filtres_association(array(
    6157                        'annee' => array($annee, 'asso_ventes', 'vente'),
    62                         'id' => $id_vente,
     58#                       'id' => $id_vente,
    6359                ), 'ventes');
    6460                //TABLEAU
    65                 echo "<table width='100%' class='asso_tablo' id='asso_tablo_ventes'>\n";
    66                 echo "<thead>\n<tr>";
    67                 echo '<th>'. _T('asso:entete_id') .'</th>';
    68                 echo '<th>'. _T('asso:entete_date') .'</th>';
    69                 echo '<th>'. _T('asso:entete_intitule') .'</th>';
    70                 echo '<th>'. _T('asso:entete_code') .'</th>';
    71                 echo '<th>'. _T('asso:entete_nom') .'</th>';
    72                 echo '<th>'. _T('asso:entete_quantite') . '</th>';
    73                 echo '<th>'. _T('asso:entete_montant') .'</th>';
    74                 echo '<th colspan="2" class="actions">'. _T('asso:entete_actions') .'</th>';
    75                 echo "</tr>\n</thead><tbody>";
    76                 $query = sql_select('*', 'spip_asso_ventes', "DATE_FORMAT(date_vente, '%Y')=$annee", '',  'id_vente DESC') ;
    77                 while ($data = sql_fetch($query)) {
    78                         echo '<tr class="'. ($data['date_envoi']<$data['date_vente']?'pair':'impair') . (($id_vente==$data['id_vente'])?' surligne':'') .'" id="'.$data['id_vente'].' hproduct" rel="purchase">';
    79                         echo '<td class="integer">'.$data['id_vente'].'</td>';
    80                         echo '<td class="date">'. association_formater_date($data['date_vente'],'dtstart') .'</td>';
    81                         echo '<td class="text"><span class="n">'
    82                                 . (test_plugin_actif('CATALOGUE') && (is_numeric($data['article']))
    83                                         ? association_calculer_lien_nomid('',$data['article'],'article')
    84                                         : propre($data['article'])
    85                                 ) .'</span></td>';
    86                         echo '<td class="texte">'. association_formater_code($data['code'], 'x-spip_asso_ventes') .'</td>';
    87                         echo '<td class="text">'. association_calculer_lien_nomid($data['acheteur'],$data['id_acheteur']) .'</td>';
    88                         echo '<td class="decimal quantity">'. association_formater_nombre($data['quantite']) .'</td>';
    89                         echo '<td class="decimal">'
    90                         . association_formater_prix($data['quantite']*$data['prix_vente'], 'purchase cost offer').'</td>';
    91                         echo association_bouton_suppr('vente', 'id='.$data['id_vente']);
    92                         echo association_bouton_edit('vente','id='.$data['id_vente']);
    93                         echo "</tr>\n";
    94                 }
    95                 echo "</tbody>\n</table>\n";
     61                echo association_bloc_listehtml(
     62                        array('*, CASE WHEN date_envoi<date_vente THEN 0 ELSE 1 END AS statut_vente', 'spip_asso_ventes', "DATE_FORMAT(date_vente, '%Y')=$annee", '',  'id_vente DESC'), // requete
     63                        array(
     64                                'id_vente' => array('asso:entete_id', 'entier'),
     65                                'date_vente' => array('asso:ventes_entete_date_vente', 'date', 'dtstart'),
     66                                'date_envoie' => array('asso:ventes_entete_date_envoi', 'date', 'dtend'),
     67                                'article' => array('asso:entete_intitule', 'texte', 'propre', 'n'),
     68                                'code' => array('asso:entete_code', 'code', 'x-spip_asso_ventes'),
     69                                'id_acheteur' => array('asso:entete_nom', 'idnom', array('spip_asso_ventes', 'acheteur', 'id_acheteur'), 'membre'),
     70                                'quantite' => array('asso:entete_quantite', 'nombre', 2, 'quantity'),
     71                                'prix_vente' => array('asso:entete_montant', 'prix', 'purchase cost offer'),
     72//                              'commentaire' => array('asso:entete_commentaire', 'texte', 'propre'),
     73                        ), // entetes et formats des donnees
     74                        array(
     75                                array('suppr', 'vente', 'id=$$'),
     76                                array('edit', 'vente', 'id=$$'),
     77                        ), // boutons d'action
     78                        'id_vente', // champ portant la cle des lignes et des boutons
     79                        array('pair hproduct', 'impair hproduct'), 'statut_vente', $id_vente // rel="purchase"
     80                );
    9681                fin_page_association();
    9782        }
  • _plugins_/Association/Associaspip/formulaires/editer_asso_activites.php

    r65453 r65937  
    4848        /* paufiner la presentation des valeurs  */
    4949        if ($contexte['inscrits'])
    50                 $contexte['inscrits'] = association_nbrefr($contexte['inscrits']);
     50                $contexte['inscrits'] = association_formater_nombre($contexte['inscrits']);
    5151
    5252        // on ajoute les metas de destinations
  • _plugins_/Association/Associaspip/formulaires/editer_asso_ventes.html

    r63534 r65937  
    2020                                                <optgroup label="<BOUCLE_produit_intitule(ARTICLES){id_article}{statut IN prop,prepa,publie}>#TITRE</BOUCLE_produit_intitule>">
    2121                                <BOUCLE_produit_variantes(CAT_VARIANTES?){id_article}{par num titre}>
    22                                                         <option value="#ID_CAT_VARIANTE"[ (#ENV{code}|=={#ID_CAT_VARIANTE}|oui)selected="selected"]>#TITRE</option>
     22                                                        <option value="#ID_CAT_VARIANTE"[ (#ENV{code}|=={#ID_CAT_VARIANTE}|oui)selected="selected"]>[(#TITRE|typo)]</option>
    2323                                </BOUCLE_produit_variantes>
    2424                                                </optgroup>
  • _plugins_/Association/Associaspip/formulaires/synchroniser_asso_activites.html

    r64334 r65937  
    11<div class="formulaire_spip formulaire_#FORM">
    22        [<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>
    3         <div class="onglet" style="text-align:center; margin:0.5em auto; width:50%;"><a href="[(#URL_ECRIRE{inscrits_activite}|parametre_url{id,#ENV{id_evenement}})]"><:asso:menu2_titre_onglet_activite:></a></div>]
     3        <div class="onglet" style="text-align:center; margin:0.5em auto; width:50%;"><a href="[(#URL_ECRIRE{inscrits_activite})]"><:asso:menu2_titre_gestion_activites:></a></div>]
    44[(#ENV{editable})
    55        <form method="post" action="#ENV{action}">
  • _plugins_/Association/Associaspip/inc/association_comptabilite.php

    r65375 r65937  
    366366function association_passe_parametres_comptables($classes=array()) {
    367367    $params = array(); // initialisation de la liste
    368     $params['exercice'] = intval(_request('exercice'));
    369     if( !$params['exercice'] ) { // pas de "id_exercice" en parametre
    370         $params['exercice'] = intval(sql_getfetsel('id_exercice', 'spip_asso_exercices', '', '', 'fin DESC')); // on recupere l'id_exercice dont la "date de fin" est "la plus grande", c'est a dire l'id de l'exercice le plus recent
    371     }
    372     $params['annee'] = intval(_request('annee'));
    373     if( !$params['annee'] ) { // pas d'annee en parametre
    374         $params['annee'] = date('Y'); // on prende l'annee actuelle
    375     }
     368    $params['exercice'] = association_passeparam_exercice();
     369    $params['annee'] = association_passeparam_annee();
    376370    $params['destination'] = intval(_request('destination'));
    377371#    if( !$params['destination'] ) { // pas de destination
  • _plugins_/Association/Associaspip/inc/navigation_modules.php

    r65828 r65937  
    6262        }
    6363        echo '<div class="table_page">';
    64         echo '<h1 class="asso_titre">', $titre?_T($titre):_T('asso:gestion_de_lassoc', array('nom'=>$GLOBALS['association_metas']['nom']) ), '</h1>'; // Nom du module. cf:  <http://programmer.spip.org/Contenu-d-un-fichier-exec>
     64        echo '<h1 class="asso_titre">', $titre?association_langue($titre):_T('asso:gestion_de_lassoc', array('nom'=>$GLOBALS['association_metas']['nom']) ), '</h1>'; // Nom du module. cf:  <http://programmer.spip.org/Contenu-d-un-fichier-exec>
    6565        if ($res)
    6666                echo '<div class="bandeau_actions barre_onglet clearfix">', debut_onglet(), $res, fin_onglet(), '</div>'; // Onglets actifs
     
    7777function onglets_association($titre='', $top_exec='', $INSERT_HEAD=TRUE)
    7878{
    79         association_navigation_onglets($titre?"asso:$titre":'', $top_exec, $INSERT_HEAD);
     79        association_navigation_onglets($titre, $top_exec, $INSERT_HEAD);
    8080}
    8181
     
    101101 * @return void
    102102 */
    103 function association_navigation_raccourcis($adresse_retour='',  $raccourcis=array(), $PrefixeLangue='asso', $FIN_BOITE_INFO=TRUE)
     103function association_navigation_raccourcis($adresse_retour='',  $raccourcis=array(), $FIN_BOITE_INFO=TRUE)
    104104{
    105105        $res = ''; // initialisation
     
    115115                        // generation du raccourci
    116116                        if ( $acces )
    117                                 $res .= icone1_association("$PrefixeLangue:$raccourci_titre",  (is_array($params[1])?generer_url_ecrire($params[1][0],$params[1][1]):generer_url_ecrire($params[1])), $params[0]);
     117                                $res .= icone1_association($raccourci_titre,  (is_array($params[1])?generer_url_ecrire($params[1][0],$params[1][1]):generer_url_ecrire($params[1])), $params[0]);
    118118                }
    119119        }
     
    153153function icone1_association($texte, $lien, $image)
    154154{
    155         return icone_horizontale(_T($texte), $lien, _DIR_PLUGIN_ASSOCIATION_ICONES. $image, 'rien.gif', false); // http://doc.spip.org/@icone_horizontale
     155        return icone_horizontale(association_langue($texte), $lien, _DIR_PLUGIN_ASSOCIATION_ICONES. $image, 'rien.gif', false); // http://doc.spip.org/@icone_horizontale
    156156}
    157157
     
    191191        if ($DEBUT_DROITE)
    192192                echo debut_droite('',true);
    193         debut_cadre_relief(_DIR_PLUGIN_ASSOCIATION_ICONES.$icone, false, '', (is_array($T_args)?_T("asso:$titre",$T_args): _T("asso:$titre")." $T_args") );
     193        if ( is_array($T_args) )
     194                array_unshift($T_args, $titre);
     195        debut_cadre_relief(_DIR_PLUGIN_ASSOCIATION_ICONES.$icone, false, '', (is_array($T_args)?association_langue($T_args): association_langue($titre)." $T_args") );
    194196}
    195197
     
    205207function filtres_association($liste_filtres, $exec='', $supplements='', $td=TRUE)
    206208{
    207         echo association_bloc_filtres($liste_filtres, $exec, $supplements, $td);
     209        echo association_bloc_filtres(&$liste_filtres, &$exec, &$supplements, &$td);
    208210}
    209211
  • _plugins_/Association/Associaspip/lang/asso_fr.php

    r65704 r65937  
    131131        'vous_aller_effacer' => 'Vous vous appretez &agrave; effacer : @quoi@',
    132132        'date_du_jour' => 'Nous sommes le @date@',
    133         'date_du_jour_heure' => 'Nous sommes le @date@ et il est @time@',
    134133        'confirmation' => 'Confirmation',
    135134
     
    556555        'activite_entete_impayees' => 'Sans paiement',
    557556        'activite_entete_validees' => 'Avec paiement',
    558         'activites_avec_inscrits' => 'Inscriptions avec invit&eacute;(s)',
    559         'activites_sans_inscrits' => 'Inscriptions sans invit&eacute;(e)',
     557        'activites_avec_inscrits' => 'Avec inscript(e)s',
     558        'activites_sans_inscrits' => 'Sans Inscript(e)s',
    560559        # Bouton
    561560        'activite_bouton_modifier_article' => "Modifier l'article",
     
    607606# VENTES
    608607        #Entetes
    609         'vente_entete_date_envoi' => "Date d'envoi",
     608        'ventes_entete_date_envoi' => "Date d'envoi",
     609        'ventes_entete_date_vente' => "Date d'achat",
    610610        'dons_titre_mise_a_jour' => 'Mise &agrave; jour des dons',
    611         'adherent_bouton_maj_vente' => 'Editer la vente',
    612611
    613612# RESSOURCES
     
    884883
    885884# Dons
     885        # Dons : entetes
     886        'dons_en_argent' => 'Dons financiers',
     887        'dons_en_nature' => 'Dons mat&eacute;riels',
     888        # Dons : libelles
    886889        # Dons : messages
    887890        'dons_aide_contrepartie' => "Les dons avec contrepartie ne donnent pas lieu &agrave; de r&eacute;duction fiscale...",
  • _plugins_/Association/Associaspip/prive/contenu/editer_asso_metas_utilisateur.html

    r59913 r65937  
    4444    <div class="cadre-padding">
    4545<B_metas>
    46         <table width="100%" class="asso_tablo" id="asso_tablo_metasutilisateur">
     46        <table width="100%" class="asso_tablo" id="liste_asso_metasutilisateur">
    4747        <thead>
    4848            <tr>
  • _plugins_/Association/Associaspip/prive/contenu/voir_groupes_autorisations.html

    r65827 r65937  
    11<B_groupes>
    2 <table width="100%" class="asso_tablo" id="asso_tablo_groupes">
     2<table width="100%" class="asso_tablo" id="liste_asso_groupes">
    33        <thead>
    44                <tr>
Note: See TracChangeset for help on using the changeset viewer.