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

Last change on this file since 60683 was 60683, checked in by abelass@…, 9 years ago
  • Forcer la traductions des rubriques parentes si pas encore traduite et si tra installé
  • corrections bug: bonne langue lors de la création de l'article avec langues par secteur
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
55                // les boutons hors article présent
56                if($traductions[$value]!=$id_article){
57                                       
58                        //Si il existe une traduction dans une langue du site on crée le bouton avec le lien de l'article
59                        if(array_key_exists($value,$traductions)){
60                                // Article de référence?       
61                                if($traductions[$value]==$id_trad){
62                                        $span=$span_content;                                   
63                                        }
64                                $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>';                                       
65                        }
66                        // Sinon on crée un nouvel article dans la langue souhaitée
67                        else{
68                                // Si le plugin traduction rubriques est activé on regarde si on trouve la rubrique traduite
69                                if ($trad_rub=test_plugin_actif('tradrub')) {
70                                        $id_rubrique_traduite=rubrique_traduction($value,$id_rubrique);
71                                       
72                                        if($id_rubrique_traduite)$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>';
73                                        elseif(test_plugin_actif('trad_rub')){
74                                                $id_trad=sql_getfetsel('id_trad','spip_rubriques','id_rubrique='.$id_rubrique);
75                                                if($id_trad==0){
76                                                        $id_trad=$id_rubrique;
77                                                        $trad_new='oui';
78                                                        }
79                                                $donnes_trad=destination_traduction($value,$id_trad,$creer_racine='');
80                                                $parent_trad=$donnes_trad[0];
81                                                $trad=$donnes_trad[1];
82                                               
83                                                $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>';
84                                                }                                       
85                                       
86                                        $section='oui';
87
88                                        }
89                                else{
90                                        $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>';                               
91                                }
92
93                                $action=redirige_action_auteur ('changer_langue',$id_article,$objet,"id_article=$id_article");
94                                // Si le plugin traduction rubriques est activé on affiche pas les onglets changement de langue car la langue se change en modifiant la rubrique
95                                if(!$section){
96                                        $changer_traduction.='<li class="lang box_onglet"><a href="'.parametre_url($action,'changer_lang',$value).'">'.traduire_nom_langue($value).'</a></li>';                                 
97                                        }
98
99                                }
100                        }
101                // le bouton de l'article présent       
102                else{
103                        if($traductions[$value]==$id_trad){
104                                        $span=$span_content;                                   
105                                        }
106                        $onglets_traduction.='<li class="box_onglet"><strong class="on">'.$span.traduire_nom_langue($value).'</strong></li>';
107                        }
108                }
109        }
110
111        $contexte=array(
112                'onglets_traduction'=>$onglets_traduction,
113                'options'=>$options,
114                'langue_article'=>$langue_article,
115                'changer_traduction'=>$changer_traduction,
116                'edition_seule'=>$edition_seule,
117                'id_article'=>$id_article,     
118                'voir'=>_request('voir'),                                                                       
119                );
120               
121                $retour=recuperer_fond('prive/editer/barre_traductions_article',$contexte,array('ajax'=>true));
122        return $retour;
123       
124}
125       
126?>
Note: See TracBrowser for help on using the repository browser.