Changeset 70467 in spip-zone


Ignore:
Timestamp:
Mar 6, 2013, 12:12:00 PM (6 years ago)
Author:
abelass@…
Message:
  • nettoyer les rangements- faire fonctionner quanf pas d'objet présent; utiliser d'avantage l'id_selection_objet
  • le script du drag and drop mis dans selection_interface pour eviter un bubbling
Location:
_plugins_/selection_d_objets/trunk
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/selection_d_objets/trunk/action/ranger.php

    r70454 r70467  
    1212        include_spip("inc/config");
    1313
    14         list($action,$lang,$id_selection_objet,$objet_dest,$id_objet_dest,$load,$nouvel_ordre)=explode('-',$arg);
     14        list($action,$lang,$id_selection_objet,$ordre,$objet_dest,$id_objet_dest,$load)=explode('-',$arg);
     15    $load=_request('load');
    1516
    1617    switch($action){
     
    1819
    1920            include_spip('formulaires/bouton_article');
    20    
    21             if($objet=='rubrique'){
    22            
    23                 $langues=explode(",",lire_config("langues_utilisees"));
    24            
    25                 foreach ($langues as $key => $langue){
    26                
    27                     $where=array(
    28                         'id_selection_objet='.$id_selection_objet,                                             
    29                         );
    30                                
    31                     sql_delete("spip_selection_objets",$where);
    32                        
    33                     // on vérifie l'ordre des objets déjà enregistrés et on corrige si beselection_objetin
    34                    
    35                     $where = array(
    36                     'id_objet_dest='.$id_objet_dest,
    37                     'objet_dest='.sql_quote($objet_dest),
    38                     'lang='.sql_quote($lang)
    39                     );
    40                    
    41                     $ordre=$verifier_ordre($where);
    42                     }
    43                 }
    44             else{
    45            
     21
    4622            spip_log('eliminer 1','selection');
    4723                $where=array(
     
    6036                   
    6137                $ordre=$verifier_ordre($where);
    62                 }
     38               
    6339            break;
     40           
    6441        case 'remonter_ordre':
    6542            $where = array(             
    6643            'lang="'.$lang.'"',
    6744            'objet_dest="'.$objet_dest.'"',
    68             'id_objet_dest="'.$id_objet_dest.'"',                   
     45            'id_objet_dest="'.$id_objet_dest.'"', 
     46            'ordre<="'.$ordre.'"',                           
    6947                );
    7048       
    71             $result = sql_select("*", "spip_selection_objets", $where, "ordre");
     49            $result = sql_select("*", "spip_selection_objets", $where,'', "ordre DESC",2);
    7250           
    7351            while ($row = sql_fetch($result)) {
    74                 $id_selection_objet_row = $row["id_selection_objet"];       
    75                 $ordre_row = $row["ordre"];
    76                 $lang_row = $row["lang"];       
    77                 if ($id_selection_objet  == $id_selection_objet_row) break;
    78                 $ordre_new = $ordre_row;
    79                 $id_selection_objet_prec = $id_selection_objet_row;       
     52                if($id_selection_objet==$row["id_selection_objet"]){
     53                    $o =$ordre-1;
     54                }
     55                else{
     56                    $o =$ordre;
     57                }
     58            sql_updateq("spip_selection_objets", array("ordre" =>$o),'id_selection_objet='.$row['id_selection_objet']);
     59            }
     60                 $where = array(
     61                    'id_objet_dest='.$id_objet_dest,
     62                    'objet_dest='.sql_quote($objet_dest),
     63                    'lang='.sql_quote($lang)   
     64                    );           
     65        $ordre=$verifier_ordre($where);     
     66            break;
    8067           
     68        case 'descendre_ordre':
     69            $where = array(             
     70            'lang="'.$lang.'"',
     71            'objet_dest="'.$objet_dest.'"',
     72            'id_objet_dest="'.$id_objet_dest.'"', 
     73            'ordre>="'.$ordre.'"',                           
     74                );
     75
     76            $result = sql_select("*", "spip_selection_objets", $where,'', "ordre",2);
     77           
     78           
     79            while ($row = sql_fetch($result)) {
     80                if($id_selection_objet==$row["id_selection_objet"]){
     81                    $o =$ordre+1;
     82                }
     83                else{
     84                    $o =$ordre;
     85                }
     86            sql_updateq("spip_selection_objets", array("ordre" =>$o),'id_selection_objet='.$row['id_selection_objet']);
    8187            }
    82 
    83             $where = array(             
    84                     "id_selection_objet='$id_selection_objet'",     
    85                     );
    86                    
    87    
    88             spip_log('action '.$action.serialize($where).$ordre_new,'selecion_objet');
    89                
    90             sql_updateq("spip_selection_objets", array("ordre" => $ordre_new), $where);
    91            
    92             $where = array(             
    93                     "id_selection_objet='$id_selection_objet_prec'",       
    94                     );     
    95                    
    96             spip_log('action '.$action.serialize($where).$ordre_row,'selecion_objet'); 
    97            
    98             sql_updateq("spip_selection_objets", array("ordre" => $ordre_row), $where);
     88                 $where = array(
     89                    'id_objet_dest='.$id_objet_dest,
     90                    'objet_dest='.sql_quote($objet_dest),
     91                    'lang='.sql_quote($lang)   
     92                    );           
     93        $ordre=$verifier_ordre($where); 
    9994            break;
    100                 case 'descendre_ordre':
    101                 $where = array(             
    102                 'lang="'.$lang.'"',
    103                 'objet_dest="'.$objet_dest.'"',
    104                 'id_objet_dest="'.$id_objet_dest.'"',
    105                 "id_objet='$id_objet'",
    106                 "objet='$objet'",                       
    107                 );
    108        
    109    
    110             $result = sql_select("*", "spip_selection_objets",$where, "ordre");
    111            
    112             if ($row = sql_fetch($result)) {
    113    
    114                 $ordre = $row["ordre"];
    115                
    116                 $where = array(             
    117                     'lang="'.$lang.'"',
    118                     'objet_dest="'.$objet_dest.'"',
    119                     'id_objet_dest="'.$id_objet_dest.'"',
    120                     'ordre>"'.$ordre.'"',                   
    121                     );
    122                
    123                 $result2 = sql_select("*", "spip_selection_objets",$where, "ordre LIMIT 0,1");
    124                
    125                     if ($row2 = sql_fetch($result2)) {
    126                         $ordre_suiv = $row2["ordre"];
    127                         $id_objet_suiv = $row2["id_objet"];
    128                         $objet_suiv = $row2["objet"];                   
    129                        
    130                         $where = array(             
    131                             "lang='$lang'",
    132                             "objet_dest='$objet_dest'",
    133                             "id_objet_dest='$id_objet_dest'",
    134                             "id_objet='$id_objet'",
    135                             "objet='$objet'",       
    136                             );
    137                        
    138    
    139                         sql_updateq("spip_selection_objets", array("ordre" => $ordre_suiv),$where);
    140    
    141                        
    142                         $where = array(             
    143                             "lang='$lang'",
    144                             "objet_dest='$objet_dest'",
    145                             "id_objet_dest='$id_objet_dest'",
    146                             "id_objet='$id_objet_suiv'",   
    147                             "objet='$objet_suiv'",     
    148                             );
    149                        
    150                         sql_updateq("spip_selection_objets", array("ordre" => $ordre),$where);
    151                         }
    152                 }
    153             break;
     95        //drag&drop
    15496        case 'nouvel_ordre':
    15597            $nouvel_ordre=explode(',',_request('nouvel_ordre'));
    15698            $ordre=0;
    157             foreach($nouvel_ordre AS $id_objet){
     99            foreach($nouvel_ordre AS $id_selection_objet){
    158100                $ordre++;
    159                 sql_updateq("spip_selection_objets", array("ordre" => $ordre),'id_objet='.$id_objet);
     101                sql_updateq("spip_selection_objets", array("ordre" => $ordre),'id_selection_objet='.$id_selection_objet);
    160102                include_spip('inc/invalideur');
    161103                suivre_invalideur("id='selection_objet/$id_selection_objet'");   
     
    165107
    166108    if($load){
    167        $contexte = array('id_objet_dest'=>$id_objet_dest,'objet_dest'=>$objet_dest,'l'=>$lang);
    168         echo recuperer_fond('prive/objets/liste/inc-selection_interface',$contexte);
     109        $contexte = array('id_objet_dest'=>$id_objet_dest,'objet_dest'=>$objet_dest,'l'=>$lang);
     110        echo recuperer_fond($load,$contexte);
    169111    }
    170112return $return;
  • _plugins_/selection_d_objets/trunk/formulaires/recherche_objets.html

    r70381 r70467  
    88           [(#ENV{types_lien}|count|>{0}|oui)     
    99            [(#SAISIE{selection,type_lien,
    10                     label=ENV{label_lien},
     10                    label=#ENV{label_lien},
    1111                    datas=#ENV{types_lien}})]
    1212                ]
  • _plugins_/selection_d_objets/trunk/modeles_so/selection_interface_tr.html

    r70454 r70467  
    33        <td>
    44        [(#ENV{compteur_boucle}|!={1}|oui)
    5             <div><a class="select" href="[(#URL_ACTION_AUTEUR{ranger,remonter_ordre-[(#ENV{langue})]-[(#ID_SELECTION_OBJET)]-[(#OBJET_DEST)]-[(#ENV{id_objet_dest})]-load})]#selection_objets"><img src="#CHEMIN{prive/themes/spip/images/fleche-haut.gif}" /></a></div>
     5            <div><a class="select" href="[(#URL_ACTION_AUTEUR{ranger,remonter_ordre-[(#ENV{langue})]-[(#ID_SELECTION_OBJET)]-#ORDRE-[(#OBJET_DEST)]-[(#ENV{id_objet_dest})]}|parametre_url{load,prive/objets/liste/inc-selection_interface})]#selection_objets"><img src="#CHEMIN{prive/themes/spip/images/fleche-haut.gif}" /></a></div>
    66            ]
    77        [(#ENV{compteur_boucle}|!={#ENV{total_boucle}}|oui)
    8             <div><a class="select" href="[(#URL_ACTION_AUTEUR{ranger,descendre_ordre-[(#ENV{langue})]-[(#ID_SELECTION_OBJET)]-[(#OBJET_DEST)]-[(#ENV{id_objet_dest})]-load})]#selection_objets"><img src="#CHEMIN{prive/themes/spip/images/fleche-bas.gif}" /></a></div>
     8            <div><a class="select" href="[(#URL_ACTION_AUTEUR{ranger,descendre_ordre-[(#ENV{langue})]-[(#ID_SELECTION_OBJET)]-#ORDRE-[(#OBJET_DEST)]-[(#ENV{id_objet_dest})]}|parametre_url{load,prive/objets/liste/inc-selection_interface})]#selection_objets"><img src="#CHEMIN{prive/themes/spip/images/fleche-bas.gif}" /></a></div>
    99            ]
    1010           
     
    2828        </td>
    2929        <td>
    30             <a href="[(#URL_ACTION_AUTEUR{ranger,supprimer_ordre-[(#ENV{langue})]-[(#ID_SELECTION_OBJET)]-[(#OBJET_DEST)]-[(#ENV{id_objet_dest})]-load})]#selection_objets" class="select"><img src="#CHEMIN{prive/themes/spip/images/item-remove.png}" alt="X" /></a>
     30            <a href="[(#URL_ACTION_AUTEUR{ranger,supprimer_ordre-[(#ENV{langue})]-[(#ID_SELECTION_OBJET)]-#ORDRE-[(#OBJET_DEST)]-[(#ENV{id_objet_dest})]}|parametre_url{load,prive/objets/liste/inc-selection_interface})]#selection_objets" class="select"><img src="#CHEMIN{prive/themes/spip/images/item-remove.png}" alt="X" /></a>
    3131        </td>
    3232    </tr>
  • _plugins_/selection_d_objets/trunk/prive/objets/liste/inc-selection_interface.html

    r70193 r70467  
    1010    <BOUCLE_selection(SELECTION_OBJETS){par ordre,lang}{lang ?=#ENV{l}}{statut ?}{id_objet_dest ?} {objet_dest ?}>
    1111   
    12     [<tr class="tr_liste" id='#ID_OBJET'>(#ID_OBJET|generer_modele{#OBJET,modeles_so/selection_interface_tr,#ARRAY{
     12    [<tr class="tr_liste" id='#ID_SELECTION_OBJET'>(#ID_OBJET|generer_modele{#OBJET,modeles_so/selection_interface_tr,#ARRAY{
     13        ordre,#ORDRE,
    1314        id_selection_objet,#ID_SELECTION_OBJET,
    1415        langue,#ENV{lang},
     
    2627    </div>
    2728</B_selection>
    28 
    29 <script type="text/javascript">
    30     $(function() {
    31         [(#REM)action rangement]
    32         $('#selection_objets[_(#ENV{l,no_lang})] .tr_liste a.select').click(function(){
    33           $('#selection_objets[_(#ENV{l,no_lang})]').load($(this).attr("href"));
    34            return false;
    35         }); 
    36         [(#REM)drag and drop]     
    37         $( "#selection_objets[_(#ENV{l,no_lang})]" ).sortable({items:"tr.tr_liste"});
    38         $( "#selection_objets[_(#ENV{l,no_lang})]" ).bind("sortupdate", function(event, ui) {
    39             var ordre = $(this).sortable('toArray').toString();
    40             $('#selection_objets[_(#ENV{l,no_lang})]').load('[(#URL_ACTION_AUTEUR{ranger,nouvel_ordre-#ENV{l}-0-0-[(#OBJET_DEST)]-[(#ENV{id_objet_dest})]-load}|replace{&amp;,&})]&nouvel_ordre='+ordre);
    41         });
    42     });
    43     </script>
    44  
  • _plugins_/selection_d_objets/trunk/prive/objets/liste/selection_interface.html

    r70292 r70467  
    1212    <INCLURE{fond=prive/objets/liste/inc-selection_interface,l=#VALEUR,env,ajax=tableau_so}/>
    1313    #FORMULAIRE_RECHERCHE_OBJETS{#OBJET_DEST,#ID_OBJET_DEST,#VALEUR} 
     14   
     15<script type="text/javascript">
     16    $(function() {
     17        [(#REM)action rangement]
     18        $('#selection_objets_#VALEUR .tr_liste a.select').click(function(){
     19          $('#selection_objets_#VALEUR').load($(this).attr("href"));
     20           return false;
     21        }); 
     22        [(#REM)drag and drop]     
     23        $( "#selection_objets_#VALEUR" ).sortable({items:"tr.tr_liste"});
     24        $( "#selection_objets_#VALEUR" ).bind("sortupdate", function(event, ui) {
     25            var ordre = $(this).sortable('toArray').toString();
     26            $('#selection_objets_#VALEUR').load('[(#URL_ACTION_AUTEUR{ranger,nouvel_ordre-#VALEUR-0-0-[(#OBJET_DEST)]-[(#ENV{id_objet_dest})]}|parametre_url{load,prive/objets/liste/inc-selection_interface}|replace{&amp;,&})]&nouvel_ordre='+ordre);
     27        });
     28    });
     29    </script>
    1430</BOUCLE_langues>
    1531    <INCLURE{fond=prive/objets/liste/inc-selection_interface,env,ajax=tableau_so,l='',langue=''}/>
    1632    #FORMULAIRE_RECHERCHE_OBJETS{#OBJET_DEST,#ID_OBJET_DEST} 
     33   
     34    <script type="text/javascript">
     35    $(function() {
     36        [(#REM)action rangement]
     37        $('#selection_objets_no_lang .tr_liste a.select').click(function(){
     38          $('#selection_objets_no_lang').load($(this).attr("href"));
     39           return false;
     40        }); 
     41        [(#REM)drag and drop]     
     42        $( "#selection_objets_no_lang" ).sortable({items:"tr.tr_liste"});
     43        $( "#selection_objets_no_lang" ).bind("sortupdate", function(event, ui) {
     44            var ordre = $(this).sortable('toArray').toString();
     45            $('#selection_objets_no_lang').load('[(#URL_ACTION_AUTEUR{ranger,nouvel_ordre-#VALEUR-0-0-[(#OBJET_DEST)]-[(#ENV{id_objet_dest})]}|parametre_url{load,prive/objets/liste/inc-selection_interface}|replace{&amp;,&})]&nouvel_ordre='+ordre);
     46        });
     47    });
     48    </script>
    1749<//B_langues>
    1850#BOITE_FERMER
Note: See TracChangeset for help on using the changeset viewer.