Changeset 94523 in spip-zone


Ignore:
Timestamp:
Jan 10, 2016, 8:00:32 AM (5 years ago)
Author:
abelass@…
Message:

largeur du select - spip 3.1
identation

Location:
_plugins_/selection_objets/branches/1
Files:
2 added
5 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/selection_objets/branches/1/paquet.xml

    r93408 r94523  
    22        prefix="selection_objet"
    33        categorie="edition"
    4         version="1.10.2"
     4        version="1.10.3"
    55        etat="test"
    66        compatibilite="[3.0.5;3.1.*]"
    77        logo="prive/themes/spip/images/selection_objet-64.png"
    88        documentation="http://contrib.spip.net/Selection-d-objets"
    9         schema="0.5.1" 
     9        schema="0.5.1"
    1010>
    1111
    1212        <nom>Sélection d'objets</nom>
    13 
    1413        <auteur lien='http://websimple.be'>Rainer Müller</auteur>
    15 
    1614        <licence>GNU/GPL</licence>
    17 
    18         <necessite nom="saisies" compatibilite="[2.0.3;]" />
    19 
    20         <pipeline nom="autoriser" inclure="selection_objet_autorisations.php" />
    21         <pipeline nom="declarer_tables_objets_sql" inclure="base/selection_objet.php" />
     15        <necessite nom="saisies" compatibilite="[2.0.3;]" />
     16        <pipeline nom="autoriser" inclure="selection_objet_autorisations.php" />
     17        <pipeline nom="declarer_tables_objets_sql" inclure="base/selection_objet.php" />
    2218        <pipeline nom="declarer_tables_interfaces" inclure="base/selection_objet.php" />
    23         <pipeline nom="affiche_milieu" inclure="selection_objet_pipelines.php" />
    24         <pipeline nom="affiche_gauche" inclure="selection_objet_pipelines.php" />       
    25         <pipeline nom="formulaire_charger" inclure="selection_objet_pipelines.php" />           
    26         <pipeline nom="formulaire_traiter" inclure="selection_objet_pipelines.php" />
    27         <pipeline nom="jqueryui_plugins" inclure="selection_objet_pipelines.php" />                             
     19        <pipeline nom="affiche_milieu" inclure="selection_objet_pipelines.php" />
     20        <pipeline nom="affiche_gauche" inclure="selection_objet_pipelines.php" />
     21        <pipeline nom="formulaire_charger" inclure="selection_objet_pipelines.php" />
     22        <pipeline nom="formulaire_traiter" inclure="selection_objet_pipelines.php" />
     23        <pipeline nom="jqueryui_plugins" inclure="selection_objet_pipelines.php" />
     24        <pipeline nom="header_prive" inclure="selection_objet_pipelines.php" />
    2825
    2926</paquet>
  • _plugins_/selection_objets/branches/1/recherche_objet_fonctions.php

    r73237 r94523  
    11<?php
    22
    3 if (!defined('_ECRIRE_INC_VERSION')) return;
    4 
     3if (!defined('_ECRIRE_INC_VERSION'))
     4        return;
    55
    66/*Fournit un tableau avec id_objet=>donnees_objet*/
    77
    8 function tableau_recherche_objet($objet,$exclus,$lang=''){
    9     include_spip('inc/pipelines_ecrire'); 
    10     //Les tables non conforme, faudrait inclure une pipeline
    11     $exceptions=charger_fonction('exceptions','inc');
    12     $exception_objet=$exceptions();
    13     if(!$champ_titre=$exception_objet['titre'][$objet]) $champ_titre='titre';
    14    
    15     $ancien_objet=$objet; 
    16     $e = trouver_objet_exec($objet);
    17     $objet=$e['type'];
    18     $id_table_objet=$e['id_table_objet'];
    19      if(!$objet){
    20             $objet=$ancien_objet;
    21             $id_table_objet='id_'.$objet;
    22         }
    23     $table = table_objet_sql($objet);     
     8function tableau_recherche_objet($objet, $exclus, $lang = '') {
     9        include_spip('inc/pipelines_ecrire');
     10        //Les tables non conforme, faudrait inclure une pipeline
     11        $exceptions = charger_fonction('exceptions', 'inc');
     12        $exception_objet = $exceptions();
     13        if (!$champ_titre = $exception_objet['titre'][$objet])
     14                $champ_titre = 'titre';
    2415
    25     $tables=lister_tables_objets_sql();
    26    
    27     $traduction_nom_objet=_T($tables[$table]['texte_objet']);
     16        $ancien_objet = $objet;
     17        $e = trouver_objet_exec($objet);
     18        $objet = $e['type'];
     19        $id_table_objet = $e['id_table_objet'];
     20        if (!$objet) {
     21                $objet = $ancien_objet;
     22                $id_table_objet = 'id_' . $objet;
     23        }
     24        $table = table_objet_sql($objet);
    2825
    29    
    30     $where=array($champ_titre.' LIKE '.sql_quote('%'._request('term').'%'));
    31     if($objet=='document'){
    32         $where=array($champ_titre.' LIKE '.sql_quote('%'._request('term').'%').' OR fichier LIKE'.sql_quote('%'._request('term').'%'));
    33         $champ_titre='titre,fichier';
    34     }
     26        $tables = lister_tables_objets_sql();
    3527
    36     if(isset($tables[$table_dest]['statut'][0]['publie']))$statut=$tables[$table_dest]['statut'][0]['publie'];
    37     $exceptions_statut=array('rubrique','document');
    38    if($statut AND !in_array($objet,$exceptions_statut))  $where[]='statut='.sql_quote($statut);
    39    if($objet=='auteur') $where[]='statut !='.sql_quote('5poubelle');
    40     if(isset($tables[$table_dest]['field']['lang']) AND $lang) $where[]='lang IN ("'.implode('","',$lang).'")';
    41     $d=info_objet($objet,'',$champ_titre.','.$id_table_objet,$where);
     28        $traduction_nom_objet = _T($tables[$table]['texte_objet']);
    4229
    43     $data=array();
    44     if(is_array($d)){
    45         foreach($d as $r){
    46             if(!$r['titre']) $r['titre']=titre_objet_sel($objet,$r);
    47             if(!isset($exclus[$r[$id_table_objet].'-'.$objet]))$data[]=array('label'=>$r[titre].' ('.$traduction_nom_objet.')','value'=>$r[$id_table_objet].'-'.$objet);
    48         }
    49     }
    50     return $data;
     30        $where = array($champ_titre . ' LIKE ' . sql_quote('%' . _request('term') . '%'));
     31        if ($objet == 'document') {
     32                $where = array($champ_titre . ' LIKE ' . sql_quote('%' . _request('term') . '%') . ' OR fichier LIKE' . sql_quote('%' . _request('term') . '%'));
     33                $champ_titre = 'titre,fichier';
     34        }
     35
     36        if (isset($tables[$table_dest]['statut'][0]['publie']))
     37                $statut = $tables[$table_dest]['statut'][0]['publie'];
     38        $exceptions_statut = array(
     39                'rubrique',
     40                'document'
     41        );
     42        if ($statut AND !in_array($objet, $exceptions_statut))
     43                $where[] = 'statut=' . sql_quote($statut);
     44        if ($objet == 'auteur')
     45                $where[] = 'statut !=' . sql_quote('5poubelle');
     46        if (isset($tables[$table_dest]['field']['lang']) AND $lang)
     47                $where[] = 'lang IN ("' . implode('","', $lang) . '")';
     48        $d = info_objet($objet, '', $champ_titre . ',' . $id_table_objet, $where);
     49
     50        $data = array();
     51        if (is_array($d)) {
     52                foreach ($d as $r) {
     53                        if (!$r['titre'])
     54                                $r['titre'] = titre_objet_sel($objet, $r);
     55                        if (!isset($exclus[$r[$id_table_objet] . '-' . $objet]))
     56                                $data[] = array(
     57                                        'label' => $r[titre] . ' (' . $traduction_nom_objet . ')',
     58                                        'value' => $r[$id_table_objet] . '-' . $objet
     59                                );
     60                }
     61        }
     62        return $data;
    5163}
    52 
    5364?>
  • _plugins_/selection_objets/branches/1/saisies/selection_objets.html

    r70763 r94523  
    1 Unexpected error.  File contents could not be restored from local history during undo/redo.
     1[(#ENV{multiple}|oui)
     2        [(#SET{valeur,[(#ENV*{valeur}|is_array|?{[(#ENV*{valeur})],[(#ENV*{valeur}|explode{','})]})]})]
     3]
     4<select name="#ENV{nom}[(#ENV{multiple}|?{\[\]})]" id="champ_[(#ENV{nom}|saisie_nom2classe)]"[ class="(#ENV{class})"][(#ENV{multiple}|oui) multiple="multiple" size="#ENV{size,10}"][ disabled="(#ENV{disable})"]>
     5        [(#ENV{cacher_option_intro}|ou{#ENV{multiple}}|non)
     6                <option value="">[(#ENV{option_intro})]</option>]
     7        <BOUCLE_selection_objets(SELECTION_OBJETS){par num titre, titre}{statut?}{id_objet?}{id_objet_dest?}{recherche?}{tout}>
     8                [(#ENV{multiple}|oui)
     9                <option value="#ID_OBJET"[(#ID_OBJET|in_array{#ENV{valeur_forcee,#GET{valeur,#ENV{defaut,#ARRAY}}}}|oui) selected="selected"]>#TITRE 1</option>]
     10                [(#ENV{multiple}|non)
     11                <option value="#ID_OBJET"[(#ID_OBJET|=={#ENV{valeur_forcee,#ENV{valeur,#ENV{defaut}}}}|oui) selected="selected"]>#TITRE</option>]
     12        </BOUCLE_selection_objets>
     13</select>
  • _plugins_/selection_objets/branches/1/selection_objet_fonctions.php

    r70768 r94523  
    11<?php
    22
    3 if (!defined('_ECRIRE_INC_VERSION')) return;
    4 
    5 
    6 
    7  //Applique des filtres sur des champs spéciciques
    8 function filtrer_champ($data){
    9     include_spip('inc/texte');
    10     $exceptions=charger_fonction('exceptions','inc');
    11     $titres=$exceptions('titre');
    12     $titres=array_merge(array(0=>'titre'),$titres);
    13     $propres=array('descriptif','texte');
    14     $extraire_multi=array_merge($titres,array('descriptif','texte'));
    15     $filtres=array(
    16         'extraire_multi'=>  $extraire_multi,         
    17         'supprimer_numero'=>$titres,
    18         'propre'=>$propres,
    19        );
    20        
    21     foreach($filtres as $filtre => $champ){
    22         if(is_array($data)){
    23             if(is_array($champ)){
    24                 foreach($champ as $c){
    25                     if($data[$c])$data[$c]=$filtre($data[$c]);
    26                     }
    27                 }
    28             }
    29         else $data=$filtre($data);
    30         }
    31     return $data;   
    32    
     3if (!defined('_ECRIRE_INC_VERSION'))
     4        return;
     5
     6//Applique des filtres sur des champs spéciciques
     7function filtrer_champ($data) {
     8        include_spip('inc/texte');
     9        $exceptions = charger_fonction('exceptions', 'inc');
     10        $titres = $exceptions('titre');
     11        $titres = array_merge(array(0 => 'titre'), $titres);
     12        $propres = array(
     13                'descriptif',
     14                'texte'
     15        );
     16        $extraire_multi = array_merge($titres, array(
     17                'descriptif',
     18                'texte'
     19        ));
     20        $filtres = array(
     21                'extraire_multi' => $extraire_multi,
     22                'supprimer_numero' => $titres,
     23                'propre' => $propres,
     24        );
     25
     26        foreach ($filtres as $filtre => $champ) {
     27                if (is_array($data)) {
     28                        if (is_array($champ)) {
     29                                foreach ($champ as $c) {
     30                                        if ($data[$c])
     31                                                $data[$c] = $filtre($data[$c]);
     32                                }
     33                        }
     34                }
     35                else
     36                        $data = $filtre($data);
     37        }
     38        return $data;
     39
    3340}
    3441
    3542/*Etablit le titre de l'objet*/
    36 function titre_objet_sel($objet,$contexte){
    37 
    38     $exceptions=charger_fonction('exceptions','inc');
    39     $exception_titre=$exceptions('titre');
    40     //Les exceptions du titre
    41     if(!$titre=$contexte[$exception_titre[$objet]] and isset($contexte['titre']))$titre=$contexte['titre'];
    42     if(!$titre){
    43         if($objet=='document'){
    44             $f=explode('/',$contexte['fichier']);
    45             $titre=$f[1];
    46             }
    47         elseif($objet){
    48             $table_sql = table_objet_sql($objet);
    49             $tables=lister_tables_objets_sql();
    50             $titre_objet=_T($tables[$table_sql]['texte_objet']);
    51             if(isset($contexte['id_objet']))$id=$contexte['id_objet'];
    52             if($objet='selection_objet' AND isset($contexte['id_selection_objet']))$id=$contexte['id_selection_objet'];
    53            $titre=$titre_objet.' '.$id;
    54         }
    55    
    56     }
    57     return $titre;
     43function titre_objet_sel($objet, $contexte) {
     44
     45        $exceptions = charger_fonction('exceptions', 'inc');
     46        $exception_titre = $exceptions('titre');
     47        //Les exceptions du titre
     48        if (!$titre = $contexte[$exception_titre[$objet]] and isset($contexte['titre']))
     49                $titre = $contexte['titre'];
     50        if (!$titre) {
     51                if ($objet == 'document') {
     52                        $f = explode('/', $contexte['fichier']);
     53                        $titre = $f[1];
     54                }
     55                elseif ($objet) {
     56                        $table_sql = table_objet_sql($objet);
     57                        $tables = lister_tables_objets_sql();
     58                        $titre_objet = _T($tables[$table_sql]['texte_objet']);
     59                        if (isset($contexte['id_objet']))
     60                                $id = $contexte['id_objet'];
     61                        if ($objet = 'selection_objet' AND isset($contexte['id_selection_objet']))
     62                                $id = $contexte['id_selection_objet'];
     63                        $titre = $titre_objet . ' ' . $id;
     64                }
     65
     66        }
     67        return $titre;
    5868}
    5969
    6070/* Fournit les champs désirés d'un objet donné */
    61 function info_objet($objet,$id_objet='',$champs='*',$where=array()){
     71function info_objet($objet, $id_objet = '', $champs = '*', $where = array()) {
    6272        include_spip('inc/filtres');
    6373
    64     //Les tables non conforme
    65     if($objet){
    66         include_spip('inc/pipelines_ecrire');
    67         $ancien_objet=$objet;
    68         $e = trouver_objet_exec($objet);
    69 
    70         $objet=$e['type'];
    71         $id_table_objet=$e['id_table_objet'];
    72         // Pour les récalcitrants
    73         if(!$objet){
    74                $objet=$ancien_objet;
    75                $id_table_objet='id_'.$objet;
    76             }
    77         $table = table_objet_sql($objet); 
    78    
    79        
    80         if($id_objet){
    81             if(!$where)$where=array($id_table_objet.'='.$id_objet); 
    82                 if($champs=='*')$data=sql_fetsel($champs,$table,$where);
    83             else $data=sql_getfetsel($champs,$table,$where);
    84             $data=filtrer_champ($data);
    85             }
    86         else{
    87             $data=array();
    88             $sql=sql_select($champs,$table,$where);
    89             while($d = sql_fetch($sql)){
    90                
    91                 if($d)$data[$d[$id_table_objet]]=filtrer_champ($d);
    92                 }
    93             }
    94         }
    95     else $data=array();
     74        //Les tables non conforme
     75        if ($objet) {
     76                include_spip('inc/pipelines_ecrire');
     77                $ancien_objet = $objet;
     78                $e = trouver_objet_exec($objet);
     79
     80                $objet = $e['type'];
     81                $id_table_objet = $e['id_table_objet'];
     82                // Pour les récalcitrants
     83                if (!$objet) {
     84                        $objet = $ancien_objet;
     85                        $id_table_objet = 'id_' . $objet;
     86                }
     87                $table = table_objet_sql($objet);
     88
     89                if ($id_objet) {
     90                        if (!$where)
     91                                $where = array($id_table_objet . '=' . $id_objet);
     92                        if ($champs == '*')
     93                                $data = sql_fetsel($champs, $table, $where);
     94                        else
     95                                $data = sql_getfetsel($champs, $table, $where);
     96                        $data = filtrer_champ($data);
     97                }
     98                else {
     99                        $data = array();
     100                        $sql = sql_select($champs, $table, $where);
     101                        while ($d = sql_fetch($sql)) {
     102
     103                                if ($d)
     104                                        $data[$d[$id_table_objet]] = filtrer_champ($d);
     105                        }
     106                }
     107        }
     108        else
     109                $data = array();
    96110        return $data;
    97    
     111
    98112}
    99113
    100114/* Fonction qui fournit le lien d'un objet*/
    101 function url_objet($id_objet,$objet,$titre='',$url=''){
    102    
    103     if(!$titre AND !$url){
    104         $objet_sel=sql_fetsel('titre,url','spip_selection_objets','id_objet='.$id_objet.' AND objet='.sql_quote($objet));
    105         $url=$objet_sel['url'];
    106         $titre=$objet_sel['titre'];
    107     }
    108 
    109         if(!$titre)$titre=info_objet($objet,$id_objet,'titre');
    110     if(!$url)$url=generer_url_entite($id_objet,$objet);
    111        
    112         $lien = '<a href="'.$url.'" title="'.$titre.'">'.$titre.'</a>';
     115function url_objet($id_objet, $objet, $titre = '', $url = '') {
     116
     117        if (!$titre AND !$url) {
     118                $objet_sel = sql_fetsel('titre,url', 'spip_selection_objets', 'id_objet=' . $id_objet . ' AND objet=' . sql_quote($objet));
     119                $url = $objet_sel['url'];
     120                $titre = $objet_sel['titre'];
     121        }
     122
     123        if (!$titre)
     124                $titre = info_objet($objet, $id_objet, 'titre');
     125        if (!$url)
     126                $url = generer_url_entite($id_objet, $objet);
     127
     128        $lien = '<a href="' . $url . '" title="' . $titre . '">' . $titre . '</a>';
    113129        return $lien;
    114130}
    115131
    116 
    117132/*Fournit un tableau avec id_objet=>donnees_objet*/
    118 function tableau_objet($objet,$id_objet='',$champs='*',$where=array(),$filtrer=array(),$array_donnes=true){
    119    
    120     $d=info_objet($objet,$id_objet,$champs,$where);
    121    
    122     //Les tables non conforme, faudrait inclure une pipeline
    123     $exceptions=charger_fonction('exceptions','inc');
    124     $exception_objet=$exceptions('objet');
    125     if($exception_objet[$objet]){
    126          $objet=$exception_objet[$objet];
    127     }
    128     $data=array();
    129     if(is_array($d)){
    130         foreach($d as $r){
    131             //déterminer le titre
    132             if(!$r['titre'])$r['titre']=titre_objet_sel($objet,$r);
    133             if(!$filtrer) $data[$r['id_'.$objet]]=$r;
    134             elseif(is_array($filtrer)){
    135                 $donnees=array();
    136                 foreach($filtrer as $c){
    137                 if($r[$c])$donnees[$c]=$r[$c]; 
    138                 }
    139              if($array_donnes) $data[$r['id_'.$objet]]=$donnees;
    140              else $data[$r['id_'.$objet]]=implode(',',$donnees);
    141             }
    142         }
    143     }
    144     return $data;
    145 }
     133function tableau_objet($objet, $id_objet = '', $champs = '*', $where = array(), $filtrer = array(), $array_donnes = true) {
     134
     135        $d = info_objet($objet, $id_objet, $champs, $where);
     136
     137        //Les tables non conforme, faudrait inclure une pipeline
     138        $exceptions = charger_fonction('exceptions', 'inc');
     139        $exception_objet = $exceptions('objet');
     140        if ($exception_objet[$objet]) {
     141                $objet = $exception_objet[$objet];
     142        }
     143        $data = array();
     144        if (is_array($d)) {
     145                foreach ($d as $r) {
     146                        //déterminer le titre
     147                        if (!$r['titre'])
     148                                $r['titre'] = titre_objet_sel($objet, $r);
     149                        if (!$filtrer)
     150                                $data[$r['id_' . $objet]] = $r;
     151                        elseif (is_array($filtrer)) {
     152                                $donnees = array();
     153                                foreach ($filtrer as $c) {
     154                                        if ($r[$c])
     155                                                $donnees[$c] = $r[$c];
     156                                }
     157                                if ($array_donnes)
     158                                        $data[$r['id_' . $objet]] = $donnees;
     159                                else
     160                                        $data[$r['id_' . $objet]] = implode(',', $donnees);
     161                        }
     162                }
     163        }
     164        return $data;
     165}
     166
    146167/* Assemble les données entre un objet sélectioné et son objet d'origine pour injection dans un modele choisit*/
    147 function generer_modele($id_objet,$objet='article',$fichier='modeles_selection_objet/defaut',$env=array(),$where=''){
    148     include_spip('inc/pipelines_ecrire');
    149     include_spip('inc/utils');
    150    
    151     //Quelques objets ne sont pas conforme, on adapte
    152     $exceptions=charger_fonction('exceptions','inc');
    153     $exception_objet=$exceptions();
    154    
    155     if($objet){
    156         $ancien_objet=$objet;
    157         $e = trouver_objet_exec($objet);
    158         $objet=$e['type'];
    159         $id_table_objet=$e['id_table_objet'];
    160         // Pour les récalcitrants
    161         if(!$objet){
    162                $objet=$ancien_objet;
    163                $id_table_objet='id_'.$objet;
    164             }
    165         $table = table_objet_sql($objet); 
    166 
    167         if(!$where)$where=$id_table_objet.'='.$id_objet;
    168         if(!$contexte=sql_fetsel('*',$table,$where))$contexte=array();
    169          
    170         }
    171     else $contexte=array();
    172 
    173     //Filtrer les champs vides
    174     foreach($env as $k=>$v){
    175         if(!$v)unset($env[$k]);
    176     }
    177    
    178     if(!$cont=calculer_contexte())$cont=array();
    179     if(is_array($env))$contexte= array_merge($cont,$contexte,$env);
    180 
    181     $contexte['objet']=$objet;
    182     $contexte['id_objet']=$id_objet;
    183    
    184    
    185    
    186      //déterminer le titre
    187     if(!$contexte['titre'])$contexte['titre']=titre_objet_sel($objet,$contexte);
    188 
    189     //Les exceptions du titre
    190     if(!$exception_titre[$objet]){
    191         $contexte['champ_titre']='titre';
    192         }
    193     else{
    194         $contexte['champ_titre']=$exception_objet['titre'][$objet];
    195         }
    196    
    197     //Chercher le logo correpsondant
    198     //Si il y a un logo Selection Objet
    199     $chercher_logo = charger_fonction('chercher_logo', 'inc');
    200     $logo=$chercher_logo($contexte['id_selection_objet'],'id_selection_objet','on');
    201     $contexte['logo_objet']=$logo[0];
    202     //sinon le logo de l'objet sélectionné
    203     if(!$contexte['logo_objet']){
    204         $_id_objet=id_table_objet($objet);       
    205         $logo=$chercher_logo($id_objet,$_id_objet,'on');
    206         $contexte['logo_objet']=$logo[0];
    207         }
    208     $fond=recuperer_fond($fichier,$contexte);
    209    
    210     return $fond;
     168function generer_modele($id_objet, $objet = 'article', $fichier = 'modeles_selection_objet/defaut', $env = array(), $where = '') {
     169        include_spip('inc/pipelines_ecrire');
     170        include_spip('inc/utils');
     171
     172        //Quelques objets ne sont pas conforme, on adapte
     173        $exceptions = charger_fonction('exceptions', 'inc');
     174        $exception_objet = $exceptions();
     175
     176        if ($objet) {
     177                $ancien_objet = $objet;
     178                $e = trouver_objet_exec($objet);
     179                $objet = $e['type'];
     180                $id_table_objet = $e['id_table_objet'];
     181                // Pour les récalcitrants
     182                if (!$objet) {
     183                        $objet = $ancien_objet;
     184                        $id_table_objet = 'id_' . $objet;
     185                }
     186                $table = table_objet_sql($objet);
     187
     188                if (!$where)
     189                        $where = $id_table_objet . '=' . $id_objet;
     190                if (!$contexte = sql_fetsel('*', $table, $where))
     191                        $contexte = array();
     192
     193        }
     194        else
     195                $contexte = array();
     196
     197        //Filtrer les champs vides
     198        foreach ($env as $k => $v) {
     199                if (!$v)
     200                        unset($env[$k]);
     201        }
     202
     203        if (!$cont = calculer_contexte())
     204                $cont = array();
     205        if (is_array($env))
     206                $contexte = array_merge($cont, $contexte, $env);
     207
     208        $contexte['objet'] = $objet;
     209        $contexte['id_objet'] = $id_objet;
     210
     211        //déterminer le titre
     212        if (!$contexte['titre'])
     213                $contexte['titre'] = titre_objet_sel($objet, $contexte);
     214
     215        //Les exceptions du titre
     216        if (!$exception_titre[$objet]) {
     217                $contexte['champ_titre'] = 'titre';
     218        }
     219        else {
     220                $contexte['champ_titre'] = $exception_objet['titre'][$objet];
     221        }
     222
     223        //Chercher le logo correpsondant
     224        //Si il y a un logo Selection Objet
     225        $chercher_logo = charger_fonction('chercher_logo', 'inc');
     226        $logo = $chercher_logo($contexte['id_selection_objet'], 'id_selection_objet', 'on');
     227        $contexte['logo_objet'] = $logo[0];
     228        //sinon le logo de l'objet sélectionné
     229        if (!$contexte['logo_objet']) {
     230                $_id_objet = id_table_objet($objet);
     231                $logo = $chercher_logo($id_objet, $_id_objet, 'on');
     232                $contexte['logo_objet'] = $logo[0];
     233        }
     234        $fond = recuperer_fond($fichier, $contexte);
     235
     236        return $fond;
    211237}
    212238
    213239//donnele nom du type de lien
    214 function nom_type($type,$objet){
    215     include_spip('inc/config');
    216     if(!$types=lire_config('selection_objet/type_liens_'.$objet,array())) $types=lire_config('selection_objet/type_liens',array());
    217    
    218     if(!$nom=_T($types[$type]))$nom=$type;
    219    
    220     return $nom;
    221     }
     240function nom_type($type, $objet) {
     241        include_spip('inc/config');
     242        if (!$types = lire_config('selection_objet/type_liens_' . $objet, array()))
     243                $types = lire_config('selection_objet/type_liens', array());
     244
     245        if (!$nom = _T($types[$type]))
     246                $nom = $type;
     247
     248        return $nom;
     249}
    222250?>
  • _plugins_/selection_objets/branches/1/selection_objet_pipelines.php

    r74900 r94523  
    11<?php
    22
    3 if (!defined("_ECRIRE_INC_VERSION")) return;
     3if (!defined("_ECRIRE_INC_VERSION"))
     4        return;
     5
     6function selection_objet_header_prive($flux) {
     7        $flux .= '<link rel="stylesheet" href="' . _DIR_PLUGIN_SELECTION_OBJET . 'css/so_admin.css" type="text/css" media="all" />';
     8        return $flux;
     9}
    410
    511function selection_objet_affiche_gauche($flux) {
    6     include_spip('inc/config');
    7     $exec = $flux["args"]["exec"];
     12        include_spip('inc/config');
     13        $exec = $flux["args"]["exec"];
    814
    9     /*Desactivé car il y a u problème  avec les cadres et block_depliables dans l'inclure
    10     * //Exception pour les documents
    11     if($objet=='document_edit')$objet='document' ;    */
    12     $args=$flux['args'];
     15        /*Desactivé car il y a u problème  avec les cadres et block_depliables dans l'inclure
     16        * //Exception pour les documents
     17        if($objet=='document_edit')$objet='document' ;    */
     18        $args = $flux['args'];
    1319
    14     $objets_selection=lire_config('selection_objet/selection_rubrique_objet',array());
     20        $objets_selection = lire_config('selection_objet/selection_rubrique_objet', array());
    1521
     22        if (in_array($exec, $objets_selection)) {
     23                $e = trouver_objet_exec($exec);
     24                $objet = $e['type'];
     25                $id_table_objet = $e['id_table_objet'];
     26                if (!$objet) {
     27                        $objet = $exec;
     28                        $id_table_objet = 'id_' . objet;
     29                }
     30                $table = table_objet_sql($objet);
     31                $contexte['id_objet'] = $flux["args"][$id_table_objet] ? $flux["args"][$id_table_objet] : _request($id_table_objet);
     32                $contexte['objet'] = $objet;
     33                $objets_cibles = lire_config('selection_objet/objets_cible', array());
    1634
    17     if(in_array($exec,$objets_selection)){
    18         $e = trouver_objet_exec($exec);
    19         $objet=$e['type'];
    20         $id_table_objet=$e['id_table_objet'];
    21         if(!$objet){
    22             $objet=$exec;
    23             $id_table_objet='id_'.objet;
    24         }
    25         $table = table_objet_sql($objet);
    26         $contexte['id_objet']=$flux["args"][$id_table_objet]?$flux["args"][$id_table_objet]:_request($id_table_objet);         
    27         $contexte['objet']=$objet;
    28         $objets_cibles=lire_config('selection_objet/objets_cible',array());
    29        
    30         if($objet=='rubrique' OR $objet=='article'){         
    31             $contexte['langue']=sql_getfetsel('lang',$table,$id_table_objet.'='.$contexte['id_objet']);
    32             //$contexte['lang'] = $contexte['langue'];
    33             }
    34         if($objet=='rubrique'){
    35             if (!$trad_rub=test_plugin_actif('tradrub')) $contexte['langue']=lire_config('langues_multilingue');
    36             elseif(!$contexte['langue']){
    37                 if(!$trad_rub=test_plugin_actif('tradrub')) $contexte['langue']=lire_config('langues_multilingue');
    38                 }
    39             }
    40         $contexte['objets_cibles']=$objets_cibles;           
    41         $flux["data"].= recuperer_fond("prive/squelettes/navigation/affiche_gauche", $contexte);
    42         }
    43      
    44     return $flux;
     35                if ($objet == 'rubrique' OR $objet == 'article') {
     36                        $contexte['langue'] = sql_getfetsel('lang', $table, $id_table_objet . '=' . $contexte['id_objet']);
     37                        //$contexte['lang'] = $contexte['langue'];
     38                }
     39                if ($objet == 'rubrique') {
     40                        if (!$trad_rub = test_plugin_actif('tradrub'))
     41                                $contexte['langue'] = lire_config('langues_multilingue');
     42                        elseif (!$contexte['langue']) {
     43                                if (!$trad_rub = test_plugin_actif('tradrub'))
     44                                        $contexte['langue'] = lire_config('langues_multilingue');
     45                        }
     46                }
     47                $contexte['objets_cibles'] = $objets_cibles;
     48                $flux["data"] .= recuperer_fond("prive/squelettes/navigation/affiche_gauche", $contexte);
     49        }
     50
     51        return $flux;
    4552}
    4653
    47 function selection_objet_affiche_milieu ($flux="") {
    48     include_spip('inc/config');
    49     $exec = $flux["args"]["exec"];
    50     //Exception pour les documents
    51     if($exec=='document_edit')$exec='document' ;   
    52     $objets_cibles=lire_config('selection_objet/objets_cible',array());
     54function selection_objet_affiche_milieu($flux = "") {
     55        include_spip('inc/config');
     56        $exec = $flux["args"]["exec"];
     57        //Exception pour les documents
     58        if ($exec == 'document_edit')
     59                $exec = 'document';
     60        $objets_cibles = lire_config('selection_objet/objets_cible', array());
    5361
    54    
     62        if (in_array($exec, $objets_cibles)) {
     63                $e = trouver_objet_exec($exec);
     64                $objet = $e['type'];
     65                $id_table_objet = $e['id_table_objet'];
     66                if (!$objet) {
     67                        $objet = $exec;
     68                        $id_table_objet = 'id_' . objet;
     69                }
    5570
     71                $table = table_objet_sql($objet);
     72                $args = $flux["args"];
    5673
    57     if(in_array($exec,$objets_cibles)){
    58         $e = trouver_objet_exec($exec);
    59         $objet=$e['type'];
    60         $id_table_objet=$e['id_table_objet'];
    61         if(!$objet){
    62             $objet=$exec;
    63             $id_table_objet='id_'.objet;
    64         }
     74                $tables = lister_tables_objets_sql();
    6575
    66         $table = table_objet_sql($objet);   
    67         $args=$flux["args"];
    68        
    69         $tables=lister_tables_objets_sql();
     76                $id_objet = $args['id_' . $objet];
     77                if ($objet == 'site')
     78                        $id_objet = $args['id_syndic'];
     79                $data = $flux["data"];
     80                $special = array(
     81                        'article',
     82                        'rubrique'
     83                );
     84                if (in_array($objet, $special))
     85                        $choisies = picker_selected(lire_config('selection_objet/selection_' . $objet . '_dest', array()), $objet);
     86                else
     87                        $choisies = lire_config('selection_objet/selection_' . $objet . '_dest', array());
    7088
    71         $id_objet=$args['id_'.$objet];
    72         if($objet=='site')$id_objet=$args['id_syndic'];
    73         $data = $flux["data"];
    74         $special=array('article','rubrique');
    75         if(in_array($objet,$special)) $choisies= picker_selected(lire_config('selection_objet/selection_'.$objet.'_dest',array()),$objet);
    76         else $choisies=lire_config('selection_objet/selection_'.$objet.'_dest',array());
    77        
    78         if(in_array($id_objet,$choisies) OR !$choisies){
    79            $contexte = array('id_objet_dest'=>$id_objet,'objet_dest'=>$objet);
    80            
    81            if($tables[$table]['field']['lang']) $contexte['langue']=array(sql_getfetsel('lang',$table,'id_'.$objet.'='.$id_objet));
    82            elseif($objet!='document') $contexte['langue']=array($args['lang']);
    83            else $contexte['langue']=array();
    84         if($objet=='rubrique'){
    85             if (!$trad_rub=test_plugin_actif('tradrub')) $contexte['langue']=explode(',',lire_config('langues_multilingue'));
    86             }
    87         if($objet=='auteur')$contexte['langue']='';
    88            $flux["data"] .= recuperer_fond('prive/objets/liste/selection_interface', $contexte);
    89             }
    90         }
    91         return $flux;
    92     }
     89                if (in_array($id_objet, $choisies) OR !$choisies) {
     90                        $contexte = array(
     91                                'id_objet_dest' => $id_objet,
     92                                'objet_dest' => $objet
     93                        );
    9394
    94 function selection_objet_formulaire_charger($flux){
    95     $form=$flux['args']['form'];
    96     if($form == 'configurer_selection_objet'){
    97  //emprunté de a2a  preparé les type_liens pour le formulaire     
    98     include_spip('inc/config');
    99     if(!$cfg['type_liens']=_request('type_liens')){
    100         $types_lien=lire_config('selection_objet/type_liens',array());
    101             $flux['data']['type_liens']='';
    102             foreach ($types_lien as $key => $value) {
    103                 if($key)$flux['data']['type_liens'].="$key,$value\n";
    104             }
    105        
    106     }
    107 
    108     //également les  type_liens_OBJET   
    109  
    110     $objets_cibles=lire_config('selection_objet/objets_cible',array());
    111    
    112     foreach($objets_cibles as $objet){
    113         if($types_lien=lire_config('selection_objet/type_liens_'.$objet)){
    114             $flux['data']['type_liens_'.$objet]='';
    115             foreach ($types_lien as $key => $value) {
    116                 if($key)$flux['data']['type_liens_'.$objet].="$key,$value\n";
    117                 }
    118             }
    119            
    120         }
    121     }
    122     return $flux;   
     95                        if ($tables[$table]['field']['lang'])
     96                                $contexte['langue'] = array(sql_getfetsel('lang', $table, 'id_' . $objet . '=' . $id_objet));
     97                        elseif ($objet != 'document')
     98                                $contexte['langue'] = array($args['lang']);
     99                        else
     100                                $contexte['langue'] = array();
     101                        if ($objet == 'rubrique') {
     102                                if (!$trad_rub = test_plugin_actif('tradrub'))
     103                                        $contexte['langue'] = explode(',', lire_config('langues_multilingue'));
     104                        }
     105                        if ($objet == 'auteur')
     106                                $contexte['langue'] = '';
     107                        $flux["data"] .= recuperer_fond('prive/objets/liste/selection_interface', $contexte);
     108                }
     109        }
     110        return $flux;
    123111}
    124112
    125 function selection_objet_formulaire_traiter($flux){
    126     // intervenir sur la configuration du plugin
    127     $form=$flux['args']['form'];
    128     if($form == 'configurer_selection_objet'){
    129          include_spip('inc/config');
    130         $cfg=lire_config('selection_objet');
    131         $cfg['type_liens']  = types_liaisons2array(_request('type_liens'));
    132        
    133     if(!$objets_cibles=$cfg['objets_cible'])$objets_cibles=array();
    134    
    135     foreach($objets_cibles as $objet){
    136         if(_request('type_liens_'.$objet))$cfg['type_liens_'.$objet]  = types_liaisons2array(_request('type_liens_'.$objet));
    137         }
    138        
    139     ecrire_config('selection_objet',$cfg);
    140     }
    141     return $flux;
     113function selection_objet_formulaire_charger($flux) {
     114        $form = $flux['args']['form'];
     115        if ($form == 'configurer_selection_objet') {
     116                //emprunté de a2a  preparé les type_liens pour le formulaire
     117                include_spip('inc/config');
     118                if (!$cfg['type_liens'] = _request('type_liens')) {
     119                        $types_lien = lire_config('selection_objet/type_liens', array());
     120                        $flux['data']['type_liens'] = '';
     121                        foreach ($types_lien as $key => $value) {
     122                                if ($key)
     123                                        $flux['data']['type_liens'] .= "$key,$value\n";
     124                        }
     125
     126                }
     127
     128                //également les  type_liens_OBJET
     129
     130                $objets_cibles = lire_config('selection_objet/objets_cible', array());
     131
     132                foreach ($objets_cibles as $objet) {
     133                        if ($types_lien = lire_config('selection_objet/type_liens_' . $objet)) {
     134                                $flux['data']['type_liens_' . $objet] = '';
     135                                foreach ($types_lien as $key => $value) {
     136                                        if ($key)
     137                                                $flux['data']['type_liens_' . $objet] .= "$key,$value\n";
     138                                }
     139                        }
     140
     141                }
     142        }
     143        return $flux;
    142144}
    143145
    144 function selection_objet_jqueryui_plugins($scripts){
    145    $scripts[] = 'jquery.ui.autocomplete';
    146    $scripts[] = "jquery.ui.widget";
    147    $scripts[] = "jquery.ui.mouse";
    148    $scripts[] = "jquery.ui.sortable";
    149    return $scripts;
     146function selection_objet_formulaire_traiter($flux) {
     147        // intervenir sur la configuration du plugin
     148        $form = $flux['args']['form'];
     149        if ($form == 'configurer_selection_objet') {
     150                include_spip('inc/config');
     151                $cfg = lire_config('selection_objet');
     152                $cfg['type_liens'] = types_liaisons2array(_request('type_liens'));
     153
     154                if (!$objets_cibles = $cfg['objets_cible'])
     155                        $objets_cibles = array();
     156
     157                foreach ($objets_cibles as $objet) {
     158                        if (_request('type_liens_' . $objet))
     159                                $cfg['type_liens_' . $objet] = types_liaisons2array(_request('type_liens_' . $objet));
     160                }
     161
     162                ecrire_config('selection_objet', $cfg);
     163        }
     164        return $flux;
    150165}
    151166
    152 function types_liaisons2array($type){
    153     $tableau    = array();
    154     $lignes     = explode("\n",$type);
    155     foreach ($lignes as $l){
    156         $donnees= explode(',',$l);
    157         if ($donnees[1])
    158             $tableau[trim($donnees[0])] = trim ($donnees[1]);
    159         else
    160             $tableau[trim($donnees[0])] = '';
    161     }
     167function selection_objet_jqueryui_plugins($scripts) {
     168        $scripts[] = 'jquery.ui.autocomplete';
     169        $scripts[] = "jquery.ui.widget";
     170        $scripts[] = "jquery.ui.mouse";
     171        $scripts[] = "jquery.ui.sortable";
     172        return $scripts;
     173}
    162174
    163     return $tableau;
     175function types_liaisons2array($type) {
     176        $tableau = array();
     177        $lignes = explode("\n", $type);
     178        foreach ($lignes as $l) {
     179                $donnees = explode(',', $l);
     180                if ($donnees[1])
     181                        $tableau[trim($donnees[0])] = trim($donnees[1]);
     182                else
     183                        $tableau[trim($donnees[0])] = '';
     184        }
     185
     186        return $tableau;
    164187}
    165188?>
Note: See TracChangeset for help on using the changeset viewer.