Changeset 67832 in spip-zone


Ignore:
Timestamp:
Nov 20, 2012, 5:55:49 PM (7 years ago)
Author:
esj@…
Message:

Associaspip rationnalisation: suite de r67828, la jointure n'est en fait pas nécessaire. Et nettoyage de la fonction construisant le Select des destinations pour à terme simplifier la présentation quand il n'y a qu'une seule destination.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/Associaspip/trunk/inc/association_comptabilite.php

    r67828 r67832  
    3030 */
    3131function association_liste_destinations_associees($id_operation) {
    32         $sql = sql_select(' spip_asso_destination_op.*', 'spip_asso_destination_op RIGHT JOIN spip_asso_destination ON spip_asso_destination.id_destination=spip_asso_destination_op.id_destination', "id_compte=" . intval($id_operation));
     32        $sql = sql_select(' spip_asso_destination_op.*', 'spip_asso_destination_op', "id_compte=" . intval($id_operation));
    3333        $destinations = array();
    3434        while ( $r = sql_fetch($sql) ) {
     
    5656 */
    5757function association_editeur_destinations($destinations, $defaut='') {
    58     $options_destinations = '';
    59     $sql = sql_select('id_destination,intitule', 'spip_asso_destination', '', '', 'intitule');
    60     while ($destination_info = sql_fetch($sql)) { // recupere la liste de toutes les destinations dans un code HTML <option value="destination_id">destination</option>
    61         $options_destinations .= '<option value="'. $destination_info['id_destination'] .'">'.$destination_info['intitule'].'</option>';
    62     }
     58    $options = sql_allfetsel('id_destination,intitule', 'spip_asso_destination', '', '', 'intitule');
     59    if (!$options) return '';
     60    // Constuire les balises Options d'un Select
     61    // mais il faudrait arranger ca si une seule
     62    foreach ($options as $k => $v) {
     63        $options[$k] = '<option value="'. $v['id_destination'] .'">'.$v['intitule'].'</option>';
     64    }
     65    $options = join("\n", $options);
     66    $idIndex = 1;
    6367    $res = '';
    64     if ($options_destinations) { // des destinations sont definies et on en a genere la liste HTML
    65         $res = '<script type="text/javascript" src="'.find_in_path('javascript/jquery.destinations_form.js').'"></script>';
    66         $res .= '<label for="destination">'
    67             . _T('asso:destination') .'</label>'
    68             . '<div id="divTxtDestination" class="formulaire_edition_destinations">';
    69         $idIndex = 1;
    70         if ( is_array($destinations) ) { // si on a une liste de destinations (on edite une operation)
     68    if ( is_array($destinations) ) {
     69      // si on a une liste de destinations (on edite une operation)
    7170            foreach ($destinations as $destId => $destMontant) { // restitution des listes de selection HTML
    72                 $destination_selected = preg_replace('/(value="'.$destId.'")/', '$1 selected="selected"', $options_destinations);
    73                 $res .= '<div id="row'.$idIndex.'" class="choix"><ul>';
    74                 $res .= '<li class="editer_id_dest['.$idIndex.']">'
    75                     . '<select name="id_dest['.$idIndex.']" id="id_dest['.$idIndex.']" >'
    76                     . $destination_selected
    77                     . '</select></li>';
    78                 if (!$GLOBALS['association_metas']['unique_dest']) { // destinations multiples
     71                $res .= '<div id="row'.$idIndex.'" class="choix"><ul>'
     72                . '<li class="editer_id_dest['.$idIndex.']">'
     73                . '<select name="id_dest['.$idIndex.']" id="id_dest['.$idIndex.']" >'
     74                . preg_replace('/(value="'.$destId.'")/', '$1 selected="selected"', $options)
     75                . '</select></li>';
     76
     77                if (!$GLOBALS['association_metas']['unique_dest']) {
    7978                    $res .= '<li class="editer_montant_dest['.$idIndex.']"><input name="montant_dest['.$idIndex.']" value="'
    8079                        . association_formater_nombre($destMontant)
     
    8887                $idIndex++;
    8988            }
    90         } else { // pas de destination deja definies pour cette operation
     89    } else { // pas de destination deja definies pour cette operation
    9190            if ($defaut!='') {
    92                 $options_destinations = preg_replace('/(value="'.$defaut.'")/', '$1 selected="selected"', $options_destinations);
     91                $options = preg_replace('/(value="'.$defaut.'")/', '$1 selected="selected"', $options);
    9392            }
    9493            $res .= '<div id="row1" class="choix"><ul><li class="editer_id_dest[1]"><select name="id_dest[1]" id="id_dest[1]" >'
    95                 . $options_destinations . '</select></li>';
     94                . $options . '</select></li>';
    9695            if (!$GLOBALS['association_metas']['unique_dest']) { // destinations multiples
    9796                $res .= '<li class="editer_montant_dest[1]"><input name="montant_dest[1]" value="'
     
    10099            }
    101100            $res .= '</div>';
    102         }
    103         if (!$GLOBALS['association_metas']['unique_dest']) // destinations multiples
     101    }
     102    if (!$GLOBALS['association_metas']['unique_dest']) // destinations multiples
    104103            $res .= '<input type="hidden" id="idNextDestination" value="'.($idIndex+1).'">';
    105         $res .= '</div>';
    106     }
    107     return $res;
     104
     105    return '<script type="text/javascript" src="'.find_in_path('javascript/jquery.destinations_form.js').'"></script>'
     106      . '<label for="destination">'
     107      . _T('asso:destination')
     108      . '</label>'
     109      . '<div id="divTxtDestination" class="formulaire_edition_destinations">'
     110      . $res
     111      . '</div>';
     112
    108113}
    109114
Note: See TracChangeset for help on using the changeset viewer.