Author: alain@barbason.be
Date: Sat Jun 10 21:46:30 2006
New Revision: 3544
Log:
Originaux : Travaille sur le correcteur orthographique
Added:
_contribs_/_ecrire_/accessibilite/articles_ortho.php
_contribs_/_ecrire_/accessibilite/lab_ortho.php
Added: _contribs_/_ecrire_/accessibilite/articles_ortho.php
--- _contribs_/_ecrire_/accessibilite/articles_ortho.php (added)
+++ _contribs_/_ecrire_/accessibilite/articles_ortho.php Sat Jun 10 21:46:30 2006
@@ -0,0 +1,259 @@
+<?php
+
+/***************************************************************************\
+ * SPIP, Systeme de publication pour l'internet *
+ * *
+ * Copyright (c) 2001-2005 *
+ * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
+ * *
+ * Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
+ * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
+\***************************************************************************/
+
+
+include("inc_lab.php");
+
+include_spip("ecrire.php");
+include_spip("ortho.php");
+include_spip("layer.php"); // Pour $browser_name
+
+//charset_texte('utf-8');
+
+
+//
+// Lire l'article
+//
+
+$query = "SELECT * FROM spip_articles WHERE id_article='$id_article'";
+$result = spip_query($query);
+
+if ($row = spip_fetch_array($result)) {
+ $id_article = $row["id_article"];
+ $surtitre = $row["surtitre"];
+ $titre = $row["titre"];
+ $soustitre = $row["soustitre"];
+ $id_rubrique = $row["id_rubrique"];
+ $descriptif = $row["descriptif"];
+ $nom_site = $row["nom_site"];
+ $url_site = $row["url_site"];
+ $chapo = $row["chapo"];
+ $texte = $row["texte"];
+ $ps = $row["ps"];
+ $date = $row["date"];
+ $statut_article = $row["statut"];
+ $maj = $row["maj"];
+ $date_redac = $row["date_redac"];
+ $visites = $row["visites"];
+ $referers = $row["referers"];
+ $extra = $row["extra"];
+ $id_trad = $row["id_trad"];
+ $lang_article = $row["lang"];
+}
+if (!$lang_article) $lang_article = lire_meta('langue_site');
+changer_typo($lang_article); # pour l'affichage du texte
+
+// pour l'affichage du virtuel
+unset($virtuel);
+if (substr($chapo, 0, 1) == '=') {
+ $virtuel = substr($chapo, 1);
+ $chapo = "";
+}
+
+$champs = array('surtitre', 'titre', 'soustitre', 'descriptif', 'chapo', 'texte', 'ps');
+$echap = array();
+$ortho = "";
+
+//
+// Affichage HTML
+//
+
+// Gros hack IE pour le "position: fixed"
+$code_ie = "<!--[if IE]>
+<style type=\"text/css\" media=\"screen\">
+ body {
+ height: 100%; margin: 0px; padding: 0px;
+ overflow: hidden;
+ }
+ .ortho-content {
+ position: absolute; $spip_lang_left: 0px;
+ height: 100%; margin: 0px; padding: 0px;
+ width: 72%;
+ overflow-y: auto;
+ }
+ #ortho-fixed {
+ position: absolute; $spip_lang_right: 0px; width: 25%;
+ height: 100%; margin: 0px; padding: 0px;
+ overflow: hidden;
+ }
+ .ortho-padding {
+ padding: 12px;
+ }
+</style>
+<script type=\"text/javascript\">
+ onload = function() { document.getElementById('ortho-content').focus(); }
+</script>
+<![endif]-->";
+
+debut_html(_T('ortho_orthographe').' «'.$titre.'»', $code_ie);
+
+
+// Ajouts et suppressions de mots par l'utilisateur
+gerer_dico_ortho($lang_article);
+
+//
+// Panneau de droite
+//
+echo "<div id='ortho-fixed'>";
+echo "<div class='ortho-padding serif'>";
+
+debut_cadre_enfonce();
+
+foreach ($champs as $champ) {
+ $ortho .= $$champ." ";
+}
+$ortho = preparer_ortho($ortho, $lang_article);
+$result_ortho = corriger_ortho($ortho, $lang_article);
+if (is_array($result_ortho)) {
+ $mots = $result_ortho['mauvais'];
+ if ($erreur = $result_ortho['erreur']) {
+ echo "<b>"._T('ortho_trop_de_fautes').aide('corrortho')."</b><p>\n";
+ echo "<b>"._T('ortho_trop_de_fautes2')."</b><p>";
+ }
+ else {
+ echo "<b>"._T('ortho_mode_demploi').aide('corrortho')."</b><p>\n";
+ }
+
+ panneau_ortho($result_ortho);
+}
+else {
+ $erreur = $result_ortho;
+ echo "<b>"._T('ortho_dico_absent').aide('corrortho')." (";
+ echo traduire_nom_langue($lang_article);
+ echo "). ";
+ echo _T('ortho_verif_impossible')."</b>";
+}
+
+fin_cadre_enfonce();
+
+echo "</div>";
+echo "</div>";
+
+//
+// Colonne de gauche : textes de l'article
+//
+echo "<div class='ortho-content' id='ortho-content'>";
+echo "<div class='ortho-padding serif'>";
+
+// Traitement des champs : soulignement des mots mal orthographies
+foreach ($champs as $champ) {
+ switch ($champ) {
+ case 'texte':
+ case 'chapo':
+ case 'descriptif':
+ case 'ps':
+ // Mettre de cote les <code>, <cadre>, etc.
+ list($$champ, $echap) = echappe_html($$champ, "ORTHO");
+ $$champ = propre($$champ);
+ break;
+ default:
+ $echap = "";
+ $$champ = typo($$champ);
+ break;
+ }
+ // On passe en UTF-8 juste pour la correction
+ $$champ = preparer_ortho($$champ, $lang_article);
+ if (is_array($result_ortho))
+ $$champ = souligner_ortho($$champ, $lang_article, $result_ortho);
+ // Et on repasse dans le charset original pour remettre les echappements
+ $$champ = afficher_ortho($$champ);
+ if ($echap)
+ $$champ = echappe_retour($$champ, $echap, "ORTHO");
+}
+// Traitement identique pour les notes de bas de page
+if ($les_notes) {
+ $les_notes = preparer_ortho($les_notes, $lang_article);
+ if (is_array($result_ortho))
+ $les_notes = souligner_ortho($les_notes, $lang_article, $result_ortho);
+ $les_notes = afficher_ortho($les_notes);
+}
+
+debut_cadre_relief();
+
+if ($surtitre) {
+ echo "<span $dir_lang><font face='arial,helvetica' size='3'><b>";
+ echo $surtitre;
+ echo "</b></font></span>\n";
+}
+gros_titre($titre);
+
+if ($soustitre) {
+ echo "<span $dir_lang><font face='arial,helvetica' size='3'><b>";
+ echo $soustitre;
+ echo "</b></font></span>\n";
+}
+
+if ($descriptif OR $url_site OR $nom_site) {
+ echo "<p><div align='$spip_lang_left' style='padding: 5px; border: 1px dashed #aaaaaa; background-color: #e4e4e4;' $dir_lang>";
+ echo "<font size='2' face='Verdana,Arial,Sans,sans-serif'>";
+ $texte_case = ($descriptif) ? "{{"._T('info_descriptif')."}} $descriptif\n\n" : '';
+ $texte_case .= ($nom_site.$url_site) ? "{{"._T('info_urlref')."}} [".$nom_site."->".$url_site."]" : '';
+ echo $descriptif;
+ echo "</font>";
+ echo "</div>";
+}
+
+
+// Corps de l'article
+
+echo "\n\n<div align='justify'>";
+
+if ($virtuel) {
+ debut_boite_info();
+ echo _T('info_renvoi_article')." ".propre("<center>[->$virtuel]</center>");
+ fin_boite_info();
+}
+else {
+ echo "<div $dir_lang><b>";
+ echo $chapo;
+ echo "</b></div>\n\n";
+
+ echo "<div $dir_lang>";
+ echo $texte;
+ echo "</div>";
+
+ if ($ps) {
+ echo debut_cadre_enfonce();
+ echo "<div $dir_lang><font size='2' face='Verdana,Arial,Sans,sans-serif'>";
+ echo "<b>"._T('info_ps')."</b> ";
+ echo $ps;
+ echo "</font></div>";
+ echo fin_cadre_enfonce();
+ }
+
+ if ($les_notes) {
+ echo debut_cadre_relief();
+ echo "<div $dir_lang><font size='2'>";
+ echo "<b>"._T('info_notes')." :</b> ".$les_notes;
+ echo "</font></div>";
+ echo fin_cadre_relief();
+ }
+
+ if ($champs_extra AND $extra) {
+ include_spip("extra.php");
+ extra_affichage($extra, "articles");
+ }
+}
+
+
+echo "</div>";
+
+
+fin_cadre_relief();
+
+html_background();
+echo "</div>";
+echo "</div>";
+
+fin_html();
+
+?>
Added: _contribs_/_ecrire_/accessibilite/lab_ortho.php
--- _contribs_/_ecrire_/accessibilite/lab_ortho.php (added)
+++ _contribs_/_ecrire_/accessibilite/lab_ortho.php Sat Jun 10 21:46:30 2006
@@ -0,0 +1,695 @@
+<?php
+
+/***************************************************************************\
+ * SPIP, Systeme de publication pour l’internet *
+ * *
+ * Copyright (c) 2001-2005 *
+ * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
+ * *
+ * Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
+ * Pour plus de details voir le fichier COPYING.txt ou l’aide en ligne. *
+\***************************************************************************/
+
+
+// Ce fichier ne sera execute qu’une fois
+if (defined("_ECRIRE_INC_ORTHO")) return;
+define("_ECRIRE_INC_ORTHO", « 1 »);
+
+
+// Mettre a jour la liste locale des miroirs
+function maj_miroirs_ortho() {
+ $liste = explode(" « , lire_meta(« liste_miroirs_ortho »));
+ $miroirs_old = array();
+ foreach ($liste as $index) {
+ list($url) = explode( » « , lire_meta(« miroir_ortho_$index »));
+ $miroirs_old[$url] = $index;
+ }
+
+ // TODO: recuperer la liste dynamiquement depuis ortho.spip.net
+ $urls = array(
+ ‹ http://tony.ortho.spip.net/ortho_serveur.php ›,
+ ‹ http://spip-ortho.linagora.org:18080/ortho_serveur.php ›,
+ ‹ http://ortho.spip.net/ortho_serveur.php ›
+ );
+ $liste = array();
+ $miroirs_new = array();
+ $index = 1;
+ foreach ($urls as $url) {
+ if ($index_old = $miroirs_old[$url]) {
+ $s = lire_meta(« miroir_ortho_$index_old »);
+ }
+ else {
+ $s = $url. » « .time();
+ }
+ $miroirs_new[$index] = $s;
+ $liste[] = $index++;
+ }
+ foreach ($miroirs_old as $index) {
+ effacer_meta(« miroir_ortho_$index »);
+ }
+ foreach ($miroirs_new as $index => $s) {
+ ecrire_meta(« miroir_ortho_$index », $s);
+ }
+ ecrire_meta(« liste_miroirs_ortho », join( » ", $liste));
+}
+
+// Lire la liste des miroirs et les langues associees
+function lire_miroirs_ortho() {
+ global $miroirs_ortho, $index_miroirs_ortho, $duree_cache_miroirs_ortho;
+
+ $miroirs_ortho = array();
+ $index_miroirs_ortho = array();
+
+ $t = time();
+ $maj = lire_meta(« maj_miroirs_ortho »);
+ if ($maj < $t - $duree_cache_miroirs_ortho) {
[... 631 lines stripped ...]