Changeset 69054 in spip-zone


Ignore:
Timestamp:
Jan 17, 2013, 4:39:40 PM (7 years ago)
Author:
abelass@…
Message:
  • permet maintenant de choisir d'autres objets que rubrique comme destination de la sélection
  • faudrait encore peaufiner la configuration pour lex objets autres que rubriue et article
  • To do: formulaire d'ajouter directement sur la liste, drag and drop, classifier les liens
Location:
_plugins_/selection_d_objets
Files:
4 added
20 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/selection_d_objets/branches/1.2/formulaires/bouton_objet.html

    r67634 r69054  
    1 #SET{id_rubrique,#CONFIG{selection_objet/selection_rubrique_dest,#ARRAY}|picker_selected{rubrique}}
     1#SET{exclude,#ARRAY}
     2
     3<B_test>
    24<div class="ajax formulaire_spip">
    3 #SET{exclude,#ARRAY}
    4 <B_test>
    55    [(#CHEMIN_IMAGE{objet-24.png}|balise_img{selection_objet,cadre-icone})]
     6
    67   
    7         <h3 class="titrem"><:selection_objet:selection_objet:> [(#VAL|lister_tables_objets_sql|table_valeur{spip_#OBJETs}|table_valeur{texte_objets}|_T)]</h3>
     8        <h3 class="titrem"><:selection_objet:selection_objet:> #TITRE_OBJET_DEST</h3>
    89     
    910    <B_affichage>
     
    1112    <strong><:selection_objet:objet_destination_choisis:></strong>
    1213    <ul>   
    13     <BOUCLE_affichage(SELECTION_OBJETS){id_objet}{statut ?}{objet}>
    14         [(#ID_RUBRIQUE|=={0}|oui)<li><:selection_objet:racine:><a href="[(#SELF|parametre_url{eliminer_rubrique,'racine'})]" class="ajax">&nbsp;
    15         <img src="#CHEMIN{imgs/item-remove.png}"/></a></li>
    16         #SET{exclude,#GET{exclude}|array_merge{#ARRAY{0,0}}}
    17         #SET{exclude_selection_objeturce,oui}
    18         ]
    19        
    20         <BOUCLE_rub(RUBRIQUES){id_rubrique=#ID_OBJET_DEST}{tout}>
    21         #SET{exclude,#GET{exclude}|array_merge{#ARRAY{#COMPTEUR_BOUCLE,#ID_RUBRIQUE}}}
    22         <li><a href="#URL_ECRIRE{rubrique,id_rubrique=#ID_RUBRIQUE}#selection_objets">#TITRE</a>
     14    #SET{nom_id_dest,id_#OBJET_DEST}   
     15    <BOUCLE_affichage(SELECTION_OBJETS){id_objet}{statut ?}{objet}{objet_dest}>
     16        #SET{info_objet,#ENV{objets_choisies}|table_valeur{#ID_OBJET_DEST}}
     17        #SET{exclude,#GET{exclude}|array_merge{#ARRAY{#COMPTEUR_BOUCLE,#ID_OBJET_DEST}}}
     18        <li><a href="#URL_ECRIRE{#OBJET_DEST,id_#OBJET_DEST=#ID_OBJET_DEST}#selection_objets">
     19            [(#GET{info_objet}|table_valeur{titre})]
     20            </a>
    2321             <a href="[(#URL_ACTION_AUTEUR{ranger,supprimer_ordre-[(#ENV{langue})]-[(#ID_OBJET)]-#OBJET-[(#OBJET_DEST)]-[(#ID_OBJET_DEST)],[(#SELF)]})]" class="ajax">
    2422&nbsp;<img src="[(#CHEMIN{prive/themes/spip/images/item-remove.png})]"/></a></li>
     
    2927
    3028    </B_affichage>
    31 <BOUCLE_test(POUR){tableau #GET{id_rubrique}}>
    32 #SET{id_rub,#VALEUR}
     29<BOUCLE_test(POUR){tableau #ENV{objets_choisies}}>
     30#SET{id_objet,#VALEUR}
    3331</BOUCLE_test>
    3432
    3533
    3634
    37 
    38 #SET{compteur,#COMPTEUR_BOUCLE}
    39 
    40 
    41 [(#GET{compteur}|>{1}|oui)
    42 [<div class="formulaire_spip formulaire_bouton_objet" id="formulaire_bouton_objet">
    43 
    44     <form action="#ENV{action}" method="post">
    45         #ACTION_FORMULAIRE{#ENV{action}}
    46     <ul>
    47         (#INCLURE{fond=formulaires/inc-boutons_article,id_rubrique=#GET{id_rubrique},exclure=#GET{exclude},rubriques=#GET{id_rubrique}}{exclure_selection_objeturce=#GET{exclude_selection_objeturce},langue})
    48     </ul>
    49     </form>
    50 </div>]
    51    
    52     ]
    53 
    54 [(#GET{compteur}|=={1}|oui)
    55 
    56 <div class="formulaire_spip formulaire_bouton_objet" id="formulaire_bouton_objet">
    57 
    58     <form action="#ENV{action}" method="post">
    59         #ACTION_FORMULAIRE{#ENV{action}}
     35    [<div class="formulaire_spip formulaire_bouton_objet" id="formulaire_bouton_objet_#OBJET_DEST">
     36        <form action="#ENV{action}" method="post"><div>
     37            #ACTION_FORMULAIRE{#ENV{action}}
    6038        <ul>
    61         [(#GET{id_rub}|=={0}|?
    62                 {<:selection_objet:racine:>,
    63                 [<li>(#INCLURE{fond=formulaires/inc-boutons_article_trub}{id_rubrique=#GET{id_rub}})</li>]
    64                 }
    65             )]
     39            (#INCLURE{fond=formulaires/inc-boutons_objet,env,exclure=#GET{exclude},langue})
    6640        </ul>
    67             <input name="id_rubrique" value="#GET{id_rub}" type="hidden"/> 
    68         <p class="button">   
    69             <input type="submit" name="ok" class="submit" value="ok"  />
    70          </p>
    71     </form>
    72 </div>           
    73 
    74 ]
    75 
     41        </div></form>
     42    </div>]
     43</div>   
    7644</B_test>
    77 </div>
  • _plugins_/selection_d_objets/branches/1.2/formulaires/bouton_objet.php

    r67471 r69054  
    44
    55function formulaires_bouton_objet_charger_dist($id_objet,$objet,$langue,$lang='',$objet_dest='rubrique') {
     6    include_spip('inc/config');
    67   
     8    //Les objets destinataires choisies
     9     $special=array('article','rubrique');
     10     if(in_array($objet_dest,$special)) $choisies= picker_selected(lire_config('selection_objet/selection_'.$objet_dest.'_dest',array()),$objet_dest);
     11     else $choisies=lire_config('selection_objet/selection_'.$objet_dest.'_dest',array());
     12   
     13    $lang=$langue?explode(',',$langue):'';
     14   
     15    //Quelques objets ne sont pas conforme, on adapte
     16    $exceptions=charger_fonction('exceptions','inc');
     17    $exception_objet=$exceptions('objet');
     18   
     19    //On grade l'objet original pour la détection des données de l'objet
     20    $objet_dest_original=$objet_dest;
     21   
     22    if($exception_objet[$objet_dest]){
     23         $objet_dest=$exception_objet[$objet_dest];
     24          $table_dest='spip_'.$objet_dest;
     25    }
     26    else $table_dest='spip_'.$objet_dest.'s';
     27   
     28    if($exception_objet[$objet]){
     29         $objet=$exception_objet[$objet];
     30        }
     31   
     32    // Les information des objets destinataires
     33    $tables=lister_tables_objets_sql();
     34    $titre_objet_dest=_T($tables[$table_dest]['texte_objet']);
     35    $where='id_'.$objet_dest.' IN ('.implode(',',$choisies).')';
     36    $where_lang='';
     37    if($tables[$table_dest]['field']['lang'] and $lang)$where_lang=' AND lang IN ('.sql_quote($lang).')';
     38    if($choisies)$objets_choisies=tableau_objet($objet_dest_original,'','*',$where.$where_lang);
     39
    740    $valeurs = array(
    841        "id_objet"      => $id_objet,
     
    1043        "langue"        => $langue,     
    1144        "objet_dest"=>$objet_dest,
    12         "id_objet_dest"=>$id_objet_dest,                               
     45        "id_objet_dest"=>$id_objet_dest,
     46        "table_dest"=>$table_dest,     
     47        "titre_objet_dest"=>$titre_objet_dest,
     48        'objets_choisies'=>$objets_choisies                             
    1349        );
     50       
    1451    $valeurs['_hidden'] .= "<input type='hidden' name='id_objet' value='$id_objet' />";
    1552    $valeurs['_hidden'] .= "<input type='hidden' name='objet' value='$objet' />";
     
    1855
    1956   
    20     $where=array(
     57    /* Je ne me souviens plus à quoi ça sert, probalement à rien
     58      $where=array(
    2159        'id_objet='.$id_objet,
    2260        'objet='.sql_quote($objet),             
     
    3674       
    3775
    38         if(in_array($l,$langues))$valeurs['selectionne']='ok';
     76        if(in_array($l,$langues))$valeurs['selectionne']='ok';*/
    3977
    4078    return $valeurs;
     
    5088    $verifier_ordre=charger_fonction('verifier_ordre','inc');
    5189    $statut='publie';
     90    $objet_dest=_request('objet_dest');
    5291       
    53         /*if(!$id_objet_dest){
    54                 $id_objet_dest ='0';
    55                 $objet_dest ='-';                               
    56                 }*/
     92
    5793
    5894        if($langue)$langue=explode(',',$langue);
  • _plugins_/selection_d_objets/branches/1.2/formulaires/configurer_selection_objet.html

    r67410 r69054  
    11#SET{objets,#ARRAY}
    2 
     2#SET{objets_saisies,#LISTE{article,rubrique}}
    33<BOUCLE_objets_liste(DATA){source tableau,#VAL|lister_tables_objets_sql}{par cle}{editable = oui}>
    44    [(#VALEUR{page}|is_string|oui)
     
    66    ]
    77</BOUCLE_objets_liste>
    8 
    9 
    108
    119<div class="formulaire_spip formulaire_#FORM">
     
    1715                #ACTION_FORMULAIRE{#ENV{action}}
    1816                <ul>
    19                          [(#SAISIE{selecteur_rubrique,selection_rubrique_dest,
    20                 multiple=oui,
    21                 label=<:selection_objet:selection_rubrique_dest:>,
    22                 explication=<:selection_objet:explication_selection_rubrique_dest:>}
    23                 )]
     17                    <li class="fieldset">
     18                      <fieldset>
     19                          <legend><:selection_objet:objets_cible:></legend>
     20                          <p><:selection_objet:explication_selection_objets_cible:></p>
     21                            <ul>
     22                            [(#SAISIE{checkbox,objets_cible,
     23                        datas=#GET{objets},
     24                        label=<:selection_objet:selection_objet_cible_titre:>}
     25                        )]
     26                    <B_objets_dest>
     27                    <li class="fieldset">
     28                            <BOUCLE_objets_dest(DATA){source tableau, #CONFIG{selection_objet/objets_cible}}>
     29                            [(#VALEUR|in_array{#GET{objets_saisies}}|oui)
     30                            [(#SAISIE{selecteur_#VALEUR,selection_[(#VALEUR)]_dest,
     31                            multiple=oui,
     32                            label=<:selection_objet:selection_cible:> [(#GET{objets}|table_valeur{#VALEUR})]}
     33                        )]
     34                    ]
     35                    [(#VALEUR|in_array{#GET{objets_saisies}}|non)#VALEUR
     36                        [(#VALEUR|oui)#SET{datas,#VALEUR|tableau_objet{'',*,'',#LISTE{titre,nom,nom_site}}}
     37                        [(#SAISIE{selection_multiple,selection_[(#VALEUR)]_dest,
     38                            label=<:selection_objet:selection_cible:> [(#GET{objets}|table_valeur{#VALEUR})],
     39                            datas=#GET{datas}})]
     40                                ]
     41                   
     42                    ]
     43                            </BOUCLE_objets_dest>
     44                            </B_objets_dest>
     45                              </li>
     46                                 </ul>
     47                    </fieldset>
     48                    </li>
     49            <li class="fieldset">
     50              <fieldset>
     51                  <legend><:selection_objet:objets_a_selectionner:></legend>
     52                  <ul>
    2453            [(#SAISIE{checkbox,selection_rubrique_objet,
    25             datas=#GET{objets},
    26             label=<:selection_objet:selection_rubrique_objet:>}
    27             )]             
     54                datas=#GET{objets},
     55                label=<:selection_objet:selection_rubrique_objet:>}
     56                )]
     57            </ul>   
     58            </fieldset>
     59             
     60            </li>         
    2861                </ul>
    2962               
  • _plugins_/selection_d_objets/branches/1.2/lang/selection_objet_fr.php

    r67535 r69054  
    1414
    1515        // E
    16         'explication_selection_rubrique_dest' => 'Les rubriques ou pourront être affichés les objets sélectionnés',
     16        'explication_selection_objets_cible' => 'Les objets cibles ou pourront être affichés les objets sélectionnés',
    1717
    1818        // I
     
    3434
    3535        // O
     36        'objets_cible_dispos'=>'Les Objets Cible disponibles',
    3637        'objet_destination_choisis' => 'Destination(s) choisie(s) :',
    3738
     
    4344
    4445        // S
     46        'selection_cible' => 'Seléction des cibles pour',       
    4547        'selection_objet' => 'Sélection',
    46         'selection_objet_titre' => 'Selection d\'objets',
     48        'selection_objet_cible_titre' => 'Selection d\'objets cibles',
    4749        'selection_objets_pour' => 'Sélection objets pour',
    48         'selection_rubrique_dest' => 'Rubrique(s) de destination',
    4950        'selection_rubrique_objet' => 'Objets qui peuvent être sélectionnés',
    5051
  • _plugins_/selection_d_objets/branches/1.2/modeles_so/selection_interface_tr.html

    r67502 r69054  
    1212        <td class='statut'>[(#STATUT|puce_statut{selection_objet,#ID_SELECTION_OBJET})]</td>
    1313        <td class="titre">[<a class="select"  href="[(#URL_ECRIRE{#OBJET}|parametre_url{id_#OBJET,#ID_OBJET})]">(#LOGO_SELECTION_OBJET|image_reduire{25}|sinon{#ENV{logo_objet}|image_reduire{25}|inserer_attribut{class,spip_logos}}) </a>]
    14         <a href="[(#URL_ECRIRE{#OBJET}|parametre_url{id_#OBJET,#ID_OBJET})]">[(#TITRE|sinon{#ID_OBJET|info_objet{#OBJET,titre}})]</a></td>
     14        <a href="[(#URL_ECRIRE{#OBJET}|parametre_url{id_#OBJET,#ID_OBJET})]">[(#TITRE|sinon{#OBJET|info_objet{#ID_OBJET,titre}})]</a></td>
    1515        <td class="arial1">[(#DATE|affdate)]</td>
    1616        <td class="arial1"><b style="white-space: nowrap;">N°#ID_OBJET</b></td>
  • _plugins_/selection_d_objets/branches/1.2/paquet.xml

    r68922 r69054  
    22        prefix="selection_objet"
    33        categorie="edition"
    4         version="1.3.3"
     4        version="1.4.0"
    55        etat="dev"
    66        compatibilite="[3.0.5;3.0.*]"
  • _plugins_/selection_d_objets/branches/1.2/prive/objets/liste/selection_interface.html

    r67700 r69054  
    2727        logo_selection_objet,#LOGO_SELECTION_OBJET,
    2828        compteur_boucle,#COMPTEUR_BOUCLE,
    29 date,#DATE,
     29        date,#DATE,
    3030        }})]
    3131       
  • _plugins_/selection_d_objets/branches/1.2/prive/objets/liste/selection_objets.html

    r67410 r69054  
    2323                        <td class='picto'>[(#CHEMIN_IMAGE{objet-16.png}|balise_img)]</td>
    2424                        <td class='statut'>[(#STATUT|puce_statut{selection_objet,#ID_SELECTION_OBJET})]</td>
    25                         <td class='titre principale'>[(#LOGO_SELECTION_OBJET|image_reduire{20,26})]<a href="[(#ID_OBJET|generer_url_entite{objet})]" title="<:info_numero_abbreviation|attribut_html:> #ID_OBJET">[(#RANG). ][(#TITRE|sinon{#ID_OBJET|info_objet{#OBJET,titre}})]</a></td>
     25                        <td class='titre principale'>[(#LOGO_SELECTION_OBJET|image_reduire{20,26})]<a href="[(#ID_OBJET|generer_url_entite{objet})]" title="<:info_numero_abbreviation|attribut_html:> #ID_OBJET">[(#RANG). ][(#TITRE|sinon{#OBJET|info_objet{#ID_OBJET,titre}})]</a></td>
    2626                        <td class='date secondaire'>[(#DATE|affdate_jourcourt)]</td>
    2727                        <td class='id'>[(#AUTORISER{modifier,objet,#ID_OBJET}|?{
  • _plugins_/selection_d_objets/branches/1.2/selection_objet_fonctions.php

    r67698 r69054  
    11<?php
    22
     3if (!defined('_ECRIRE_INC_VERSION')) return;
    34
    4 /* Fonction qui traduit les champs */
    5 function info_objet($id_objet,$objet,$champ='*'){
    6         include_spip('inc/filtres');
    7    
    8     $where=array(
    9             'id_'.$objet.'='.$id_objet, 
    10             ); 
    11        
    12 
    13         if($champ=='*')$data=sql_fetsel($champ,'spip_'.$objet.'s',$where);
    14     else $data=sql_getfetsel($champ,'spip_'.$objet.'s',$where);
    15        
    16     //Appliquer des filtres sur des champs spéciciques
     5 //Applique des filtres sur des champs spéciciques
     6function filtrer_champ($data){
     7    include_spip('inc/texte');
     8    $exceptions=charger_fonction('exceptions','inc');
     9    $titres=$exceptions('titre');
     10    $titres=array_merge(array(0=>'titre'),$titres);
     11    $propres=array('descriptif','texte');
     12    $extraire_multi=array_merge($titres,array('descriptif','texte'));
    1713    $filtres=array(
    18         'supprimer_numero'=>array(
    19             'titre','nom'
    20             ),
    21         'typo'=>array(
    22             'titre','nom'
    23             ),
     14        'extraire_multi'=>  $extraire_multi,         
     15        'supprimer_numero'=>$titres,
     16        'propre'=>$propres,
    2417       );
    2518       
    2619    foreach($filtres as $filtre => $champ){
    27         if(is_array($data) AND $data[$champ]){
     20        if(is_array($data)){
    2821            if(is_array($champ)){
    2922                foreach($champ as $c){
    30                     $data[$champ]=$filtre($data[$c]);
     23                    if($data[$c])$data[$c]=$filtre($data[$c]);
    3124                    }
    3225                }
    3326            }
    34          
    3527        else $data=$filtre($data);
    3628        }
    37         return $data;
    38 
     29    return $data;   
     30   
    3931}
    4032
    41 /* Fonction qui fournit le lien */
     33/* Fournit les champs désirés d'un objet donné */
     34function info_objet($objet,$id_objet='',$champs='*',$where=array()){
     35        include_spip('inc/filtres');
     36   
     37    //Les tables non conforme
     38    $exceptions=charger_fonction('exceptions','inc');
     39    $exception_objet=$exceptions('objet');
     40    if($exception_objet[$objet]){
     41         $objet=$exception_objet[$objet];
     42          $table='spip_'.$objet;
     43    }
     44    else $table='spip_'.$objet.'s';
     45
     46   
     47    if($id_objet){
     48        if(!$where)$where=array('id_'.$objet.'='.$id_objet); 
     49        if($champs=='*')$data=sql_fetsel($champs,$table,$where);
     50        else $data=sql_getfetsel($champs,'spip_'.$objet.'s',$where);
     51        $data=filtrer_champ($data);
     52        }
     53    else{
     54        $data=array();
     55        $sql=sql_select($champs,$table,$where);
     56       
     57        while($d = sql_fetch($sql)){
     58            if($d)$data[$d['id_'.$objet]]=filtrer_champ($d);
     59            }
     60        }
     61   
     62        return $data;
     63   
     64}
     65
     66/* Fonction qui fournit le lien d'un objet*/
    4267function url_objet($id_objet,$objet,$titre='',$url=''){
    4368   
     
    4873    }
    4974
    50         if(!$titre)$titre=info_objet($id_objet,$objet,'titre');
     75        if(!$titre)$titre=info_objet($objet,$id_objet,'titre');
    5176    if(!$url)$url=generer_url_entite($id_objet,$objet);
    5277       
     
    5580}
    5681
     82
     83/*Fournit un tableau avec id_objet=>donnees_objet*/
     84
     85function tableau_objet($objet,$id_objet='',$champs='*',$where=array(),$filtrer=array()){
     86    $d=info_objet($objet,$id_objet,$champs,$where);
     87    //Les tables non conforme, faudrait inclure une pipeline
     88    $exceptions=charger_fonction('exceptions','inc');
     89    $exception_objet=$exceptions('objet');
     90    if($exception_objet[$objet]){
     91         $objet=$exception_objet[$objet];
     92    }
     93    $data=array();
     94    if(is_array($d)){
     95        foreach($d as $r){
     96            if(!$r['titre']){
     97                $r['titre']=$r['nom']?$r['nom']:($r['nom_site']?$r['nom_site']:'objet'.$r['id_'.$objet]);
     98                unset($r['nom']);
     99                unset($r['nom_site']);
     100            }
     101            if(!$filtrer) $data[$r['id_'.$objet]]=$r;
     102            elseif(is_array($filtrer)){
     103                $donnees=array();
     104                foreach($filtrer as $c){
     105                if($r[$c])$donnees[$c]=$r[$c]; 
     106                }
     107             $data[$r['id_'.$objet]]=implode(',',$donnees);
     108            }
     109        }
     110    }
     111    return $data;
     112}
     113/* Assemble les données entre un objet sélectioné et son objet d'origine pour injection dans un modele choisit*/
    57114function generer_modele($id_objet,$objet='article',$fichier='modeles_selection_objet/defaut',$env=array(),$where=''){
    58115    include_spip('inc/utils');
  • _plugins_/selection_d_objets/branches/1.2/selection_objet_pipelines.php

    r67471 r69054  
    33function selection_objet_affiche_gauche($flux) {
    44    include_spip('inc/config');
     5    $objet = $flux["args"]["exec"];
     6    $args=$flux['args'];
    57   
    6     $exec = $flux["args"]["exec"];
    7     $contexte=array();
    8     $objets=lire_config('selection_objet/selection_rubrique_objet',array());
    9     $args=$flux['args'];
    10     $objet_contexte=$args['exec'];
    11     $contexte['objet_dest']='rubrique';
    12     foreach($objets AS $objet){
    13         if($objet_contexte==$objet){
    14             $contexte['objet']=$objet;
    15             $contexte['id_objet']=$flux["args"]['id_'.$objet]?$flux["args"]['id_'.$objet]:_request('id_'.$objet);
    16            
    17             $contexte['langue']=sql_getfetsel('lang','spip_'.$objet.'s','id_'.$objet.'='.$contexte['id_objet']);
     8    $objets_selection=lire_config('selection_objet/selection_rubrique_objet',array());
     9    $exceptions=charger_fonction('exceptions','inc');
     10    $exception_objet=$exceptions('objet');
     11    if($exception_objet[$objet]){
     12         $objet=$exception_objet[$objet];
     13         $table='spip_'.$objet;
     14        }
     15    else $table='spip_'.$objet.'s';
     16   
     17    $contexte['id_objet']=$flux["args"]['id_'.$objet]?$flux["args"]['id_'.$objet]:_request('id_'.$objet);
     18
     19    if(in_array($objet,$objets_selection)){
     20        $contexte['objet']=$objet;
     21        $objets_cibles=lire_config('selection_objet/objets_cible',array());
     22        if($objet=='rubrique' OR $objet=='article'){
     23            $contexte['langue']=sql_getfetsel('lang',$table,'id_'.$objet.'='.$contexte['id_objet']);
    1824            $contexte['lang'] = $contexte['langue'];
    19             if ($objet=='rubrique' AND !$trad_rub=test_plugin_actif('tradrub')) $contexte['langue']=lire_config('langues_multilingue');
     25            }
     26        if($objet=='rubrique'){
     27            if (!$trad_rub=test_plugin_actif('tradrub')) $contexte['langue']=lire_config('langues_multilingue');
    2028            elseif(!$contexte['langue']){
    2129                if(!$trad_rub=test_plugin_actif('tradrub')) $contexte['langue']=lire_config('langues_multilingue');
    22                
    23             }
    24 
    25             $fond = recuperer_fond("prive/squelettes/navigation/affiche_gauche", $contexte);
    26             $flux["data"] .= $fond;
     30                }
    2731            }
     32            foreach ($objets_cibles as $objet_dest) {
     33                $contexte['objet_dest']=$objet_dest;
     34                $flux["data"].= recuperer_fond("prive/squelettes/navigation/affiche_gauche", $contexte);
     35            }
     36             
    2837        }
    2938     
     
    3241
    3342function selection_objet_affiche_milieu ($vars="") {
    34 include_spip('inc/config');
    35     $exec = $vars["args"]["exec"];
    36    
    37     $id_rubrique = $vars["args"]["id_rubrique"];
    38         if (!$id_rubrique)$id_rubrique=0;
    39         $id_article = $vars["args"]["id_article"];
     43    include_spip('inc/config');
     44    $objet = $vars["args"]["exec"];
     45    $args=$vars["args"];
     46    $objets_cibles=lire_config('selection_objet/objets_cible',array());
     47
     48    if(in_array($objet,$objets_cibles)){
     49        //Les tables non conforme
     50        $exceptions=charger_fonction('exceptions','inc');
     51        $exception_objet=$exceptions('objet');
     52        if($exception_objet[$objet]){
     53             $objet=$exception_objet[$objet];
     54            }       
     55        $id_objet=$args['id_'.$objet];
    4056        $data = $vars["data"];
     57        $special=array('article','rubrique');
     58        if(in_array($objet,$special)) $choisies= picker_selected(lire_config('selection_objet/selection_'.$objet.'_dest',array()),$objet);
     59        else $choisies=lire_config('selection_objet/selection_'.$objet.'_dest',array());
    4160       
    42         $active = picker_selected(lire_config('selection_objet/selection_rubrique_dest'),'rubrique');
    43 
    44         if ($exec == "rubrique" && in_array($id_rubrique,$active)) {
    45             include_spip("inc/utils");
    46             $contexte = array('id_objet_dest'=>$id_rubrique,'objet_dest'=>'rubrique');
    47 
    48             $page = recuperer_fond('prive/objets/liste/selection_interface', $contexte);
     61        if(in_array($id_objet,$choisies)){
     62           $contexte = array('id_objet_dest'=>$id_objet,'objet_dest'=>$objet);
     63           $vars["data"] .= recuperer_fond('prive/objets/liste/selection_interface', $contexte);
     64            }
    4965        }
    50 
    51         $data .= $ret;
    52    
    53         $vars["data"] .=$page;
    5466        return $vars;
    5567    }
  • _plugins_/selection_d_objets/trunk/formulaires/bouton_objet.html

    r67634 r69054  
    1 #SET{id_rubrique,#CONFIG{selection_objet/selection_rubrique_dest,#ARRAY}|picker_selected{rubrique}}
     1#SET{exclude,#ARRAY}
     2
     3<B_test>
    24<div class="ajax formulaire_spip">
    3 #SET{exclude,#ARRAY}
    4 <B_test>
    55    [(#CHEMIN_IMAGE{objet-24.png}|balise_img{selection_objet,cadre-icone})]
     6
    67   
    7         <h3 class="titrem"><:selection_objet:selection_objet:> [(#VAL|lister_tables_objets_sql|table_valeur{spip_#OBJETs}|table_valeur{texte_objets}|_T)]</h3>
     8        <h3 class="titrem"><:selection_objet:selection_objet:> #TITRE_OBJET_DEST</h3>
    89     
    910    <B_affichage>
     
    1112    <strong><:selection_objet:objet_destination_choisis:></strong>
    1213    <ul>   
    13     <BOUCLE_affichage(SELECTION_OBJETS){id_objet}{statut ?}{objet}>
    14         [(#ID_RUBRIQUE|=={0}|oui)<li><:selection_objet:racine:><a href="[(#SELF|parametre_url{eliminer_rubrique,'racine'})]" class="ajax">&nbsp;
    15         <img src="#CHEMIN{imgs/item-remove.png}"/></a></li>
    16         #SET{exclude,#GET{exclude}|array_merge{#ARRAY{0,0}}}
    17         #SET{exclude_selection_objeturce,oui}
    18         ]
    19        
    20         <BOUCLE_rub(RUBRIQUES){id_rubrique=#ID_OBJET_DEST}{tout}>
    21         #SET{exclude,#GET{exclude}|array_merge{#ARRAY{#COMPTEUR_BOUCLE,#ID_RUBRIQUE}}}
    22         <li><a href="#URL_ECRIRE{rubrique,id_rubrique=#ID_RUBRIQUE}#selection_objets">#TITRE</a>
     14    #SET{nom_id_dest,id_#OBJET_DEST}   
     15    <BOUCLE_affichage(SELECTION_OBJETS){id_objet}{statut ?}{objet}{objet_dest}>
     16        #SET{info_objet,#ENV{objets_choisies}|table_valeur{#ID_OBJET_DEST}}
     17        #SET{exclude,#GET{exclude}|array_merge{#ARRAY{#COMPTEUR_BOUCLE,#ID_OBJET_DEST}}}
     18        <li><a href="#URL_ECRIRE{#OBJET_DEST,id_#OBJET_DEST=#ID_OBJET_DEST}#selection_objets">
     19            [(#GET{info_objet}|table_valeur{titre})]
     20            </a>
    2321             <a href="[(#URL_ACTION_AUTEUR{ranger,supprimer_ordre-[(#ENV{langue})]-[(#ID_OBJET)]-#OBJET-[(#OBJET_DEST)]-[(#ID_OBJET_DEST)],[(#SELF)]})]" class="ajax">
    2422&nbsp;<img src="[(#CHEMIN{prive/themes/spip/images/item-remove.png})]"/></a></li>
     
    2927
    3028    </B_affichage>
    31 <BOUCLE_test(POUR){tableau #GET{id_rubrique}}>
    32 #SET{id_rub,#VALEUR}
     29<BOUCLE_test(POUR){tableau #ENV{objets_choisies}}>
     30#SET{id_objet,#VALEUR}
    3331</BOUCLE_test>
    3432
    3533
    3634
    37 
    38 #SET{compteur,#COMPTEUR_BOUCLE}
    39 
    40 
    41 [(#GET{compteur}|>{1}|oui)
    42 [<div class="formulaire_spip formulaire_bouton_objet" id="formulaire_bouton_objet">
    43 
    44     <form action="#ENV{action}" method="post">
    45         #ACTION_FORMULAIRE{#ENV{action}}
    46     <ul>
    47         (#INCLURE{fond=formulaires/inc-boutons_article,id_rubrique=#GET{id_rubrique},exclure=#GET{exclude},rubriques=#GET{id_rubrique}}{exclure_selection_objeturce=#GET{exclude_selection_objeturce},langue})
    48     </ul>
    49     </form>
    50 </div>]
    51    
    52     ]
    53 
    54 [(#GET{compteur}|=={1}|oui)
    55 
    56 <div class="formulaire_spip formulaire_bouton_objet" id="formulaire_bouton_objet">
    57 
    58     <form action="#ENV{action}" method="post">
    59         #ACTION_FORMULAIRE{#ENV{action}}
     35    [<div class="formulaire_spip formulaire_bouton_objet" id="formulaire_bouton_objet_#OBJET_DEST">
     36        <form action="#ENV{action}" method="post"><div>
     37            #ACTION_FORMULAIRE{#ENV{action}}
    6038        <ul>
    61         [(#GET{id_rub}|=={0}|?
    62                 {<:selection_objet:racine:>,
    63                 [<li>(#INCLURE{fond=formulaires/inc-boutons_article_trub}{id_rubrique=#GET{id_rub}})</li>]
    64                 }
    65             )]
     39            (#INCLURE{fond=formulaires/inc-boutons_objet,env,exclure=#GET{exclude},langue})
    6640        </ul>
    67             <input name="id_rubrique" value="#GET{id_rub}" type="hidden"/> 
    68         <p class="button">   
    69             <input type="submit" name="ok" class="submit" value="ok"  />
    70          </p>
    71     </form>
    72 </div>           
    73 
    74 ]
    75 
     41        </div></form>
     42    </div>]
     43</div>   
    7644</B_test>
    77 </div>
  • _plugins_/selection_d_objets/trunk/formulaires/bouton_objet.php

    r67471 r69054  
    44
    55function formulaires_bouton_objet_charger_dist($id_objet,$objet,$langue,$lang='',$objet_dest='rubrique') {
     6    include_spip('inc/config');
    67   
     8    //Les objets destinataires choisies
     9     $special=array('article','rubrique');
     10     if(in_array($objet_dest,$special)) $choisies= picker_selected(lire_config('selection_objet/selection_'.$objet_dest.'_dest',array()),$objet_dest);
     11     else $choisies=lire_config('selection_objet/selection_'.$objet_dest.'_dest',array());
     12   
     13    $lang=$langue?explode(',',$langue):'';
     14   
     15    //Quelques objets ne sont pas conforme, on adapte
     16    $exceptions=charger_fonction('exceptions','inc');
     17    $exception_objet=$exceptions('objet');
     18   
     19    //On grade l'objet original pour la détection des données de l'objet
     20    $objet_dest_original=$objet_dest;
     21   
     22    if($exception_objet[$objet_dest]){
     23         $objet_dest=$exception_objet[$objet_dest];
     24          $table_dest='spip_'.$objet_dest;
     25    }
     26    else $table_dest='spip_'.$objet_dest.'s';
     27   
     28    if($exception_objet[$objet]){
     29         $objet=$exception_objet[$objet];
     30        }
     31   
     32    // Les information des objets destinataires
     33    $tables=lister_tables_objets_sql();
     34    $titre_objet_dest=_T($tables[$table_dest]['texte_objet']);
     35    $where='id_'.$objet_dest.' IN ('.implode(',',$choisies).')';
     36    $where_lang='';
     37    if($tables[$table_dest]['field']['lang'] and $lang)$where_lang=' AND lang IN ('.sql_quote($lang).')';
     38    if($choisies)$objets_choisies=tableau_objet($objet_dest_original,'','*',$where.$where_lang);
     39
    740    $valeurs = array(
    841        "id_objet"      => $id_objet,
     
    1043        "langue"        => $langue,     
    1144        "objet_dest"=>$objet_dest,
    12         "id_objet_dest"=>$id_objet_dest,                               
     45        "id_objet_dest"=>$id_objet_dest,
     46        "table_dest"=>$table_dest,     
     47        "titre_objet_dest"=>$titre_objet_dest,
     48        'objets_choisies'=>$objets_choisies                             
    1349        );
     50       
    1451    $valeurs['_hidden'] .= "<input type='hidden' name='id_objet' value='$id_objet' />";
    1552    $valeurs['_hidden'] .= "<input type='hidden' name='objet' value='$objet' />";
     
    1855
    1956   
    20     $where=array(
     57    /* Je ne me souviens plus à quoi ça sert, probalement à rien
     58      $where=array(
    2159        'id_objet='.$id_objet,
    2260        'objet='.sql_quote($objet),             
     
    3674       
    3775
    38         if(in_array($l,$langues))$valeurs['selectionne']='ok';
     76        if(in_array($l,$langues))$valeurs['selectionne']='ok';*/
    3977
    4078    return $valeurs;
     
    5088    $verifier_ordre=charger_fonction('verifier_ordre','inc');
    5189    $statut='publie';
     90    $objet_dest=_request('objet_dest');
    5291       
    53         /*if(!$id_objet_dest){
    54                 $id_objet_dest ='0';
    55                 $objet_dest ='-';                               
    56                 }*/
     92
    5793
    5894        if($langue)$langue=explode(',',$langue);
  • _plugins_/selection_d_objets/trunk/formulaires/configurer_selection_objet.html

    r69032 r69054  
    66    ]
    77</BOUCLE_objets_liste>
    8 
    9 
    108
    119<div class="formulaire_spip formulaire_#FORM">
     
    1917                    <li class="fieldset">
    2018                      <fieldset>
    21                           <legend><:selection_objet:objets_destination:></legend>
     19                          <legend><:selection_objet:objets_cible:></legend>
     20                          <p><:selection_objet:explication_selection_objets_cible:></p>
    2221                            <ul>
    23                             [(#SAISIE{checkbox,selection_objets_dest,
    24                     datas=#GET{objets},
    25                     label=<:selection_objet:selection_objets_dest:>}
    26                     )]
    27                             <BOUCLE_objets_dest(DATA){source tableau, #CONFIG{selection_objet/selection_objets_dest}}>
     22                            [(#SAISIE{checkbox,objets_cible,
     23                        datas=#GET{objets},
     24                        label=<:selection_objet:selection_objet_cible_titre:>}
     25                        )]
     26                    <B_objets_dest>
     27                    <li class="fieldset">
     28                            <BOUCLE_objets_dest(DATA){source tableau, #CONFIG{selection_objet/objets_cible}}>
    2829                            [(#VALEUR|in_array{#GET{objets_saisies}}|oui)
    29                             [(#SAISIE{selecteur_#VALEUR,selection_#VALEUR_dest,
     30                            [(#SAISIE{selecteur_#VALEUR,selection_[(#VALEUR)]_dest,
    3031                            multiple=oui,
    31                             label=[(#GET{objets}|table_valeur{#VALEUR})]}
     32                            label=<:selection_objet:selection_cible:> [(#GET{objets}|table_valeur{#VALEUR})]}
    3233                        )]
    3334                    ]
    34          
    35                     </BOUCLE_objets_dest>
     35                    [(#VALEUR|in_array{#GET{objets_saisies}}|non)#VALEUR
     36                        [(#VALEUR|oui)#SET{datas,#VALEUR|tableau_objet{'',*,'',#LISTE{titre,nom,nom_site}}}
     37                        [(#SAISIE{selection_multiple,selection_[(#VALEUR)]_dest,
     38                            label=<:selection_objet:selection_cible:> [(#GET{objets}|table_valeur{#VALEUR})],
     39                            datas=#GET{datas}})]
     40                                ]
     41                   
     42                    ]
     43                            </BOUCLE_objets_dest>
     44                            </B_objets_dest>
     45                              </li>
    3646                                 </ul>
    3747                    </fieldset>
     
    4252                  <ul>
    4353            [(#SAISIE{checkbox,selection_rubrique_objet,
    44             datas=#GET{objets},
    45             label=<:selection_objet:selection_rubrique_objet:>}
    46             )]
     54                datas=#GET{objets},
     55                label=<:selection_objet:selection_rubrique_objet:>}
     56                )]
    4757            </ul>   
    4858            </fieldset>
  • _plugins_/selection_d_objets/trunk/lang/selection_objet_fr.php

    r67502 r69054  
    1414
    1515        // E
    16         'explication_selection_rubrique_dest' => 'Les rubriques ou pourront être affichés les objets sélectionnés',
     16        'explication_selection_objets_cible' => 'Les objets cibles ou pourront être affichés les objets sélectionnés',
    1717
    1818        // I
     
    3434
    3535        // O
     36        'objets_cible_dispos'=>'Les Objets Cible disponibles',
    3637        'objet_destination_choisis' => 'Destination(s) choisie(s) :',
    3738
     
    4344
    4445        // S
     46        'selection_cible' => 'Seléction des cibles pour',       
    4547        'selection_objet' => 'Sélection',
    46         'selection_objet_titre' => 'Selection d\'objets',
     48        'selection_objet_cible_titre' => 'Selection d\'objets cibles',
    4749        'selection_objets_pour' => 'Sélection objets pour',
    48         'selection_rubrique_dest' => 'Rubrique(s) de destination',
    4950        'selection_rubrique_objet' => 'Objets qui peuvent être sélectionnés',
    5051
  • _plugins_/selection_d_objets/trunk/modeles_so/selection_interface_tr.html

    r67502 r69054  
    1212        <td class='statut'>[(#STATUT|puce_statut{selection_objet,#ID_SELECTION_OBJET})]</td>
    1313        <td class="titre">[<a class="select"  href="[(#URL_ECRIRE{#OBJET}|parametre_url{id_#OBJET,#ID_OBJET})]">(#LOGO_SELECTION_OBJET|image_reduire{25}|sinon{#ENV{logo_objet}|image_reduire{25}|inserer_attribut{class,spip_logos}}) </a>]
    14         <a href="[(#URL_ECRIRE{#OBJET}|parametre_url{id_#OBJET,#ID_OBJET})]">[(#TITRE|sinon{#ID_OBJET|info_objet{#OBJET,titre}})]</a></td>
     14        <a href="[(#URL_ECRIRE{#OBJET}|parametre_url{id_#OBJET,#ID_OBJET})]">[(#TITRE|sinon{#OBJET|info_objet{#ID_OBJET,titre}})]</a></td>
    1515        <td class="arial1">[(#DATE|affdate)]</td>
    1616        <td class="arial1"><b style="white-space: nowrap;">N°#ID_OBJET</b></td>
  • _plugins_/selection_d_objets/trunk/paquet.xml

    r68922 r69054  
    22        prefix="selection_objet"
    33        categorie="edition"
    4         version="1.3.3"
     4        version="1.4.0"
    55        etat="dev"
    66        compatibilite="[3.0.5;3.0.*]"
  • _plugins_/selection_d_objets/trunk/prive/objets/liste/selection_interface.html

    r67700 r69054  
    2727        logo_selection_objet,#LOGO_SELECTION_OBJET,
    2828        compteur_boucle,#COMPTEUR_BOUCLE,
    29 date,#DATE,
     29        date,#DATE,
    3030        }})]
    3131       
  • _plugins_/selection_d_objets/trunk/prive/objets/liste/selection_objets.html

    r67410 r69054  
    2323                        <td class='picto'>[(#CHEMIN_IMAGE{objet-16.png}|balise_img)]</td>
    2424                        <td class='statut'>[(#STATUT|puce_statut{selection_objet,#ID_SELECTION_OBJET})]</td>
    25                         <td class='titre principale'>[(#LOGO_SELECTION_OBJET|image_reduire{20,26})]<a href="[(#ID_OBJET|generer_url_entite{objet})]" title="<:info_numero_abbreviation|attribut_html:> #ID_OBJET">[(#RANG). ][(#TITRE|sinon{#ID_OBJET|info_objet{#OBJET,titre}})]</a></td>
     25                        <td class='titre principale'>[(#LOGO_SELECTION_OBJET|image_reduire{20,26})]<a href="[(#ID_OBJET|generer_url_entite{objet})]" title="<:info_numero_abbreviation|attribut_html:> #ID_OBJET">[(#RANG). ][(#TITRE|sinon{#OBJET|info_objet{#ID_OBJET,titre}})]</a></td>
    2626                        <td class='date secondaire'>[(#DATE|affdate_jourcourt)]</td>
    2727                        <td class='id'>[(#AUTORISER{modifier,objet,#ID_OBJET}|?{
  • _plugins_/selection_d_objets/trunk/selection_objet_fonctions.php

    r67698 r69054  
    11<?php
    22
     3if (!defined('_ECRIRE_INC_VERSION')) return;
    34
    4 /* Fonction qui traduit les champs */
    5 function info_objet($id_objet,$objet,$champ='*'){
    6         include_spip('inc/filtres');
    7    
    8     $where=array(
    9             'id_'.$objet.'='.$id_objet, 
    10             ); 
    11        
    12 
    13         if($champ=='*')$data=sql_fetsel($champ,'spip_'.$objet.'s',$where);
    14     else $data=sql_getfetsel($champ,'spip_'.$objet.'s',$where);
    15        
    16     //Appliquer des filtres sur des champs spéciciques
     5 //Applique des filtres sur des champs spéciciques
     6function filtrer_champ($data){
     7    include_spip('inc/texte');
     8    $exceptions=charger_fonction('exceptions','inc');
     9    $titres=$exceptions('titre');
     10    $titres=array_merge(array(0=>'titre'),$titres);
     11    $propres=array('descriptif','texte');
     12    $extraire_multi=array_merge($titres,array('descriptif','texte'));
    1713    $filtres=array(
    18         'supprimer_numero'=>array(
    19             'titre','nom'
    20             ),
    21         'typo'=>array(
    22             'titre','nom'
    23             ),
     14        'extraire_multi'=>  $extraire_multi,         
     15        'supprimer_numero'=>$titres,
     16        'propre'=>$propres,
    2417       );
    2518       
    2619    foreach($filtres as $filtre => $champ){
    27         if(is_array($data) AND $data[$champ]){
     20        if(is_array($data)){
    2821            if(is_array($champ)){
    2922                foreach($champ as $c){
    30                     $data[$champ]=$filtre($data[$c]);
     23                    if($data[$c])$data[$c]=$filtre($data[$c]);
    3124                    }
    3225                }
    3326            }
    34          
    3527        else $data=$filtre($data);
    3628        }
    37         return $data;
    38 
     29    return $data;   
     30   
    3931}
    4032
    41 /* Fonction qui fournit le lien */
     33/* Fournit les champs désirés d'un objet donné */
     34function info_objet($objet,$id_objet='',$champs='*',$where=array()){
     35        include_spip('inc/filtres');
     36   
     37    //Les tables non conforme
     38    $exceptions=charger_fonction('exceptions','inc');
     39    $exception_objet=$exceptions('objet');
     40    if($exception_objet[$objet]){
     41         $objet=$exception_objet[$objet];
     42          $table='spip_'.$objet;
     43    }
     44    else $table='spip_'.$objet.'s';
     45
     46   
     47    if($id_objet){
     48        if(!$where)$where=array('id_'.$objet.'='.$id_objet); 
     49        if($champs=='*')$data=sql_fetsel($champs,$table,$where);
     50        else $data=sql_getfetsel($champs,'spip_'.$objet.'s',$where);
     51        $data=filtrer_champ($data);
     52        }
     53    else{
     54        $data=array();
     55        $sql=sql_select($champs,$table,$where);
     56       
     57        while($d = sql_fetch($sql)){
     58            if($d)$data[$d['id_'.$objet]]=filtrer_champ($d);
     59            }
     60        }
     61   
     62        return $data;
     63   
     64}
     65
     66/* Fonction qui fournit le lien d'un objet*/
    4267function url_objet($id_objet,$objet,$titre='',$url=''){
    4368   
     
    4873    }
    4974
    50         if(!$titre)$titre=info_objet($id_objet,$objet,'titre');
     75        if(!$titre)$titre=info_objet($objet,$id_objet,'titre');
    5176    if(!$url)$url=generer_url_entite($id_objet,$objet);
    5277       
     
    5580}
    5681
     82
     83/*Fournit un tableau avec id_objet=>donnees_objet*/
     84
     85function tableau_objet($objet,$id_objet='',$champs='*',$where=array(),$filtrer=array()){
     86    $d=info_objet($objet,$id_objet,$champs,$where);
     87    //Les tables non conforme, faudrait inclure une pipeline
     88    $exceptions=charger_fonction('exceptions','inc');
     89    $exception_objet=$exceptions('objet');
     90    if($exception_objet[$objet]){
     91         $objet=$exception_objet[$objet];
     92    }
     93    $data=array();
     94    if(is_array($d)){
     95        foreach($d as $r){
     96            if(!$r['titre']){
     97                $r['titre']=$r['nom']?$r['nom']:($r['nom_site']?$r['nom_site']:'objet'.$r['id_'.$objet]);
     98                unset($r['nom']);
     99                unset($r['nom_site']);
     100            }
     101            if(!$filtrer) $data[$r['id_'.$objet]]=$r;
     102            elseif(is_array($filtrer)){
     103                $donnees=array();
     104                foreach($filtrer as $c){
     105                if($r[$c])$donnees[$c]=$r[$c]; 
     106                }
     107             $data[$r['id_'.$objet]]=implode(',',$donnees);
     108            }
     109        }
     110    }
     111    return $data;
     112}
     113/* Assemble les données entre un objet sélectioné et son objet d'origine pour injection dans un modele choisit*/
    57114function generer_modele($id_objet,$objet='article',$fichier='modeles_selection_objet/defaut',$env=array(),$where=''){
    58115    include_spip('inc/utils');
  • _plugins_/selection_d_objets/trunk/selection_objet_pipelines.php

    r67471 r69054  
    33function selection_objet_affiche_gauche($flux) {
    44    include_spip('inc/config');
     5    $objet = $flux["args"]["exec"];
     6    $args=$flux['args'];
    57   
    6     $exec = $flux["args"]["exec"];
    7     $contexte=array();
    8     $objets=lire_config('selection_objet/selection_rubrique_objet',array());
    9     $args=$flux['args'];
    10     $objet_contexte=$args['exec'];
    11     $contexte['objet_dest']='rubrique';
    12     foreach($objets AS $objet){
    13         if($objet_contexte==$objet){
    14             $contexte['objet']=$objet;
    15             $contexte['id_objet']=$flux["args"]['id_'.$objet]?$flux["args"]['id_'.$objet]:_request('id_'.$objet);
    16            
    17             $contexte['langue']=sql_getfetsel('lang','spip_'.$objet.'s','id_'.$objet.'='.$contexte['id_objet']);
     8    $objets_selection=lire_config('selection_objet/selection_rubrique_objet',array());
     9    $exceptions=charger_fonction('exceptions','inc');
     10    $exception_objet=$exceptions('objet');
     11    if($exception_objet[$objet]){
     12         $objet=$exception_objet[$objet];
     13         $table='spip_'.$objet;
     14        }
     15    else $table='spip_'.$objet.'s';
     16   
     17    $contexte['id_objet']=$flux["args"]['id_'.$objet]?$flux["args"]['id_'.$objet]:_request('id_'.$objet);
     18
     19    if(in_array($objet,$objets_selection)){
     20        $contexte['objet']=$objet;
     21        $objets_cibles=lire_config('selection_objet/objets_cible',array());
     22        if($objet=='rubrique' OR $objet=='article'){
     23            $contexte['langue']=sql_getfetsel('lang',$table,'id_'.$objet.'='.$contexte['id_objet']);
    1824            $contexte['lang'] = $contexte['langue'];
    19             if ($objet=='rubrique' AND !$trad_rub=test_plugin_actif('tradrub')) $contexte['langue']=lire_config('langues_multilingue');
     25            }
     26        if($objet=='rubrique'){
     27            if (!$trad_rub=test_plugin_actif('tradrub')) $contexte['langue']=lire_config('langues_multilingue');
    2028            elseif(!$contexte['langue']){
    2129                if(!$trad_rub=test_plugin_actif('tradrub')) $contexte['langue']=lire_config('langues_multilingue');
    22                
    23             }
    24 
    25             $fond = recuperer_fond("prive/squelettes/navigation/affiche_gauche", $contexte);
    26             $flux["data"] .= $fond;
     30                }
    2731            }
     32            foreach ($objets_cibles as $objet_dest) {
     33                $contexte['objet_dest']=$objet_dest;
     34                $flux["data"].= recuperer_fond("prive/squelettes/navigation/affiche_gauche", $contexte);
     35            }
     36             
    2837        }
    2938     
     
    3241
    3342function selection_objet_affiche_milieu ($vars="") {
    34 include_spip('inc/config');
    35     $exec = $vars["args"]["exec"];
    36    
    37     $id_rubrique = $vars["args"]["id_rubrique"];
    38         if (!$id_rubrique)$id_rubrique=0;
    39         $id_article = $vars["args"]["id_article"];
     43    include_spip('inc/config');
     44    $objet = $vars["args"]["exec"];
     45    $args=$vars["args"];
     46    $objets_cibles=lire_config('selection_objet/objets_cible',array());
     47
     48    if(in_array($objet,$objets_cibles)){
     49        //Les tables non conforme
     50        $exceptions=charger_fonction('exceptions','inc');
     51        $exception_objet=$exceptions('objet');
     52        if($exception_objet[$objet]){
     53             $objet=$exception_objet[$objet];
     54            }       
     55        $id_objet=$args['id_'.$objet];
    4056        $data = $vars["data"];
     57        $special=array('article','rubrique');
     58        if(in_array($objet,$special)) $choisies= picker_selected(lire_config('selection_objet/selection_'.$objet.'_dest',array()),$objet);
     59        else $choisies=lire_config('selection_objet/selection_'.$objet.'_dest',array());
    4160       
    42         $active = picker_selected(lire_config('selection_objet/selection_rubrique_dest'),'rubrique');
    43 
    44         if ($exec == "rubrique" && in_array($id_rubrique,$active)) {
    45             include_spip("inc/utils");
    46             $contexte = array('id_objet_dest'=>$id_rubrique,'objet_dest'=>'rubrique');
    47 
    48             $page = recuperer_fond('prive/objets/liste/selection_interface', $contexte);
     61        if(in_array($id_objet,$choisies)){
     62           $contexte = array('id_objet_dest'=>$id_objet,'objet_dest'=>$objet);
     63           $vars["data"] .= recuperer_fond('prive/objets/liste/selection_interface', $contexte);
     64            }
    4965        }
    50 
    51         $data .= $ret;
    52    
    53         $vars["data"] .=$page;
    5466        return $vars;
    5567    }
Note: See TracChangeset for help on using the changeset viewer.