source: spip-zone/_plugins_/traduction_articles_autrement/trunk/inc/barre_langues.php @ 61571

Last change on this file since 61571 was 61571, checked in by abelass@…, 9 years ago

ne pas mélanger les id_trad

File size: 4.6 KB
Line 
1<?php
2function inc_barre_langues_dist($id_article){
3        $row = sql_fetsel("*", "spip_articles", "id_article=$id_article");
4               
5        $id_rubrique = $row['id_rubrique'];
6        $id_trad = $row["id_trad"];
7               
8        $virtuel = (strncmp($row["chapo"],'=',1)!==0) ? '' :
9        chapo_redirige(substr($row["chapo"], 1));
10               
11        $objet='article';       
12       
13        /*création des onglets traduction*/
14       
15        // Les langues du site
16       
17        if (lire_config('langues_multilingue')) $langues_dispos=explode(',',lire_config('langues_multilingue'));
18        else $langues_dispos=explode(',',lire_config('langues_utilisees'));
19       
20       
21       
22        // On établit les traductions de l'article
23        $traductions    = array();
24       
25        if($langues_dispos){   
26               
27        // L'article est traduit       
28        if($id_trad>0){
29       
30                // les traductions de l'article
31                $sql=sql_select('lang,id_article','spip_articles','id_trad='.$id_trad);
32       
33                while($row=sql_fetch($sql)){
34                        $traductions[$row['lang']]=$row['id_article'];
35                        }
36                }
37        // L'article n'est pas traduit 
38        else{
39                $id_trad=$id_article;
40                $row=sql_fetsel('lang,id_article','spip_articles','id_article='.$id_article);
41               
42                // Seul l'aticle présent est pris dans l'array traductions
43                $traductions[$row['lang']]=$row['id_article'];
44                }
45       
46        // Pour chaque langue présente on crée un bouton
47       
48        // indique l'article par défaut
49        $span_content='<div class="ref_article">*<span>'._T('spip:trad_reference').'</span></div>';     
50       
51        foreach($langues_dispos as $key => $value){
52                $class='';
53                $span='';       
54                $trad='';
55
56                // les boutons hors article présent
57                if($traductions[$value]!=$id_article){
58                                       
59                        //Si il existe une traduction dans une langue du site on crée le bouton avec le lien de l'article
60                        if(array_key_exists($value,$traductions)){
61                                // Article de référence?       
62                                if($traductions[$value]==$id_trad){
63                                        $span=$span_content;                                   
64                                        }
65                                $onglets_traduction.='<li class="traduit box_onglet ajax">'.$span.'<a href="'.generer_url_ecrire($objet,'id_article='.$traductions[$value]).'">'.traduire_nom_langue($value).'</a></li>';                                       
66                        }
67                        // Sinon on crée un nouvel article dans la langue souhaitée
68                        else{
69                                // Si le plugin traduction rubriques est activé on regarde si on trouve la rubrique traduite
70                                if ($trad_rub=test_plugin_actif('tradrub')) {
71                                        $id_rubrique_traduite=rubrique_traduction($value,$id_rubrique);
72
73                                        if($id_rubrique_traduite){
74                                                $onglets_traduction.= '<li class="non_traduit box_onglet"><a href="'.generer_url_ecrire($objet.'_edit','new=oui&lier_trad='.$id_trad.'&id_rubrique='.$id_rubrique_traduite.'&lang_dest='.$value).'" title="'._T('ecrire:info_tout_site2').'">'.traduire_nom_langue($value).'</a></li>';
75                                                }
76                                        elseif(test_plugin_actif('trad_rub')){
77                                                $id_t=sql_getfetsel('id_trad','spip_rubriques','id_rubrique='.$id_rubrique);
78                                                if($id_t==0){
79                                                        $trad_new='oui';
80                                                        }
81                                                $donnes_trad=destination_traduction($value,$id_trad,$creer_racine='');
82                                                $parent_trad=$donnes_trad[0];
83                                                $trad=$donnes_trad[1];
84                                               
85                                                $onglets_traduction.='<li class="non_traduit box_onglet"><a href="'.generer_url_ecrire('rubrique_edit','new=oui&id_parent='.$parent_trad.'&lang_dest='.$value.'&lier_trad='.$trad.'&trad_new='.$trad_new.'&retour=nav').'" class="avis_source" title="'._T('tra:avis_rubrique_source').'">'.traduire_nom_langue($value).'</a>';
86                                                }                                       
87                                       
88                                        $section='oui';
89
90                                        }
91                                else{
92                                        $onglets_traduction.= '<li class="non_traduit box_onglet"><a href="'.generer_url_ecrire($objet.'_edit','new=oui&lier_trad='.$id_trad.'&lang_dest='.$value).'" title="'._T('ecrire:info_tout_site2').'">'.traduire_nom_langue($value).'</a></li>';                               
93                                }
94
95                                $action=redirige_action_auteur ('changer_langue',$id_article,$objet,"id_article=$id_article");
96                                // Si le plugin traduction rubriques est activé on affiche pas les onglets changement de langue car la langue se change en modifiant la rubrique
97                                if(!$section){
98                                        $changer_traduction.='<li class="lang box_onglet"><a href="'.parametre_url($action,'changer_lang',$value).'">'.traduire_nom_langue($value).'</a></li>';                                 
99                                        }
100
101                                }
102                        }
103                // le bouton de l'article présent       
104                else{
105                        if($traductions[$value]==$id_trad){
106                                        $span=$span_content;                                   
107                                        }
108                        $onglets_traduction.='<li class="box_onglet"><strong class="on">'.$span.traduire_nom_langue($value).'</strong></li>';
109                        }
110                }
111        }
112
113        $contexte=array(
114                'onglets_traduction'=>$onglets_traduction,
115                'options'=>$options,
116                'langue_article'=>$langue_article,
117                'changer_traduction'=>$changer_traduction,
118                'edition_seule'=>$edition_seule,
119                'id_article'=>$id_article,     
120                'voir'=>_request('voir'),                                                                       
121                );
122               
123                $retour=recuperer_fond('prive/editer/barre_traductions_article',$contexte,array('ajax'=>true));
124        return $retour;
125       
126}
127       
128?>
Note: See TracBrowser for help on using the repository browser.