Changeset 65538 in spip-zone


Ignore:
Timestamp:
Sep 4, 2012, 11:51:01 PM (7 years ago)
Author:
gildas.cotomale@…
Message:

debut de factorisation du code listant une table

Location:
_plugins_/Association/Associaspip
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/Association/Associaspip/association_options.php

    r65491 r65538  
    590590}
    591591
     592/**
     593 * Affichage d'un texte formate
     594 *
     595 * @param string $texte
     596 *   Le texte brut initial
     597 * @param string $filtre
     598 *   Filtre SPIP a appliquer au texte
     599 * @param array $params
     600 *   Liste des parametres du filtre
     601 * @return string $res
     602 *   Texte formate
     603 * @note
     604 *   http://spipistrelle.clinamen.org/spip.php?article16
     605 */
     606function association_formater_texte($texte, $filtre='', $params=array() )
     607{
     608        if ( !is_array($params) )
     609                $params = array($params);
     610        $ok = array_unshift($params, $texte);
     611        return $filtre?call_user_func_array($filtre, $params):$texte;
     612}
     613
    592614/** @} */
    593615
     
    13371359 *   array('bouton', 'parametre1', ...)
    13381360 *   Le nom du type de bouton est celui de la fonction d'action du meme nom prefixee de association_bouton_
     1361 * @param array $extra
     1362 *   Elements annexes optionnel :
     1363 *   - 'table' => 'nom_de_la_table_sql_sans_prefixe',
     1364 *   - 'key' => 'nom_de_la_colonne_cle_primaire',
     1365 *   - 'colors' => array('couleur1', ...)
    13391366 * @return string $res
    13401367 *   Table-HTML listant les donnees formatees
    13411368 */
    1342 function association_bloc_listehtml($entetes, $reponse_sql, $formats, $boutons=array() )
    1343 {
    1344         $res =  '<table width="100%" class="asso_tablo" id="asso_tablo_'.$id_table.'">'; // ids:table
     1369function association_bloc_listehtml($entetes, $reponse_sql, $formats, $boutons=array(), $extra=array() )
     1370{
     1371        $res =  '<table width="100%" class="asso_tablo'. ($extra['table']?'" id="liste_'.$extra['table']:'').'">';
    13451372        $res .= "\n<thead>\n<tr>";
    13461373        foreach ($entetes as $entete) {
     
    13511378        }
    13521379        $res .= "</tr>\n</thead><tbody>";
    1353         while ($data = sql_fetch($query_ressource)) {
    1354                 $res .= '<tr>';
     1380        if ( !$reponse_sql && $extra['table'] ) {
     1381                $reponse_sql = sql_select('*', 'spip_'.$extra['table'], $extra['where'], $extra['order']) ;
     1382        }
     1383        $nbr_lignes = 0;
     1384        while ($data = sql_fetch($reponse_sql)) {
     1385                $res .= '<tr'. ($extra['key']?' id="'.$data[$extra['key']].'"':'') .'>';
    13551386                foreach ($formats as $champ=>$params) {
    13561387                        $format = array_shift($params);
    13571388                        switch ($format) {
    13581389                                case 'date' :
    1359                                         $classe = 'date';
     1390                                case 'heure' :
     1391                                        $classes = 'date';
    13601392                                        break;
    13611393                                case 'duree' :
    1362                                         $classe = 'date decimal';
    1363                                         break;
    1364                                 case 'entier' : // ajouter
    1365                                         $classe = 'number integer';
    1366                                         break;
    13671394                                case 'nombre' :
    1368                                         $classe = 'number decimal';
    1369                                         break;
    13701395                                case 'prix' :
    1371                                         $classe = 'number price';
    1372                                         break;
    1373                                 case 'spip' : // ajouter : propre()
    1374                                         $classe = 'text';
    1375                                         break;
     1396                                        $classes = 'decimal';
     1397                                        break;
     1398                                case 'entier' :
     1399                                        $classes = 'integer';
     1400                                        $format = 'nombre'; $params = array(0);
     1401                                        break;
     1402                                case 'texte' : // ajouter : propre()
    13761403                                default :
    1377                                         $classe = 'text';
    1378                                         break;
    1379                         }
    1380                         $res .= '<td class="'.$classe.'">'. call_user_func_array("association_formater_$format", array_unshift($params,$data[$champ]) ) .'</td>';
     1404                                        $classes = 'text';
     1405                                        break;
     1406                        }
     1407                        if ( is_array($extra['colors']) && $nbr_couleurs=count($extra['colors']) ) {
     1408                                $nbr_lignes++;
     1409                                $classes .= ' '.$extra['colors'][$nbr_lignes%$nbr_couleurs];
     1410                        }
     1411                        $ok = array_unshift($params,$data[$champ]);
     1412                        $res .= '<td class="'.$classes.'">'. call_user_func_array("association_formater_$format", $params) .'</td>';
    13811413                }
    13821414                foreach ($boutons as $params) {
    1383                         $type = array_shift($params)
    1384                         foreach (&$params as &$param) {
    1385                                 $param = str_replace('$$', $data[$key], $param);
    1386                         }
    1387                         $res .= call_user_func_array("association_bouton_$type", $params );
     1415                        $type = array_shift($params);
     1416                        foreach ($params as &$param) {
     1417                                $param = str_replace('$$', $data[$extra['key']], $param);
     1418                        }
     1419                        $res .= call_user_func_array("association_bouton_$type", $params);
    13881420                }
    13891421                $res .= "</tr>\n";
    13901422        }
    1391         $res .= "</tbody>\n</table>\n";
    1392 
     1423        return $res."</tbody>\n</table>\n";
    13931424}
    13941425
  • _plugins_/Association/Associaspip/exec/categories.php

    r65469 r65538  
    3232                ));
    3333                debut_cadre_association('calculatrice.gif','toutes_categories_de_cotisations');
    34                 echo "<table width='100%' class='asso_tablo' id='asso_tablo_categories'>\n";
    35                 echo "<thead>\n<tr>";
    36                 echo '<th>'. _T('asso:entete_id') .'</th>';
    37                 echo '<th>'. _T('asso:entete_code') .'</th>';
    38                 echo '<th>'. _T('asso:libelle_intitule') .'</th>';
    39                 echo '<th>'. _T('asso:entete_duree') .'</th>';
    40                 echo '<th>'. _T('asso:entete_montant') .'</th>';
    41                 echo '<th>'. _T('asso:entete_commentaire') .'</th>';
    42                 echo '<th colspan="2" class="actions">' . _T('asso:entete_actions') .'</th>';
    43                 echo "</tr>\n</thead><tbody>";
    44                 $query = sql_select('*', 'spip_asso_categories', '', 'id_categorie') ;
    45                 while ($data = sql_fetch($query)) {
    46                         echo '<tr>';
    47                         echo '<td class="integer">'.$data['id_categorie'].'</td>';
    48                         echo '<td class="text">'.$data['valeur'].'</td>';
    49                         echo '<td class="text">'.$data['libelle'].'</td>';
    50                         echo '<td class="decimal">'. association_formater_duree($data['duree'],'m') .'</td>';
    51                         echo '<td class="decimal">'. association_formater_prix($data['cotisation']) .'</td>';
    52                         echo '<td class="text">'. propre($data['commentaires']) .'</td>';
    53                         echo association_bouton_supprimer('categorie', $data['id_categorie'], 'td');
    54                         echo association_bouton_modifier('categorie', $data['id_categorie'], 'td');
    55                         echo "</tr>\n";
    56                 }
    57                 echo "</tbody>\n</table>\n";
     34                echo association_bloc_listehtml(
     35                        array('asso:entete_id', 'asso:entete_code', 'asso:libelle_intitule', 'asso:entete_duree', 'asso:entete_montant', 'asso:entete_commentaire', ), // entetes
     36                        sql_select('*', 'spip_asso_categories', '', 'id_categorie'), // ressource requete
     37                        array(
     38                                'id_categorie' => array('entier'),
     39                                'valeur' => array('texte'),
     40                                'libelle' => array('texte'),
     41                                'duree' => array('duree', 'dtstart'),
     42                                'cotisation' => array('prix'),
     43                                'commentaire' => array('texte', 'propre'),
     44                        ), // formats des donnees
     45                        array(
     46                                array('categorie', 'exercice', 'id=$$', 'td'),
     47                                array('categorie', 'exercice', 'id=$$', 'td'),
     48                        ), // boutons d'action
     49                        array('key'=>'id_categorie') // extra
     50                );
    5851                fin_page_association();
    5952        }
  • _plugins_/Association/Associaspip/exec/exercices.php

    r65469 r65538  
    4242                ) );
    4343                debut_cadre_association('calculatrice.gif', 'tous_les_exercices');
    44                 echo "<table width='100%' class='asso_tablo' id='asso_tablo_exercices'>\n";
    45                 echo "<thead>\n<tr>";
    46                 echo '<th>'. _T('asso:entete_id') .'</th>';
    47                 echo '<th>'. _T('asso:entete_intitule') .'</th>';
    48                 echo '<th>'. _T('asso:exercice_entete_debut') .'</th>';
    49                 echo '<th>'. _T('asso:exercice_entete_fin') .'</th>';
    50                 echo '<th>'. _T('asso:entete_commentaire') .'</th>';
    51                 echo '<th colspan="2" class="actions">'. _T('asso:entete_actions') .'</th>';
    52                 echo "</tr>\n</thead><tbody>";
    53                 $query = sql_select('*', 'spip_asso_exercices', '', 'intitule DESC') ;
    54                 while ($data = sql_fetch($query)) {
    55                         echo '<tr>';
    56                         echo '<td class="integer">'.$data['id_exercice'].'</td>';
    57                         echo '<td class="text">'.$data['intitule'].'</td>';
    58                         echo '<td class="date">'. association_formater_date($data['debut'],'dtstart') .'</td>';
    59                         echo '<td class="date">'. association_formater_date($data['fin'],'dtend') .'</td>';
    60                         echo '<td class="text">'. propre($data['commentaire']) .'</td>';
    61                         echo association_bouton_supprimer('exercice', 'id='.$data['id_exercice'], 'td');
    62                         echo association_bouton_modifier('exercice', 'id='.$data['id_exercice'], 'td');
    63                         echo "</tr>\n";
    64                 }
    65                 echo "</tbody>\n</table>\n";
     44                echo association_bloc_listehtml(
     45                        array('asso:entete_id', 'asso:entete_intitule', 'asso:exercice_entete_debut', 'asso:exercice_entete_fin', 'asso:entete_commentaire', ), // entetes
     46                        sql_select('*', 'spip_asso_exercices', '', 'intitule DESC'), // ressource requete
     47                        array(
     48                                'id_exercice' => array('entier'),
     49                                'intitule' => array('texte'),
     50                                'debut' => array('date', 'dtstart'),
     51                                'fin' => array('date', 'dtend'),
     52                                'commentaire' => array('texte', 'propre'),
     53                        ), // formats des donnees
     54                        array(
     55                                array('supprimer', 'exercice', 'id=$$', 'td'),
     56                                array('modifier', 'exercice', 'id=$$', 'td'),
     57                        ), // boutons d'action
     58                        array('key'=>'id_exercice') // extra
     59                );
    6660                fin_page_association();
    6761        }
Note: See TracChangeset for help on using the changeset viewer.