Changeset 107181 in spip-zone


Ignore:
Timestamp:
Oct 27, 2017, 11:10:21 AM (3 years ago)
Author:
abelass
Message:

permettre la traduction des pages uniques

Location:
_plugins_/traduction_articles_autrement/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/traduction_articles_autrement/trunk/inc/barre_langues.php

    r67464 r107181  
    77        include_spip('inc/actions');
    88        if(!function_exists('icone_verticale')) {
    9                include_spip('inc/presentation');
    10            }   
     9                                include_spip('inc/presentation');
     10                }
    1111        $row = sql_fetsel("*", "spip_articles", "id_article=$id_article");
    12                
     12
    1313        $id_rubrique = $row['id_rubrique'];
    1414        $id_trad = $row["id_trad"];
    15                
     15
    1616        $virtuel = (strncmp($row["chapo"],'=',1)!==0) ? '' :
    1717        chapo_redirige(substr($row["chapo"], 1));
    18                
    19         $objet='article';       
    20        
     18
     19        $objet='article';
     20
    2121        //création des onglets traduction
    22        
     22
    2323        // Les langues du site ou si restreint celle définis par config
    24        
     24
    2525        $langues_dispos=lire_config('taa/utiliser_langues')?lire_config('taa/utiliser_langues'):explode(',',lire_config('langues_multilingue'));
    2626
    27        
     27
    2828        // On établit les traductions de l'article
    2929        $traductions    = array();
    30        
    31         if($langues_dispos){   
    32                
    33         // L'article est traduit       
     30
     31        if($langues_dispos){
     32
     33        // L'article est traduit
    3434        if($id_trad>0){
    35        
     35
    3636                // les traductions de l'article
    3737                $sql=sql_select('lang,id_article','spip_articles','id_trad='.$id_trad);
    38        
     38
    3939                while($row=sql_fetch($sql)){
    4040                        $traductions[$row['lang']]=$row['id_article'];
    4141                        }
    42                 $clic = _T('trad_delier');     
    43                 $options = '<div class="options delier ajax">'.icone_verticale($clic, redirige_action_auteur('traduction',$id_article.'-article-0',"article&amp;id_article=$id_article"), "traductions-24.gif", "supprimer.gif",'right', false).'</div>';               
     42                $clic = _T('trad_delier');
     43                $options = '<div class="options delier ajax">'.icone_verticale($clic, redirige_action_auteur('traduction',$id_article.'-article-0',"article&amp;id_article=$id_article"), "traductions-24.gif", "supprimer.gif",'right', false).'</div>';
    4444                }
    45         // L'article n'est pas traduit 
     45        // L'article n'est pas traduit
    4646        else{
    4747                $id_trad=$id_article;
    4848                $row=sql_fetsel('lang,id_article','spip_articles','id_article='.$id_article);
    49                
     49
    5050                // Seul l'aticle présent est pris dans l'array traductions
    5151                $traductions[$row['lang']]=$row['id_article'];
    52                
     52
    5353                $options =  '<div class="options form_lier"><h2>'._T('taa:lier_traduction').'</h2>'.redirige_action_auteur("traduction",
    5454                        $id_article.'-article',
     
    6060                        " class='fondl'").'</div>';
    6161                }
    62        
     62
    6363        // Pour chaque langue présente on crée un bouton
    64        
     64
    6565        // indique l'article par défaut
    66         $span_content='<div class="ref_article">*<span>'._T('spip:trad_reference').'</span></div>';     
    67        
     66        $span_content='<div class="ref_article">*<span>'._T('spip:trad_reference').'</span></div>';
     67
    6868        foreach($langues_dispos as $key => $value){
    6969                $class='';
    70                 $span='';       
     70                $span='';
    7171                $trad='';
    7272
    7373                // les boutons hors article présent
    7474                if($traductions[$value]!=$id_article){
    75                                        
     75
    7676                        //Si il existe une traduction dans une langue du site on crée le bouton avec le lien de l'article
    7777                        if(array_key_exists($value,$traductions)){
    78                                 // Article de référence?       
     78                                // Article de référence?
    7979                                if($traductions[$value]==$id_trad){
    80                                         $span=$span_content;                                   
     80                                        $span=$span_content;
    8181                                        }
    82                                 $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>';                                       
     82                                $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>';
    8383                        }
    8484                        // Sinon on crée un nouvel article dans la langue souhaitée
     
    9090                                        if($id_rubrique_traduite){
    9191                                                $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>';
    92                                                 }
    93                                         elseif(test_plugin_actif('trad_rub')){
    94                        
    95                                                 $donnes_trad=destination_traduction($value,$id_rubrique,$creer_racine='');
    96                                                 $parent_trad=$donnes_trad[0];
    97                                                 $trad=$donnes_trad[1];
    98                                                
    99                                                 $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>';
    100                                                 }                                       
    101                                        
     92                                        }
     93                                        elseif(test_plugin_actif('trad_rub') AND $id_rubrique > 0){
     94                                        $donnes_trad=destination_traduction($value,$id_rubrique,$creer_racine='');
     95                                        $parent_trad=$donnes_trad[0];
     96                                        $trad=$donnes_trad[1];
     97                                        $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>';
     98                                        }
     99                                        else {
     100                                                $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>';
     101                                        }
     102
    102103                                        $section='oui';
    103104
    104105                                        }
    105106                                else{
    106                                         $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>';                               
     107                                        $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>';
    107108                                }
    108109
     
    110111                                // Si le plugin traduction rubriques est activé on affiche pas les onglets changement de langue car la langue se change en modifiant la rubrique
    111112                                if(!$section){
    112                                         $changer_traduction.='<li class="item  lang box_onglet"><a href="'.parametre_url($action,'changer_lang',$value).'">'.traduire_nom_langue($value).'</a></li>';                                   
     113                                        $changer_traduction.='<li class="item  lang box_onglet"><a href="'.parametre_url($action,'changer_lang',$value).'">'.traduire_nom_langue($value).'</a></li>';
    113114                                        }
    114115
    115116                                }
    116117                        }
    117                 // le bouton de l'article présent       
     118                // le bouton de l'article présent
    118119                else{
    119120                        if($traductions[$value]==$id_trad){
    120                                         $span=$span_content;                                   
     121                                        $span=$span_content;
    121122                                        }
    122123                        $onglets_traduction.='<li class="box_onglet"><strong class="on">'.$span.traduire_nom_langue($value).'</strong></li>';
     
    131132                'changer_traduction'=>$changer_traduction,
    132133                'edition_seule'=>$edition_seule,
    133                 'id_article'=>$id_article,     
    134                 'voir'=>_request('voir'),                                                                       
     134                'id_article'=>$id_article,
     135                'voir'=>_request('voir'),
    135136                );
    136                
     137
    137138                $retour=recuperer_fond('prive/editer/barre_traductions_article',$contexte,array('ajax'=>true));
    138139        return $retour;
    139        
     140
    140141}
    141        
     142
    142143?>
  • _plugins_/traduction_articles_autrement/trunk/paquet.xml

    r104797 r107181  
    22        prefix="taa"
    33        categorie="edition"
    4         version="1.4.2"
     4        version="1.4.3"
    55        etat="stable"
    66        compatibilite="[3.0.0;3.2.*]"
  • _plugins_/traduction_articles_autrement/trunk/taa_pipelines.php

    r69567 r107181  
    55function taa_header_prive($flux){
    66
    7     $flux .= '<link rel="stylesheet" href="'.find_in_path('css/taa_styles.css').'" type="text/css" media="all" />';
    8         return $flux;   
     7                $flux .= '<link rel="stylesheet" href="'.find_in_path('css/taa_styles.css').'" type="text/css" media="all" />';
     8        return $flux;
    99
    10  }
    11  
    12 /*Ajoute la langue de traduction dans le chargement du formulaire edition_article*/ 
    13  function taa_formulaire_charger($flux){
    14    $form = $flux['args']['form'];
    15    if ($form=='editer_article'){       
     10}
     11
     12/*Ajoute la langue de traduction dans le chargement du formulaire edition_article*/
     13function taa_formulaire_charger($flux){
     14        $form = $flux['args']['form'];
     15        if ($form=='editer_article'){
    1616        $id_article=$flux['data']['id_article'];
    17     if(!$id_rubrique=$flux['data']['id_parent'])
     17                if(!$id_rubrique=$flux['data']['id_parent'])
    1818        $id_rubrique=(
    1919                _request('id_rubrique')?_request('id_rubrique'):
     
    2525        $flux['data']['lang_dest']=$lang;
    2626
    27        
    28         if($flux['data']['lang_dest']){         
     27
     28        if($flux['data']['lang_dest']){
    2929                        $flux['data']['_hidden'] .= '<input type="hidden" name="lang_dest" value="'.$lang.'"/>';
    3030                        $flux['data']['_hidden'] .= '<input type="hidden" name="changer_lang" value="'.$lang.'"/>';
    31                 } 
     31                }
    3232        }
    33  
     33
    3434        return $flux;
    3535}
    3636
    37 /*Prise en compte de la langue de traduction dans le traitement du formulaire edition_article*/ 
     37/*Prise en compte de la langue de traduction dans le traitement du formulaire edition_article*/
    3838function taa_pre_insertion($flux){
    39    if ($flux['args']['table']=='spip_articles'){
     39        if ($flux['args']['table']=='spip_articles'){
    4040                if($lang=_request('lang_dest')){
    4141                        $flux['data']['lang'] =  $lang;
    42                         $flux['data']['langue_choisie'] =  'oui';                       
     42                        $flux['data']['langue_choisie'] =  'oui';
    4343                        }
    44                 elseif(test_plugin_actif('tradrub')){
    45                     $id_rubrique=_request('id_parent')?_request('id_parent'):_request('id_rubrique');
     44                        elseif(test_plugin_actif('tradrub') && $id_rubrique = _request('id_rubrique') && $id_rubrique > 0){
     45                                $id_rubrique=_request('id_parent')?_request('id_parent'):_request('id_rubrique');
    4646                        $lang=sql_getfetsel('lang','spip_rubriques','id_rubrique='.$id_rubrique);
    4747                        $flux['data']['lang'] = $lang;
    48                         $flux['data']['langue_choisie'] = 'non';       
    49                         }               
    50         }
     48                        $flux['data']['langue_choisie'] = 'non';
     49                        }
     50                        }
    5151return $flux;
    5252}
     
    5555function taa_recuperer_fond($flux){
    5656        //Insertion des onglets de langue
    57     if ($flux['args']['fond'] == 'prive/squelettes/contenu/article'){
     57                if ($flux['args']['fond'] == 'prive/squelettes/contenu/article'){
    5858                include_spip('inc/config');
    59         $id_article= $flux['args']['contexte']['id_article'];
    60        
    61         // Vérifier si il y des secteurs à exclure
    62         $id_secteur=sql_getfetsel('id_secteur','spip_articles','id_article='.$id_article);
    63         $limiter_secteur=lire_config('taa/limiter_secteur')?lire_config('taa/limiter_secteur'):array();
    64    
    65                 if(!in_array($id_secteur,$limiter_secteur))     {       
     59                        $id_article= $flux['args']['contexte']['id_article'];
     60
     61                        // Vérifier si il y des secteurs à exclure
     62                        $id_secteur=sql_getfetsel('id_secteur','spip_articles','id_article='.$id_article);
     63                        $limiter_secteur=lire_config('taa/limiter_secteur')?lire_config('taa/limiter_secteur'):array();
     64
     65                if(!in_array($id_secteur,$limiter_secteur))     {
    6666                        $barre=charger_fonction('barre_langues','inc');
    6767                        $barre_langue=$barre($id_article);
    68                        
    69                 $flux['data']['texte'] = str_replace('</h1>', '</h1>' . $barre_langue, $flux['data']['texte']);
     68
     69                                        $flux['data']['texte'] = str_replace('</h1>', '</h1>' . $barre_langue, $flux['data']['texte']);
    7070                }
    71     }
    72    
    73     //Liste compacte des articles
    74     if ($flux['args']['fond'] == 'prive/objets/liste/articles' AND _request('exec')!='article' AND !lire_config('taa/liste_compacte_desactive')){
     71                }
    7572
    76     $flux['texte'] = recuperer_fond('prive/objets/liste/articles_compacte',$flux['args']['contexte']);
     73                //Liste compacte des articles
     74                if ($flux['args']['fond'] == 'prive/objets/liste/articles' AND _request('exec')!='article' AND !lire_config('taa/liste_compacte_desactive')){
    7775
    78     }
     76                $flux['texte'] = recuperer_fond('prive/objets/liste/articles_compacte',$flux['args']['contexte']);
    7977
    80  return $flux;   
     78                }
     79
     80return $flux;
    8181}
    8282
Note: See TracChangeset for help on using the changeset viewer.