[ Index ] |
|
Code source de SPIP 1.8.3 |
1 <?php 2 3 /***************************************************************************\ 4 * SPIP, Systeme de publication pour l'internet * 5 * * 6 * Copyright (c) 2001-2005 * 7 * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James * 8 * * 9 * Ce programme est un logiciel libre distribue sous licence GNU/GPL. * 10 * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. * 11 \***************************************************************************/ 12 13 14 include ("inc_lab.php"); 15 16 include_spip("ecrire.php"); 17 include_spip("ortho.php"); 18 include_spip("layer.php"); // Pour $browser_name 19 20 //charset_texte('utf-8'); 21 22 23 // 24 // Lire l'article 25 // 26 27 $query = "SELECT * FROM spip_articles WHERE id_article='$id_article'"; 28 $result = spip_query($query); 29 30 if ($row = spip_fetch_array($result)) { 31 $id_article = $row["id_article"]; 32 $surtitre = $row["surtitre"]; 33 $titre = $row["titre"]; 34 $soustitre = $row["soustitre"]; 35 $id_rubrique = $row["id_rubrique"]; 36 $descriptif = $row["descriptif"]; 37 $nom_site = $row["nom_site"]; 38 $url_site = $row["url_site"]; 39 $chapo = $row["chapo"]; 40 $texte = $row["texte"]; 41 $ps = $row["ps"]; 42 $date = $row["date"]; 43 $statut_article = $row["statut"]; 44 $maj = $row["maj"]; 45 $date_redac = $row["date_redac"]; 46 $visites = $row["visites"]; 47 $referers = $row["referers"]; 48 $extra = $row["extra"]; 49 $id_trad = $row["id_trad"]; 50 $lang_article = $row["lang"]; 51 } 52 if (!$lang_article) $lang_article = lire_meta('langue_site'); 53 changer_typo($lang_article); # pour l'affichage du texte 54 55 // pour l'affichage du virtuel 56 unset($virtuel); 57 if (substr($chapo, 0, 1) == '=') { 58 $virtuel = substr($chapo, 1); 59 $chapo = ""; 60 } 61 62 $champs = array('surtitre', 'titre', 'soustitre', 'descriptif', 'chapo', 'texte', 'ps'); 63 $echap = array(); 64 $ortho = ""; 65 66 // 67 // Affichage HTML 68 // 69 70 // Gros hack IE pour le "position: fixed" 71 $code_ie = "<!--[if IE]> 72 <style type=\"text/css\" media=\"screen\"> 73 body { 74 height: 100%; margin: 0px; padding: 0px; 75 overflow: hidden; 76 } 77 .ortho-content { 78 position: absolute; $spip_lang_left: 0px; 79 height: 100%; margin: 0px; padding: 0px; 80 width: 72%; 81 overflow-y: auto; 82 } 83 #ortho-fixed { 84 position: absolute; $spip_lang_right: 0px; width: 25%; 85 height: 100%; margin: 0px; padding: 0px; 86 overflow: hidden; 87 } 88 .ortho-padding { 89 padding: 12px; 90 } 91 </style> 92 <script type=\"text/javascript\"> 93 onload = function() { document.getElementById('ortho-content').focus(); } 94 </script> 95 <![endif]-->"; 96 97 debut_html(_T('ortho_orthographe').' «'.$titre.'»', $code_ie); 98 99 100 // Ajouts et suppressions de mots par l'utilisateur 101 gerer_dico_ortho($lang_article); 102 103 // 104 // Panneau de droite 105 // 106 echo "<div id='ortho-fixed'>"; 107 echo "<div class='ortho-padding serif'>"; 108 109 debut_cadre_enfonce(); 110 111 foreach ($champs as $champ) { 112 $ortho .= $$champ." "; 113 } 114 $ortho = preparer_ortho($ortho, $lang_article); 115 $result_ortho = corriger_ortho($ortho, $lang_article); 116 if (is_array($result_ortho)) { 117 $mots = $result_ortho['mauvais']; 118 if ($erreur = $result_ortho['erreur']) { 119 echo "<b>"._T('ortho_trop_de_fautes').aide('corrortho')."</b><p>\n"; 120 echo "<b>"._T('ortho_trop_de_fautes2')."</b><p>"; 121 } 122 else { 123 echo "<b>"._T('ortho_mode_demploi').aide('corrortho')."</b><p>\n"; 124 } 125 126 panneau_ortho($result_ortho); 127 } 128 else { 129 $erreur = $result_ortho; 130 echo "<b>"._T('ortho_dico_absent').aide('corrortho')." ("; 131 echo traduire_nom_langue($lang_article); 132 echo "). "; 133 echo _T('ortho_verif_impossible')."</b>"; 134 } 135 136 fin_cadre_enfonce(); 137 138 echo "</div>"; 139 echo "</div>"; 140 141 // 142 // Colonne de gauche : textes de l'article 143 // 144 echo "<div class='ortho-content' id='ortho-content'>"; 145 echo "<div class='ortho-padding serif'>"; 146 147 // Traitement des champs : soulignement des mots mal orthographies 148 foreach ($champs as $champ) { 149 switch ($champ) { 150 case 'texte': 151 case 'chapo': 152 case 'descriptif': 153 case 'ps': 154 // Mettre de cote les <code>, <cadre>, etc. 155 list($$champ, $echap) = echappe_html($$champ, "ORTHO"); 156 $$champ = propre($$champ); 157 break; 158 default: 159 $echap = ""; 160 $$champ = typo($$champ); 161 break; 162 } 163 // On passe en UTF-8 juste pour la correction 164 $$champ = preparer_ortho($$champ, $lang_article); 165 if (is_array($result_ortho)) 166 $$champ = souligner_ortho($$champ, $lang_article, $result_ortho); 167 // Et on repasse dans le charset original pour remettre les echappements 168 $$champ = afficher_ortho($$champ); 169 if ($echap) 170 $$champ = echappe_retour($$champ, $echap, "ORTHO"); 171 } 172 // Traitement identique pour les notes de bas de page 173 if ($les_notes) { 174 $les_notes = preparer_ortho($les_notes, $lang_article); 175 if (is_array($result_ortho)) 176 $les_notes = souligner_ortho($les_notes, $lang_article, $result_ortho); 177 $les_notes = afficher_ortho($les_notes); 178 } 179 180 debut_cadre_relief(); 181 182 if ($surtitre) { 183 echo "<span $dir_lang><font face='arial,helvetica' size='3'><b>"; 184 echo $surtitre; 185 echo "</b></font></span>\n"; 186 } 187 gros_titre($titre); 188 189 if ($soustitre) { 190 echo "<span $dir_lang><font face='arial,helvetica' size='3'><b>"; 191 echo $soustitre; 192 echo "</b></font></span>\n"; 193 } 194 195 if ($descriptif OR $url_site OR $nom_site) { 196 echo "<p><div align='$spip_lang_left' style='padding: 5px; border: 1px dashed #aaaaaa; background-color: #e4e4e4;' $dir_lang>"; 197 echo "<font size='2' face='Verdana,Arial,Sans,sans-serif'>"; 198 $texte_case = ($descriptif) ? "{{"._T('info_descriptif')."}} $descriptif\n\n" : ''; 199 $texte_case .= ($nom_site.$url_site) ? "{{"._T('info_urlref')."}} [".$nom_site."->".$url_site."]" : ''; 200 echo $descriptif; 201 echo "</font>"; 202 echo "</div>"; 203 } 204 205 206 // Corps de l'article 207 208 echo "\n\n<div align='justify'>"; 209 210 if ($virtuel) { 211 debut_boite_info(); 212 echo _T('info_renvoi_article')." ".propre("<center>[->$virtuel]</center>"); 213 fin_boite_info(); 214 } 215 else { 216 echo "<div $dir_lang><b>"; 217 echo $chapo; 218 echo "</b></div>\n\n"; 219 220 echo "<div $dir_lang>"; 221 echo $texte; 222 echo "</div>"; 223 224 if ($ps) { 225 echo debut_cadre_enfonce(); 226 echo "<div $dir_lang><font size='2' face='Verdana,Arial,Sans,sans-serif'>"; 227 echo "<b>"._T('info_ps')."</b> "; 228 echo $ps; 229 echo "</font></div>"; 230 echo fin_cadre_enfonce(); 231 } 232 233 if ($les_notes) { 234 echo debut_cadre_relief(); 235 echo "<div $dir_lang><font size='2'>"; 236 echo "<b>"._T('info_notes')." :</b> ".$les_notes; 237 echo "</font></div>"; 238 echo fin_cadre_relief(); 239 } 240 241 if ($champs_extra AND $extra) { 242 include_spip("extra.php"); 243 extra_affichage($extra, "articles"); 244 } 245 } 246 247 248 echo "</div>"; 249 250 251 fin_cadre_relief(); 252 253 html_background(); 254 echo "</div>"; 255 echo "</div>"; 256 257 fin_html(); 258 259 ?>
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
Généré le : Thu Feb 22 22:27:47 2007 | par Balluche grâce à PHPXref 0.7 |