source: spip-zone/_plugins_/traduction_articles_autrement/inc/article_afficher_contenu.php @ 44107

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

eviter un faux retour sur quelques serveurs

File size: 8.6 KB
Line 
1<?php
2function inc_article_afficher_contenu_dist($id_article){
3                $row = sql_fetsel("*", "spip_articles", "id_article=$id_article");
4               
5                global $spip_lang_right, $dir_lang;
6               
7                $id_rubrique = $row['id_rubrique'];
8                $id_secteur = $row['id_secteur'];
9                $statut_article = $row['statut'];
10                $titre = $row["titre"];
11                $surtitre = $row["surtitre"];
12                $soustitre = $row["soustitre"];
13                $descriptif = $row["descriptif"];
14                $nom_site = $row["nom_site"];
15                $url_site = $row["url_site"];
16                $texte = $row["texte"];
17                $ps = $row["ps"];
18                $date = $row["date"];
19                $date_redac = $row["date_redac"];
20                $extra = $row["extra"];
21                $id_trad = $row["id_trad"];
22               
23                $virtuel = (strncmp($row["chapo"],'=',1)!==0) ? '' :
24                chapo_redirige(substr($row["chapo"], 1));
25               
26                $statut_rubrique = autoriser('publierdans', 'rubrique', $id_rubrique);
27                $flag_editable = autoriser('modifier', 'article', $id_article);
28               
29                // Est-ce que quelqu'un a deja ouvert l'article en edition ?
30                if ($flag_editable
31                        AND $GLOBALS['meta']['articles_modif'] != 'non') {
32                        include_spip('inc/drapeau_edition');
33                        $modif = mention_qui_edite($id_article, 'article');
34                } else
35                        $modif = array();
36               
37               
38                // chargement prealable des fonctions produisant des formulaires
39               
40                $dater = charger_fonction('dater', 'inc');
41                $editer_mots = charger_fonction('editer_mots', 'inc');
42               
43                $editer_auteurs = charger_fonction('editer_auteurs', 'inc');
44                if ($flag_editable) $edition_seule=lire_config('taa/edition_seule');
45               
46                //if(!$edition_seule)$referencer_traduction = charger_fonction('referencer_traduction', 'inc');
47               
48                $discuter = charger_fonction('discuter', 'inc');
49               
50                $meme_rubrique = charger_fonction('meme_rubrique', 'inc');
51                $iconifier = charger_fonction('iconifier', 'inc');
52                $icone = $iconifier('id_article', $id_article,'articles', false, $flag_editable);
53               
54                $boite = pipeline ('boite_infos', array('data' => '',
55                                                        'args' => array(
56                                                        'type'=>'article',
57                                                        'id' => $id_article,
58                                                        'row' => $row
59                                                                )
60                                                        ));
61        if($edition_seule)$form_docs=recuperer_fond('prive/editer/docs',array('objet'=>'articles','id_objet'=>$id_article,'editable'=>'ok'),array('ajax'=>true)) ;
62       
63       
64        // affecter les globales dictant les regles de typographie de la langue
65        changer_typo($row['lang']);
66       
67        /*  Cacher le bouton si édition seule active dans cfg*/
68       
69        if(!$edition_seule){
70                $actions =($flag_editable ? bouton_modifier_articles($id_article, $id_rubrique, $modif, _T('avis_article_modifie', $modif), "article-24.gif", "edit.gif",$spip_lang_right) : "");
71                }
72       
73       
74        /*cr&eacute;ation des onglets traduction*/
75       
76        if (lire_config('langues_multilingue')) $langues_dispos=explode(',',lire_config('langues_multilingue'));
77        else $langues_dispos=explode(',',lire_config('langues_utilisees'));
78
79        $traductions    = array();
80       
81        if($langues_dispos){           
82        if($id_trad>0){
83                $sql=sql_select('lang,id_article','spip_articles','id_trad='.$id_trad);
84       
85       
86                while($row=sql_fetch($sql)){
87                        $traductions[$row['lang']]=$row['id_article'];
88                        }
89       
90                $clic = _T('trad_delier');     
91                $options = '<div class="options delier">'.icone_inline($clic, ajax_action_auteur("referencer_traduction","$id_article,-$id_trad",'articles', "id_article=$id_article",array($clic)), "traductions-24.gif", "supprimer.gif",'right', false).'</div>';           
92                }
93        else{
94                $id_trad=$id_article;
95                $row=sql_fetsel('lang,id_article','spip_articles','id_article='.$id_article);
96                $traductions[$row['lang']]=$row['id_article'];
97               
98                $options =  '<div class="options form_lier"><h2>'._T('taa:lier_traduction').'</h2>'.redirige_action_auteur("referencer_traduction",
99                        $id_article,
100                        "articles&id_article=$id_article",
101                        "id_article=$id_article",
102                        ("<label for='lier_trad'>" . _T('trad_lier') . "</label>" .
103                        "\n<input type='text' class='fondl' name='lier_trad' id='lier_trad' size='5' />\n"),
104                        _T('bouton_valider'),
105                        " class='fondl'").'</div>';
106                }
107       
108        $retour = generer_url_ecrire("articles","id_article=$id_article",false,'',true);
109        $span_content='<div class="ref">*<span>'._T('spip:trad_reference').'</span></div>';     
110       
111        foreach($langues_dispos as $key => $value){
112        $class='';
113        $span='';       
114                if($traductions[$value]!=$id_article){
115                        if(array_key_exists($value,$traductions)){
116                                if($traductions[$value]==$id_trad){
117                                        $span=$span_content;                                   
118                                        }
119                                $onglets_traduction.='<div class="traduit onglet ajax">'.$span.'<a href="?exec=articles&id_article='.$traductions[$value].'">'.traduire_nom_langue($value).'</a></div>';                                       
120                        }
121                        else{
122                                // Si le plugin traduction rubriques est activé on regarde si on trouve la rubrique traduite
123                                if (test_plugin_actif('tradrub')) {
124                                        $id_rubrique_traduite=rubrique_traduction($value,$id_rubrique);
125                                        $section='oui';
126                                        }       
127                                $onglets_traduction.= '<div class="non_traduit onglet"><a href="'.generer_url_ecrire('articles_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></div>';
128                       
129                                $action=redirige_action_auteur ('changer_langue',$id_article,'articles',"id_article=$id_article");
130                                // Si le plugin traduction rubriques est activé on affiche pas les onglets changement de langue car la langue se change en modifiant la rubrique
131                                if(!$section){
132                                        $changer_traduction.='<div class="lang onglet"><a href="'.parametre_url($action,'changer_lang',$value).'">'.traduire_nom_langue($value).'</a></div>';                                   
133                                        }
134
135                                }
136                        }
137                else{
138                        if($traductions[$value]==$id_trad){
139                                        $span=$span_content;                                   
140                                        }
141                        $onglets_traduction.='<div class="onglet_off onglet">'.$span.traduire_nom_langue($value).'</div>';
142                        }
143                }
144        }
145        $contexte=array(
146                'onglets_traduction'=>$onglets_traduction,
147                'options'=>$options,
148                'langue_article'=>$langue_article,
149                'changer_traduction'=>$changer_traduction,
150                'edition_seule'=>$edition_seule,                                       
151                );     
152       
153        if(!autoriser('modifier','article',$id_article))$options='';
154        $haut =
155        "<div class='bandeau_actions'>$actions</div>".
156        (_INTERFACE_ONGLETS?"":"<span $dir_lang class='arial1 spip_medium'><b>" . typo($surtitre) . "</b></span>\n")
157        . gros_titre($titre, '' , false)
158        . (_INTERFACE_ONGLETS?"":"<span $dir_lang class='arial1 spip_medium'><b>" 
159                        . typo($soustitre) . "</b></span>" /*ajout des onglets traductions*/
160        . recuperer_fond('prive/editer/barre_traductions_article',$contexte,array('ajax'=>true)));
161       
162        //MODIFICATION insertion du formulaire d&eacute;edition
163        if($edition_seule AND autoriser('modifier','article',$id_article)){ 
164                $contexte = array(
165                'icone_retour'=>icone_inline(_T('icone_retour'), $oups, "article-24.gif", "rien.gif",$GLOBALS['spip_lang_left']),
166                'redirect'=>generer_url_ecrire("articles"),
167                'titre'=>$titre,
168                'new'=>$new?$new:$id_article,
169                'id_rubrique'=>$id_rubrique,
170                'id_secteur'=>$row['id_secteur'],
171                'lier_trad'=>$lier_trad,
172                'config_fonc'=>'articles_edit_config',
173                // passer row si c'est le retablissement d'une version anterieure
174                'row'=> $id_version
175                ? $row
176                : null
177                );
178               
179                $onglet_edition  = recuperer_fond("prive/editer/article_mod",$contexte,array('ajax'=>true));
180                }
181        else{
182                $onglet_contenu =afficher_corps_articles($id_article,$virtuel,$row);
183                }
184
185        $onglet_proprietes = ((!_INTERFACE_ONGLETS) ? "" :"")
186        . $dater($id_article, $flag_editable, $statut_article, 'article', 'articles', $date, $date_redac)
187        . $editer_auteurs('article', $id_article, $flag_editable, $cherche_auteur, $ids)
188        . (!$editer_mots ? '' : $editer_mots('article', $id_article, $cherche_mot, $select_groupe, $flag_editable, false, 'articles'))
189        . (!$referencer_traduction ? '' : $referencer_traduction($id_article, $flag_editable, $id_rubrique, $id_trad, $trad_err))
190        . pipeline('affiche_milieu',array('args'=>array('exec'=>'articles','id_article'=>$id_article),'data'=>''))
191        ;
192       
193        $documenter_objet = charger_fonction('documenter_objet','inc');
194        $onglet_documents = $documenter_objet($id_article,'article','articles',$flag_editable);
195        $onglet_interactivite = (_INTERFACE_ONGLETS?boites_de_config_articles($id_article):"");
196       
197        $onglet_discuter = !$statut_forum ? '' : ($discuter($id_article, 'articles', 'id_article', $statut_forum, $debut_forum));
198       
199       
200        return
201        $navigation
202        //. $extra
203        . "<div class='fiche_objet'>"
204                . $haut
205                . afficher_onglets_pages(
206                array(
207                'voir' => _T('onglet_contenu'),
208                'props' => _T('onglet_proprietes'),
209                'docs' => _T('onglet_documents'),
210                'interactivite' => _T('onglet_interactivite'),
211                'discuter' => _T('onglet_discuter')),
212                array(
213                'props'=>$onglet_edition.$onglet_proprietes, //MODIFICATION insertion de du formulaire d'édition
214                'voir'=>$onglet_contenu,
215                'docs'=>$onglet_documents,
216                'interactivite'=>$onglet_interactivite,
217                'discuter'=>_INTERFACE_ONGLETS?$onglet_discuter:""))
218                . "</div>"
219        . (_INTERFACE_ONGLETS?"":$onglet_discuter);
220                }
221       
222?>
Note: See TracBrowser for help on using the repository browser.