From e068e1c3eabf42f97767d121b6e6ca66880cd651 Mon Sep 17 00:00:00 2001 From: Fil <fil@rezo.net> Date: Mon, 22 Sep 2003 21:13:12 +0000 Subject: [PATCH] simplifie un peu l'usage de changer_typo() [ NB: le plus difficile est de tester ! ] --- ecrire/articles.php3 | 31 +++++++------------- ecrire/inc_lang.php3 | 9 +++++- ecrire/inc_presentation.php3 | 9 +++--- ecrire/lang/spip_eo.php3 | 1 + ecrire/lang/spip_fr.php3 | 11 +++---- ecrire/naviguer.php3 | 56 ++++++++++++++++++------------------ 6 files changed, 59 insertions(+), 58 deletions(-) diff --git a/ecrire/articles.php3 b/ecrire/articles.php3 index 90d8a6675a..cc4e6f5323 100644 --- a/ecrire/articles.php3 +++ b/ecrire/articles.php3 @@ -21,9 +21,9 @@ if ($id_article==0) { $langue_new = ''; $result_lang_rub = spip_query("SELECT lang FROM spip_rubriques WHERE id_rubrique=$id_rubrique"); - if ($row = spip_fetch_array($result_lang_rub)) { + if ($row = spip_fetch_array($result_lang_rub)) $langue_new = $row["lang"]; - } + if (!$langue_new) $langue_new = lire_meta('langue_site'); $langue_choisie_new = 'non'; @@ -136,19 +136,16 @@ if ($jour_redac && $flag_editable) { } -// appliquer la modification de langue +// Appliquer la modification de langue if (lire_meta('multi_articles') == 'oui' AND $flag_editable) { $row = spip_fetch_array(spip_query("SELECT lang FROM spip_rubriques WHERE id_rubrique=$rubrique_article")); $langue_parent = $row['lang']; if ($changer_lang) { - if ($changer_lang != "herit") { + if ($changer_lang != "herit") spip_query("UPDATE spip_articles SET lang='".addslashes($changer_lang)."', langue_choisie='oui' WHERE id_article=$id_article"); - $langue_article = $changer_lang; - } else { + else spip_query("UPDATE spip_articles SET lang='".addslashes($langue_parent)."', langue_choisie='non' WHERE id_article=$id_article"); - $langue_article = $langue_parent; - } } } @@ -289,7 +286,6 @@ if ($row = spip_fetch_array($result)) { $referers = $row["referers"]; $extra = $row["extra"]; $id_trad = $row["id_trad"]; - $langue_article = $row["lang"]; } // pour l'affichage du virtuel @@ -622,7 +618,7 @@ fin_raccourcis(); debut_droite(); -changer_typo($langue_article); +changer_typo('','article'.$id_article); // qu'est-ce que c'est que ces choses ?? @@ -1255,8 +1251,8 @@ if ((lire_meta('multi_articles') == 'oui') } - if ($id_trad != 0) { // Afficher la liste des traductions - //$query_trad = "SELECT id_article, titre, lang, statut FROM spip_articles WHERE id_trad = $id_trad AND id_article!=$id_article"; + // Afficher la liste des traductions + if ($id_trad != 0) { $query_trad = "SELECT id_article, titre, lang, statut FROM spip_articles WHERE id_trad = $id_trad"; $result_trad = spip_query($query_trad); @@ -1312,10 +1308,9 @@ if ((lire_meta('multi_articles') == 'oui') $ret .= "<td class='arial2'>".traduire_nom_langue($lang_trad)."</td>\n"; } - changer_typo($langue_article); + // bloc traductions if ($ret) { - //debut_cadre_enfonce("traductions-24.gif"); echo "<div align='left' style='margin-top: 5px; padding: 0px; border: 1px dashed #999999; background-color: #f0f0f0;' $dir_lang>"; echo "<table width='100%' cellspacing='0' border='0' cellpadding='3'>"; echo "<tr bgcolor='#eeeecc'><td colspan='4'><font size=2 face='Georgia,Garamond,Times,serif'><b>"._T('trad_article_traduction')."</b></font></td></tr>"; @@ -1325,21 +1320,17 @@ if ((lire_meta('multi_articles') == 'oui') if ($flag_editable) { echo debut_block_invisible('ne_plus_lier'); echo "<div style='width: 100%; padding-top: 1px; padding-bottom: 3px; padding-right: 3px; text-align=right;'>"; - //echo "<table width='100%'><tr width='100%'><td> </td><td align='right' width='180'>"; $lien = $GLOBALS['clean_link']; $lien->delVar($nom_select); $lien = $lien->getUrl(); echo "<a href='articles.php3?id_article=$id_article&supp_trad=oui' class='verdana1'>"._T('trad_delier')." <img src='img_pack/croix-rouge.gif' alt='X' width='7' height='7' border='0' align='middle'></a>"; - //icone_horizontale(_T('trad_delier'), "articles.php3?id_article=$id_article&supp_trad=oui", "traductions-24.gif", "supprimer.gif"); - //echo "</td></tr></table>"; echo "</div>"; echo fin_block(); } echo "</div>"; - - - //fin_cadre_enfonce(); } + + changer_typo($langue_article); } echo debut_block_invisible('lier_traductions'); diff --git a/ecrire/inc_lang.php3 b/ecrire/inc_lang.php3 index b0b3a93306..4e0a435719 100644 --- a/ecrire/inc_lang.php3 +++ b/ecrire/inc_lang.php3 @@ -334,15 +334,22 @@ function lang_typo($lang) { } // service pour que l'espace prive reflete la typo et la direction des objets affiches -function changer_typo($lang = '') { +function changer_typo($lang = '', $source = '') { global $lang_typo, $lang_dir, $dir_lang; + if (ereg("^(article|rubrique|breve|auteur)([0-9]+)", $source, $regs)) { + $r = spip_fetch_array(spip_query("SELECT lang FROM spip_".$regs[1]."s WHERE id_".$regs[1]."=".$regs[2])); + $lang = $r['lang']; + } + if (!$lang) $lang = lire_meta('langue_site'); $lang_typo = lang_typo($lang); $lang_dir = lang_dir($lang); $dir_lang = " dir='$lang_dir'"; + + spip_debug("typo '$source' *$lang $lang_typo $lang_dir"); } // selectionner une langue diff --git a/ecrire/inc_presentation.php3 b/ecrire/inc_presentation.php3 index 844ff6fb9b..3dd11e5709 100644 --- a/ecrire/inc_presentation.php3 +++ b/ecrire/inc_presentation.php3 @@ -389,7 +389,7 @@ function afficher_articles($titre_table, $requete, $afficher_visites = false, $a $date = $row['date']; $statut = $row['statut']; $visites = $row['visites']; - $lang = $row['lang']; + if ($lang = $row['lang']) changer_typo($lang); $popularite = ceil(min(100,100 * $row['popularite'] / max(1, 0 + lire_meta('popularite_max')))); $descriptif = $row['descriptif']; if ($descriptif) $descriptif = ' title="'.attribut_html(typo($descriptif)).'"'; @@ -528,7 +528,7 @@ function afficher_breves($titre_table, $requete, $affrub=false) { $date_heure = $row['date_heure']; $titre = $row['titre']; $statut = $row['statut']; - $lang = $row['lang']; + if ($lang = $row['lang']) changer_typo($lang); $id_rubrique = $row['id_rubrique']; switch ($statut) { case 'prop': @@ -2030,7 +2030,8 @@ function fin_page($credits='') { // Afficher la hierarchie des rubriques // function afficher_parents($id_rubrique) { - global $parents, $couleur_foncee; + global $parents, $couleur_foncee, $lang_dir; + $parents = ereg_replace("(~+)","\\1~",$parents); if ($id_rubrique) { $query = "SELECT id_rubrique, id_parent, titre, lang FROM spip_rubriques WHERE id_rubrique=$id_rubrique"; @@ -2042,7 +2043,7 @@ function afficher_parents($id_rubrique) { $titre = $row['titre']; changer_typo($row['lang']); - $parents = " <FONT SIZE=3 FACE='Verdana,Arial,Helvetica,sans-serif'><a href='naviguer.php3?coll=$id_rubrique'><font color='$couleur_foncee'>".typo($titre)."</font></a></FONT><BR>\n".$parents; + $parents = " <FONT SIZE=3 FACE='Verdana,Arial,Helvetica,sans-serif'><a href='naviguer.php3?coll=$id_rubrique'><font color='$couleur_foncee'><span dir='$lang_dir'>".typo($titre)."</span></font></a></FONT><BR>\n".$parents; if (acces_restreint_rubrique($id_rubrique)) $parents = " <img src='img_pack/admin-12.gif' alt='' width='12' height='12' title='"._T('info_administrer_rubriques')."'> ".$parents; if (!$id_parent) diff --git a/ecrire/lang/spip_eo.php3 b/ecrire/lang/spip_eo.php3 index f4ae494184..67689cde74 100644 --- a/ecrire/lang/spip_eo.php3 +++ b/ecrire/lang/spip_eo.php3 @@ -998,6 +998,7 @@ Dankon pro via partopreno 'lien_forum_public' => 'Mastrumi la publikan forumon de tiu ĉi artikolo', 'lien_icones_interface' => 'La piktogramoj de la interfaco estas de <a href=\'http://jimmac.musichall.cz/\'>Jakub \'Jimmac\' Steiner</a>.', 'lien_liberer' => 'liberigi', +'lien_liberer_tous' => '<NEW> libérer ces articles', 'lien_mise_a_jour_syndication' => 'Ĝisdatigi nun', 'lien_modifer_date' => 'Ŝanĝi la daton', 'lien_nom_site' => 'NOMO DE LA teksejo:', diff --git a/ecrire/lang/spip_fr.php3 b/ecrire/lang/spip_fr.php3 index 242d8054ce..160a340923 100644 --- a/ecrire/lang/spip_fr.php3 +++ b/ecrire/lang/spip_fr.php3 @@ -19,8 +19,8 @@ $GLOBALS['i18n_spip_fr'] = array( 'admin_modifier_mot' => 'Modifier ce mot-clé', 'admin_modifier_rubrique' => 'Modifier cette rubrique', 'admin_recalculer' => 'Recalculer cette page', -'alerte_maj_impossible' => '<b>Alerte !</b> La mise à jour de la base MySQL vers la version @version@ est impossible, peut-être à cause d\'un problème de permissions.', 'aide_non_disponible' => 'Cette partie de l\'aide en ligne n\'est pas encore disponible dans cette langue.', +'alerte_maj_impossible' => '<b>Alerte !</b> La mise à jour de la base MySQL vers la version @version@ est impossible, peut-être à cause d\'un problème de permissions.', 'avis_acces_interdit' => 'Accès interdit.', 'avis_archive_incorrect' => 'le fichier archive n\'est pas un fichier SPIP', 'avis_archive_invalide' => 'le fichier archive n\'est pas valide', @@ -706,7 +706,6 @@ exige d\'avoir un accès FTP au site Web.', 'info_mots_cles' => 'Les mots-clés', 'info_mots_cles_association' => 'Les mots-clés de ce groupe peuvent être associés :', 'info_moyenne' => 'moyenne :', -'info_multilinguisme' => 'Multilinguisme', 'info_multi_articles' => 'Activer le menu de langue sur les articles ?', 'info_multi_cet_article' => 'Langue de cet article :', 'info_multi_herit' => 'Langue par défaut', @@ -714,6 +713,7 @@ exige d\'avoir un accès FTP au site Web.', Les langues déjà utilisées dans votre site (affichées en premier) ne peuvent pas être désactivées.', 'info_multi_rubriques' => 'Activer le menu de langue sur les rubriques ?', 'info_multi_secteurs' => '... seulement pour les rubriques situées à la racine ?', +'info_multilinguisme' => 'Multilinguisme', 'info_nexen_1' => 'Votre hébergeur est Nexen Services.', 'info_nexen_2' => 'La protection du répertoire <tt>ecrire/data/</tt> doit se faire par l\'intermédiaire de', 'info_nexen_3' => 'l\'espace webmestres', @@ -1207,8 +1207,8 @@ exige d\'avoir un accès FTP au site Web.', 'onglet_origine_visites' => 'Origine des visites', 'onglet_repartition_actuelle' => 'actuellement', 'onglet_repartition_debut' => 'depuis le début', -'onglet_repartition_rubrique' => 'Répartition par rubriques', 'onglet_repartition_lang' => 'par langues', +'onglet_repartition_rubrique' => 'Répartition par rubriques', 'onglet_save_restaur_base' => 'Sauvegarder/restaurer la base', 'onglet_vider_cache' => 'Vider le cache', @@ -1622,8 +1622,9 @@ avez fait des modifications importantes de graphisme ou de structure du site.', 'trad_deja_traduit' => 'Cet article est déjà une traduction du présent article.', 'trad_delier' => 'Ne plus lier cet article à ces traductions', 'trad_lier' => 'Cet article est une traduction de l\'article numéro :', -'trad_new' => "Écrire une nouvelle traduction de cet article", -'trad_reference' => "(article de référence)" +'trad_new' => 'Écrire une nouvelle traduction de cet article', +'trad_reference' => '(article de référence)' + ); diff --git a/ecrire/naviguer.php3 b/ecrire/naviguer.php3 index db80f87252..e6957965aa 100644 --- a/ecrire/naviguer.php3 +++ b/ecrire/naviguer.php3 @@ -11,7 +11,7 @@ $flag_mots = lire_meta("articles_mots"); function enfant($collection){ - global $les_enfants, $couleur_foncee; + global $les_enfants, $couleur_foncee, $lang_dir; $query2 = "SELECT * FROM spip_rubriques WHERE id_parent=\"$collection\" ORDER BY titre"; $result2 = spip_query($query2); @@ -19,15 +19,17 @@ function enfant($collection){ $id_rubrique=$row['id_rubrique']; $id_parent=$row['id_parent']; $titre=$row['titre']; - $descriptif=propre($row['descriptif']); $bouton_layer = bouton_block_invisible("enfants$id_rubrique"); $les_sous_enfants = sous_enfant($id_rubrique); + changer_typo($row['lang']); + $descriptif=propre($row['descriptif']); + $les_enfants.= "<P>"; if ($id_parent == "0") $les_enfants .= debut_cadre_relief("secteur-24.gif", true); else $les_enfants .= debut_cadre_relief("rubrique-24.gif", true); - $les_enfants.= "<FONT FACE=\"Verdana,Arial,Helvetica,sans-serif\">"; + $les_enfants.= "<span dir='$lang_dir'><FONT FACE=\"Verdana,Arial,Helvetica,sans-serif\">"; if (strlen($les_sous_enfants) > 0){ $les_enfants.= $bouton_layer; @@ -39,7 +41,7 @@ function enfant($collection){ if (strlen($descriptif)>1) $les_enfants.="<BR><FONT SIZE=1>$descriptif</FONT>"; - $les_enfants.= "</FONT>"; + $les_enfants.= "</FONT></span>"; $les_enfants .= $les_sous_enfants; $les_enfants .= fin_cadre_relief(true); @@ -47,6 +49,7 @@ function enfant($collection){ } function sous_enfant($collection2){ + global $lang_dir; $query3 = "SELECT * FROM spip_rubriques WHERE id_parent=\"$collection2\" ORDER BY titre"; $result3 = spip_query($query3); @@ -56,8 +59,9 @@ function sous_enfant($collection2){ $id_rubrique2=$row['id_rubrique']; $id_parent2=$row['id_parent']; $titre2=$row['titre']; - - $retour.="<LI><A HREF='naviguer.php3?coll=$id_rubrique2'>$titre2</A>\n"; + changer_typo($row['lang']); + + $retour.="<LI><A HREF='naviguer.php3?coll=$id_rubrique2'><span dir='$lang_dir'>".typo($titre2)."</span></A>\n"; } $retour .= "</FONT></ul>\n\n".fin_block()."\n\n"; } @@ -172,6 +176,23 @@ if ($titre) { } } +// +// Appliquer le changement de langue +// +if ($changer_lang AND $coll>0 AND lire_meta('multi_rubriques') == 'oui' AND (lire_meta('multi_secteurs') == 'non' OR $id_parent == 0) AND $flag_editable) { + if ($changer_lang != "herit") + spip_query("UPDATE spip_rubriques SET lang='".addslashes($changer_lang)."', langue_choisie='oui' WHERE id_rubrique=$coll"); + else { + if ($id_parent == 0) + $langue_parent = lire_meta('langue_site'); + else { + $row = spip_fetch_array(spip_query("SELECT lang FROM spip_rubriques WHERE id_rubrique=$id_parent")); + $langue_parent = $row['lang']; + } + spip_query("UPDATE spip_rubriques SET lang='".addslashes($langue_parent)."', langue_choisie='non' WHERE id_rubrique=$coll"); + } + calculer_langues_rubriques(); +} // // infos sur cette rubrique @@ -248,6 +269,7 @@ if ($coll > 0) { fin_grand_cadre(); +changer_typo('', 'rubrique'.$coll); debut_gauche(); @@ -377,20 +399,6 @@ if (strlen($texte) > 1) { // Langue de la rubrique // if ($coll>0 AND lire_meta('multi_rubriques') == 'oui' AND (lire_meta('multi_secteurs') == 'non' OR $id_parent == 0) AND $flag_editable) { - if ($changer_lang) { - if ($changer_lang != "herit") { - spip_query("UPDATE spip_rubriques SET lang='".addslashes($changer_lang)."', langue_choisie='oui' WHERE id_rubrique=$coll"); - } else { - if ($id_parent == 0) { - $langue_parent = lire_meta('langue_site'); - } else { - $row = spip_fetch_array(spip_query("SELECT lang FROM spip_rubriques WHERE id_rubrique=$id_parent")); - $langue_parent = $row['lang']; - } - spip_query("UPDATE spip_rubriques SET lang='".addslashes($langue_parent)."', langue_choisie='non' WHERE id_rubrique=$coll"); - } - calculer_langues_rubriques(); - } $row = spip_fetch_array(spip_query("SELECT lang, langue_choisie FROM spip_rubriques WHERE id_rubrique=$coll")); $langue_rubrique = $row['lang']; @@ -401,14 +409,6 @@ if ($coll>0 AND lire_meta('multi_rubriques') == 'oui' AND (lire_meta('multi_sect } else $langue_parent = lire_meta('langue_site'); -/* debut_cadre_enfonce("langues-24.gif"); - echo "<center><font face='Verdana,Arial,Helvetica,sans-serif' size='2'>"; - echo menu_langues('changer_lang', $langue_rubrique, _T('info_multi_cette_rubrique').' ', $langue_parent); - echo "</font></center>\n"; - fin_cadre_enfonce(); -*/ - - debut_cadre_enfonce('langues-24.gif'); echo "<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=3 WIDTH=100% BACKGROUND=''><TR><TD BGCOLOR='#EEEECC'>"; echo bouton_block_invisible('languesrubrique'); -- GitLab