Changeset 65390 in spip-zone


Ignore:
Timestamp:
Aug 30, 2012, 10:44:29 PM (7 years ago)
Author:
maieul@…
Message:

ne pas melanger le type d'action et le type de liaison + pouvoir supprimer / déplacer des liaisons non typées

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/a2a/branches/type/action/a2a.php

    r65352 r65390  
    88        $args = $securiser_action();
    99
    10         list($action, $id_article_cible, $id_article_source, $type, $type_liaison) = explode('/',$args);
    11 
     10        list($action, $id_article_cible, $id_article_source, $type_liaison, $type) = explode('/',$args);
     11       
     12       
    1213        if (!$action_a2a = charger_fonction('a2a_'.$action,'action')) {
    1314                include_spip('inc/minipres');
     
    1516        }
    1617
    17         $action_a2a($id_article_cible, $id_article_source, $type, $type_liaison);
     18        $action_a2a($id_article_cible, $id_article_source, $type, $type_liaison="");
    1819       
    1920        include_spip('inc/header');
     
    4041                sql_update('spip_articles_lies', array('rang' => sql_quote(--$r["rang"])), 'id_article=' . sql_quote($r["id_article"]) . 'AND id_article_lie=' . sql_quote($r["id_article_lie"]));
    4142        }
    42        
    43         sql_delete('spip_articles_lies',  array(
    44                 'id_article = ' . sql_quote($id_article),
    45                 'id_article_lie = ' . sql_quote($id_article_cible),
    46                 'type_liaison=' . sql_quote($type_liaison)
    47                 ));
    48        
     43        if ($type_liaison){
     44                sql_delete('spip_articles_lies',  array(
     45                        'id_article = ' . sql_quote($id_article),
     46                        'id_article_lie = ' . sql_quote($id_article_cible),
     47                        'type_liaison=' . sql_quote($type_liaison)
     48                        ));
     49        }
     50        else{
     51                                sql_delete('spip_articles_lies',  array(
     52                        'id_article = ' . sql_quote($id_article),
     53                        'id_article_lie = ' . sql_quote($id_article_cible),
     54                        'type_liaison IS NULL'
     55                        ));
     56        }
    4957        if($type == 'both'){
    5058                $rang = sql_getfetsel('rang', 'spip_articles_lies', 'id_article=' . sql_quote($id_article_cible) . 'AND id_article_lie=' . sql_quote($id_article)  . ' AND type_liaison=' . sql_quote($type_liaison));
     
    5664                        sql_update('spip_articles_lies', array('rang' => sql_quote(--$r["rang"])), 'id_article=' . sql_quote($r["id_article"]) . 'AND id_article_lie=' . sql_quote($r["id_article_lie"]));
    5765                }
    58        
    59                 sql_delete('spip_articles_lies',  array(
    60                         'id_article = ' . sql_quote($id_article_cible),
    61                         'id_article_lie = ' . sql_quote($id_article),
    62                         'type_liaison=' . sql_quote($type_liaison)
    63                         ));
     66                if ($type_liaison){
     67                        sql_delete('spip_articles_lies',  array(
     68                                'id_article = ' . sql_quote($id_article_cible),
     69                                'id_article_lie = ' . sql_quote($id_article),
     70                                'type_liaison=' . sql_quote($type_liaison)
     71                                ));
     72                }
     73                else{
     74                        sql_delete('spip_articles_lies',  array(
     75                                'id_article = ' . sql_quote($id_article_cible),
     76                                'id_article_lie = ' . sql_quote($id_article),
     77                                'type_liaison IS NULL'
     78                                ));
     79                }
    6480        }
    6581        return true;
     
    6783
    6884
    69 function action_a2a_modifier_rang_dist($id_article_cible, $id_article, $type_liaison, $type_modif){
    70        
     85function action_a2a_modifier_rang_dist($id_article_cible, $id_article, $type_modif){
     86
    7187        if ($type_modif == "plus"){
    7288                        //on recupere le rang de l'article à modifier
    73                         $rang = sql_getfetsel('rang', 'spip_articles_lies', 'id_article=' . sql_quote($id_article) . ' AND id_article_lie=' . sql_quote($id_article_cible) . ' AND type_liaison=' . sql_quote($type_liaison));
     89                        if ($type_liaison){
     90                                $rang = sql_getfetsel('rang', 'spip_articles_lies', 'id_article=' . sql_quote($id_article) . ' AND id_article_lie=' . sql_quote($id_article_cible) . ' AND type_liaison=' . sql_quote($type_liaison));
     91                        }
     92                        else{
     93                                $rang = sql_getfetsel('rang', 'spip_articles_lies', 'id_article=' . sql_quote($id_article) . ' AND id_article_lie=' . sql_quote($id_article_cible) . ' AND type_liaison IS NULL');
     94                        }
    7495                        //on intervertit le rang de l'article suivant
    7596                        sql_update('spip_articles_lies', array('rang' => $rang), 'id_article=' . sql_quote($id_article) . ' AND rang=' . sql_quote($rang + 1));
    7697                        //on met à jour le rang de l'article à modifier
    77                         sql_update('spip_articles_lies', array('rang' => ++$rang), 'id_article=' . sql_quote($id_article) . ' AND id_article_lie=' . sql_quote($id_article_cible) . ' AND type_liaison=' . sql_quote($type_liaison));
     98                        if ($type_liaison){
     99                                sql_update('spip_articles_lies', array('rang' => ++$rang), 'id_article=' . sql_quote($id_article) . ' AND id_article_lie=' . sql_quote($id_article_cible) . ' AND type_liaison=' . sql_quote($type_liaison));
     100                        }
     101                        else{
     102                                sql_update('spip_articles_lies', array('rang' => ++$rang), 'id_article=' . sql_quote($id_article) . ' AND id_article_lie=' . sql_quote($id_article_cible) . ' AND type_liaison IS NULL');
     103                        }
    78104        }
    79         spip_log($rang,'rang');
    80         spip_log($type_liaison,'rang');
    81105        if ($type_modif == "moins"){
    82106                        //on recupere le rang de l'article à modifier
    83                         $rang = sql_getfetsel('rang', 'spip_articles_lies', 'id_article=' . sql_quote($id_article) . ' AND id_article_lie=' . sql_quote($id_article_cible) . ' AND type_liaison=' . sql_quote($type_liaison));
     107                        if ($type_liaison){
     108                                $rang = sql_getfetsel('rang', 'spip_articles_lies', 'id_article=' . sql_quote($id_article) . ' AND id_article_lie=' . sql_quote($id_article_cible) . ' AND type_liaison=' . sql_quote($type_liaison));
     109                        }
     110                        else{
     111                                $rang = sql_getfetsel('rang', 'spip_articles_lies', 'id_article=' . sql_quote($id_article) . ' AND id_article_lie=' . sql_quote($id_article_cible) . ' AND type_liaison IS NULL');
     112                        }
    84113                        //on intervertit le rang de l'article précédent
    85114                        sql_update('spip_articles_lies', array('rang' => $rang), 'id_article=' . sql_quote($id_article) . ' AND rang=' . sql_quote($rang - 1));
    86115                        //on met à jour le rang de l'article à modifier
    87                         sql_update('spip_articles_lies', array('rang' => --$rang), 'id_article=' . sql_quote($id_article) . ' AND id_article_lie=' . sql_quote($id_article_cible) . ' AND type_liaison=' . sql_quote($type_liaison));
     116                        if ($type_liaison){
     117                                sql_update('spip_articles_lies', array('rang' => --$rang), 'id_article=' . sql_quote($id_article) . ' AND id_article_lie=' . sql_quote($id_article_cible) . ' AND type_liaison=' . sql_quote($type_liaison));
     118                        }
     119                        else{
     120                                sql_update('spip_articles_lies', array('rang' => --$rang), 'id_article=' . sql_quote($id_article) . ' AND id_article_lie=' . sql_quote($id_article_cible) . ' AND type_liaison IS NULL');
     121                        }
    88122        }
    89123       
Note: See TracChangeset for help on using the changeset viewer.