Changeset 70480 in spip-zone


Ignore:
Timestamp:
Mar 6, 2013, 4:44:21 PM (6 years ago)
Author:
abelass@…
Message:

ouvrir la posibilité d'utiliser l'objet "selection_objet" sans liens vers un autre objet

Location:
_plugins_/selection_d_objets
Files:
1 added
13 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/selection_d_objets/branches/1/action/ranger.php

    r70193 r70480  
    1212        include_spip("inc/config");
    1313
    14         list($action,$lang,$id_objet,$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){
    1718        case 'supprimer_ordre' :
    18 
    1919            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_objet='.$id_objet,
    29                         'objet="'.$objet.'"',
    30                         'lang="'.$langue.'"',   
    31                         'id_objet_dest="'.$id_objet_dest.'"',
    32                         'objet_dest="'.$objet_dest.'"',                                               
    33                         );
    34                                
    35                     sql_delete("spip_selection_objets",$where);
    36                        
    37                     // on vérifie l'ordre des objets déjà enregistrés et on corrige si beselection_objetin
    38                    
    39                     $where = array(
    40                     'id_objet_dest='.$id_objet_dest,
    41                     'objet_dest='.sql_quote($objet_dest),
    42                     'lang='.sql_quote($lang)
    43                     );
    44                    
    45                     $ordre=$verifier_ordre($where);
    46                     }
    47                 }
    48             else{
    49            
    5020            spip_log('eliminer 1','selection');
    5121                $where=array(
    52                     'id_objet='.$id_objet,
    53                     'objet='.sql_quote($objet),
    54                     'id_objet_dest='.$id_objet_dest,
    55                     'objet_dest='.sql_quote($objet_dest),
     22                    'id_selection_objet='.$id_selection_objet,
    5623                    );
    5724                                           
     
    6734                   
    6835                $ordre=$verifier_ordre($where);
    69                 }
     36               
    7037            break;
     38           
    7139        case 'remonter_ordre':
    7240            $where = array(             
    7341            'lang="'.$lang.'"',
    7442            'objet_dest="'.$objet_dest.'"',
    75             'id_objet_dest="'.$id_objet_dest.'"',                   
     43            'id_objet_dest="'.$id_objet_dest.'"', 
     44            'ordre<="'.$ordre.'"',                           
    7645                );
    7746       
    78             $result = sql_select("*", "spip_selection_objets", $where, "ordre");
     47            $result = sql_select("*", "spip_selection_objets", $where,'', "ordre DESC",2);
    7948           
    8049            while ($row = sql_fetch($result)) {
    81                 $id_objet_row = $row["id_objet"];
    82                 $objet_row = $row["objet"];         
    83                 $ordre_row = $row["ordre"];
    84                 $lang_row = $row["lang"];       
    85                 if ($id_objet  == $id_objet_row AND $objet_row == $objet) break;
    86                 $ordre_new = $ordre_row;
    87                 $id_objet_prec = $id_objet_row;
    88                 $objet_prec = $objet_row;           
     50                if($id_selection_objet==$row["id_selection_objet"]){
     51                    $o =$ordre-1;
     52                }
     53                else{
     54                    $o =$ordre;
     55                }
     56            sql_updateq("spip_selection_objets", array("ordre" =>$o),'id_selection_objet='.$row['id_selection_objet']);
     57            }
     58                 $where = array(
     59                    'id_objet_dest='.$id_objet_dest,
     60                    'objet_dest='.sql_quote($objet_dest),
     61                    'lang='.sql_quote($lang)   
     62                    );           
     63        $ordre=$verifier_ordre($where);     
     64            break;
    8965           
     66        case 'descendre_ordre':
     67            $where = array(             
     68            'lang="'.$lang.'"',
     69            'objet_dest="'.$objet_dest.'"',
     70            'id_objet_dest="'.$id_objet_dest.'"', 
     71            'ordre>="'.$ordre.'"',                           
     72                );
     73
     74            $result = sql_select("*", "spip_selection_objets", $where,'', "ordre",2);
     75           
     76            while ($row = sql_fetch($result)) {
     77                if($id_selection_objet==$row["id_selection_objet"]){
     78                    $o =$ordre+1;
     79                }
     80                else{
     81                    $o =$ordre;
     82                }
     83            sql_updateq("spip_selection_objets", array("ordre" =>$o),'id_selection_objet='.$row['id_selection_objet']);
    9084            }
    91 
    92             $where = array(             
    93                     "lang='$lang'",
    94                     "objet_dest='$objet_dest'",
    95                     "id_objet_dest='$id_objet_dest'",
    96                     "id_objet='$id_objet'",
    97                     "objet='$objet'",       
    98                     );
    99                    
    100    
    101             spip_log('action '.$action.serialize($where).$ordre_new,'selecion_objet');
    102                
    103             sql_updateq("spip_selection_objets", array("ordre" => $ordre_new), $where);
    104            
    105             $where = array(             
    106                     "lang='$lang'",
    107                     "objet_dest='$objet_dest'",
    108                     "id_objet_dest='$id_objet_dest'",
    109                     "id_objet='$id_objet_prec'",   
    110                     "objet='$objet_prec'",     
    111                     );     
    112                    
    113             spip_log('action '.$action.serialize($where).$ordre_row,'selecion_objet'); 
    114            
    115             sql_updateq("spip_selection_objets", array("ordre" => $ordre_row), $where);
     85            $where = array(
     86                'id_objet_dest='.$id_objet_dest,
     87                'objet_dest='.sql_quote($objet_dest),
     88                'lang='.sql_quote($lang)   
     89                );           
     90            $ordre=$verifier_ordre($where); 
    11691            break;
    117                 case 'descendre_ordre':
    118                 $where = array(             
    119                 'lang="'.$lang.'"',
    120                 'objet_dest="'.$objet_dest.'"',
    121                 'id_objet_dest="'.$id_objet_dest.'"',
    122                 "id_objet='$id_objet'",
    123                 "objet='$objet'",                       
    124                 );
    125        
    126    
    127             $result = sql_select("*", "spip_selection_objets",$where, "ordre");
    128            
    129             if ($row = sql_fetch($result)) {
    130    
    131                 $ordre = $row["ordre"];
    132                
    133                 $where = array(             
    134                     'lang="'.$lang.'"',
    135                     'objet_dest="'.$objet_dest.'"',
    136                     'id_objet_dest="'.$id_objet_dest.'"',
    137                     'ordre>"'.$ordre.'"',                   
    138                     );
    139                
    140                 $result2 = sql_select("*", "spip_selection_objets",$where, "ordre LIMIT 0,1");
    141                
    142                     if ($row2 = sql_fetch($result2)) {
    143                         $ordre_suiv = $row2["ordre"];
    144                         $id_objet_suiv = $row2["id_objet"];
    145                         $objet_suiv = $row2["objet"];                   
    146                        
    147                         $where = array(             
    148                             "lang='$lang'",
    149                             "objet_dest='$objet_dest'",
    150                             "id_objet_dest='$id_objet_dest'",
    151                             "id_objet='$id_objet'",
    152                             "objet='$objet'",       
    153                             );
    154                        
    155    
    156                         sql_updateq("spip_selection_objets", array("ordre" => $ordre_suiv),$where);
    157    
    158                        
    159                         $where = array(             
    160                             "lang='$lang'",
    161                             "objet_dest='$objet_dest'",
    162                             "id_objet_dest='$id_objet_dest'",
    163                             "id_objet='$id_objet_suiv'",   
    164                             "objet='$objet_suiv'",     
    165                             );
    166                        
    167                         sql_updateq("spip_selection_objets", array("ordre" => $ordre),$where);
    168                         }
    169                 }
    170             break;
     92        //drag&drop
    17193        case 'nouvel_ordre':
    17294            $nouvel_ordre=explode(',',_request('nouvel_ordre'));
    17395            $ordre=0;
    174             foreach($nouvel_ordre AS $id_objet){
     96            foreach($nouvel_ordre AS $id_selection_objet){
    17597                $ordre++;
    176                 sql_updateq("spip_selection_objets", array("ordre" => $ordre),'id_objet='.$id_objet);
     98                sql_updateq("spip_selection_objets", array("ordre" => $ordre),'id_selection_objet='.$id_selection_objet);
    17799                include_spip('inc/invalideur');
    178100                suivre_invalideur("id='selection_objet/$id_selection_objet'");   
     
    182104
    183105    if($load){
    184        $contexte = array('id_objet_dest'=>$id_objet_dest,'objet_dest'=>$objet_dest,'l'=>$lang);
    185         echo recuperer_fond('prive/objets/liste/inc-selection_interface',$contexte);
     106        $contexte = array('id_objet_dest'=>$id_objet_dest,'objet_dest'=>$objet_dest,'l'=>$lang);
     107        echo recuperer_fond($load,$contexte);
    186108    }
    187109return $return;
  • _plugins_/selection_d_objets/branches/1/formulaires/editer_selection_objet.php

    r70395 r70480  
    2323function formulaires_editer_selection_objet_charger_dist($id_selection_objet='new', $retour='', $lier_trad=0, $config_fonc='', $row=array(), $hidden=''){
    2424        $valeurs = formulaires_editer_objet_charger('selection_objet',$id_selection_objet,'',$lier_trad,$retour,$config_fonc,$row,$hidden);
    25    
     25
     26
     27
    2628    if(!$valeurs['objet_dest'])$valeurs['objet_dest']=_request('objet_dest');
    27     if(!$valeurs['id_objet_dest']) $valeurs['id_objet_dest']=_request('id_objet_dest');
    28     if(!$valeurs['objet'])$valeurs['objet_dest']=_request('objet');
    29     if(!$valeurs['id_objet']) $valeurs['id_objet_dest']=_request('id_objet');       
     29    if(!$valeurs['id_objet_dest']) $valeurs['id_objet_dest']=_request('id_objet_dest');  
     30    if(!$valeurs['id_objet']) $valeurs['id_objet']=_request('id_objet'); 
     31    if(!$valeurs['objet']) $valeurs['objet']=_request('objet');           
    3032    if(!$valeurs['titre']) $valeurs['titre']=_request('titre');
    3133    if(!$valeurs['statut']) $valeurs['statut']=_request('statut');
    3234    if(!$valeurs['lang']) $valeurs['lang']=_request('lang');     
    33    
     35
    3436    $valeurs['_hidden'].='<input type="hidden" name="lang" value="'.$valeurs['lang'].'">';             
    3537    $valeurs['_hidden'].='<input type="hidden" name="objet_dest" value="'.$valeurs['objet_dest'].'">';
  • _plugins_/selection_d_objets/branches/1/formulaires/recherche_objets.html

    r70381 r70480  
    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/branches/1/inc/verifier_ordre.php

    r69181 r70480  
    33if (!defined("_ECRIRE_INC_VERSION")) return;
    44function inc_verifier_ordre_dist($where){
    5     $result_num = sql_select("*","spip_selection_objets", $where,'', "ordre,id_objet");
     5    $sql = sql_select("id_selection_objet","spip_selection_objets", $where,'', "ordre,id_selection_objet");
    66    $ordre = 0;
    77               
    88    // on vérifie l'ordre des objets déjà enregistrés et on corrige si beselection_objetin
    99               
    10     while ($row = sql_fetch($result_num)) {
     10    while ($row = sql_fetch($sql)) {
    1111        $ordre++;
    1212        $where = array(
    13             'id_objet='.$row['id_objet'],                   
    14             'id_objet_dest='.$row['id_objet_dest'],
    15             'objet_dest='.sql_quote($row['objet_dest']),
    16             'lang='.sql_quote($row['lang']),   
     13            'id_selection_objet='.$row['id_selection_objet'],                   
    1714            );
    1815
  • _plugins_/selection_d_objets/branches/1/lang/selection_objet_fr.php

    r70380 r70480  
    6666        'titre_langue_objet' => 'Langue de cet Objet Sélectionné',
    6767        'titre_logo_selection_objet' => 'Logo de cet Objet Sélectionné',
    68         'titre_selection_objets' => 'Objet Sélectionné',
     68        'titre_selection_objet' => 'Objet Sélectionné',
     69        'titre_selection_objets' => 'Objet Sélectionnés',
    6970        'titre_selection_objets_rubrique' => 'Objets Sélectionnés de la rubrique',
    7071        'type_liens_defaut' => 'types de lien par défaut, peuvent être surchargés ci-bas',
  • _plugins_/selection_d_objets/branches/1/modeles_so/selection_interface_tr.html

    r70129 r70480  
    33        <td>
    44        [(#ENV{compteur_boucle}|!={1}|oui)
    5             <div><a class="select" href="[(#URL_ACTION_AUTEUR{ranger,remonter_ordre-[(#ENV{langue})]-[(#ID_OBJET)]-[(#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_OBJET)]-[(#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_OBJET)]-[(#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/branches/1/paquet.xml

    r70395 r70480  
    22        prefix="selection_objet"
    33        categorie="edition"
    4         version="1.6.7"
     4        version="1.7.0"
    55        etat="dev"
    66        compatibilite="[3.0.5;3.0.*]"
  • _plugins_/selection_d_objets/branches/1/prive/objets/liste/inc-selection_interface.html

    r70193 r70480  
    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,
    14         langue,#ENV{lang},
     15        langue,#ENV{l},
    1516        objet_dest,#OBJET_DEST,
    1617        id_objet_dest,#ID_OBJET_DEST,
     
    2627    </div>
    2728</B_selection>
    28 
    2929<script type="text/javascript">
    3030    $(function() {
     
    3434           return false;
    3535        }); 
    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         });
    4236    });
    43     </script>
    44  
     37</script>
  • _plugins_/selection_d_objets/branches/1/prive/objets/liste/selection_interface.html

    r70292 r70480  
    1010<BOUCLE_langues(POUR){tableau #ENV**{langue}}>
    1111    [(#GET{n_langues}|>{1}|oui)<h4 class="titrem">[(#VALEUR|traduire_nom_langue)]</h4>]
    12     <INCLURE{fond=prive/objets/liste/inc-selection_interface,l=#VALEUR,env,ajax=tableau_so}/>
     12    <INCLURE{fond=prive/objets/liste/inc-selection_interface,l=#VALEUR,env}/>
    1313    #FORMULAIRE_RECHERCHE_OBJETS{#OBJET_DEST,#ID_OBJET_DEST,#VALEUR} 
     14   
     15<script type="text/javascript">
     16    $(function() {
     17        [(#REM)drag and drop]     
     18        $( "#selection_objets_#VALEUR" ).sortable({items:"tr.tr_liste"});
     19        $( "#selection_objets_#VALEUR" ).bind("sortupdate", function(event, ui) {
     20            var ordre = $(this).sortable('toArray').toString();
     21            $('#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);
     22        });
     23    });
     24    </script>
    1425</BOUCLE_langues>
    15     <INCLURE{fond=prive/objets/liste/inc-selection_interface,env,ajax=tableau_so,l='',langue=''}/>
     26    <INCLURE{fond=prive/objets/liste/inc-selection_interface,env,l='',langue=''}/>
    1627    #FORMULAIRE_RECHERCHE_OBJETS{#OBJET_DEST,#ID_OBJET_DEST} 
     28   
     29    <script type="text/javascript">
     30    $(function() {
     31        [(#REM)drag and drop]     
     32        $( "#selection_objets_no_lang" ).sortable({items:"tr.tr_liste"});
     33        $( "#selection_objets_no_lang" ).bind("sortupdate", function(event, ui) {
     34            var ordre = $(this).sortable('toArray').toString();
     35            $('#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);
     36        });
     37    });
     38    </script>
    1739<//B_langues>
    1840#BOITE_FERMER
  • _plugins_/selection_d_objets/branches/1/selection_objet_fonctions.php

    r70395 r70480  
    3535/*Etablit le titre de l'objet*/
    3636function titre_objet_sel($objet,$contexte){
     37
    3738    $exceptions=charger_fonction('exceptions','inc');
    3839    $exception_titre=$exceptions('titre');
     
    4445            $titre=$f[1];
    4546            }
    46         elseif($objet) $titre=$objet.'_'.$id_objet;
     47        elseif($objet){
     48            $table_sql = table_objet_sql($objet);
     49            $tables=lister_tables_objets_sql();
     50            $titre_objet=_T($tables[$table_sql]['texte_objet']);
     51            $id=$contexte['id_objet'];
     52            if($objet='selection_objet')$id=$contexte['id_selection_objet'];
     53           $titre=$titre_objet.' '.$id;
     54        }
    4755   
    4856    }
     
    137145    $exception_objet=$exceptions();
    138146   
    139 
    140     if($exception_objet['objet'][$objet]){
     147    if($objet){
     148          if($exception_objet['objet'][$objet]){
    141149         $objet=$exception_objet['objet'][$objet];
    142150          $table='spip_'.$objet;
    143     }
    144     else $table='spip_'.$objet.'s';
    145     if(!$where)$where='id_'.$objet.'='.$id_objet;
    146    
    147     if(!$contexte=sql_fetsel('*',$table,$where))$contexte=array();
    148    
     151        }
     152        else $table='spip_'.$objet.'s';
     153        if(!$where)$where='id_'.$objet.'='.$id_objet;
     154       
     155        if(!$contexte=sql_fetsel('*',$table,$where))$contexte=array();
     156         
     157        }
     158    else $contexte=array();
     159
    149160    //Filtrer les champs vides
    150161    foreach($env as $k=>$v){
  • _plugins_/selection_d_objets/branches/1/selection_objet_pipelines.php

    r70381 r70480  
    8080            if (!$trad_rub=test_plugin_actif('tradrub')) $contexte['langue']=explode(',',lire_config('langues_multilingue'));
    8181            }
    82            $flux["data"] .= recuperer_fond('prive/objets/liste/selection_interface', $contexte);
     82           $flux["data"] .= recuperer_fond('prive/objets/liste/selection_interface', $contexte,array('ajax'=>'tableau_so'));
    8383            }
    8484        }
  • _plugins_/selection_d_objets/trunk/action/ranger.php

    r70467 r70480  
    1717    switch($action){
    1818        case 'supprimer_ordre' :
    19 
    2019            include_spip('formulaires/bouton_article');
    21 
    2220            spip_log('eliminer 1','selection');
    2321                $where=array(
     
    7674            $result = sql_select("*", "spip_selection_objets", $where,'', "ordre",2);
    7775           
    78            
    7976            while ($row = sql_fetch($result)) {
    8077                if($id_selection_objet==$row["id_selection_objet"]){
     
    8683            sql_updateq("spip_selection_objets", array("ordre" =>$o),'id_selection_objet='.$row['id_selection_objet']);
    8784            }
    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); 
     85            $where = array(
     86                'id_objet_dest='.$id_objet_dest,
     87                'objet_dest='.sql_quote($objet_dest),
     88                'lang='.sql_quote($lang)   
     89                );           
     90            $ordre=$verifier_ordre($where); 
    9491            break;
    9592        //drag&drop
  • _plugins_/selection_d_objets/trunk/paquet.xml

    r70395 r70480  
    22        prefix="selection_objet"
    33        categorie="edition"
    4         version="1.6.7"
     4        version="1.7.0"
    55        etat="dev"
    66        compatibilite="[3.0.5;3.0.*]"
Note: See TracChangeset for help on using the changeset viewer.