Changeset 108373 in spip-zone


Ignore:
Timestamp:
Jan 5, 2018, 4:55:59 PM (18 months ago)
Author:
abelass@…
Message:

v 2.0.2

  • nouveaux icones
  • lien vers doc
  • nettoyage
Location:
_plugins_/liaison_objet
Files:
10 added
6 deleted
53 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/liaison_objet/branches/v2/action/editer_liaison_objet.php

    r107933 r108373  
    11<?php
    2 if (!defined("_ECRIRE_INC_VERSION")) return;
     2if (!defined("_ECRIRE_INC_VERSION"))
     3        return;
    34
    45include_spip('action/editer_objet');
    56
    6 
    77// https://code.spip.net/@action_editer_liaison_objet_dist
    8 function action_editer_liaison_objet_dist($arg=null) {
    9 
    10     if (is_null($arg)){
    11         $securiser_action = charger_fonction('securiser_action', 'inc');
    12         $arg = $securiser_action();
    13     }
    14 
    15     // Envoi depuis le formulaire d'edition d'une liaison_objet
    16     if (!$id_liaison_objet = intval($arg)) {
    17         $id_liaison_objet = liaison_objet_inserer(_request('id_objet'),_request('objet'));
    18     }
    19 
    20     if (!$id_liaison_objet)
    21         return array(0,''); // erreur
    22 
    23     $err = liaison_objet_modifier($id_liaison_objet);
    24 
    25     return array($id_liaison_objet,$err);
    26 }
    27 
    28 
    29 function liaison_objet_inserer($id_objet,$objet) {
    30 
    31    $objet_dest=_request('objet_dest');
    32    $id_objet_dest=_request('id_objet_dest'); 
    33    $objet_table=$objet;
    34    if(!$id_objet){
    35       $objet_table=$objet_dest;
    36       $objet='liaison_objet';
    37       $id_objet==$id_objet_dest;
    38     }
    39     if(!$lang=_request('lang')){
    40         $table_sql = table_objet_sql($objet_table);
    41         $trouver_table = charger_fonction('trouver_table','base');
    42         $desc = $trouver_table($table_sql);
    43         if (!$desc OR !isset($desc['field'])) {
    44         spip_log("Objet $objet inconnu dans objet_modifier",_LOG_ERREUR);
    45         return _L("Erreur objet $objet inconnu");
    46     }
    47         if($desc['lang'])$lang=sql_getfetsel('lang',$table_sql,'id_'.$objet_table.'='.$id_objet);
    48         else $lang=$GLOBALS['visiteur_session']['lang'];
    49         }
    50    
    51     // Verifier l'ordre
    52 
    53     $where = array(
    54         'id_objet_dest='.$id_objet_dest,
    55         'objet_dest='.sql_quote($objet_dest),
    56         'lang='.sql_quote($lang),
    57         );
    58     $verifier_ordre=charger_fonction('verifier_ordre','inc');
    59    
    60     //le nombre de résultats
    61     $ordre=$verifier_ordre($where);
    62    
    63 
    64     $champs = array(
    65         'objet_dest'=>$objet_dest,
    66         'id_objet_dest'=>$id_objet_dest,                                   
    67         'lang' => $lang,     
    68         'langue_choisie' => 'non',
    69         'ordre' => $ordre+1,    //   
    70         );
    71    
    72     // Envoyer aux plugins
    73     $champs = pipeline('pre_insertion',
    74         array(
    75             'args' => array(
    76                 'table' => 'spip_liaison_objets',
    77             ),
    78             'data' => $champs
    79         )
    80     );
    81     $id_liaison_objet = sql_insertq("spip_liaison_objets", $champs);
    82     pipeline('post_insertion',
    83         array(
    84             'args' => array(
    85                 'table' => 'spip_liaison_objets',
    86                 'id_objet' => $id_liaison_objet
    87             ),
    88             'data' => $champs
    89         )
    90     );
    91     return $id_liaison_objet;
    92 }
    93 
     8function action_editer_liaison_objet_dist($arg = null) {
     9        if (is_null($arg)) {
     10                $securiser_action = charger_fonction('securiser_action', 'inc');
     11                $arg = $securiser_action();
     12        }
     13
     14        // Envoi depuis le formulaire d'edition d'une liaison_objet
     15        if (!$id_liaison_objet = intval($arg)) {
     16                $id_liaison_objet = liaison_objet_inserer(_request('id_objet'), _request('objet'));
     17        }
     18
     19        if (!$id_liaison_objet)
     20                return array(
     21                        0,
     22                        ''
     23                ); // erreur
     24
     25        $err = liaison_objet_modifier($id_liaison_objet);
     26
     27        return array(
     28                $id_liaison_objet,
     29                $err
     30        );
     31}
     32function liaison_objet_inserer($id_objet, $objet) {
     33        $objet_dest = _request('objet_dest');
     34        $id_objet_dest = _request('id_objet_dest');
     35        $objet_table = $objet;
     36        if (!$id_objet) {
     37                $objet_table = $objet_dest;
     38                $objet = 'liaison_objet';
     39                $id_objet == $id_objet_dest;
     40        }
     41        if (!$lang = _request('lang')) {
     42                $table_sql = table_objet_sql($objet_table);
     43                $trouver_table = charger_fonction('trouver_table', 'base');
     44                $desc = $trouver_table($table_sql);
     45                if (!$desc or !isset($desc['field'])) {
     46                        spip_log("Objet $objet inconnu dans objet_modifier", _LOG_ERREUR);
     47                        return _L("Erreur objet $objet inconnu");
     48                }
     49                if ($desc['lang'])
     50                        $lang = sql_getfetsel('lang', $table_sql, 'id_' . $objet_table . '=' . $id_objet);
     51                else
     52                        $lang = $GLOBALS['visiteur_session']['lang'];
     53        }
     54
     55        // Verifier l'ordre
     56
     57        $where = array(
     58                'id_objet_dest=' . $id_objet_dest,
     59                'objet_dest=' . sql_quote($objet_dest),
     60                'lang=' . sql_quote($lang)
     61        );
     62        $verifier_ordre = charger_fonction('verifier_ordre', 'inc');
     63
     64        // le nombre de résultats
     65        $ordre = $verifier_ordre($where);
     66
     67        $champs = array(
     68                'objet_dest' => $objet_dest,
     69                'id_objet_dest' => $id_objet_dest,
     70                'lang' => $lang,
     71                'langue_choisie' => 'non',
     72                'ordre' => $ordre + 1  //
     73        );
     74
     75        // Envoyer aux plugins
     76        $champs = pipeline('pre_insertion', array(
     77                'args' => array(
     78                        'table' => 'spip_liaison_objets'
     79                ),
     80                'data' => $champs
     81        ));
     82        $id_liaison_objet = sql_insertq("spip_liaison_objets", $champs);
     83        pipeline('post_insertion', array(
     84                'args' => array(
     85                        'table' => 'spip_liaison_objets',
     86                        'id_objet' => $id_liaison_objet
     87                ),
     88                'data' => $champs
     89        ));
     90        return $id_liaison_objet;
     91}
    9492
    9593/**
     
    103101 * @return string|bool
    104102 */
    105 function liaison_objet_modifier ($id_liaison_objet, $set=null) {
    106 
    107     include_spip('inc/modifier');
    108    
    109 
    110    
    111     $c = collecter_requests(
    112         // white list
    113         array('titre', 'descriptif', 'url','type_lien','id_objet_dest','objet_dest','objet','id_objet'),
    114         // black list
    115         array('statut'),
    116         // donnees eventuellement fournies
    117         $set
    118     );
    119 
    120     // Si la liaison_objet est publiee, invalider les caches et demander sa reindexation
    121     $t = sql_fetsel("statut,lang,id_objet_dest,objet_dest,ordre", "spip_liaison_objets", "id_liaison_objet=$id_liaison_objet");
    122     if ($t['statut'] == 'publie') {
    123         $invalideur = "id='liaison_objet/$id_liaison_objet'";
    124         $indexation = true;
    125     }
    126    
    127 
    128 
    129     if ($err = objet_modifier_champs('liaison_objet', $id_liaison_objet,
    130         array(
    131             'nonvide' => array(
    132          
    133                 ),               
    134             'invalideur' => $invalideur,
    135             'indexation' => $indexation,
    136         ),
    137         $c)){
    138         return $err;   
    139         }
    140        
    141 
    142     $c = collecter_requests(array('statut'),array(),$set);
    143     $err = liaison_objet_instituer($id_liaison_objet, $c);
    144     return $err;
     103function liaison_objet_modifier($id_liaison_objet, $set = null) {
     104        include_spip('inc/modifier');
     105
     106        $c = collecter_requests(
     107                        // white list
     108                        array(
     109                                'titre',
     110                                'descriptif',
     111                                'url',
     112                                'type_lien',
     113                                'id_objet_dest',
     114                                'objet_dest',
     115                                'objet',
     116                                'id_objet'
     117                        ),
     118                        // black list
     119                        array(
     120                                'statut'
     121                        ),
     122                        // donnees eventuellement fournies
     123                        $set);
     124
     125        // Si la liaison_objet est publiee, invalider les caches et demander sa reindexation
     126        $t = sql_fetsel("statut,lang,id_objet_dest,objet_dest,ordre", "spip_liaison_objets", "id_liaison_objet=$id_liaison_objet");
     127        if ($t['statut'] == 'publie') {
     128                $invalideur = "id='liaison_objet/$id_liaison_objet'";
     129                $indexation = true;
     130        }
     131
     132        if ($err = objet_modifier_champs('liaison_objet', $id_liaison_objet, array(
     133                'nonvide' => array(
     134                ),
     135                'invalideur' => $invalideur,
     136                'indexation' => $indexation
     137        ), $c)) {
     138                return $err;
     139        }
     140
     141        $c = collecter_requests(array(
     142                'statut'
     143        ), array(), $set);
     144        $err = liaison_objet_instituer($id_liaison_objet, $c);
     145        return $err;
    145146}
    146147
     
    153154 */
    154155function liaison_objet_instituer($id_liaison_objet, $c) {
    155     $champs = array();
    156 
    157     // Changer le statut de la liaison_objet ?
    158     $statut= sql_getfetsel("statut", "spip_liaison_objets", "id_liaison_objet=".intval($id_liaison_objet));
    159 
    160 
    161     $statut_ancien = $statut;
    162 
    163 
    164     if ($c['statut']
    165     AND $c['statut'] != $statut) {
    166         $statut = $champs['statut'] = $c['statut'];
    167     }
    168 
    169 
    170     // Envoyer aux plugins
    171     $champs = pipeline('pre_edition',
    172         array(
    173             'args' => array(
    174                 'table' => 'spip_liaison_objets',
    175                 'id_objet' => $id_liaison_objet,
    176                 'action'=>'instituer',
    177                 'statut_ancien' => $statut_ancien,
    178             ),
    179             'data' => $champs
    180         )
    181     );
    182 
    183     if (!$champs) return;
    184 
    185     sql_updateq('spip_liaison_objets', $champs, "id_liaison_objet=".intval($id_liaison_objet));
    186 
    187     //
    188     // Post-modifications
    189     //
    190 
    191     // Invalider les caches
    192     include_spip('inc/invalideur');
    193     suivre_invalideur("id='liaison_objet/$id_liaison_objet'");
    194 
    195 
    196 
    197     // Pipeline
    198     pipeline('post_edition',
    199         array(
    200             'args' => array(
    201                 'table' => 'spip_liaison_objets',
    202                 'id_objet' => $id_liaison_objet,
    203                 'action'=>'instituer',
    204                 'statut_ancien' => $statut_ancien,
    205             ),
    206             'data' => $champs
    207         )
    208     );
    209 
    210 
    211     return ''; // pas d'erreur
    212 }
     156        $champs = array();
     157
     158        // Changer le statut de la liaison_objet ?
     159        $statut = sql_getfetsel("statut", "spip_liaison_objets", "id_liaison_objet=" . intval($id_liaison_objet));
     160
     161        $statut_ancien = $statut;
     162
     163        if ($c['statut'] and $c['statut'] != $statut) {
     164                $statut = $champs['statut'] = $c['statut'];
     165        }
     166
     167        // Envoyer aux plugins
     168        $champs = pipeline('pre_edition', array(
     169                'args' => array(
     170                        'table' => 'spip_liaison_objets',
     171                        'id_objet' => $id_liaison_objet,
     172                        'action' => 'instituer',
     173                        'statut_ancien' => $statut_ancien
     174                ),
     175                'data' => $champs
     176        ));
     177
     178        if (!$champs)
     179                return;
     180
     181        sql_updateq('spip_liaison_objets', $champs, "id_liaison_objet=" . intval($id_liaison_objet));
     182
     183        //
     184        // Post-modifications
     185        //
     186
     187        // Invalider les caches
     188        include_spip('inc/invalideur');
     189        suivre_invalideur("id='liaison_objet/$id_liaison_objet'");
     190
     191        // Pipeline
     192        pipeline('post_edition', array(
     193                'args' => array(
     194                        'table' => 'spip_liaison_objets',
     195                        'id_objet' => $id_liaison_objet,
     196                        'action' => 'instituer',
     197                        'statut_ancien' => $statut_ancien
     198                ),
     199                'data' => $champs
     200        ));
     201
     202        return ''; // pas d'erreur
     203}
  • _plugins_/liaison_objet/branches/v2/action/instituer_objet_lie.php

    r107933 r108373  
    22if (!defined("_ECRIRE_INC_VERSION"))
    33        return;
     4
    45function action_instituer_objet_lie_dist($arg = null) {
    56        if (is_null($arg)) {
     
    2627                        $langue = array();
    2728        }
    28         ;
     29
    2930        // si l'objet n'est pas définit par langue on l'enregistre pour chaque langue du site
    3031        if (count($langue) > 1) {
  • _plugins_/liaison_objet/branches/v2/action/ranger.php

    r107933 r108373  
    11<?php
     2if (!defined("_ECRIRE_INC_VERSION"))
     3        return;
    24
    3 if (!defined("_ECRIRE_INC_VERSION")) return;
    4 
    5 function action_ranger_dist($arg=null){
    6     if (is_null($arg)){
    7         $securiser_action = charger_fonction('securiser_action', 'inc');
    8         $arg = $securiser_action();
    9     }   
    10      $verifier_ordre=charger_fonction('verifier_ordre','inc');
     5function action_ranger_dist($arg = null) {
     6        if (is_null($arg)) {
     7                $securiser_action = charger_fonction('securiser_action', 'inc');
     8                $arg = $securiser_action();
     9        }
     10        $verifier_ordre = charger_fonction('verifier_ordre', 'inc');
    1111        include_spip("inc/autoriser");
    1212        include_spip("inc/config");
    1313
    14         list($action,$lang,$id_liaison_objet,$ordre,$objet_dest,$id_objet_dest,$load)=explode('-',$arg);
    15     $load=_request('load');
    16     $id=_request('id');
     14        list($action, $lang, $id_liaison_objet, $ordre, $objet_dest, $id_objet_dest, $load) = explode('-', $arg);
     15        $load = _request('load');
     16        $id = _request('id');
    1717
    18     switch($action){
    19         case 'supprimer_ordre' :
    20             include_spip('formulaires/bouton_article');
    21             spip_log('eliminer 1','liaison');
    22                 $where=array(
    23                     'id_liaison_objet='.$id_liaison_objet,
    24                     );
    25                                            
    26                 sql_delete("spip_liaison_objets",$where);
    27                        
    28                 // on vérifie l'ordre des objets déjà enregistrés et on corrige si beliaison_objetin
    29                    
    30                 $where = array(
    31                     'id_objet_dest='.$id_objet_dest,
    32                     'objet_dest='.sql_quote($objet_dest),
    33                     'lang='.sql_quote($lang)   
    34                     );
    35                    
    36                 $ordre=$verifier_ordre($where);
    37                
    38             break;
    39            
    40         case 'remonter_ordre':
    41             $where = array(             
    42             'lang="'.$lang.'"',
    43             'objet_dest="'.$objet_dest.'"',
    44             'id_objet_dest="'.$id_objet_dest.'"', 
    45             'ordre<="'.$ordre.'"',                           
    46                 );
    47        
    48             $result = sql_select("*", "spip_liaison_objets", $where,'', "ordre DESC",2);
    49            
    50             while ($row = sql_fetch($result)) {
    51                 if($id_liaison_objet==$row["id_liaison_objet"]){
    52                     $o =$ordre-1;
    53                 }
    54                 else{
    55                     $o =$ordre;
    56                 }
    57             sql_updateq("spip_liaison_objets", array("ordre" =>$o),'id_liaison_objet='.$row['id_liaison_objet']);
    58             }
    59                  $where = array(
    60                     'id_objet_dest='.$id_objet_dest,
    61                     'objet_dest='.sql_quote($objet_dest),
    62                     'lang='.sql_quote($lang)   
    63                     );           
    64         $ordre=$verifier_ordre($where);     
    65             break;
    66            
    67         case 'descendre_ordre':
    68             $where = array(             
    69             'lang="'.$lang.'"',
    70             'objet_dest="'.$objet_dest.'"',
    71             'id_objet_dest="'.$id_objet_dest.'"', 
    72             'ordre>="'.$ordre.'"',                           
    73                 );
     18        switch ($action) {
     19                case 'supprimer_ordre' :
     20                        include_spip('formulaires/bouton_article');
     21                        spip_log('eliminer 1', 'liaison');
     22                        $where = array(
     23                                'id_liaison_objet=' . $id_liaison_objet
     24                        );
    7425
    75             $result = sql_select("*", "spip_liaison_objets", $where,'', "ordre",2);
    76            
    77             while ($row = sql_fetch($result)) {
    78                 if($id_liaison_objet==$row["id_liaison_objet"]){
    79                     $o =$ordre+1;
    80                 }
    81                 else{
    82                     $o =$ordre;
    83                 }
    84             sql_updateq("spip_liaison_objets", array("ordre" =>$o),'id_liaison_objet='.$row['id_liaison_objet']);
    85             }
    86             $where = array(
    87                 'id_objet_dest='.$id_objet_dest,
    88                 'objet_dest='.sql_quote($objet_dest),
    89                 'lang='.sql_quote($lang)   
    90                 );           
    91             $ordre=$verifier_ordre($where); 
    92             break;
    93         //ranger avec drag and drop - liste des objets séléctionné sur la page de l'objet cible
    94         case 'nouvel_ordre':
    95             $nouvel_ordre=explode(',',_request('nouvel_ordre'));
    96             $ordre=0;
    97             foreach($nouvel_ordre AS $id_liaison_objet){
    98                 $ordre++;
    99                 sql_updateq("spip_liaison_objets", array("ordre" => $ordre),'id_liaison_objet='.$id_liaison_objet);
    100                 include_spip('inc/invalideur');
    101                 suivre_invalideur("id='liaison_objet/$id_liaison_objet'");   
    102             }
    103             break;
    104            
    105         //ranger avec drag and drop - liste des objets séléctionné sur la page de l'objet
    106         case 'nouvel_ordre_objet':
    107             $nouvel_ordre=explode(',',_request('nouvel_ordre'));
    108             $ordre=0;
    109             foreach($nouvel_ordre AS $id_liaison_objet){
    110                 $ordre++;
    111                 sql_updateq("spip_liaison_objets", array("ordre_objet" => $ordre),'id_liaison_objet='.$id_liaison_objet);
    112                 include_spip('inc/invalideur');
    113                 suivre_invalideur("id='liaison_objet/$id_liaison_objet'");   
    114             }
    115             break;
    116            
    117         }
     26                        sql_delete("spip_liaison_objets", $where);
    11827
    119     if($load){
    120         include_spip('public/assembler');
    121         $cont=calculer_contexte();
    122         $contexte = array('id_objet_dest'=>$id_objet_dest,'objet_dest'=>$objet_dest,'l'=>$lang,'id'=>$id);
    123         $contexte=array_merge($cont,$contexte);
    124         echo recuperer_fond($load,$contexte);
    125     }
    126 return $return;
     28                        // on vérifie l'ordre des objets déjà enregistrés et on corrige si beliaison_objetin
     29
     30                        $where = array(
     31                                'id_objet_dest=' . $id_objet_dest,
     32                                'objet_dest=' . sql_quote($objet_dest),
     33                                'lang=' . sql_quote($lang)
     34                        );
     35
     36                        $ordre = $verifier_ordre($where);
     37
     38                        break;
     39
     40                case 'remonter_ordre' :
     41                        $where = array(
     42                                'lang="' . $lang . '"',
     43                                'objet_dest="' . $objet_dest . '"',
     44                                'id_objet_dest="' . $id_objet_dest . '"',
     45                                'ordre<="' . $ordre . '"'
     46                        );
     47
     48                        $result = sql_select("*", "spip_liaison_objets", $where, '', "ordre DESC", 2);
     49
     50                        while ($row = sql_fetch($result)) {
     51                                if ($id_liaison_objet == $row["id_liaison_objet"]) {
     52                                        $o = $ordre - 1;
     53                                }
     54                                else {
     55                                        $o = $ordre;
     56                                }
     57                                sql_updateq("spip_liaison_objets", array(
     58                                        "ordre" => $o
     59                                ), 'id_liaison_objet=' . $row['id_liaison_objet']);
     60                        }
     61                        $where = array(
     62                                'id_objet_dest=' . $id_objet_dest,
     63                                'objet_dest=' . sql_quote($objet_dest),
     64                                'lang=' . sql_quote($lang)
     65                        );
     66                        $ordre = $verifier_ordre($where);
     67                        break;
     68
     69                case 'descendre_ordre' :
     70                        $where = array(
     71                                'lang="' . $lang . '"',
     72                                'objet_dest="' . $objet_dest . '"',
     73                                'id_objet_dest="' . $id_objet_dest . '"',
     74                                'ordre>="' . $ordre . '"'
     75                        );
     76
     77                        $result = sql_select("*", "spip_liaison_objets", $where, '', "ordre", 2);
     78
     79                        while ($row = sql_fetch($result)) {
     80                                if ($id_liaison_objet == $row["id_liaison_objet"]) {
     81                                        $o = $ordre + 1;
     82                                }
     83                                else {
     84                                        $o = $ordre;
     85                                }
     86                                sql_updateq("spip_liaison_objets", array(
     87                                        "ordre" => $o
     88                                ), 'id_liaison_objet=' . $row['id_liaison_objet']);
     89                        }
     90                        $where = array(
     91                                'id_objet_dest=' . $id_objet_dest,
     92                                'objet_dest=' . sql_quote($objet_dest),
     93                                'lang=' . sql_quote($lang)
     94                        );
     95                        $ordre = $verifier_ordre($where);
     96                        break;
     97                // ranger avec drag and drop - liste des objets séléctionné sur la page de l'objet cible
     98                case 'nouvel_ordre' :
     99                        $nouvel_ordre = explode(',', _request('nouvel_ordre'));
     100                        $ordre = 0;
     101                        foreach ($nouvel_ordre as $id_liaison_objet) {
     102                                $ordre++;
     103                                sql_updateq("spip_liaison_objets", array(
     104                                        "ordre" => $ordre
     105                                ), 'id_liaison_objet=' . $id_liaison_objet);
     106                                include_spip('inc/invalideur');
     107                                suivre_invalideur("id='liaison_objet/$id_liaison_objet'");
     108                        }
     109                        break;
     110
     111                // ranger avec drag and drop - liste des objets séléctionné sur la page de l'objet
     112                case 'nouvel_ordre_objet' :
     113                        $nouvel_ordre = explode(',', _request('nouvel_ordre'));
     114                        $ordre = 0;
     115                        foreach ($nouvel_ordre as $id_liaison_objet) {
     116                                $ordre++;
     117                                sql_updateq("spip_liaison_objets", array(
     118                                        "ordre_objet" => $ordre
     119                                ), 'id_liaison_objet=' . $id_liaison_objet);
     120                                include_spip('inc/invalideur');
     121                                suivre_invalideur("id='liaison_objet/$id_liaison_objet'");
     122                        }
     123                        break;
     124        }
     125
     126        if ($load) {
     127                include_spip('public/assembler');
     128                $cont = calculer_contexte();
     129                $contexte = array(
     130                        'id_objet_dest' => $id_objet_dest,
     131                        'objet_dest' => $objet_dest,
     132                        'l' => $lang,
     133                        'id' => $id
     134                );
     135                $contexte = array_merge($cont, $contexte);
     136                echo recuperer_fond($load, $contexte);
     137        }
     138        return $return;
    127139}
    128 
    129 ?>
  • _plugins_/liaison_objet/branches/v2/base/liaison_objet.php

    r107933 r108373  
    11<?php
    22/**
    3  * Plugin Selection d'objets
     3 * Plugin Liaison d'objets
    44 * (c) 2012 Rainer Müller
    55 * Licence GNU/GPL
     
    77
    88if (!defined('_ECRIRE_INC_VERSION')) return;
    9 
    109
    1110/**
     
    1817        return $interfaces;
    1918}
    20 
    2119
    2220/**
     
    7876                ),
    7977                'texte_changer_statut' => 'liaison_objet:texte_changer_statut_objet',
    80 
    81 
    8278        );
    8379
  • _plugins_/liaison_objet/branches/v2/formulaires/bouton_objet.php

    r107933 r108373  
    11<?php
     2if (!defined("_ECRIRE_INC_VERSION"))
     3        return;
     4function formulaires_bouton_objet_charger_dist($id_objet, $objet, $langue, $lang = '', $objet_dest = 'rubrique') {
     5        include_spip('inc/config');
     6        include_spip('inc/presentation');
     7        include_spip('inc/layer');
    28
    3 if (!defined("_ECRIRE_INC_VERSION")) return;
     9        // Les objets destinataires choisies
     10        $special = array(
     11                'article',
     12                'rubrique'
     13        );
     14        if (in_array($objet_dest, $special))
     15                $choisies = picker_selected(lire_config('liaison_objet/liaison_' . $objet_dest . '_dest', array()), $objet_dest);
     16        else
     17                $choisies = lire_config('liaison_objet/liaison_' . $objet_dest . '_dest', array());
    418
    5 function formulaires_bouton_objet_charger_dist($id_objet,$objet,$langue,$lang='',$objet_dest='rubrique') {
    6                 include_spip('inc/config');
    7                 include_spip('inc/presentation');
    8                 include_spip('inc/layer');
     19        $lang = $langue ? explode(',', $langue) : '';
    920
    10                 //Les objets destinataires choisies
    11                 $special=array('article','rubrique');
    12                 if(in_array($objet_dest,$special)) $choisies= picker_selected(lire_config('liaison_objet/liaison_'.$objet_dest.'_dest',array()),$objet_dest);
    13                 else $choisies=lire_config('liaison_objet/liaison_'.$objet_dest.'_dest',array());
     21        // On garde l'objet original pour la détection des données de l'objet
     22        $objet_dest_original = $objet_dest;
    1423
    15                 $lang=$langue?explode(',',$langue):'';
     24        $e = trouver_objet_exec($objet_dest);
    1625
    17                 //On garde l'objet original pour la détection des données de l'objet
    18                 $objet_dest_original=$objet_dest;
     26        $objet_dest = $e['type'] ? $e['type'] : $objet_dest;
    1927
    20                 $e = trouver_objet_exec($objet_dest);
     28        // Les information des objets destinataires
     29        $table_dest = table_objet_sql($objet_dest);
     30        $tables = lister_tables_objets_sql();
     31        $titre_objet_dest = _T($tables[$table_dest]['texte_objet']);
    2132
    22                 $objet_dest=$e['type']?$e['type']:$objet_dest;
     33        // Préparer la requette
     34        $where = array();
     35        if (isset($tables[$table_dest]['statut'][0]['publie']))
     36                $statut = $tables[$table_dest]['statut'][0]['publie'];
     37        if ($objet == 'auteur')
     38                $where[] = 'statut !=' . sql_quote('5poubelle');
     39        elseif ($statut and $objet_dest != 'rubrique')
     40                $where[] = 'statut=' . sql_quote($statut);
     41        if ($choisies)
     42                $where[] = 'id_' . $objet_dest . ' IN (' . implode(',', $choisies) . ')';
     43        if ($tables[$table_dest]['field']['lang'] and $lang) {
     44                if ($objet_dest != 'rubrique')
     45                        $where[] = 'lang IN (' . sql_quote($lang) . ')';
     46                elseif (test_plugin_actif('tradrub'))
     47                        $where[] = 'lang IN (' . sql_quote($lang) . ')';
     48        }
    2349
    24                 // Les information des objets destinataires
    25                 $table_dest = table_objet_sql($objet_dest);
    26                 $tables=lister_tables_objets_sql();
    27                 $titre_objet_dest=_T($tables[$table_dest]['texte_objet']);
     50        $objets_choisies = tableau_objet($objet_dest_original, '', '*', $where);
    2851
    29                 //Préparer la requette
    30                 $where=array();
    31                 if(isset($tables[$table_dest]['statut'][0]['publie']))$statut=$tables[$table_dest]['statut'][0]['publie'];
    32                 if($objet=='auteur') $where[]='statut !='.sql_quote('5poubelle');
    33                 elseif($statut AND $objet_dest !='rubrique')  $where[]='statut='.sql_quote($statut);
    34                 if($choisies)$where[]='id_'.$objet_dest.' IN ('.implode(',',$choisies).')';
    35                 if($tables[$table_dest]['field']['lang'] and $lang){
    36                                 if($objet_dest!='rubrique')$where[]='lang IN ('.sql_quote($lang).')';
    37                                 elseif(test_plugin_actif('tradrub'))$where[]='lang IN ('.sql_quote($lang).')';
    38                                 }
     52        // Les types liens pour l'objet concerné
     53        if (!$types = lire_config('liaison_objet/type_liens_' . $objet_dest_original, array()))
     54                $types = lire_config('liaison_objet/type_liens', array());
    3955
    40                 $objets_choisies=tableau_objet($objet_dest_original,'','*',$where);
     56        $types_lien = array();
     57        foreach ($types as $cle => $valeur) {
     58                if ($valeur)
     59                        $types_lien[$cle] = _T($valeur);
     60        }
    4161
    42                 //Les types liens pour l'objet concerné
    43                 if(!$types=lire_config('liaison_objet/type_liens_'.$objet_dest_original,array()))$types=lire_config('liaison_objet/type_liens',array());
     62        $valeurs = array(
     63                "id_objet" => $id_objet,
     64                "objet" => $objet,
     65                "langue" => $langue,
     66                "objet_dest" => $objet_dest,
     67                "objet_dest_original" => $objet_dest_original,
     68                "id_objet_dest" => $id_objet_dest,
     69                "table_dest" => $table_dest,
     70                "titre_objet_dest" => $titre_objet_dest,
     71                'objets_choisies' => $objets_choisies,
     72                'types_lien' => $types_lien
     73        );
    4474
    45                 $types_lien=array();
    46                 foreach($types as $cle => $valeur){
    47                                 if($valeur)$types_lien[$cle]=_T($valeur);
    48                                 }
     75        $valeurs['_hidden'] .= "<input type='hidden' name='id_objet' value='$id_objet' />";
     76        $valeurs['_hidden'] .= "<input type='hidden' name='objet' value='$objet' />";
     77        $valeurs['_hidden'] .= "<input type='hidden' name='lang' value='$langue' />";
     78        $valeurs['_hidden'] .= "<input type='hidden' name='objet_dest' value='$objet_dest' />";
    4979
    50                 $valeurs = array(
    51                         "id_objet"      => $id_objet,
    52                         "objet" => $objet,
    53                         "langue"        => $langue,
    54                         "objet_dest"=>$objet_dest,
    55                                 "objet_dest_original"=>$objet_dest_original,
    56                                 "id_objet_dest"=>$id_objet_dest,
    57                                 "table_dest"=>$table_dest,
    58                                 "titre_objet_dest"=>$titre_objet_dest,
    59                                 'objets_choisies'=>$objets_choisies,
    60                                 'types_lien' =>$types_lien,
    61                                 );
    62 
    63                 $valeurs['_hidden'] .= "<input type='hidden' name='id_objet' value='$id_objet' />";
    64                 $valeurs['_hidden'] .= "<input type='hidden' name='objet' value='$objet' />";
    65                 $valeurs['_hidden'] .= "<input type='hidden' name='lang' value='$langue' />";
    66                 $valeurs['_hidden'] .= "<input type='hidden' name='objet_dest' value='$objet_dest' />";
    67 
    68                 return $valeurs;
     80        return $valeurs;
    6981}
    7082
    7183/* @annotation: Actualisation de la base de donnée */
    72 function formulaires_bouton_objet_traiter_dist($id_objet,$objet,$langue,$lang='',$objet_dest='rubrique'){
    73                 $valeurs=array();
    74                 $id_objet_dest=_request('id_objet_dest');
    75                 $instituer_objet=charger_fonction('instituer_objet_lie','action/');
    76                 $objet_dest=_request('objet_dest');
    77                 $type_lien=_request('type_lien');
     84function formulaires_bouton_objet_traiter_dist($id_objet, $objet, $langue, $lang = '', $objet_dest = 'rubrique') {
     85        $valeurs = array();
     86        $id_objet_dest = _request('id_objet_dest');
     87        $instituer_objet = charger_fonction('instituer_objet_lie', 'action/');
     88        $objet_dest = _request('objet_dest');
     89        $type_lien = _request('type_lien');
    7890
     91        $id_liaison_objet = $instituer_objet($id_objet . '-' . $objet . '-' . $langue . '-' . $lang . '-' . $objet_dest . '-' . $id_objet_dest . '-' . $type_lien);
    7992
    80                 $id_liaison_objet=$instituer_objet($id_objet.'-'.$objet.'-'.$langue.'-'.$lang.'-'.$objet_dest.'-'.$id_objet_dest.'-'.$type_lien);
     93        if ($id_liaison_objet)
     94                $valeurs['message_ok'] = 'ok';
    8195
    82         if($id_liaison_objet)$valeurs['message_ok']='ok';
    83 
    84 return $valeurs;
    85 
     96        return $valeurs;
    8697}
    87 ?>
  • _plugins_/liaison_objet/branches/v2/formulaires/editer_liaison_objet.php

    r107933 r108373  
    11<?php
    22/**
    3  * Plugin Selection d&#039;objets
     3 * Plugin Liaison d'objets
    44 * (c) 2012 Rainer Müller
    55 * Licence GNU/GPL
    66 */
    7 
    8 if (!defined('_ECRIRE_INC_VERSION')) return;
     7if (!defined('_ECRIRE_INC_VERSION'))
     8        return;
    99
    1010include_spip('inc/actions');
     
    1414 * Identifier le formulaire en faisant abstraction des parametres qui ne representent pas l'objet edite
    1515 */
    16 function formulaires_editer_liaison_objet_identifier_dist($id_liaison_objet='new', $retour='', $lier_trad=0, $config_fonc='', $row=array(), $hidden=''){
    17         return serialize(array(intval($id_liaison_objet)));
     16function formulaires_editer_liaison_objet_identifier_dist($id_liaison_objet = 'new', $retour = '', $lier_trad = 0, $config_fonc = '', $row = array(), $hidden = '') {
     17        return serialize(array(
     18                intval($id_liaison_objet)
     19        ));
    1820}
    1921
     
    2123 * Declarer les champs postes et y integrer les valeurs par defaut
    2224 */
    23 function formulaires_editer_liaison_objet_charger_dist($id_liaison_objet='new', $retour='', $lier_trad=0, $config_fonc='', $row=array(), $hidden=''){
    24         $valeurs = formulaires_editer_objet_charger('liaison_objet',$id_liaison_objet,'',$lier_trad,$retour,$config_fonc,$row,$hidden);
     25function formulaires_editer_liaison_objet_charger_dist($id_liaison_objet = 'new', $retour = '', $lier_trad = 0, $config_fonc = '', $row = array(), $hidden = '') {
     26        $valeurs = formulaires_editer_objet_charger('liaison_objet', $id_liaison_objet, '', $lier_trad, $retour, $config_fonc, $row, $hidden);
    2527
     28        if (!$valeurs['objet_dest'])
     29                $valeurs['objet_dest'] = _request('objet_dest');
     30        if (!$valeurs['id_objet_dest'])
     31                $valeurs['id_objet_dest'] = _request('id_objet_dest');
     32        if (!$valeurs['id_objet'])
     33                $valeurs['id_objet'] = _request('id_objet');
     34        if (!$valeurs['objet'])
     35                $valeurs['objet'] = _request('objet');
     36        if (!$valeurs['titre'])
     37                $valeurs['titre'] = _request('titre');
     38        if (!$valeurs['statut'])
     39                $valeurs['statut'] = _request('statut');
     40        if (!$valeurs['lang'])
     41                $valeurs['lang'] = _request('lang');
    2642
     43        $valeurs['_hidden'] .= '<input type="hidden" name="lang" value="' . $valeurs['lang'] . '">';
     44        $valeurs['_hidden'] .= '<input type="hidden" name="objet_dest" value="' . $valeurs['objet_dest'] . '">';
     45        $valeurs['_hidden'] .= '<input type="hidden" name="id_objet_dest" value="' . $valeurs['id_objet_dest'] . '">';
     46        $valeurs['_hidden'] .= '<input type="hidden" name="objet" value="' . $valeurs['objet'] . '">';
     47        $valeurs['_hidden'] .= '<input type="hidden" name="id_objet" value="' . $valeurs['id_objet'] . '">';
     48        $valeurs['_hidden'] .= '<input type="hidden" name="statut" value="' . $valeurs['statut'] . '">';
     49        // Les types liens pour l'objet concerné
     50        if (!$types = lire_config('liaison_objet/type_liens_' . $valeurs['objet_dest'], array()))
     51                $types = lire_config('liaison_objet/type_liens', array());
    2752
    28     if(!$valeurs['objet_dest'])$valeurs['objet_dest']=_request('objet_dest');
    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');           
    32     if(!$valeurs['titre']) $valeurs['titre']=_request('titre');
    33     if(!$valeurs['statut']) $valeurs['statut']=_request('statut');
    34     if(!$valeurs['lang']) $valeurs['lang']=_request('lang');     
    35 
    36     $valeurs['_hidden'].='<input type="hidden" name="lang" value="'.$valeurs['lang'].'">';             
    37     $valeurs['_hidden'].='<input type="hidden" name="objet_dest" value="'.$valeurs['objet_dest'].'">';
    38     $valeurs['_hidden'].='<input type="hidden" name="id_objet_dest" value="'.$valeurs['id_objet_dest'].'">';
    39     $valeurs['_hidden'].='<input type="hidden" name="objet" value="'.$valeurs['objet'].'">';
    40     $valeurs['_hidden'].='<input type="hidden" name="id_objet" value="'.$valeurs['id_objet'].'">';     
    41     $valeurs['_hidden'].='<input type="hidden" name="statut" value="'.$valeurs['statut'].'">';       
    42         //Les types liens pour l'objet concerné
    43     if(!$types=lire_config('liaison_objet/type_liens_'.$valeurs['objet_dest'],array()))$types=lire_config('liaison_objet/type_liens',array());
    44    
    45    
    46     $types_lien=array();
    47     foreach($types as $cle => $valeur){
    48         $types_lien[$cle]=_T($valeur);
    49         }
    50     $valeurs['types_lien']=$types_lien;
     53        $types_lien = array();
     54        foreach ($types as $cle => $valeur) {
     55                $types_lien[$cle] = _T($valeur);
     56        }
     57        $valeurs['types_lien'] = $types_lien;
    5158
    5259        return $valeurs;
     
    5663 * Verifier les champs postes et signaler d'eventuelles erreurs
    5764 */
    58 function formulaires_editer_liaison_objet_verifier_dist($id_liaison_objet='new', $retour='', $lier_trad=0, $config_fonc='', $row=array(), $hidden=''){
    59         return formulaires_editer_objet_verifier('liaison_objet',$id_liaison_objet);
     65function formulaires_editer_liaison_objet_verifier_dist($id_liaison_objet = 'new', $retour = '', $lier_trad = 0, $config_fonc = '', $row = array(), $hidden = '') {
     66        return formulaires_editer_objet_verifier('liaison_objet', $id_liaison_objet);
    6067}
    6168
     
    6370 * Traiter les champs postes
    6471 */
    65 function formulaires_editer_liaison_objet_traiter_dist($id_liaison_objet='new', $retour='', $lier_trad=0, $config_fonc='', $row=array(), $hidden=''){
    66         return formulaires_editer_objet_traiter('liaison_objet',$id_liaison_objet,'',$lier_trad,$retour,$config_fonc,$row,$hidden);
     72function formulaires_editer_liaison_objet_traiter_dist($id_liaison_objet = 'new', $retour = '', $lier_trad = 0, $config_fonc = '', $row = array(), $hidden = '') {
     73        return formulaires_editer_objet_traiter('liaison_objet', $id_liaison_objet, '', $lier_trad, $retour, $config_fonc, $row, $hidden);
    6774}
    68 
    69 
    70 ?>
  • _plugins_/liaison_objet/branches/v2/lang/liaison_objet.xml

    r107933 r108373  
    1 <traduction module="liaison_objet" gestionnaire="salvatore" url="https://trad.spip.net" source="svn://zone.spip.org/spip-zone/_plugins_/liaison_objets/trunk/lang/" reference="fr">
    2         <langue code="de" url="https://trad.spip.net/tradlang_module/liaison_objet?lang_cible=de" total="50" traduits="48" relire="0" modifs="2" nouveaux="0" pourcent="96.00">
    3                 <traducteur nom="Rainer Müller" lien="https://trad.spip.net/auteur/rainer-muller" />
     1<traduction module="liaison_objet" gestionnaire="salvatore" url="https://trad.spip.net" source="svn://zone.spip.org/spip-zone/_plugins_/liaison_objet/trunk/lang/" reference="fr">
     2        <langue code="de" url="https://trad.spip.net/tradlang_module/liaison_objet?lang_cible=de" total="47" traduits="47" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
    43        </langue>
    5         <langue code="en" url="https://trad.spip.net/tradlang_module/liaison_objet?lang_cible=en" total="50" traduits="49" relire="0" modifs="1" nouveaux="0" pourcent="98.00">
    6                 <traducteur nom="Benitron" lien="https://trad.spip.net/auteur/benitron" />
    7                 <traducteur nom="Rainer Müller" lien="https://trad.spip.net/auteur/rainer-muller" />
     4        <langue code="en" url="https://trad.spip.net/tradlang_module/liaison_objet?lang_cible=en" total="47" traduits="47" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
    85        </langue>
    9         <langue code="es" url="https://trad.spip.net/tradlang_module/liaison_objet?lang_cible=es" total="50" traduits="47" relire="0" modifs="1" nouveaux="2" pourcent="94.00">
    10                 <traducteur nom="Rainer Müller" lien="https://trad.spip.net/auteur/rainer-muller" />
     6        <langue code="es" url="https://trad.spip.net/tradlang_module/liaison_objet?lang_cible=es" total="47" traduits="45" relire="0" modifs="0" nouveaux="2" pourcent="95.74">
    117        </langue>
    12         <langue code="fr" url="https://trad.spip.net/tradlang_module/liaison_objet?lang_cible=fr" total="50" traduits="50" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
     8        <langue code="fr" url="https://trad.spip.net/tradlang_module/liaison_objet?lang_cible=fr" total="47" traduits="47" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
    139        </langue>
    1410</traduction>
  • _plugins_/liaison_objet/branches/v2/lang/liaison_objet_de.php

    r107933 r108373  
    2121        'erreur_deja_lie' => 'Dieses Objekt wurde bereits für diese Liste ausgewählt',
    2222        'explication_choix_multi' => 'Mithilfe der Taste Ctrl oder Maj können Sie mehrere auswählen (Apfel oder Maj für Macs)',
    23         'explication_liaison_choix_illimite' => 'Standardmäßig kann ein Objekt nur einmal an ein Zielobjekt angeknüpft werden, möchten sie diese Einschränkung aufheben?', # MODIF
     23        'explication_liaison_choix_illimite' => 'Standardmäßig kann ein Objekt nur einmal an ein Zielobjekt angeknüpft werden, möchten sie diese Einschränkung aufheben?',
    2424        'explication_liaison_cible' => 'Wenn kein Ziel ausgewählt ist, werden alle berücksichtigt',
    2525        'explication_liaison_objets_cible' => 'Zielobjekte an welche Auswahlobjekte geknüpft werden können.',
     
    3939        'label_objet' => 'Objekt',
    4040        'label_objet_dest' => 'Zielobjekt',
     41        'label_objets_liaison' => 'Objekte mit denen man verlinken kann',
    4142        'label_ordre' => 'Rang',
    4243        'label_titre' => 'Titel',
    4344        'label_url' => 'Url',
     45        'liaison_choix_illimite' => 'Die Wahleinschränkung per Objekt aufheben',
     46        'liaison_cible' => 'Ziel Auswahl für',
     47        'liaison_objet' => 'Auswahl',
     48        'liaison_objet_cible_titre' => 'Auswahl Zielobjekte',
     49        'liaison_objets_pour' => 'Objekt Auswahl für',
     50        'liaison_type_lien' => 'Verknüpfungsart',
     51        'liaison_type_liens' => 'Verknüpfungsart festlegen',
    4452
    4553        // O
     
    5361        'retirer_lien_objet' => 'Dieses Objekt aus der Auswahl entfernen',
    5462        'retirer_tous_liens_liaison_objets' => 'Die gesamte Objekt Auswahl entfernen',
    55         'rubriques_choisis' => 'Ausgewählte Rubriken:',
    56 
    57         // S
    58         'liaison_choix_illimite' => 'Die Wahleinschränkung per Objekt aufheben',
    59         'liaison_cible' => 'Ziel Auswahl für',
    60         'liaison_objet' => 'Auswahl',
    61         'liaison_objet_cible_titre' => 'Auswahl Zielobjekte', # MODIF
    62         'liaison_objets_pour' => 'Objekt Auswahl für',
    63         'label_objets_liaison' => 'Objekte mit denen man verlinken kann',
    64         'liaison_type_lien' => 'Verknüpfungsart',
    65         'liaison_type_liens' => 'Verknüpfungsart festlegen',
    66         'liaisone' => 'Ausgewählt:',
    6763
    6864        // T
     
    7167        'texte_creer_asliaison_objetcier_objet' => 'Ein Objekt anlegen und verknüpfen',
    7268        'titre_langue_objet' => 'Sprache dieses Ausgewählten Objektes',
    73         'titre_logo_liaison_objet' => 'Logo dieses Ausgewählten Objektes',
    7469        'titre_liaison_objet' => 'Ausgewähltes Objekt',
    7570        'titre_liaison_objets' => 'Ausgewählte Objekte',
    76         'titre_liaison_objets_rubrique' => 'Ausgewählte Objekte dieser Rubrik',
     71        'titre_logo_liaison_objet' => 'Logo dieses Ausgewählten Objektes',
    7772        'type_liens_defaut' => 'Standard Verknüpfunsart, kann weiter unten überschrieben werden',
    7873        'type_liens_surcharge' => 'die standard Verknüpfunsarten überschreiben'
  • _plugins_/liaison_objet/branches/v2/lang/liaison_objet_en.php

    r107933 r108373  
    3939        'label_objet' => 'Object',
    4040        'label_objet_dest' => 'Target object',
     41        'label_objets_liaison' => 'Objects that can be linked to',
    4142        'label_ordre' => 'Rank',
    4243        'label_titre' => 'Title',
    4344        'label_url' => 'Url',
     45        'liaison_choix_illimite' => 'Disable limit liaison by Target Object',
     46        'liaison_cible' => 'Target liaison for',
     47        'liaison_objet' => 'Selection',
     48        'liaison_objet_cible_titre' => 'Selection of target objects',
     49        'liaison_objets_pour' => 'Object liaison for',
     50        'liaison_type_lien' => 'Link type',
     51        'liaison_type_liens' => 'Links type definition',
    4452
    4553        // O
     
    5361        'retirer_lien_objet' => 'Remove this selected object',
    5462        'retirer_tous_liens_liaison_objets' => 'Remove all the selected objects',
    55         'rubriques_choisis' => 'Selected sections:',
    56 
    57         // S
    58         'liaison_choix_illimite' => 'Disable limit liaison by Target Object',
    59         'liaison_cible' => 'Target liaison for',
    60         'liaison_objet' => 'Selection',
    61         'liaison_objet_cible_titre' => 'Selection of target objects', # MODIF
    62         'liaison_objets_pour' => 'Object liaison for',
    63         'label_objets_liaison' => 'Objects that can be linked to',
    64         'liaison_type_lien' => 'Link type',
    65         'liaison_type_liens' => 'Links type definition',
    66         'liaisone' => 'Selected :',
    6763
    6864        // T
     
    7167        'texte_creer_asliaison_objetcier_objet' => 'Create and link an object',
    7268        'titre_langue_objet' => 'Language of this Selected Object',
    73         'titre_logo_liaison_objet' => 'Logo of the Selected Object',
    7469        'titre_liaison_objet' => 'Selected Objects',
    7570        'titre_liaison_objets' => 'Selected Objects',
    76         'titre_liaison_objets_rubrique' => 'Selected Objects of the section',
     71        'titre_logo_liaison_objet' => 'Logo of the Selected Object',
    7772        'type_liens_defaut' => 'link types by default, can be overloaded below',
    7873        'type_liens_surcharge' => 'overload the default link types'
  • _plugins_/liaison_objet/branches/v2/lang/liaison_objet_es.php

    r107933 r108373  
    3838        'label_objet' => 'Objeto',
    3939        'label_objet_dest' => 'Objeto diana',
     40        'label_objets_liaison' => 'Objetos que pueden ser vinculados',
    4041        'label_ordre' => 'Orden',
    4142        'label_titre' => 'Título',
    4243        'label_url' => 'Url',
     44        'liaison_cible' => 'Selección de objetos diana para',
     45        'liaison_objet' => 'Selección',
     46        'liaison_objet_cible_titre' => 'Selección de Objetos Diana',
     47        'liaison_objets_pour' => 'Selección objetos para:',
     48        'liaison_type_lien' => 'Tipo de enlace',
     49        'liaison_type_liens' => 'Definición de tipos de enlace',
    4350
    4451        // O
     
    5259        'retirer_lien_objet' => 'Eliminar este objeto seleccionado',
    5360        'retirer_tous_liens_liaison_objets' => 'Eliminar todas las selecciones de objetos',
    54         'rubriques_choisis' => 'Secciones seleccionadas:',
    55 
    56         // S
    57         'liaison_cible' => 'Selección de objetos diana para',
    58         'liaison_objet' => 'Selección',
    59         'liaison_objet_cible_titre' => 'Selección de Objetos Diana', # MODIF
    60         'liaison_objets_pour' => 'Selección objetos para:',
    61         'label_objets_liaison' => 'Objetos que pueden ser vinculados',
    62         'liaison_type_lien' => 'Tipo de enlace',
    63         'liaison_type_liens' => 'Definición de tipos de enlace',
    64         'liaisone' => 'Seleccionado:',
    6561
    6662        // T
     
    6965        'texte_creer_asliaison_objetcier_objet' => 'Crear y vincular un objet',
    7066        'titre_langue_objet' => 'Idioma de este Objeto Seleccionado',
    71         'titre_logo_liaison_objet' => 'Logo de este Objeto Seleccionado',
    7267        'titre_liaison_objet' => 'Objeto Seleccionado',
    7368        'titre_liaison_objets' => 'Objetos Seleccionados',
    74         'titre_liaison_objets_rubrique' => 'Objetos Seleccionados de la sección',
     69        'titre_logo_liaison_objet' => 'Logo de este Objeto Seleccionado',
    7570        'type_liens_defaut' => 'tipos de enlace por defecto, pueden ser sobrescritos más abajo',
    7671        'type_liens_surcharge' => 'sobrescribir los tipos de enlace por defecto'
  • _plugins_/liaison_objet/branches/v2/lang/liaison_objet_fr.php

    r107933 r108373  
    11<?php
    22// This is a SPIP language file  --  Ceci est un fichier langue de SPIP
    3 // Fichier source, a modifier dans svn://zone.spip.org/spip-zone/_plugins_/liaison_objets/trunk/lang/
     3// Fichier source, a modifier dans svn://zone.spip.org/spip-zone/_plugins_/liaison_objet/trunk/lang/
    44if (!defined('_ECRIRE_INC_VERSION')) {
    55        return;
     
    4545        'liaison_objet' => 'Liaison',
    4646        'liaison_objet_cible_titre' => 'Objets cibles',
    47         'liaison_objets_pour' => 'Liaison d\'objets pour',
     47        'liaison_objets_pour' => 'Liaison dobjets pour',
    4848        'liaison_type_lien' => 'Type de lien',
    4949        'liaison_type_liens' => 'Définition des types de lien',
    50 
    5150
    5251        // O
     
    6665        'texte_creer_asliaison_objetcier_objet' => 'Créer et associer un objet',
    6766        'titre_langue_objet' => 'Langue de cet objet lié',
    68         'titre_logo_liaison_objet' => 'Logo de cet objet lié',
    6967        'titre_liaison_objet' => 'Objet lié',
    7068        'titre_liaison_objets' => 'Objets liés',
     69        'titre_logo_liaison_objet' => 'Logo de cet objet lié',
    7170        'type_liens_defaut' => 'types de lien par défaut, peuvent être surchargés ci-bas',
    7271        'type_liens_surcharge' => 'surcharger les types de lien par défaut'
  • _plugins_/liaison_objet/branches/v2/lang/paquet-liaison_objet.xml

    r107933 r108373  
    1 <traduction module="paquet-liaison_objet" gestionnaire="salvatore" url="https://trad.spip.net" source="svn://zone.spip.org/spip-zone/_plugins_/liaison_objets/trunk/lang/" reference="fr">
     1<traduction module="paquet-liaison_objet" gestionnaire="salvatore" url="https://trad.spip.net" source="svn://zone.spip.org/spip-zone/_plugins_/liaison_objet/trunk/lang/" reference="fr">
    22        <langue code="en" url="https://trad.spip.net/tradlang_module/paquet-liaison_objet?lang_cible=en" total="3" traduits="3" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
    3                 <traducteur nom="Benitron" lien="https://trad.spip.net/auteur/benitron" />
    4                 <traducteur nom="cerdic" lien="https://trad.spip.net/auteur/cerdic" />
    53        </langue>
    64        <langue code="fr" url="https://trad.spip.net/tradlang_module/paquet-liaison_objet?lang_cible=fr" total="3" traduits="3" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
  • _plugins_/liaison_objet/branches/v2/lang/paquet-liaison_objet_en.php

    r107933 r108373  
    1010$GLOBALS[$GLOBALS['idx_lang']] = array(
    1111
    12         // S
     12        // L
    1313        'liaison_objet_description' => 'Plugin inspired by the plugin article liaison.
    1414Selects spip objects, store them and customize their display depending on the selected section',
  • _plugins_/liaison_objet/branches/v2/lang/paquet-liaison_objet_fr.php

    r107933 r108373  
    11<?php
    22// This is a SPIP language file  --  Ceci est un fichier langue de SPIP
    3 // Fichier source, a modifier dans svn://zone.spip.org/spip-zone/_plugins_/liaison_objets/trunk/lang/
     3// Fichier source, a modifier dans svn://zone.spip.org/spip-zone/_plugins_/liaison_objet/trunk/lang/
    44if (!defined('_ECRIRE_INC_VERSION')) {
    55        return;
     
    88$GLOBALS[$GLOBALS['idx_lang']] = array(
    99
    10         // S
     10        // L
    1111        'liaison_objet_description' => 'Permet de lier des objets entre eux.',
    1212        'liaison_objet_nom' => 'Liaison d’objets',
  • _plugins_/liaison_objet/branches/v2/liaison_objet_autorisations.php

    r107933 r108373  
    11<?php
    22/**
    3  * Plugin Selection d&#039;objets
     3 * Plugin Liaisons d'objets
    44 * (c) 2012 Rainer Müller
    55 * Licence GNU/GPL
     
    3737// creer
    3838function autoriser_objet_creer_dist($faire, $type, $id, $qui, $opt) {
    39         return in_array($qui['statut'], array('0minirezo', '1comite')); 
     39        return in_array($qui['statut'], array('0minirezo', '1comite'));
    4040}
    4141
  • _plugins_/liaison_objet/branches/v2/paquet.xml

    r107945 r108373  
    22        prefix="liaison_objet"
    33        categorie="edition"
    4         version="2.0.1"
     4        version="2.0.2"
    55        etat="stable"
    66        compatibilite="[3.0.5;3.2.*]"
    77        logo="prive/themes/spip/images/liaison_objet-64.png"
    8         documentation="https://contrib.spip.net/"
     8        documentation="https://contrib.spip.net/Liaison-d-objets-4431"
    99        schema="1.0.0"
    1010>
  • _plugins_/liaison_objet/trunk

    • Property svn:ignore set to
      README.md
  • _plugins_/liaison_objet/trunk/action/editer_liaison_objet.php

    r107839 r108373  
    11<?php
    2 if (!defined("_ECRIRE_INC_VERSION")) return;
     2if (!defined("_ECRIRE_INC_VERSION"))
     3        return;
    34
    45include_spip('action/editer_objet');
    56
    6 
    77// https://code.spip.net/@action_editer_liaison_objet_dist
    8 function action_editer_liaison_objet_dist($arg=null) {
    9 
    10     if (is_null($arg)){
    11         $securiser_action = charger_fonction('securiser_action', 'inc');
    12         $arg = $securiser_action();
    13     }
    14 
    15     // Envoi depuis le formulaire d'edition d'une liaison_objet
    16     if (!$id_liaison_objet = intval($arg)) {
    17         $id_liaison_objet = liaison_objet_inserer(_request('id_objet'),_request('objet'));
    18     }
    19 
    20     if (!$id_liaison_objet)
    21         return array(0,''); // erreur
    22 
    23     $err = liaison_objet_modifier($id_liaison_objet);
    24 
    25     return array($id_liaison_objet,$err);
    26 }
    27 
    28 
    29 function liaison_objet_inserer($id_objet,$objet) {
    30 
    31    $objet_dest=_request('objet_dest');
    32    $id_objet_dest=_request('id_objet_dest'); 
    33    $objet_table=$objet;
    34    if(!$id_objet){
    35       $objet_table=$objet_dest;
    36       $objet='liaison_objet';
    37       $id_objet==$id_objet_dest;
    38     }
    39     if(!$lang=_request('lang')){
    40         $table_sql = table_objet_sql($objet_table);
    41         $trouver_table = charger_fonction('trouver_table','base');
    42         $desc = $trouver_table($table_sql);
    43         if (!$desc OR !isset($desc['field'])) {
    44         spip_log("Objet $objet inconnu dans objet_modifier",_LOG_ERREUR);
    45         return _L("Erreur objet $objet inconnu");
    46     }
    47         if($desc['lang'])$lang=sql_getfetsel('lang',$table_sql,'id_'.$objet_table.'='.$id_objet);
    48         else $lang=$GLOBALS['visiteur_session']['lang'];
    49         }
    50    
    51     // Verifier l'ordre
    52 
    53     $where = array(
    54         'id_objet_dest='.$id_objet_dest,
    55         'objet_dest='.sql_quote($objet_dest),
    56         'lang='.sql_quote($lang),
    57         );
    58     $verifier_ordre=charger_fonction('verifier_ordre','inc');
    59    
    60     //le nombre de résultats
    61     $ordre=$verifier_ordre($where);
    62    
    63 
    64     $champs = array(
    65         'objet_dest'=>$objet_dest,
    66         'id_objet_dest'=>$id_objet_dest,                                   
    67         'lang' => $lang,     
    68         'langue_choisie' => 'non',
    69         'ordre' => $ordre+1,    //   
    70         );
    71    
    72     // Envoyer aux plugins
    73     $champs = pipeline('pre_insertion',
    74         array(
    75             'args' => array(
    76                 'table' => 'spip_liaison_objets',
    77             ),
    78             'data' => $champs
    79         )
    80     );
    81     $id_liaison_objet = sql_insertq("spip_liaison_objets", $champs);
    82     pipeline('post_insertion',
    83         array(
    84             'args' => array(
    85                 'table' => 'spip_liaison_objets',
    86                 'id_objet' => $id_liaison_objet
    87             ),
    88             'data' => $champs
    89         )
    90     );
    91     return $id_liaison_objet;
    92 }
    93 
     8function action_editer_liaison_objet_dist($arg = null) {
     9        if (is_null($arg)) {
     10                $securiser_action = charger_fonction('securiser_action', 'inc');
     11                $arg = $securiser_action();
     12        }
     13
     14        // Envoi depuis le formulaire d'edition d'une liaison_objet
     15        if (!$id_liaison_objet = intval($arg)) {
     16                $id_liaison_objet = liaison_objet_inserer(_request('id_objet'), _request('objet'));
     17        }
     18
     19        if (!$id_liaison_objet)
     20                return array(
     21                        0,
     22                        ''
     23                ); // erreur
     24
     25        $err = liaison_objet_modifier($id_liaison_objet);
     26
     27        return array(
     28                $id_liaison_objet,
     29                $err
     30        );
     31}
     32function liaison_objet_inserer($id_objet, $objet) {
     33        $objet_dest = _request('objet_dest');
     34        $id_objet_dest = _request('id_objet_dest');
     35        $objet_table = $objet;
     36        if (!$id_objet) {
     37                $objet_table = $objet_dest;
     38                $objet = 'liaison_objet';
     39                $id_objet == $id_objet_dest;
     40        }
     41        if (!$lang = _request('lang')) {
     42                $table_sql = table_objet_sql($objet_table);
     43                $trouver_table = charger_fonction('trouver_table', 'base');
     44                $desc = $trouver_table($table_sql);
     45                if (!$desc or !isset($desc['field'])) {
     46                        spip_log("Objet $objet inconnu dans objet_modifier", _LOG_ERREUR);
     47                        return _L("Erreur objet $objet inconnu");
     48                }
     49                if ($desc['lang'])
     50                        $lang = sql_getfetsel('lang', $table_sql, 'id_' . $objet_table . '=' . $id_objet);
     51                else
     52                        $lang = $GLOBALS['visiteur_session']['lang'];
     53        }
     54
     55        // Verifier l'ordre
     56
     57        $where = array(
     58                'id_objet_dest=' . $id_objet_dest,
     59                'objet_dest=' . sql_quote($objet_dest),
     60                'lang=' . sql_quote($lang)
     61        );
     62        $verifier_ordre = charger_fonction('verifier_ordre', 'inc');
     63
     64        // le nombre de résultats
     65        $ordre = $verifier_ordre($where);
     66
     67        $champs = array(
     68                'objet_dest' => $objet_dest,
     69                'id_objet_dest' => $id_objet_dest,
     70                'lang' => $lang,
     71                'langue_choisie' => 'non',
     72                'ordre' => $ordre + 1  //
     73        );
     74
     75        // Envoyer aux plugins
     76        $champs = pipeline('pre_insertion', array(
     77                'args' => array(
     78                        'table' => 'spip_liaison_objets'
     79                ),
     80                'data' => $champs
     81        ));
     82        $id_liaison_objet = sql_insertq("spip_liaison_objets", $champs);
     83        pipeline('post_insertion', array(
     84                'args' => array(
     85                        'table' => 'spip_liaison_objets',
     86                        'id_objet' => $id_liaison_objet
     87                ),
     88                'data' => $champs
     89        ));
     90        return $id_liaison_objet;
     91}
    9492
    9593/**
     
    103101 * @return string|bool
    104102 */
    105 function liaison_objet_modifier ($id_liaison_objet, $set=null) {
    106 
    107     include_spip('inc/modifier');
    108    
    109 
    110    
    111     $c = collecter_requests(
    112         // white list
    113         array('titre', 'descriptif', 'url','type_lien','id_objet_dest','objet_dest','objet','id_objet'),
    114         // black list
    115         array('statut'),
    116         // donnees eventuellement fournies
    117         $set
    118     );
    119 
    120     // Si la liaison_objet est publiee, invalider les caches et demander sa reindexation
    121     $t = sql_fetsel("statut,lang,id_objet_dest,objet_dest,ordre", "spip_liaison_objets", "id_liaison_objet=$id_liaison_objet");
    122     if ($t['statut'] == 'publie') {
    123         $invalideur = "id='liaison_objet/$id_liaison_objet'";
    124         $indexation = true;
    125     }
    126    
    127 
    128 
    129     if ($err = objet_modifier_champs('liaison_objet', $id_liaison_objet,
    130         array(
    131             'nonvide' => array(
    132          
    133                 ),               
    134             'invalideur' => $invalideur,
    135             'indexation' => $indexation,
    136         ),
    137         $c)){
    138         return $err;   
    139         }
    140        
    141 
    142     $c = collecter_requests(array('statut'),array(),$set);
    143     $err = liaison_objet_instituer($id_liaison_objet, $c);
    144     return $err;
     103function liaison_objet_modifier($id_liaison_objet, $set = null) {
     104        include_spip('inc/modifier');
     105
     106        $c = collecter_requests(
     107                        // white list
     108                        array(
     109                                'titre',
     110                                'descriptif',
     111                                'url',
     112                                'type_lien',
     113                                'id_objet_dest',
     114                                'objet_dest',
     115                                'objet',
     116                                'id_objet'
     117                        ),
     118                        // black list
     119                        array(
     120                                'statut'
     121                        ),
     122                        // donnees eventuellement fournies
     123                        $set);
     124
     125        // Si la liaison_objet est publiee, invalider les caches et demander sa reindexation
     126        $t = sql_fetsel("statut,lang,id_objet_dest,objet_dest,ordre", "spip_liaison_objets", "id_liaison_objet=$id_liaison_objet");
     127        if ($t['statut'] == 'publie') {
     128                $invalideur = "id='liaison_objet/$id_liaison_objet'";
     129                $indexation = true;
     130        }
     131
     132        if ($err = objet_modifier_champs('liaison_objet', $id_liaison_objet, array(
     133                'nonvide' => array(
     134                ),
     135                'invalideur' => $invalideur,
     136                'indexation' => $indexation
     137        ), $c)) {
     138                return $err;
     139        }
     140
     141        $c = collecter_requests(array(
     142                'statut'
     143        ), array(), $set);
     144        $err = liaison_objet_instituer($id_liaison_objet, $c);
     145        return $err;
    145146}
    146147
     
    153154 */
    154155function liaison_objet_instituer($id_liaison_objet, $c) {
    155     $champs = array();
    156 
    157     // Changer le statut de la liaison_objet ?
    158     $statut= sql_getfetsel("statut", "spip_liaison_objets", "id_liaison_objet=".intval($id_liaison_objet));
    159 
    160 
    161     $statut_ancien = $statut;
    162 
    163 
    164     if ($c['statut']
    165     AND $c['statut'] != $statut) {
    166         $statut = $champs['statut'] = $c['statut'];
    167     }
    168 
    169 
    170     // Envoyer aux plugins
    171     $champs = pipeline('pre_edition',
    172         array(
    173             'args' => array(
    174                 'table' => 'spip_liaison_objets',
    175                 'id_objet' => $id_liaison_objet,
    176                 'action'=>'instituer',
    177                 'statut_ancien' => $statut_ancien,
    178             ),
    179             'data' => $champs
    180         )
    181     );
    182 
    183     if (!$champs) return;
    184 
    185     sql_updateq('spip_liaison_objets', $champs, "id_liaison_objet=".intval($id_liaison_objet));
    186 
    187     //
    188     // Post-modifications
    189     //
    190 
    191     // Invalider les caches
    192     include_spip('inc/invalideur');
    193     suivre_invalideur("id='liaison_objet/$id_liaison_objet'");
    194 
    195 
    196 
    197     // Pipeline
    198     pipeline('post_edition',
    199         array(
    200             'args' => array(
    201                 'table' => 'spip_liaison_objets',
    202                 'id_objet' => $id_liaison_objet,
    203                 'action'=>'instituer',
    204                 'statut_ancien' => $statut_ancien,
    205             ),
    206             'data' => $champs
    207         )
    208     );
    209 
    210 
    211     return ''; // pas d'erreur
    212 }
     156        $champs = array();
     157
     158        // Changer le statut de la liaison_objet ?
     159        $statut = sql_getfetsel("statut", "spip_liaison_objets", "id_liaison_objet=" . intval($id_liaison_objet));
     160
     161        $statut_ancien = $statut;
     162
     163        if ($c['statut'] and $c['statut'] != $statut) {
     164                $statut = $champs['statut'] = $c['statut'];
     165        }
     166
     167        // Envoyer aux plugins
     168        $champs = pipeline('pre_edition', array(
     169                'args' => array(
     170                        'table' => 'spip_liaison_objets',
     171                        'id_objet' => $id_liaison_objet,
     172                        'action' => 'instituer',
     173                        'statut_ancien' => $statut_ancien
     174                ),
     175                'data' => $champs
     176        ));
     177
     178        if (!$champs)
     179                return;
     180
     181        sql_updateq('spip_liaison_objets', $champs, "id_liaison_objet=" . intval($id_liaison_objet));
     182
     183        //
     184        // Post-modifications
     185        //
     186
     187        // Invalider les caches
     188        include_spip('inc/invalideur');
     189        suivre_invalideur("id='liaison_objet/$id_liaison_objet'");
     190
     191        // Pipeline
     192        pipeline('post_edition', array(
     193                'args' => array(
     194                        'table' => 'spip_liaison_objets',
     195                        'id_objet' => $id_liaison_objet,
     196                        'action' => 'instituer',
     197                        'statut_ancien' => $statut_ancien
     198                ),
     199                'data' => $champs
     200        ));
     201
     202        return ''; // pas d'erreur
     203}
  • _plugins_/liaison_objet/trunk/action/instituer_objet_lie.php

    r107932 r108373  
    22if (!defined("_ECRIRE_INC_VERSION"))
    33        return;
     4
    45function action_instituer_objet_lie_dist($arg = null) {
    56        if (is_null($arg)) {
     
    2627                        $langue = array();
    2728        }
    28         ;
     29
    2930        // si l'objet n'est pas définit par langue on l'enregistre pour chaque langue du site
    3031        if (count($langue) > 1) {
  • _plugins_/liaison_objet/trunk/action/ranger.php

    r107839 r108373  
    11<?php
     2if (!defined("_ECRIRE_INC_VERSION"))
     3        return;
    24
    3 if (!defined("_ECRIRE_INC_VERSION")) return;
    4 
    5 function action_ranger_dist($arg=null){
    6     if (is_null($arg)){
    7         $securiser_action = charger_fonction('securiser_action', 'inc');
    8         $arg = $securiser_action();
    9     }   
    10      $verifier_ordre=charger_fonction('verifier_ordre','inc');
     5function action_ranger_dist($arg = null) {
     6        if (is_null($arg)) {
     7                $securiser_action = charger_fonction('securiser_action', 'inc');
     8                $arg = $securiser_action();
     9        }
     10        $verifier_ordre = charger_fonction('verifier_ordre', 'inc');
    1111        include_spip("inc/autoriser");
    1212        include_spip("inc/config");
    1313
    14         list($action,$lang,$id_liaison_objet,$ordre,$objet_dest,$id_objet_dest,$load)=explode('-',$arg);
    15     $load=_request('load');
    16     $id=_request('id');
     14        list($action, $lang, $id_liaison_objet, $ordre, $objet_dest, $id_objet_dest, $load) = explode('-', $arg);
     15        $load = _request('load');
     16        $id = _request('id');
    1717
    18     switch($action){
    19         case 'supprimer_ordre' :
    20             include_spip('formulaires/bouton_article');
    21             spip_log('eliminer 1','liaison');
    22                 $where=array(
    23                     'id_liaison_objet='.$id_liaison_objet,
    24                     );
    25                                            
    26                 sql_delete("spip_liaison_objets",$where);
    27                        
    28                 // on vérifie l'ordre des objets déjà enregistrés et on corrige si beliaison_objetin
    29                    
    30                 $where = array(
    31                     'id_objet_dest='.$id_objet_dest,
    32                     'objet_dest='.sql_quote($objet_dest),
    33                     'lang='.sql_quote($lang)   
    34                     );
    35                    
    36                 $ordre=$verifier_ordre($where);
    37                
    38             break;
    39            
    40         case 'remonter_ordre':
    41             $where = array(             
    42             'lang="'.$lang.'"',
    43             'objet_dest="'.$objet_dest.'"',
    44             'id_objet_dest="'.$id_objet_dest.'"', 
    45             'ordre<="'.$ordre.'"',                           
    46                 );
    47        
    48             $result = sql_select("*", "spip_liaison_objets", $where,'', "ordre DESC",2);
    49            
    50             while ($row = sql_fetch($result)) {
    51                 if($id_liaison_objet==$row["id_liaison_objet"]){
    52                     $o =$ordre-1;
    53                 }
    54                 else{
    55                     $o =$ordre;
    56                 }
    57             sql_updateq("spip_liaison_objets", array("ordre" =>$o),'id_liaison_objet='.$row['id_liaison_objet']);
    58             }
    59                  $where = array(
    60                     'id_objet_dest='.$id_objet_dest,
    61                     'objet_dest='.sql_quote($objet_dest),
    62                     'lang='.sql_quote($lang)   
    63                     );           
    64         $ordre=$verifier_ordre($where);     
    65             break;
    66            
    67         case 'descendre_ordre':
    68             $where = array(             
    69             'lang="'.$lang.'"',
    70             'objet_dest="'.$objet_dest.'"',
    71             'id_objet_dest="'.$id_objet_dest.'"', 
    72             'ordre>="'.$ordre.'"',                           
    73                 );
     18        switch ($action) {
     19                case 'supprimer_ordre' :
     20                        include_spip('formulaires/bouton_article');
     21                        spip_log('eliminer 1', 'liaison');
     22                        $where = array(
     23                                'id_liaison_objet=' . $id_liaison_objet
     24                        );
    7425
    75             $result = sql_select("*", "spip_liaison_objets", $where,'', "ordre",2);
    76            
    77             while ($row = sql_fetch($result)) {
    78                 if($id_liaison_objet==$row["id_liaison_objet"]){
    79                     $o =$ordre+1;
    80                 }
    81                 else{
    82                     $o =$ordre;
    83                 }
    84             sql_updateq("spip_liaison_objets", array("ordre" =>$o),'id_liaison_objet='.$row['id_liaison_objet']);
    85             }
    86             $where = array(
    87                 'id_objet_dest='.$id_objet_dest,
    88                 'objet_dest='.sql_quote($objet_dest),
    89                 'lang='.sql_quote($lang)   
    90                 );           
    91             $ordre=$verifier_ordre($where); 
    92             break;
    93         //ranger avec drag and drop - liste des objets séléctionné sur la page de l'objet cible
    94         case 'nouvel_ordre':
    95             $nouvel_ordre=explode(',',_request('nouvel_ordre'));
    96             $ordre=0;
    97             foreach($nouvel_ordre AS $id_liaison_objet){
    98                 $ordre++;
    99                 sql_updateq("spip_liaison_objets", array("ordre" => $ordre),'id_liaison_objet='.$id_liaison_objet);
    100                 include_spip('inc/invalideur');
    101                 suivre_invalideur("id='liaison_objet/$id_liaison_objet'");   
    102             }
    103             break;
    104            
    105         //ranger avec drag and drop - liste des objets séléctionné sur la page de l'objet
    106         case 'nouvel_ordre_objet':
    107             $nouvel_ordre=explode(',',_request('nouvel_ordre'));
    108             $ordre=0;
    109             foreach($nouvel_ordre AS $id_liaison_objet){
    110                 $ordre++;
    111                 sql_updateq("spip_liaison_objets", array("ordre_objet" => $ordre),'id_liaison_objet='.$id_liaison_objet);
    112                 include_spip('inc/invalideur');
    113                 suivre_invalideur("id='liaison_objet/$id_liaison_objet'");   
    114             }
    115             break;
    116            
    117         }
     26                        sql_delete("spip_liaison_objets", $where);
    11827
    119     if($load){
    120         include_spip('public/assembler');
    121         $cont=calculer_contexte();
    122         $contexte = array('id_objet_dest'=>$id_objet_dest,'objet_dest'=>$objet_dest,'l'=>$lang,'id'=>$id);
    123         $contexte=array_merge($cont,$contexte);
    124         echo recuperer_fond($load,$contexte);
    125     }
    126 return $return;
     28                        // on vérifie l'ordre des objets déjà enregistrés et on corrige si beliaison_objetin
     29
     30                        $where = array(
     31                                'id_objet_dest=' . $id_objet_dest,
     32                                'objet_dest=' . sql_quote($objet_dest),
     33                                'lang=' . sql_quote($lang)
     34                        );
     35
     36                        $ordre = $verifier_ordre($where);
     37
     38                        break;
     39
     40                case 'remonter_ordre' :
     41                        $where = array(
     42                                'lang="' . $lang . '"',
     43                                'objet_dest="' . $objet_dest . '"',
     44                                'id_objet_dest="' . $id_objet_dest . '"',
     45                                'ordre<="' . $ordre . '"'
     46                        );
     47
     48                        $result = sql_select("*", "spip_liaison_objets", $where, '', "ordre DESC", 2);
     49
     50                        while ($row = sql_fetch($result)) {
     51                                if ($id_liaison_objet == $row["id_liaison_objet"]) {
     52                                        $o = $ordre - 1;
     53                                }
     54                                else {
     55                                        $o = $ordre;
     56                                }
     57                                sql_updateq("spip_liaison_objets", array(
     58                                        "ordre" => $o
     59                                ), 'id_liaison_objet=' . $row['id_liaison_objet']);
     60                        }
     61                        $where = array(
     62                                'id_objet_dest=' . $id_objet_dest,
     63                                'objet_dest=' . sql_quote($objet_dest),
     64                                'lang=' . sql_quote($lang)
     65                        );
     66                        $ordre = $verifier_ordre($where);
     67                        break;
     68
     69                case 'descendre_ordre' :
     70                        $where = array(
     71                                'lang="' . $lang . '"',
     72                                'objet_dest="' . $objet_dest . '"',
     73                                'id_objet_dest="' . $id_objet_dest . '"',
     74                                'ordre>="' . $ordre . '"'
     75                        );
     76
     77                        $result = sql_select("*", "spip_liaison_objets", $where, '', "ordre", 2);
     78
     79                        while ($row = sql_fetch($result)) {
     80                                if ($id_liaison_objet == $row["id_liaison_objet"]) {
     81                                        $o = $ordre + 1;
     82                                }
     83                                else {
     84                                        $o = $ordre;
     85                                }
     86                                sql_updateq("spip_liaison_objets", array(
     87                                        "ordre" => $o
     88                                ), 'id_liaison_objet=' . $row['id_liaison_objet']);
     89                        }
     90                        $where = array(
     91                                'id_objet_dest=' . $id_objet_dest,
     92                                'objet_dest=' . sql_quote($objet_dest),
     93                                'lang=' . sql_quote($lang)
     94                        );
     95                        $ordre = $verifier_ordre($where);
     96                        break;
     97                // ranger avec drag and drop - liste des objets séléctionné sur la page de l'objet cible
     98                case 'nouvel_ordre' :
     99                        $nouvel_ordre = explode(',', _request('nouvel_ordre'));
     100                        $ordre = 0;
     101                        foreach ($nouvel_ordre as $id_liaison_objet) {
     102                                $ordre++;
     103                                sql_updateq("spip_liaison_objets", array(
     104                                        "ordre" => $ordre
     105                                ), 'id_liaison_objet=' . $id_liaison_objet);
     106                                include_spip('inc/invalideur');
     107                                suivre_invalideur("id='liaison_objet/$id_liaison_objet'");
     108                        }
     109                        break;
     110
     111                // ranger avec drag and drop - liste des objets séléctionné sur la page de l'objet
     112                case 'nouvel_ordre_objet' :
     113                        $nouvel_ordre = explode(',', _request('nouvel_ordre'));
     114                        $ordre = 0;
     115                        foreach ($nouvel_ordre as $id_liaison_objet) {
     116                                $ordre++;
     117                                sql_updateq("spip_liaison_objets", array(
     118                                        "ordre_objet" => $ordre
     119                                ), 'id_liaison_objet=' . $id_liaison_objet);
     120                                include_spip('inc/invalideur');
     121                                suivre_invalideur("id='liaison_objet/$id_liaison_objet'");
     122                        }
     123                        break;
     124        }
     125
     126        if ($load) {
     127                include_spip('public/assembler');
     128                $cont = calculer_contexte();
     129                $contexte = array(
     130                        'id_objet_dest' => $id_objet_dest,
     131                        'objet_dest' => $objet_dest,
     132                        'l' => $lang,
     133                        'id' => $id
     134                );
     135                $contexte = array_merge($cont, $contexte);
     136                echo recuperer_fond($load, $contexte);
     137        }
     138        return $return;
    127139}
    128 
    129 ?>
  • _plugins_/liaison_objet/trunk/base/liaison_objet.php

    r107932 r108373  
    11<?php
    22/**
    3  * Plugin Selection d'objets
     3 * Plugin Liaison d'objets
    44 * (c) 2012 Rainer Müller
    55 * Licence GNU/GPL
     
    77
    88if (!defined('_ECRIRE_INC_VERSION')) return;
    9 
    109
    1110/**
     
    1817        return $interfaces;
    1918}
    20 
    2119
    2220/**
     
    7876                ),
    7977                'texte_changer_statut' => 'liaison_objet:texte_changer_statut_objet',
    80 
    81 
    8278        );
    8379
  • _plugins_/liaison_objet/trunk/formulaires/bouton_objet.php

    r107932 r108373  
    11<?php
     2if (!defined("_ECRIRE_INC_VERSION"))
     3        return;
     4function formulaires_bouton_objet_charger_dist($id_objet, $objet, $langue, $lang = '', $objet_dest = 'rubrique') {
     5        include_spip('inc/config');
     6        include_spip('inc/presentation');
     7        include_spip('inc/layer');
    28
    3 if (!defined("_ECRIRE_INC_VERSION")) return;
     9        // Les objets destinataires choisies
     10        $special = array(
     11                'article',
     12                'rubrique'
     13        );
     14        if (in_array($objet_dest, $special))
     15                $choisies = picker_selected(lire_config('liaison_objet/liaison_' . $objet_dest . '_dest', array()), $objet_dest);
     16        else
     17                $choisies = lire_config('liaison_objet/liaison_' . $objet_dest . '_dest', array());
    418
    5 function formulaires_bouton_objet_charger_dist($id_objet,$objet,$langue,$lang='',$objet_dest='rubrique') {
    6                 include_spip('inc/config');
    7                 include_spip('inc/presentation');
    8                 include_spip('inc/layer');
     19        $lang = $langue ? explode(',', $langue) : '';
    920
    10                 //Les objets destinataires choisies
    11                 $special=array('article','rubrique');
    12                 if(in_array($objet_dest,$special)) $choisies= picker_selected(lire_config('liaison_objet/liaison_'.$objet_dest.'_dest',array()),$objet_dest);
    13                 else $choisies=lire_config('liaison_objet/liaison_'.$objet_dest.'_dest',array());
     21        // On garde l'objet original pour la détection des données de l'objet
     22        $objet_dest_original = $objet_dest;
    1423
    15                 $lang=$langue?explode(',',$langue):'';
     24        $e = trouver_objet_exec($objet_dest);
    1625
    17                 //On garde l'objet original pour la détection des données de l'objet
    18                 $objet_dest_original=$objet_dest;
     26        $objet_dest = $e['type'] ? $e['type'] : $objet_dest;
    1927
    20                 $e = trouver_objet_exec($objet_dest);
     28        // Les information des objets destinataires
     29        $table_dest = table_objet_sql($objet_dest);
     30        $tables = lister_tables_objets_sql();
     31        $titre_objet_dest = _T($tables[$table_dest]['texte_objet']);
    2132
    22                 $objet_dest=$e['type']?$e['type']:$objet_dest;
     33        // Préparer la requette
     34        $where = array();
     35        if (isset($tables[$table_dest]['statut'][0]['publie']))
     36                $statut = $tables[$table_dest]['statut'][0]['publie'];
     37        if ($objet == 'auteur')
     38                $where[] = 'statut !=' . sql_quote('5poubelle');
     39        elseif ($statut and $objet_dest != 'rubrique')
     40                $where[] = 'statut=' . sql_quote($statut);
     41        if ($choisies)
     42                $where[] = 'id_' . $objet_dest . ' IN (' . implode(',', $choisies) . ')';
     43        if ($tables[$table_dest]['field']['lang'] and $lang) {
     44                if ($objet_dest != 'rubrique')
     45                        $where[] = 'lang IN (' . sql_quote($lang) . ')';
     46                elseif (test_plugin_actif('tradrub'))
     47                        $where[] = 'lang IN (' . sql_quote($lang) . ')';
     48        }
    2349
    24                 // Les information des objets destinataires
    25                 $table_dest = table_objet_sql($objet_dest);
    26                 $tables=lister_tables_objets_sql();
    27                 $titre_objet_dest=_T($tables[$table_dest]['texte_objet']);
     50        $objets_choisies = tableau_objet($objet_dest_original, '', '*', $where);
    2851
    29                 //Préparer la requette
    30                 $where=array();
    31                 if(isset($tables[$table_dest]['statut'][0]['publie']))$statut=$tables[$table_dest]['statut'][0]['publie'];
    32                 if($objet=='auteur') $where[]='statut !='.sql_quote('5poubelle');
    33                 elseif($statut AND $objet_dest !='rubrique')  $where[]='statut='.sql_quote($statut);
    34                 if($choisies)$where[]='id_'.$objet_dest.' IN ('.implode(',',$choisies).')';
    35                 if($tables[$table_dest]['field']['lang'] and $lang){
    36                                 if($objet_dest!='rubrique')$where[]='lang IN ('.sql_quote($lang).')';
    37                                 elseif(test_plugin_actif('tradrub'))$where[]='lang IN ('.sql_quote($lang).')';
    38                                 }
     52        // Les types liens pour l'objet concerné
     53        if (!$types = lire_config('liaison_objet/type_liens_' . $objet_dest_original, array()))
     54                $types = lire_config('liaison_objet/type_liens', array());
    3955
    40                 $objets_choisies=tableau_objet($objet_dest_original,'','*',$where);
     56        $types_lien = array();
     57        foreach ($types as $cle => $valeur) {
     58                if ($valeur)
     59                        $types_lien[$cle] = _T($valeur);
     60        }
    4161
    42                 //Les types liens pour l'objet concerné
    43                 if(!$types=lire_config('liaison_objet/type_liens_'.$objet_dest_original,array()))$types=lire_config('liaison_objet/type_liens',array());
     62        $valeurs = array(
     63                "id_objet" => $id_objet,
     64                "objet" => $objet,
     65                "langue" => $langue,
     66                "objet_dest" => $objet_dest,
     67                "objet_dest_original" => $objet_dest_original,
     68                "id_objet_dest" => $id_objet_dest,
     69                "table_dest" => $table_dest,
     70                "titre_objet_dest" => $titre_objet_dest,
     71                'objets_choisies' => $objets_choisies,
     72                'types_lien' => $types_lien
     73        );
    4474
    45                 $types_lien=array();
    46                 foreach($types as $cle => $valeur){
    47                                 if($valeur)$types_lien[$cle]=_T($valeur);
    48                                 }
     75        $valeurs['_hidden'] .= "<input type='hidden' name='id_objet' value='$id_objet' />";
     76        $valeurs['_hidden'] .= "<input type='hidden' name='objet' value='$objet' />";
     77        $valeurs['_hidden'] .= "<input type='hidden' name='lang' value='$langue' />";
     78        $valeurs['_hidden'] .= "<input type='hidden' name='objet_dest' value='$objet_dest' />";
    4979
    50                 $valeurs = array(
    51                         "id_objet"      => $id_objet,
    52                         "objet" => $objet,
    53                         "langue"        => $langue,
    54                         "objet_dest"=>$objet_dest,
    55                                 "objet_dest_original"=>$objet_dest_original,
    56                                 "id_objet_dest"=>$id_objet_dest,
    57                                 "table_dest"=>$table_dest,
    58                                 "titre_objet_dest"=>$titre_objet_dest,
    59                                 'objets_choisies'=>$objets_choisies,
    60                                 'types_lien' =>$types_lien,
    61                                 );
    62 
    63                 $valeurs['_hidden'] .= "<input type='hidden' name='id_objet' value='$id_objet' />";
    64                 $valeurs['_hidden'] .= "<input type='hidden' name='objet' value='$objet' />";
    65                 $valeurs['_hidden'] .= "<input type='hidden' name='lang' value='$langue' />";
    66                 $valeurs['_hidden'] .= "<input type='hidden' name='objet_dest' value='$objet_dest' />";
    67 
    68                 return $valeurs;
     80        return $valeurs;
    6981}
    7082
    7183/* @annotation: Actualisation de la base de donnée */
    72 function formulaires_bouton_objet_traiter_dist($id_objet,$objet,$langue,$lang='',$objet_dest='rubrique'){
    73                 $valeurs=array();
    74                 $id_objet_dest=_request('id_objet_dest');
    75                 $instituer_objet=charger_fonction('instituer_objet_lie','action/');
    76                 $objet_dest=_request('objet_dest');
    77                 $type_lien=_request('type_lien');
     84function formulaires_bouton_objet_traiter_dist($id_objet, $objet, $langue, $lang = '', $objet_dest = 'rubrique') {
     85        $valeurs = array();
     86        $id_objet_dest = _request('id_objet_dest');
     87        $instituer_objet = charger_fonction('instituer_objet_lie', 'action/');
     88        $objet_dest = _request('objet_dest');
     89        $type_lien = _request('type_lien');
    7890
     91        $id_liaison_objet = $instituer_objet($id_objet . '-' . $objet . '-' . $langue . '-' . $lang . '-' . $objet_dest . '-' . $id_objet_dest . '-' . $type_lien);
    7992
    80                 $id_liaison_objet=$instituer_objet($id_objet.'-'.$objet.'-'.$langue.'-'.$lang.'-'.$objet_dest.'-'.$id_objet_dest.'-'.$type_lien);
     93        if ($id_liaison_objet)
     94                $valeurs['message_ok'] = 'ok';
    8195
    82         if($id_liaison_objet)$valeurs['message_ok']='ok';
    83 
    84 return $valeurs;
    85 
     96        return $valeurs;
    8697}
    87 ?>
  • _plugins_/liaison_objet/trunk/formulaires/editer_liaison_objet.php

    r107839 r108373  
    11<?php
    22/**
    3  * Plugin Selection d&#039;objets
     3 * Plugin Liaison d'objets
    44 * (c) 2012 Rainer Müller
    55 * Licence GNU/GPL
    66 */
    7 
    8 if (!defined('_ECRIRE_INC_VERSION')) return;
     7if (!defined('_ECRIRE_INC_VERSION'))
     8        return;
    99
    1010include_spip('inc/actions');
     
    1414 * Identifier le formulaire en faisant abstraction des parametres qui ne representent pas l'objet edite
    1515 */
    16 function formulaires_editer_liaison_objet_identifier_dist($id_liaison_objet='new', $retour='', $lier_trad=0, $config_fonc='', $row=array(), $hidden=''){
    17         return serialize(array(intval($id_liaison_objet)));
     16function formulaires_editer_liaison_objet_identifier_dist($id_liaison_objet = 'new', $retour = '', $lier_trad = 0, $config_fonc = '', $row = array(), $hidden = '') {
     17        return serialize(array(
     18                intval($id_liaison_objet)
     19        ));
    1820}
    1921
     
    2123 * Declarer les champs postes et y integrer les valeurs par defaut
    2224 */
    23 function formulaires_editer_liaison_objet_charger_dist($id_liaison_objet='new', $retour='', $lier_trad=0, $config_fonc='', $row=array(), $hidden=''){
    24         $valeurs = formulaires_editer_objet_charger('liaison_objet',$id_liaison_objet,'',$lier_trad,$retour,$config_fonc,$row,$hidden);
     25function formulaires_editer_liaison_objet_charger_dist($id_liaison_objet = 'new', $retour = '', $lier_trad = 0, $config_fonc = '', $row = array(), $hidden = '') {
     26        $valeurs = formulaires_editer_objet_charger('liaison_objet', $id_liaison_objet, '', $lier_trad, $retour, $config_fonc, $row, $hidden);
    2527
     28        if (!$valeurs['objet_dest'])
     29                $valeurs['objet_dest'] = _request('objet_dest');
     30        if (!$valeurs['id_objet_dest'])
     31                $valeurs['id_objet_dest'] = _request('id_objet_dest');
     32        if (!$valeurs['id_objet'])
     33                $valeurs['id_objet'] = _request('id_objet');
     34        if (!$valeurs['objet'])
     35                $valeurs['objet'] = _request('objet');
     36        if (!$valeurs['titre'])
     37                $valeurs['titre'] = _request('titre');
     38        if (!$valeurs['statut'])
     39                $valeurs['statut'] = _request('statut');
     40        if (!$valeurs['lang'])
     41                $valeurs['lang'] = _request('lang');
    2642
     43        $valeurs['_hidden'] .= '<input type="hidden" name="lang" value="' . $valeurs['lang'] . '">';
     44        $valeurs['_hidden'] .= '<input type="hidden" name="objet_dest" value="' . $valeurs['objet_dest'] . '">';
     45        $valeurs['_hidden'] .= '<input type="hidden" name="id_objet_dest" value="' . $valeurs['id_objet_dest'] . '">';
     46        $valeurs['_hidden'] .= '<input type="hidden" name="objet" value="' . $valeurs['objet'] . '">';
     47        $valeurs['_hidden'] .= '<input type="hidden" name="id_objet" value="' . $valeurs['id_objet'] . '">';
     48        $valeurs['_hidden'] .= '<input type="hidden" name="statut" value="' . $valeurs['statut'] . '">';
     49        // Les types liens pour l'objet concerné
     50        if (!$types = lire_config('liaison_objet/type_liens_' . $valeurs['objet_dest'], array()))
     51                $types = lire_config('liaison_objet/type_liens', array());
    2752
    28     if(!$valeurs['objet_dest'])$valeurs['objet_dest']=_request('objet_dest');
    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');           
    32     if(!$valeurs['titre']) $valeurs['titre']=_request('titre');
    33     if(!$valeurs['statut']) $valeurs['statut']=_request('statut');
    34     if(!$valeurs['lang']) $valeurs['lang']=_request('lang');     
    35 
    36     $valeurs['_hidden'].='<input type="hidden" name="lang" value="'.$valeurs['lang'].'">';             
    37     $valeurs['_hidden'].='<input type="hidden" name="objet_dest" value="'.$valeurs['objet_dest'].'">';
    38     $valeurs['_hidden'].='<input type="hidden" name="id_objet_dest" value="'.$valeurs['id_objet_dest'].'">';
    39     $valeurs['_hidden'].='<input type="hidden" name="objet" value="'.$valeurs['objet'].'">';
    40     $valeurs['_hidden'].='<input type="hidden" name="id_objet" value="'.$valeurs['id_objet'].'">';     
    41     $valeurs['_hidden'].='<input type="hidden" name="statut" value="'.$valeurs['statut'].'">';       
    42         //Les types liens pour l'objet concerné
    43     if(!$types=lire_config('liaison_objet/type_liens_'.$valeurs['objet_dest'],array()))$types=lire_config('liaison_objet/type_liens',array());
    44    
    45    
    46     $types_lien=array();
    47     foreach($types as $cle => $valeur){
    48         $types_lien[$cle]=_T($valeur);
    49         }
    50     $valeurs['types_lien']=$types_lien;
     53        $types_lien = array();
     54        foreach ($types as $cle => $valeur) {
     55                $types_lien[$cle] = _T($valeur);
     56        }
     57        $valeurs['types_lien'] = $types_lien;
    5158
    5259        return $valeurs;
     
    5663 * Verifier les champs postes et signaler d'eventuelles erreurs
    5764 */
    58 function formulaires_editer_liaison_objet_verifier_dist($id_liaison_objet='new', $retour='', $lier_trad=0, $config_fonc='', $row=array(), $hidden=''){
    59         return formulaires_editer_objet_verifier('liaison_objet',$id_liaison_objet);
     65function formulaires_editer_liaison_objet_verifier_dist($id_liaison_objet = 'new', $retour = '', $lier_trad = 0, $config_fonc = '', $row = array(), $hidden = '') {
     66        return formulaires_editer_objet_verifier('liaison_objet', $id_liaison_objet);
    6067}
    6168
     
    6370 * Traiter les champs postes
    6471 */
    65 function formulaires_editer_liaison_objet_traiter_dist($id_liaison_objet='new', $retour='', $lier_trad=0, $config_fonc='', $row=array(), $hidden=''){
    66         return formulaires_editer_objet_traiter('liaison_objet',$id_liaison_objet,'',$lier_trad,$retour,$config_fonc,$row,$hidden);
     72function formulaires_editer_liaison_objet_traiter_dist($id_liaison_objet = 'new', $retour = '', $lier_trad = 0, $config_fonc = '', $row = array(), $hidden = '') {
     73        return formulaires_editer_objet_traiter('liaison_objet', $id_liaison_objet, '', $lier_trad, $retour, $config_fonc, $row, $hidden);
    6774}
    68 
    69 
    70 ?>
  • _plugins_/liaison_objet/trunk/liaison_objet_autorisations.php

    r107839 r108373  
    11<?php
    22/**
    3  * Plugin Selection d&#039;objets
     3 * Plugin Liaisons d'objets
    44 * (c) 2012 Rainer Müller
    55 * Licence GNU/GPL
     
    3737// creer
    3838function autoriser_objet_creer_dist($faire, $type, $id, $qui, $opt) {
    39         return in_array($qui['statut'], array('0minirezo', '1comite')); 
     39        return in_array($qui['statut'], array('0minirezo', '1comite'));
    4040}
    4141
  • _plugins_/liaison_objet/trunk/paquet.xml

    r107944 r108373  
    22        prefix="liaison_objet"
    33        categorie="edition"
    4         version="2.0.1"
     4        version="2.0.2"
    55        etat="stable"
    66        compatibilite="[3.0.5;3.2.*]"
    77        logo="prive/themes/spip/images/liaison_objet-64.png"
    8         documentation="https://contrib.spip.net/"
     8        documentation="https://contrib.spip.net/Liaison-d-objets-4431"
    99        schema="1.0.0"
    1010>
Note: See TracChangeset for help on using the changeset viewer.