Changeset 65704 in spip-zone


Ignore:
Timestamp:
Sep 10, 2012, 1:44:16 AM (7 years ago)
Author:
gildas.cotomale@…
Message:

suite factorisation et corrections

Location:
_plugins_/Association/Associaspip
Files:
9 edited

Legend:

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

    r58798 r65704  
    1818        $securiser_action = charger_fonction('securiser_action', 'inc');
    1919        $id_ressource= $securiser_action();
    20         if ( sql_countsel('spip_asso_prets', "id_ressource=$id_ressource") ) { /* s'il y a un historique, juste masquer a l'affichage. (en supprimant on ne perd pas l'historique mais les references pointent dans le neant...) */
     20        if ( sql_countsel('spip_asso_prets', "id_ressource=$id_ressource") ) { // s'il y a un historique, juste masquer a l'affichage. (en supprimant on ne perd pas l'historique mais les references pointent dans le neant...)
    2121                sql_update('spip_asso_ressources', array(
    2222                        'statut'=>NULL,
    2323                ), "id_ressource=$id_ressource" );
    24         } else {
     24        } else { // on peut supprimer la reference
    2525                sql_delete('spip_asso_ressources', "id_ressource=$id_ressource" );
    2626        }
  • _plugins_/Association/Associaspip/association_options.php

    r65683 r65704  
    4949if ( !isset($GLOBALS['spip_pipeline']['modules_asso']) )
    5050        $GLOBALS['spip_pipeline']['modules_asso'] = ''; // definir ce pipeline, sans ecraser sa valeur s'il existe
     51
     52/**
     53 * @var const _MAX_ITEMS_ASSOCIASPIP
     54 *   Nombre de lignes maximales dans les listes de membres, operations comptables, activites...
     55 */
     56if (!defined('_MAX_ITEMS_ASSOCIASPIP'))
     57        define('_MAX_ITEMS_ASSOCIASPIP', 30);
     58
     59/**
     60 * @var const _DATE_HEURE_ASSOCIASPIP
     61 *   Indique s'il faut afficher l'heure en plus de la date
     62 */
     63if (!defined('_DATE_HEURE_ASSOCIASPIP'))
     64        define('_DATE_HEURE_ASSOCIASPIP', FALSE);
    5165
    5266
     
    606620function association_formater_texte($texte, $filtre='', $params=array() )
    607621{
     622        include_spip('inc/texte'); // pour nettoyer_raccourci_typo
    608623        if ( !is_array($params) )
    609624                $params = array($params);
     
    652667 *   Date au format ISO
    653668 */
    654 function association_recuperer_date($valeur, $req=false)
    655 {
     669function association_recuperer_date($valeur, $req=TRUE)
     670{
     671        $valeur = ($req?_request($valeur):$valeur);
    656672        if ($valeur!='') {
    657                 $valeur = preg_replace('/\D/', '-', ($req?_request($valeur):$valeur), 2); // la limitation a 2 separateurs permet de ne transformer que la partie "date" s'il s'agit d'un "datetime" par exemple.
     673                $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.
    658674        }
    659675        return $valeur;
     
    664680 *   Nombre decimal
    665681 */
    666 function association_recuperer_montant($valeur, $req=false)
    667 {
     682function association_recuperer_montant($valeur, $req=TRUE)
     683{
     684        $valeur = ($req?_request($valeur):$valeur);
    668685        if ($valeur!='') {
    669                 $valeur = str_replace(' ', '', ($req?_request($valeur):$valeur) ); // suppprime les espaces separateurs de milliers
     686                $valeur = str_replace(' ', '', $valeur); // suppprime les espaces separateurs de milliers
    670687                $valeur = str_replace(',', '.', $valeur); // convertit les , en .
    671688                $valeur = floatval($valeur);
     
    747764 * Selecteur HTML (liste deroulante) servant a filtrer le listing affiche en milieu de page
    748765 *
     766 * @return string $res
     767 *   Code HTML du selecteur (ou du formulaire complet si $exec est indique)
     768 *
     769** @{ */
     770
     771/**
     772 * @name association_selectionner_<liste>
     773 * cas general de :
     774 *
    749775 * @param int $sel
    750776 *   ID selectionne : conserve la valeur selectionnee
     
    757783 *   Source HTML rajoute a la suite.
    758784 *   (utile si on genere tout le formulaire avec des champs caches)
    759  * @return string $res
    760  *   Code HTML du selecteur (ou du formulaire complet si $exec est indique)
    761  *
    762 ** @{ */
     785 */
     786//@{
    763787
    764788/**
     
    861885}
    862886
     887//@}
     888
    863889/**
    864890 * Selecteur d'annee parmi celles disponibles dans une table donnee
     
    933959                return FALSE;
    934960        }
     961}
     962
     963/**
     964 * Selecteur de sous-pagination
     965 *
     966 * @param int|array $pages
     967 *   Nombre total de pages ou
     968 *   Liste des elements a passer a "sql_countsel"
     969 * @param string $params
     970 *   Autres informations passees par l'URL
     971 * @param int $debut
     972 *   Numero du premier enregistrement (si $req est a faux)
     973 *   Nom du champ contenant ce numero (si $req est a vrai)
     974 * @param string $exec
     975 *   Nom du fichier appelant
     976 * @return string $res
     977 *   HTML du bandeau de pagination
     978 */
     979function association_selectionner_souspage($pages, $exec='', $params='', $debut='debut', $req=TRUE)
     980{
     981        $res = '<td align="left">';
     982        if ( is_array($pages) ) {
     983                $nbr_pages = ceil(call_user_func_array('sql_countsel',$pages)/_MAX_ITEMS_ASSOCIASPIP); // ceil() ou intval()+1 ?
     984        } else {
     985                $nbr_pages = intval($pages);
     986        }
     987        if ( $nbr_pages>1 ) {
     988                $debut = ($req?_request($debut):$debut);
     989                $exec = ($exec?$exec:_request($exec));
     990                for ($i=0; $i<$nbr_pages; $i++) {
     991                        $position = $i*_MAX_ITEMS_ASSOCIASPIP;
     992                        if ($position==$debut) { // page courante
     993                                $res .= ' <strong>'.$position.' </strong> ';
     994                        } else { // autre page
     995                                $res .= '<a href="'. generer_url_ecrire($exec, ($params?"$params&":'').'debut='.$position) .'">'.$position.'</a>  ';
     996                        }
     997                }
     998        }
     999        $res .= '</td>';
     1000        return $res;
    9351001}
    9361002
     
    13701436 * Listing sous forme de tableau HTML
    13711437 *
    1372  * @param array $requete_sql
     1438 * @param ressource|array $requete_sql
     1439 *   Ressource de requete SQL
    13731440 *   Liste des parametres de "sql_select()"
    13741441 *   http://doc.spip.org/@sql_select
     
    13951462function association_bloc_listehtml($requete_sql, $presentation, $boutons=array(), $cle1='', $extra=array(), $cle2='', $selection=0 )
    13961463{
    1397         if ( !is_array($requete_sql) || count($requete_sql)<2 )
     1464        if ( is_array($requete_sql) && count($requete_sql)>1 ) {
     1465                $table = ($requete_sql[1] ? $requete_sql[1] : ($requete_sql['table'] ? $requete_sql['table'] : ($requete_sql['from']?$requete_sql['from']:$requete_sql['tables']) ) ) ; // on recupere la partie "FROM" de la requete SQL...
     1466                $table = substr_replace(trim( is_array($table)?$table[0]:$table ), '', 0, 5); //  on supprime le prefixe "spip_" de la 1ere table (normalement la principale...)
     1467                $spc_pos = strpos($table, ' '); // requete avec alias (" AS ") ou jointure de plusieurs tables ( " JOIN ")
     1468                $table = substr($table, 0, $spc_pos?$spc_pos:strlen($table) ); // on recupere jusqu'au premier espace (donc le vrai nom de la 1ere table) sinon jusqu'a la fin.
     1469                $reponse_sql = call_user_func_array('sql_select', $requete_sql);
     1470        } elseif ( is_resource($requete_sql) ) {
     1471                $reponse_sql = $requete_sql;
     1472        } elseif ( is_string($requet_sql) ) {
     1473                $reponse_sql = call_user_func_array('sql_query', $requete_sql);
     1474                $table = substr_replace(substr($requete_sql, stripos(trim($requeste_sql), ' from ') ), '', 0, 5); // on recupere la partie "FROM" de la requete SQL... et on supprime le prefixe "spip_" de la premiere table (normalement la principale...)
     1475                $table = substr($table, 0, strlen($table)-strpos("$table ", ' ') ); // on recupere jusqu'au premier espace (donc le vrai nom de la 1ere table) sinon jusqu'a la fin.
     1476        } elseif ( !is_array($boutons) ) { // premier parametre non valide : impossible de poursuivre ; on sort sans erreur
    13981477                return '';
    1399         $table = ($requete_sql[1] ? $requete_sql[1] : ($requete_sql['table'] ? $requete_sql['table'] : ($requete_sql['from']?$requete_sql['from']:$requete_sql['tables']) ) ) ; // on recupere la partie "FROM" de la requete SQL...
    1400         $table = substr_replace(trim( is_array($table)?$table[0]:$table ), '', 0, 5); //  on supprime le prefixe "spip_" de la 1ere table (normalement la principale...)
    1401         $spc_pos = strpos($table, ' '); // requete avec alias (" AS ") ou jointure de plusieurs tables ( " JOIN ")
    1402         $table = substr($table, 0, $spc_pos?$spc_pos:strlen($table) ); // on recupere jusqu'au premier espace (donc le vrai nom de la 1ere table) sinon la fin.
    1403         $res =  '<table width="100%" class="asso_tablo" id="liste_'.$table.'">';
     1478        }
     1479        if ( !is_array($presentation) ) { // second parametre non valide : impossible de poursuivre ; on sort sans erreur
     1480                return '';
     1481        } else { // ok, c'est un tableau...
     1482                foreach ($presentation as $param)
     1483                        if ( !is_array($param) ) // ...de tableaux ?
     1484                                return '';
     1485        }
     1486        $res =  '<table width="100%" class="asso_tablo'. ($table ? '" id="liste_'.$table : '') .'">';
    14041487        $res .= "\n<thead>\n<tr>";
    1405         foreach ($presentation as &$param) {
     1488        foreach ($presentation as &$param) { // entetes
    14061489                $entete = array_shift($param);
    14071490                $res .= '<th>'. ($entete ? _T((strpos($entete,':') ? '' : 'asso:').$entete) : '&nbsp;' ) .'</th>';
    14081491        }
    1409         if ( count($boutons) ) {
    1410                 $res .= '<th colspan="'. count($boutons) .'" class="actions">'. _T('asso:entete_actions') .'</th>';
     1492        if ( count($boutons) ) { // colonne(s) de bouton(s) d'action
     1493                $res .= '<th colspan="'. count($boutons) .'" class="actions">'. _T('asso:entete_action'.(count($boutons)-1?'s':'')) .'</th>';
    14111494        }
    14121495        $res .= "</tr>\n</thead><tbody>";
     1496        if ( !is_array($boutons) )
     1497                return $res; // c'est une astuce pour generer la partie entete seulement
    14131498        $nbr_lignes = 0;
    1414         $reponse_sql = call_user_func_array('sql_select', $requete_sql);
    14151499        while ($data = sql_fetch($reponse_sql)) {
    14161500                if ( is_array($extra) && $nbr_couleurs=count($extra) ) { // on a bien un tableau de classes supplementaires
     
    15111595{
    15121596        return sql_fetsel('*', "spip_asso_$table".($pluriel?'s':''), "id_$table=".intval($id));
     1597}
     1598
     1599/**
     1600 * Genere la borne (partie SQL LIMIT) d'enregistrements retournes
     1601 *
     1602 * @param string $valeur
     1603 *   Nom du champ utilise pour passer la page courante
     1604 * @return string
     1605 *   Chaine de la partie LIMIT-SQL pour sql_select et similaires
     1606 */
     1607function sql_asso1page($valeur='debut', $req=TRUE)
     1608{
     1609        $valeur = intval($req?_request($valeur):$valeur);
     1610        return "$valeur,"._MAX_ITEMS_ASSOCIASPIP;
    15131611}
    15141612
     
    15441642/**
    15451643 * Affichage du message indiquant la date
    1546  *
    1547  * @param bool $heure
    1548  *   Indique s'il faut afficher (vrai) ou pas (faux, par defaut) l'heure.
    1549  * @return string $res
    1550  */
    1551 function association_date_du_jour($heure=false)
     1644 * (et l'heure si option activee)
     1645 *
     1646 * @return string $res
     1647 */
     1648function association_date_du_jour()
    15521649{
    15531650        $ladate = affdate_jourcourt(date('d/m/Y'));
    1554         $hr = ($heure?date('H'):'');
    1555         $mn = ($heure?date('i'):'');
    1556         $res = '<p class="'. ($heure?'datetime':'date');
    1557         $res .= '" title="'. date('Y-m-d') . ($heure?"T$hr:$mn":'');
    1558         $lheure = ($heure? _T('spip:date_fmt_heures_minutes', array('h'=>$hr,'m'=>$mn)) :'');
    1559         $res .= '">'.( $heure ? _T('asso:date_du_jour_heure', array('date'=>$ladate)) : _T('asso:date_du_jour',array('date'=>$ladate,'time'=>$lheure)) ).'</p>';
     1651        $hr = (_DATE_HEURE_ASSOCIASPIP?date('H'):'');
     1652        $mn = (_DATE_HEURE_ASSOCIASPIP?date('i'):'');
     1653        $res = '<p class="'. (_DATE_HEURE_ASSOCIASPIP?'datetime':'date');
     1654        $res .= '" title="'. date('Y-m-d') . (_DATE_HEURE_ASSOCIASPIP?"T$hr:$mn":'');
     1655        $lheure = (_DATE_HEURE_ASSOCIASPIP ? _T('spip:date_fmt_heures_minutes', array('h'=>$hr,'m'=>$mn)) :'');
     1656        $res .= '">'. (_DATE_HEURE_ASSOCIASPIP ? _T('asso:date_du_jour_heure', array('date'=>$ladate)) : _T('asso:date_du_jour',array('date'=>$ladate,'time'=>$lheure)) ).'</p>';
    15601657        return $res;
    15611658}
  • _plugins_/Association/Associaspip/exec/activites.php

    r65683 r65704  
    112112                echo '<th colspan="3" class="actions">'. _T('asso:entete_action') .'</th>';
    113113                echo "</tr>\n</thead><tbody>";
    114                 $max_par_page = 30;
    115                 $debut = intval(_request('debut'));
    116                 if (!$debut) {
    117                         $debut = 0;
    118                 }
    119                 $query = sql_select('*, 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', "$debut,$max_par_page");
     114                $query = sql_select('*, 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() );
    120115                while ($data = sql_fetch($query)) {
    121116                        $inscrits = sql_fetsel('SUM(inscrits) AS total', 'spip_asso_activites', 'id_evenement='.$data['id_evenement']);
     
    135130                echo "\n<table width='100%'>\n";
    136131                //SOUS-PAGINATION
    137                 echo "<table width='100%' class='asso_tablo_filtres'><tr>\n<td align='left'>";
    138                 $nombre_selection = sql_countsel('spip_evenements', "DATE_FORMAT(date_debut, '%Y')=$annee");
    139                 $pages = ceil($nombre_selection/$max_par_page);
    140                 if ($pages==1) {
    141                         echo '';
    142                 } else {
    143                         for ($i=0; $i<$pages; $i++) {
    144                                 $position = $i*$max_par_page;
    145                                 if ($position==$debut) {
    146                                         echo ' <strong>'.$position.' </strong> ';
    147                                 } else {
    148                                         echo '<a href="'.generer_url_ecrire('activites','annee='.$annee.'&debut='.$position.'&imputation='.$imputation).'">'.$position.'</a>  ';
    149                                 }
    150                         }
    151                 }
    152                 echo '</td></tr></table>';
     132                echo "<table width='100%' class='asso_tablo_filtres'><tr>\n";
     133                echo association_selectionner_souspage(array('spip_evenements', "DATE_FORMAT(date_debut, '%Y')=$annee"), 'activites', 'annee='.$annee );
     134                echo '</tr></table>';
    153135                fin_page_association();
    154136        }
  • _plugins_/Association/Associaspip/exec/adherent.php

    r65469 r65704  
    5959                if ($full)
    6060                        $res['adherent_label_modifier_membre'] = array('edit-24.gif', 'edit_adherent', "id=$id_auteur");
     61                include_spip('inc/texte'); // pour nettoyer_raccourci_typo
    6162                $res["adherent_label_modifier_$statut"] = array('membre_infos.png', 'auteur_infos', "id_auteur=$id_auteur");
    6263                raccourcis_association('', $res);
    6364                debut_cadre_association('annonce.gif', 'membre', $nom_membre);
    64                 // Liste des groupes (on ignore les groupes d'id <100 qui sont dedies a la gestion des autorisations)
    65                 $query = sql_select('g.id_groupe as id_groupe, g.nom as nom', 'spip_asso_groupes g LEFT JOIN spip_asso_groupes_liaisons l ON g.id_groupe=l.id_groupe', 'g.id_groupe>=100 AND l.id_auteur='.$id_auteur, '', 'g.nom');
    66                 if (sql_count($query)) {
     65                if ($full)
     66                        echo propre($data['commentaire']);
     67                $query_groupes = sql_select('g.id_groupe as id_groupe, g.nom as nom', 'spip_asso_groupes g LEFT JOIN spip_asso_groupes_liaisons l ON g.id_groupe=l.id_groupe', 'g.id_groupe>=100 AND l.id_auteur='.$id_auteur, '', 'g.nom'); // Liste des groupes (on ignore les groupes d'id <100 qui sont dedies a la gestion des autorisations)
     68                if (sql_count($query_groupes)) {
    6769                        echo debut_cadre_relief('', true, '', _T('asso:groupes_membre') );
    68                         echo "<table width='100%' class='asso_tablo' id='asso_tablo_groupes_membre'>\n";
    69                         echo "<thead>\n<tr>";
    70                         echo '<th>'._T('asso:groupe').'</th>';
    71                         echo '<th>'._T('asso:fonction').'</th>';
    72                         echo "</tr>\n</thead><tbody>";
    73                         while ($row = sql_fetch($query)) {
    74                                 echo '<tr>';
    75                                 echo '<td class="text"><a href="'.generer_url_ecrire('membres_groupe', 'id='.$row['id_groupe']).'">'.$row['nom'].'</a></td>';
    76                                 echo '<td>'.$row['fonction'].'</td>';
    77                                 echo '</tr>';
    78                         }
    79                         echo "</tbody>\n</table>\n";
     70                        echo association_bloc_listehtml(
     71                                $query_groupes, // requete
     72                                array(
     73                                        'id_groupe' => array('asso:entete_id', 'entier'),
     74                                        'nom' => array('asso:groupe', 'texte'),
     75                                        'fonction' => array('asso:fonction', 'texte'),
     76                                ), // entetes et formats des donnees
     77                                array(
     78                                        array('faire', 'membres', 'voir-12.gif', 'membres_groupe', 'id=$$'),
     79                                ), // boutons d'action
     80                                'id_groupe' // champ portant la cle des lignes et des boutons
     81                        );
    8082                        echo fin_cadre_relief(true);
    8183                }
     
    8890                        echo fin_cadre_relief(true);
    8991                }
    90                 // FICHE HISTORIQUE COTISATIONS
    91                 echo debut_cadre_relief('', true, '', _T('asso:adherent_titre_historique_cotisations') );
    92                 if ($full) { // si on a l'autorisation admin, on ajoute un bouton pour ajouter une cotisation
    93                         echo '<a href="'.generer_url_ecrire('ajout_cotisation', 'id='.$id_auteur).'">'._T('asso:adherent_label_ajouter_cotisation').'</a>';
    94                 }
    95                 echo "<table width='100%' class='asso_tablo' id='asso_tablo_historique_dons'>\n";
    96                 echo "<thead>\n<tr>";
    97                 echo '<th>'._T('asso:entete_id').'</th>';
    98                 echo '<th>'._T('asso:adherent_entete_journal').'</th>';
    99                 echo '<th>'._T('asso:entete_date').'</th>';
    100                 echo '<th>'._T('asso:adherent_entete_justification').'</th>';
    101                 echo '<th>'._T('asso:entete_montant').'</th>';
    102                 echo '<th>'._T('asso:entete_action').'</th>';
    103                 echo "</tr>\n</thead><tbody>";
    104                 $association_imputation = charger_fonction('association_imputation', 'inc');
    105                 $critere = $association_imputation('pc_cotisations');
    106                 if ($critere)
    107                         $critere .= ' AND ';
    108                 $query = sql_allfetsel('id_compte AS id, recette AS montant, date, justification, journal', 'spip_asso_comptes', "$critere id_journal=$id_auteur", '', 'date DESC, id_compte DESC' );
    109                 echo join("\n", voir_adherent_paiements($query, $full, 'cotisation'));
    110                 echo "</tbody>\n</table>\n";
    111                 echo fin_cadre_relief(true);
     92                if ($GLOBALS['association_metas']['pc_cotisations']){ // HISTORIQUE COTISATIONS
     93                        echo debut_cadre_relief('', true, '', _T('asso:adherent_titre_historique_cotisations') );
     94                        if ($full) { // si on a l'autorisation admin, on ajoute un bouton pour ajouter une cotisation
     95                                echo '<p><a href="' .generer_url_ecrire('ajout_cotisation', "id=$id_auteur").'">' . _T('asso:adherent_label_ajouter_cotisation') .'</a></p>';
     96                        }
     97                        $association_imputation = charger_fonction('association_imputation', 'inc');
     98                        $critere = $association_imputation('pc_cotisations');
     99                        if ($critere)
     100                                $critere .= ' AND ';
     101                        echo voir_adherent_paiements(
     102                                array('id_compte, recette AS montant, date, justification, journal', 'spip_asso_comptes', "$critere id_journal=$id_auteur", '', 'date DESC, id_compte DESC', '0,10' ),
     103                                $full,
     104                                'cotisation'
     105                        );
     106                        echo fin_cadre_relief(true);
     107                }
    112108                if ($GLOBALS['association_metas']['activites']){ // HISTORIQUE ACTIVITES
    113109                        echo debut_cadre_relief('', true, '', _T('asso:adherent_titre_historique_activites') );
    114                         echo "<table width='100%' class='asso_tablo' id='asso_tablo_historique_activites'>\n";
    115                         echo "<thead>\n<tr>";
    116                         echo '<th>'._T('asso:entete_id').'</th>';
    117                         echo '<th>'._T('asso:entete_date').'</th>';
    118                         echo '<th>'._T('asso:adherent_entete_activite').'</th>';
    119                         echo '<th>'._T('asso:adherent_entete_inscrits').'</th>';
    120                         echo '<th>'._T('asso:entete_montant').'</th>';
    121                         echo '<th>&nbsp;</th>';
    122                         echo "</tr>\n</thead><tbody>";
    123                         $query = sql_select('*', 'spip_asso_activites', "id_adherent=$id_auteur", '', 'date_inscription DESC');
    124                         while ($data = sql_fetch($query)) {
    125                                 $id_evenement = $data['id_evenement'];
    126                                 echo '<tr>';
    127                                 echo '<td class="integer">'.$data['id_activite'].'</td>';
    128                                 $sql = sql_select('*', 'spip_evenements', "id_evenement=$id_evenement" );
    129                                 while ($evenement = sql_fetch($sql)) {
    130                                         $date = substr($evenement['date_debut'],0,10);
    131                                         echo '<td class="date">'.association_formater_date($date).'</td>';
    132                                         echo '<td class="text">'.$evenement['titre'].'</td>';
    133                                 }
    134                                 echo '<td class="integer">'.$data['inscrits'].'</td>';
    135                                 echo '<td class="decimal">'. association_formater_prix($data['montant']) .'</td>';
    136                                 echo '<td class="action">', association_bouton_faire('adherent_bouton_maj_inscription', 'edit-12.gif', 'edit_activite', 'id='.$data['id_activite']), '</td>';
    137                                 echo "</tr>\n";
    138                         }
    139                         echo "</tbody>\n</table>\n";
     110                        echo association_bloc_listehtml(
     111                                array('*', 'spip_asso_activites As a INNER JOIN spip_evenements AS e ON a.id_evenement=e.id_evenement', "id_adherent=$id_auteur", '', 'date_debut DESC, date_fin DESC', '0,10'), // requete
     112                                array(
     113                                        'id_activite' => array('asso:entete_id', 'entier'),
     114                                        'date_debut' => array('asso:entete_date', 'date'),
     115                                        'titre' => array('asso:adherent_entete_activite', 'texte', $full?'propre':'nettoyer_raccourcis_typo', ),
     116                                        'inscrits' => array('asso:adherent_entete_inscrits', 'entier'),
     117                                        'montant' => array('asso:entete_montant', 'prix'),
     118                                ), // entetes et formats des donnees
     119                                $full ? array(
     120                                        array('faire', 'adherent_bouton_maj_inscription', 'edit-12.gif', 'edit_activite', 'id=$$'),
     121                                ) : array(), // boutons d'action
     122                                'id_activite' // champ portant la cle des lignes et des boutons
     123                        );
    140124                        echo fin_cadre_relief(true);
    141125                }
    142126                if ($GLOBALS['association_metas']['ventes']){ // HISTORIQUE VENTES
    143127                        echo debut_cadre_relief('', true, '', _T('asso:adherent_titre_historique_ventes') );
    144                         echo "<table width='100%' class='asso_tablo' id='asso_tablo_historique_ventes'>\n";
    145                         echo "<thead>\n<tr>";
    146                         echo '<th>'._T('asso:entete_id').'</th>';
    147                         echo '<th>'._T('asso:entete_date').'</th>';
    148                         echo '<th>'._T('asso:vente_entete_article').'</th>';
    149                         echo '<th>'._T('asso:vente_entete_quantites').'</th>';
    150                         echo '<th>'._T('asso:vente_entete_date_envoi').'</th>';
    151                         echo '<th>&nbsp;</th>';
    152                         echo "</tr>\n</thead><tbody>";
    153                         $query = sql_select('id_vente, article, quantite, date_vente, date_envoi', 'spip_asso_ventes', 'id_acheteur='. $id_auteur, '', 'date_vente DESC' );
    154                         while ($data = sql_fetch($query)) {
    155                                 echo '<tr>';
    156                                 echo '<td class="integer">'.$data['id_vente'].'</td>';
    157                                 echo '<td class="date">'.association_formater_date($data['date_vente']).'</td>';
    158                                 echo '<td class="text">'.$data['article'].'</td>';
    159                                 echo '<td class="decimal">'.$data['quantite'].'</td>';
    160                                 echo '<td class="date">'.association_formater_date($data['date_envoi']).'</td>';
    161                                 echo '<td class="action">'. association_bouton_faire('adherent_bouton_maj_vente', 'edit-12.gif', 'edit_vente','id='.$data['id_vente']) .'</td>';
    162                                 echo "</tr>\n";
    163                         }
    164                         echo "</tbody>\n</table>\n";
     128                        echo association_bloc_listehtml(
     129                                array('*', 'spip_asso_ventes', "id_acheteur=$id_auteur", '', 'date_vente DESC', '0,10'), // requete
     130                                array(
     131                                        'id_vente' => array('asso:entete_id', 'entier'),
     132                                        'date_vente' => array('asso:entete_date', 'date'),
     133                                        'article' => array('asso:entete_article', 'texte', $full?'propre':'nettoyer_raccourcis_typo', ),
     134                                        'quantite' => array('asso:entete_quantite', 'nombre'),
     135                                        'date_envoie' => array('asso:vente_entete_date_envoi', 'date'),
     136                                ), // entetes et formats des donnees
     137                                $full ? array(
     138                                        array('faire', 'adherent_bouton_maj_vente', 'edit-12.gif', 'edit_vente', 'id=$$'),
     139                                ) : array(), // boutons d'action
     140                                'id_vente' // champ portant la cle des lignes et des boutons
     141                        );
    165142                        echo fin_cadre_relief(true);
    166143                }
    167144                if ($GLOBALS['association_metas']['dons']){ // HISTORIQUE DONS
    168145                        echo debut_cadre_relief('', true, '', _T('asso:adherent_titre_historique_dons') );
    169                         echo "<table width='100%' class='asso_tablo' id='asso_tablo_historique_dons'>\n";
    170                         echo "<thead>\n<tr>";
    171                         echo '<th>'._T('asso:entete_id').'</th>';
    172                         echo '<th>'._T('asso:adherent_entete_journal').'</th>';
    173                         echo '<th>'._T('asso:entete_date').'</th>';
    174                         echo '<th>'._T('asso:adherent_entete_justification').'</th>';
    175                         echo '<th>'._T('asso:entete_montant').'</th>';
    176                         echo '<th>'._T('asso:entete_action').'</th>';
    177                         echo "</tr>\n</thead><tbody>";
     146                        echo association_bloc_listehtml(
     147                                array('*', 'spip_asso_dons', "id_adherent=$id_auteur", '', 'date_don DESC', '0,10'), // requete
     148                                array(
     149                                        'id_don' => array('asso:entete_id', 'entier'),
     150                                        'date_don' => array('asso:entete_date', 'date'),
     151                                        'argent' => array('asso:entete_montant', 'prix'),
     152                                        'colis' => array('asso:colis', 'texte', $full?'propre':'nettoyer_raccourcis_typo', ),
     153//                                      'valeur' => array('asso:vente_entete_date_envoi', 'prix'),
     154                                ), // entetes et formats des donnees
     155                                $full ? array(
     156                                        array('faire', 'adherent_bouton_maj_don', 'edit-12.gif', 'edit_don', 'id=$$'),
     157                                ) : array(), // boutons d'action
     158                                'id_don' // champ portant la cle des lignes et des boutons
     159                        );
     160/*
    178161                        $association_imputation = charger_fonction('association_imputation', 'inc');
    179162                        $critere = $association_imputation('pc_dons');
    180163                        if ($critere)
    181164                                $critere .= ' AND ';
    182                         $query = sql_allfetsel('D.id_don AS id, D.argent AS montant, D.date_don AS date, justification, journal, id_compte', 'spip_asso_dons AS D LEFT JOIN spip_asso_comptes AS C ON C.id_journal=D.id_don', "$critere id_adherent=$id_auteur",'D.date_don DESC');
    183                         echo join("\n", voir_adherent_paiements($query, $full, 'don'));
    184                         echo "</tbody>\n</table>\n";
     165                        echo voir_adherent_paiements(
     166                                array('D.id_don AS id, D.argent AS montant, D.date_don AS date, justification, journal, id_compte', 'spip_asso_dons AS D LEFT JOIN spip_asso_comptes AS C ON C.id_journal=D.id_don', "$critere id_adherent=$id_auteur",'D.date_don DESC', '0,10'),
     167                                $full,
     168                                'don'
     169                        );
     170*/
    185171                        echo fin_cadre_relief(true);
    186172                }
    187173                if ($GLOBALS['association_metas']['prets']){ // HISTORIQUE PRETS
    188174                        echo debut_cadre_relief('', true, '', _T('asso:adherent_titre_historique_prets') );
    189                         echo "<table width='100%' class='asso_tablo' id='asso_tablo_historiques_prets'>\n";
    190                         echo "<thead>\n<tr>";
    191                         echo '<th>&nbsp;</th>';
    192                         echo '<th>'._T('asso:entete_id').'</th>';
    193                         echo '<th>'._T('asso:vente_entete_article').'</th>';
    194                         echo '<th>'._T('asso:prets_entete_date_sortie').'</th>';
    195                         echo '<th>'._T('asso:prets_entete_date_retour').'</th>';
    196                         echo '<th>&nbsp;</th>';
    197                         echo "</tr>\n</thead><tbody>";
    198                         $query = sql_select('*', 'spip_asso_prets AS P LEFT JOIN spip_asso_ressources AS R ON P.id_ressource=R.id_ressource', 'id_emprunteur='._q($id_auteur), '', 'id_pret DESC' );
    199                         while ($data = sql_fetch($query)) {
    200                                 if (is_numeric($data['statut'])) { // nouveuaux statuts entiers
    201                                         if (($data['statut'])>0)
    202                                                 $puce = 'verte';
    203                                         elseif (($data['statut'])<0)
    204                                                 $puce = 'rouge';
    205                                         else
    206                                                 $puce = 'orange';
    207                                 } else switch($data['statut']){ // anciens statuts texte
    208                                         case 'ok':
    209                                                 $puce = 'verte'; break;
    210                                         case 'reserve':
    211                                                 $puce = 'rouge'; break;
    212                                         case 'suspendu':
    213                                                 $puce = 'orange'; break;
    214                                         case 'sorti':
    215                                                 $puce = 'poubelle'; break;
    216                                 }
    217                                 echo '<tr>';
    218                                 echo '<td class="action">';
    219                                 echo '<img src="' . _DIR_PLUGIN_ASSOCIATION_ICONES . 'puce-'.$puce. '.gif" /></td>';
    220                                 echo '<td class="integer">'.$data['id_pret'].'</td>';
    221                                 echo '<td class="text">'.$data['intitule'].'</td>';
    222                                 echo '<td class="date">'.association_formater_date($data['date_sortie'],'dtstart').'</td>';
    223                                 echo '<td class="date">';
    224                                 if($data['date_retour']<=$data['date_sortie']){
    225                                         echo '&nbsp;';
    226                                 } else {
    227                                         echo association_formater_date($data['date_retour'], 'dtend');
    228                                 }
    229                                 echo '</td>';
    230                                 echo '<td class="action">' . association_bouton_faire('adherent_bouton_maj_operation', 'edit-12.gif', 'edit_pret', 'agir=modifie&id_pret='.$data['id_pret']) . '</td>';
    231                                 echo "</tr>\n";
    232                         }
    233                         echo "</tbody>\n</table>\n";
     175                        echo association_bloc_listehtml(
     176                                array('*', 'spip_asso_prets AS P LEFT JOIN spip_asso_ressources AS R ON P.id_ressource=R.id_ressource', "id_emprunteur=$id_auteur", '', 'id_pret DESC', '0,10'), // requete
     177                                array(
     178                                        'id_pret' => array('asso:entete_id', 'entier'),
     179                                        'date_sortie' => array('asso:prets_entete_date_sortie', 'date', 'dtstart'),
     180                                        'intitule' => array('asso:entete_article', 'texte', $full?'propre':'nettoyer_raccourcis_typo', ),
     181//                                      'duree' => array('asso:entete_duree', 'duree'),
     182                                        'date_retour' => array('asso:prets_entete_date_retour', 'date', 'dtend'),
     183                                ), // entetes et formats des donnees
     184                                $full ? array(
     185                                        array('faire', 'adherent_bouton_maj_operation', 'edit-12.gif', 'edit_pret', 'id=$$'),
     186                                ) : array(), // boutons d'action
     187                                'id_pret' // champ portant la cle des lignes et des boutons
     188                        );
    234189                        echo fin_cadre_relief(true);
    235190                }
     
    238193}
    239194
    240 function voir_adherent_paiements($data, $lien, $type)
     195function voir_adherent_paiements($data, $lien)
    241196{
    242         include_spip('inc/texte'); // pour nettoyer_raccourci_typo
    243         foreach($data as $k => $row) {
    244                 $j = $lien ? $row['justification']
    245                   : nettoyer_raccourcis_typo($row['justification']);
    246                 $id = $row['id'];
    247                 $id_compte = ($row['id_compte'])?$row['id_compte']:$id; // l'id_compte est soit explicitement present dans la ligne(pour les dons), sinon c'est qu'il est le meme qu'id (pour les cotisations)
    248                 $data[$k] = "<tr id='$type$id'>"
    249                 . '<td class="integer">'.$id.'</td>'
    250                 . '<td class="text">'.$row['journal'].'</td>'
    251                 . '<td class="date">'. association_formater_date($row['date']). '</td>'
    252                 . '<td class="text">'. propre($j) .'</td>'
    253                 . '<td class="decimal">'. association_formater_prix($row['montant']) .'</td>'
    254                 . '<td class="action">'. association_bouton_faire('adherent_label_voir_operation', 'voir-12.png', 'comptes','id_compte='.$id_compte) .'</td>' // pas plutot edit_compte ? (a propos, il faudrait carrement un voir_compte pour ne pas risquer de modifier ainsi une operation marquee "vu" et donc archivee/verouillee)
    255                 . '</tr>';
    256         }
    257         return $data;
     197        return association_bloc_listehtml(
     198                $data, // requete
     199                array(
     200                        'id_compte' => array('asso:entete_id', 'entier'),
     201                        'date' => array('asso:entete_date', 'date'),
     202                        'journal' => array('asso:adherent_entete_journal', 'texte'),
     203                        'justification' => array('asso:adherent_entete_justification', 'texte', $lien?'propre':'nettoyer_raccourcis_typo', ),
     204                        'montant' => array('asso:entete_montant', 'prix'),
     205                ),
     206                $lien ? array(
     207                        array('faire', 'adherent_label_voir_operation', 'voir-12.png', 'comptes', 'id_compte=$$'),
     208                ) : array(), // boutons d'action : pas plutot edit_compte ? (a propos, il faudrait carrement un voir_compte pour ne pas risquer de modifier ainsi une operation marquee "vu" et donc archivee/verouillee)
     209                'id_compte' // champ portant la cle des lignes et des boutons
     210        );
    258211}
    259212
  • _plugins_/Association/Associaspip/exec/adherents.php

    r65588 r65704  
    6161                }
    6262                // on appelle ici la fonction qui calcule le code du formulaire/tableau de membres pour pouvoir recuperer la liste des membres affiches a transmettre pour la generation du pdf
    63                 list($where_adherents, $jointure_adherents, $code_liste_membres) = adherents_liste(intval(_request('debut')), $lettre, $critere, $statut_interne, $id_groupe);
     63                list($where_adherents, $jointure_adherents, $code_liste_membres) = adherents_liste($lettre, $critere, $statut_interne, $id_groupe);
    6464                $champsExclus = array();
    6565                if ( !$GLOBALS['association_metas']['civilite'] )
     
    108108
    109109/* adherent liste renvoie le code html et tout ce qu'il faut pour effectuer la requete avec les meme filtres (where et la possible jonction sur la table des groupes) */
    110 function adherents_liste($debut, $lettre, $critere, $statut_interne, $id_groupe, $max_par_page=30)
     110function adherents_liste($lettre, $critere, $statut_interne, $id_groupe)
    111111{
    112112        if ($lettre)
     
    119119        $chercher_logo = charger_fonction('chercher_logo', 'inc');
    120120        include_spip('inc/filtres_images_mini');
    121         $query = sql_select('a.id_auteur AS id_auteur, b.email AS email, a.sexe, a.nom_famille, a.prenom, a.id_asso, b.statut AS statut, a.validite, a.statut_interne, a.categorie, b.bio AS bio','spip_asso_membres' .  " a LEFT JOIN spip_auteurs b ON a.id_auteur=b.id_auteur $jointure_groupe", $critere, '', 'nom_famille ', "$debut,$max_par_page" );
     121        $query = sql_select('a.id_auteur AS id_auteur, b.email AS email, a.sexe, a.nom_famille, a.prenom, a.id_asso, b.statut AS statut, a.validite, a.statut_interne, a.categorie, b.bio AS bio','spip_asso_membres' .  " a LEFT JOIN spip_auteurs b ON a.id_auteur=b.id_auteur $jointure_groupe", $critere, '', 'nom_famille ', sql_asso1page() );
    122122        $auteurs = '';
    123123        while ($data = sql_fetch($query)) {
     
    231231        . "</tbody>\n</table>\n";
    232232        //SOUS-PAGINATION
    233         $res .= "<table width='100%' class='asso_tablo_filtres'><tr>\n<td align='left'>";
    234         $nombre_selection = sql_countsel('spip_asso_membres', $critere);
    235         $pages = intval($nombre_selection/$max_par_page)+1;
    236         if ($pages!=1)  {
    237                 for ($i=0; $i<$pages; $i++)     {
    238                         $position = $i*$max_par_page;
    239                         if ($position==$debut)  {
    240                                 $res .= '<strong>'.$position.'</strong>';
    241                         } else {
    242                                 $h = generer_url_ecrire('adherents', 'lettre='.$lettre.'&debut='.$position.'&statut_interne='.$statut_interne);
    243                                 $res .= "<a href='$h'>$position</a>\n";
    244                         }
    245                 }
    246         }
     233        $res .= "<table width='100%' class='asso_tablo_filtres'><tr>\n";
     234        $res .= association_selectionner_souspage(array('spip_asso_membres', $critere), 'adherents', 'lettre='.$lettre.'&statut_interne='.$statut_interne );
    247235        if (autoriser('editer_membres', 'association', 100)) {
    248236                $res .= "</td><td align='right' class='formulaire'><form>\n";
  • _plugins_/Association/Associaspip/exec/comptes.php

    r65588 r65704  
    3232                if (!$imputation)
    3333                        $imputation= '%';
    34                 $max_par_page = intval(_request('max'));
    35                 if (!$max_par_page)
    36                         $max_par_page = 30;
    3734                $id_compte = intval(_request('id_compte', $_GET));
    3835                if (!$id_compte) {
     
    4542                        $id_exercice = sql_getfetsel('id_exercice','spip_asso_exercices', "fin>='$date_operation' AND debut<='$date_operation'", '', 'debut DESC');
    4643                }
    47                 $debut = intval(_request('debut'));
    4844                $exercice_data = sql_asso1ligne('exercice', $id_exercice);
    4945// traitements
     
    128124                                if ($v['id_compte']==$id_compte) $index_id_compte = $k;
    129125                        }
    130                         /* on recalcule le parametre de limite de la requete */
    131                         if ($index_id_compte>=0) {
    132                                 $debut = intval($index_id_compte/$max_par_page)*$max_par_page;
     126                        if ($index_id_compte>=0) { // on recalcule le parametre de limite de la requete
     127                                set_request('debut', intval($index_id_compte/_MAX_ITEMS_ASSOCIASPIP)*_MAX_ITEMS_ASSOCIASPIP);
    133128                        }
    134129                }
    135130                // TABLEAU
    136                 $table = comptes_while($where, "$debut,$max_par_page", $id_compte);
     131                $table = comptes_while($where, sql_asso1page(), $id_compte);
    137132                if ($table) {
    138133                        //SOUS-PAGINATION
    139                         $nombre_selection = sql_countsel('spip_asso_comptes', $where);
    140                         $pages = intval($nombre_selection/$max_par_page)+1;
    141                         $nav = '';
    142                         if ($pages!=1)
    143                                 for ($i=0; $i<$pages; $i++) {
    144                                         $position = $i*$max_par_page;
    145                                         if ($position==$debut) {
    146                                                 $nav .= '<strong>'.$position.' </strong>';
    147                                         } else {
    148                                                 $h = generer_url_ecrire('comptes',"exercice=$id_exercice"."&imputation=$imputation". (is_numeric($vu) ? "&vu=$vu" : '') ."&debut=$position");
    149                                                 $nav .= "<a href='$h'>$position</a>\n";
    150                                 }
    151                         }
    152                         //
     134                        $nav = association_selectionner_souspage(array('spip_asso_comptes', $where), 'comptes', "exercice=$id_exercice"."&imputation=$imputation". (is_numeric($vu)?"&vu=$vu":'') );
     135                        // ENTETES
    153136                        $table = "<table width='100%' class='asso_tablo' id='asso_tablo_comptes'>\n"
    154137                        . "<thead>\n<tr>"
     
    159142                        . '<th>'. _T('asso:entete_montant') .'</th>'
    160143                        . '<th>'. _T('asso:compte_entete_financier') .'</th>'
    161                         . '<th colspan="3" class="actions">'. _T('asso:entete_action') .'</th>'
     144                        . '<th colspan="3" class="actions">'. _T('asso:entete_actions') .'</th>'
    162145                        . "</tr>\n</thead><tbody>"
    163146                        . $table
  • _plugins_/Association/Associaspip/exec/ressources.php

    r65683 r65704  
    8787                                'id_ressource' => array('asso:entete_id', 'entier'),
    8888                                'statut' => array('', 'puce', $s_ico, false),
    89                                 'intitule' => array('asso:ressources_entete_intitule', 'texte'),
     89                                'intitule' => array('asso:entete_article', 'texte'),
    9090                                'code' => array('asso:entete_code', 'texte'),
    9191                                'pu' => array('asso:ressources_entete_montant', 'prix'),
  • _plugins_/Association/Associaspip/exec/ventes.php

    r65588 r65704  
    7272                echo '<th>'. _T('asso:entete_quantite') . '</th>';
    7373                echo '<th>'. _T('asso:entete_montant') .'</th>';
    74                 echo '<th colspan="2" class="actions">'._T('asso:entete_action').'</th>';
     74                echo '<th colspan="2" class="actions">'._T('asso:entete_actions').'</th>';
    7575                echo "</tr>\n</thead><tbody>";
    7676                $query = sql_select('*', 'spip_asso_ventes', "DATE_FORMAT(date_vente, '%Y')=$annee", '',  'id_vente DESC') ;
  • _plugins_/Association/Associaspip/lang/asso_fr.php

    r65446 r65704  
    4444        'entete_action' => 'Action',
    4545        'entete_actions' => 'Actions',
     46        'entete_article' => 'Article',
    4647        'entete_code' => 'R&eacute;f./Code',
    4748        'entete_commentaire' => 'Commentaire',
     
    620621        'ressources_titre_mise_a_jour' => 'Mise &agrave; jour des ventes',
    621622        # En-tete
    622         'ressources_entete_intitule' => 'Article',
    623         'ressources_entete_code' => 'Code',
    624623        'ressources_entete_montant' => 'Location',
    625624        'ressources_entete_caution' => 'Caution',
Note: See TracChangeset for help on using the changeset viewer.