From 49b975c9e15e3f1a4847be108531f369909d968b Mon Sep 17 00:00:00 2001
From: "Committo,Ergo:sum" <esj@rezo.net>
Date: Tue, 10 Oct 2006 22:10:42 +0000
Subject: [PATCH] =?UTF-8?q?L'espace=20priv=C3=A9=20passe=20en=20XHTML=201.?=
 =?UTF-8?q?0=20transitionnal:=20suite=20aux=20nombreuses=20r=C3=A9=C3=A9cr?=
 =?UTF-8?q?itures=20de=20ces=20derniers=20temps=20pour=20placer=20du=20Aja?=
 =?UTF-8?q?x=20=C3=A0=20tous=20les=20coins=20de=20formulaire,=20le=20code?=
 =?UTF-8?q?=20HTML=20de=20l'espace=20priv=C3=A9=20est=20=C3=A0=20pr=C3=A9s?=
 =?UTF-8?q?ent=20tr=C3=A8s=20proche=20de=20ce=20standard.=20Les=20erreurs?=
 =?UTF-8?q?=20restantes=20sont=20pour=20la=20plupart=20communes=20avec=20l?=
 =?UTF-8?q?e=20HTML4,=20il=20n'est=20donc=20plus=20n=C3=A9cessaire=20de=20?=
 =?UTF-8?q?conserver=20ce=20Doctype=20ant=C3=A9-diluvien.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Ce dépot résoud aussi #617 (qui a involontairement permis de trouver des
non conformités XHTML).
---
 ecrire/action/editer_auteurs.php |  2 +-
 ecrire/action/petitionner.php    |  1 -
 ecrire/exec/articles.php         | 12 +++++-----
 ecrire/inc/actions.php           | 17 +++++---------
 ecrire/inc/dater.php             |  8 +++----
 ecrire/inc/editer_auteurs.php    | 24 ++++++++++----------
 ecrire/inc/editer_mot.php        | 18 +++++++--------
 ecrire/inc/gadgets.php           |  8 +++----
 ecrire/inc/iconifier.php         |  2 +-
 ecrire/inc/petitionner.php       | 22 +++++++++---------
 ecrire/inc/presentation.php      | 38 +++++++++++++++-----------------
 ecrire/inc/utils.php             |  4 +++-
 ecrire/index.php                 |  2 +-
 ecrire/public.php                |  2 +-
 14 files changed, 77 insertions(+), 83 deletions(-)

diff --git a/ecrire/action/editer_auteurs.php b/ecrire/action/editer_auteurs.php
index c57fbef5b9..89049f4803 100644
--- a/ecrire/action/editer_auteurs.php
+++ b/ecrire/action/editer_auteurs.php
@@ -22,7 +22,7 @@ function action_editer_auteurs_dist() {
 	$var_f();
 
 	$arg = _request('arg');
-	$redirect = _request('redirect');
+	$redirect = urldecode(_request('redirect'));
 
 	if (preg_match(",^\W*(\d+)\W-(\d+)$,", $arg, $r)) {
 		supprimer_auteur_et_rediriger($r[1], $r[2], $redirect);
diff --git a/ecrire/action/petitionner.php b/ecrire/action/petitionner.php
index 90d4ba02ec..90394f761d 100644
--- a/ecrire/action/petitionner.php
+++ b/ecrire/action/petitionner.php
@@ -20,7 +20,6 @@ function action_petitionner_dist() {
 	$var_f();
 
 	$arg = _request('arg');
-	$redirect = _request('redirect');
 
 	$id_article = intval($arg);
 
diff --git a/ecrire/exec/articles.php b/ecrire/exec/articles.php
index 1add67c8b2..01a10e62c8 100644
--- a/ecrire/exec/articles.php
+++ b/ecrire/exec/articles.php
@@ -236,7 +236,7 @@ function boites_de_config_articles($id_article)
 	$nb_signatures = $nb_signatures['count'];
 	$visible = $nb_forums || $nb_signatures;
 
-	$invite = "<span class='verdana1'<b>"
+	$invite = "<span class='verdana1'><b>"
 	. _T('bouton_forum_petition')
 	. aide('confforums')
 	. "</b></span>";
@@ -277,14 +277,14 @@ function boite_article_virtuel($id_article, $virtuel)
 }
 
 // http://doc.spip.org/@bouton_modifier_articles
-function bouton_modifier_articles($id_article, $id_rubrique, $flag_modif, $mode, $ip, $im)
+function bouton_modifier_articles($id_article, $id_rubrique, $flag_modif, $mode, $ip, $im, $align='')
 {
 	if ($flag_modif) {
-		return icone(_T('icone_modifier_article'), generer_url_ecrire("articles_edit","id_article=$id_article"), $ip, $im, '', false)
+		return icone(_T('icone_modifier_article'), generer_url_ecrire("articles_edit","id_article=$id_article"), $ip, $im, $align, false)
 		. "<font face='arial,helvetica,sans-serif' size='2'>$mode</font>"
 		. aide("artmodif");
 	}
-	else return icone(_T('icone_modifier_article'), generer_url_ecrire("articles_edit","id_article=$id_article"), "article-24.gif", "edit.gif", '', false);
+	else return icone(_T('icone_modifier_article'), generer_url_ecrire("articles_edit","id_article=$id_article"), "article-24.gif", "edit.gif", $align, false);
 }
 
 // http://doc.spip.org/@titres_articles
@@ -328,11 +328,11 @@ function titres_articles($titre, $statut_article,$surtitre, $soustitre, $descrip
 
 	if ($flag_editable) {
 		$res .= "<td valign='top' align='$spip_lang_right' width='130'>"
-		. bouton_modifier_articles($id_article, $id_rubrique, $modif, _T('avis_article_modifie', $modif), "article-24.gif", "edit.gif")
+		. bouton_modifier_articles($id_article, $id_rubrique, $modif, _T('avis_article_modifie', $modif), "article-24.gif", "edit.gif", 'right')
 		. "</td>\n";
 	}
 
-	return "\n<table cellpadding=0 cellspacing=0 border=0 width='100%'>"
+	return "\n<table cellpadding='0' cellspacing='0' border='0' width='100%'>"
 	. "\n<tr width='100%'>"
 	. $res
 	. "</tr></table>\n";
diff --git a/ecrire/inc/actions.php b/ecrire/inc/actions.php
index bb74e9df18..6fe291c53a 100644
--- a/ecrire/inc/actions.php
+++ b/ecrire/inc/actions.php
@@ -94,10 +94,10 @@ function generer_action_auteur($action, $arg, $redirect="", $mode=false, $att=''
 		list($id_auteur, $pass) =  caracteriser_auteur();
 	}
 	$hash = _action_auteur("$action-$arg", $id_auteur, $pass, 'alea_ephemere');
+	$r = rawurlencode($redirect);
 	if (!is_string($mode))
-	  return generer_url_action($action, "arg=$arg&hash=$hash" . (!$redirect ? '' : ("&redirect=" . rawurlencode($redirect))), $mode);
-	if ($redirect)
-		$redirect = "\n\t\t<input name='redirect' type='hidden' value='$redirect' />";
+	  return generer_url_action($action, "arg=$arg&hash=$hash" . (!$r ? '' : "&redirect=$r"), $mode);
+
 	// Attention, JS n'aime pas le melange de param GET/POST
 	return "\n<form style='margin:0px' action='" .
 		generer_url_public('') .
@@ -105,7 +105,7 @@ function generer_action_auteur($action, $arg, $redirect="", $mode=false, $att=''
 		<input name='hash' type='hidden' value='$hash' />
 		<input name='action' type='hidden' value='$action' />
 		<input name='arg' type='hidden' value='$arg' />" .
-		$redirect .  
+		(!$r ? '' : "\n\t\t<input name='redirect' type='hidden' value='$r' />") .
 		$mode .
 		"\n\t</div>\n</form>\n";
 }
@@ -113,14 +113,9 @@ function generer_action_auteur($action, $arg, $redirect="", $mode=false, $att=''
 // http://doc.spip.org/@redirige_action_auteur
 function redirige_action_auteur($action, $arg, $ret, $gra='', $mode=false, $atts='') {
 
-	$redirect = generer_url_ecrire($ret, $gra, true, _DIR_RESTREINT_ABS);
+	$r = generer_url_ecrire($ret, $gra, true, _DIR_RESTREINT_ABS);
 
-	return generer_action_auteur(
-		$action,
-		$arg,
-		$redirect,
-		$mode,
-		$atts);
+	return generer_action_auteur($action, $arg, $r, $mode, $atts);
 }
 
 // Retourne un formulaire d'execution de $action sur $id,
diff --git a/ecrire/inc/dater.php b/ecrire/inc/dater.php
index b530e6ca4f..a016aa2666 100644
--- a/ecrire/inc/dater.php
+++ b/ecrire/inc/dater.php
@@ -101,16 +101,16 @@ function inc_dater_dist($id_article, $flag, $statut_article, $date, $date_redac)
 		$masque = 
  "<div style='margin: 5px; margin-$spip_lang_left: 20px;'>" .
  '<table cellpadding="0" cellspacing="0" border="0" width="100%">' .
- '<tr><td align="$spip_lang_left">' .
+ "<tr><td align='$spip_lang_left'>" .
  '<input type="radio" name="avec_redac" value="non" id="avec_redac_on"' .
  ($possedeDateRedac ? '' : ' checked="checked"') .
- " onClick=$js" .
+ " onclick=$js" .
  ' /> <label for="avec_redac_on">'.
  _T('texte_date_publication_anterieure_nonaffichee').
  '</label>' .
  '<br /><input type="radio" name="avec_redac" value="oui" id="avec_redac_off"' .
  (!$possedeDateRedac ? '' : ' checked="checked"') .
- " onClick=$js /> <label for='avec_redac_off'>" .
+ " onclick=$js /> <label for='avec_redac_off'>" .
  _T('bouton_radio_afficher').
  ' :</label> ' .
  afficher_jour($jour_redac, "name='jour_redac' class='fondl' onchange=$js", true) .
@@ -120,7 +120,7 @@ function inc_dater_dist($id_article, $flag, $statut_article, $date, $date_redac)
  afficher_heure($heure_redac, "name='heure_redac' class='fondl' onchange=$js", true) .
  afficher_minute($minute_redac, "name='minute_redac' class='fondl' onchange=$js", true) .
  "</div>\n" .
- '</td><td align="$spip_lang_right">' .
+ "</td><td align='$spip_lang_right'>" .
  "<span class='visible_au_chargement' id='valider_date_redac'>" .
  '<input type="submit" class="fondo" value="'.
  _T('bouton_changer').'" />' .
diff --git a/ecrire/inc/editer_auteurs.php b/ecrire/inc/editer_auteurs.php
index 85a0edfe14..2621e68651 100644
--- a/ecrire/inc/editer_auteurs.php
+++ b/ecrire/inc/editer_auteurs.php
@@ -103,24 +103,24 @@ function inc_editer_auteurs_dist($id_article, $flag, $cherche_auteur, $ids)
 function rechercher_auteurs_articles($cherche_auteur, $ids, $id_article)
 {
 	if (!$ids) {
-		return "<B>"._T('texte_aucun_resultat_auteur', array('cherche_auteur' => $cherche_auteur)).".</B><BR />";
+		return "<b>"._T('texte_aucun_resultat_auteur', array('cherche_auteur' => $cherche_auteur)).".</b><br />";
 	}
 	elseif ($ids == -1) {
-		return "<B>"._T('texte_trop_resultats_auteurs', array('cherche_auteur' => $cherche_auteur))."</B><BR />";
+		return "<b>"._T('texte_trop_resultats_auteurs', array('cherche_auteur' => $cherche_auteur))."</b><br />";
 	}
 	elseif (preg_match('/^\d+$/',$ids)) {
 
 		$row = spip_fetch_array(spip_query("SELECT nom FROM spip_auteurs WHERE id_auteur=$ids"));
-		return "<B>"._T('texte_ajout_auteur')."</B><BR /><UL><LI><FONT FACE='Verdana,Arial,Sans,sans-serif' SIZE=2><B><FONT SIZE=3>".typo($row['nom'])."</FONT></B></UL>";
+		return "<b>"._T('texte_ajout_auteur')."</b><br /><ul><li><font face='Verdana,Arial,Sans,sans-serif' size='2'><b><font size='3'>".typo($row['nom'])."</font></b></ul>";
 	}
 	else {
 		$ids = preg_replace('/[^0-9,]/','',$ids); // securite
 		$result = spip_query("SELECT * FROM spip_auteurs WHERE id_auteur IN ($ids) ORDER BY nom");
 
-		$res = "<B>"
+		$res = "<b>"
 		. _T('texte_plusieurs_articles', array('cherche_auteur' => $cherche_auteur))
-		. "</B><BR />"
-		.  "<UL class='verdana1'>";
+		. "</b><br />"
+		.  "<ul class='verdana1'>";
 		while ($row = spip_fetch_array($result)) {
 				$id_auteur = $row['id_auteur'];
 				$nom_auteur = $row['nom'];
@@ -139,7 +139,7 @@ function rechercher_auteurs_articles($cherche_auteur, $ids, $id_article)
 				}
 				$res .= "</li>\n";
 			}
-		$res .= "</UL>";
+		$res .= "</ul>";
 		return $res;
 	}
 }
@@ -170,10 +170,10 @@ function afficher_auteurs_articles($id_article, $flag_editable, $les_auteurs)
 
 			$vals[] = bouton_imessage($id_auteur);
 		
-			if ($email_auteur) $vals[] =  "<A href='mailto:$email_auteur'>"._T('email')."</A>";
+			if ($email_auteur) $vals[] =  "<a href='mailto:$email_auteur'>"._T('email')."</a>";
 			else $vals[] =  "&nbsp;";
 
-			if ($url_site_auteur) $vals[] =  "<A href='$url_site_auteur'>"._T('info_site_min')."</A>";
+			if ($url_site_auteur) $vals[] =  "<a href='$url_site_auteur'>"._T('info_site_min')."</a>";
 			else $vals[] =  "&nbsp;";
 
 			$cpt = spip_fetch_array(spip_query("SELECT COUNT(articles.id_article) AS n FROM spip_auteurs_articles AS lien, spip_articles AS articles WHERE lien.id_auteur=$id_auteur AND articles.id_article=lien.id_article AND articles.statut IN " . ($connect_statut == "0minirezo" ? "('prepa', 'prop', 'publie', 'refuse')" : "('prop', 'publie')") . " GROUP BY lien.id_auteur"));
@@ -213,12 +213,12 @@ function ajouter_auteurs_articles($id_article, $les_auteurs)
 
 	return ajax_action_auteur('editer_auteurs', $id_article,'articles', "id_article=$id_article",
 				      (
-			"<span class='verdana1'><B>"._T('titre_cadre_ajouter_auteur')."&nbsp; </B></span>\n" .
+			"<span class='verdana1'><b>"._T('titre_cadre_ajouter_auteur')."&nbsp; </b></span>\n" .
 
 			($num > 200 
-			? ("<input type='text' name='cherche_auteur' onClick=$js CLASS='fondl' VALUE='' SIZE='20' />" .
+			? ("<input type='text' name='cherche_auteur' onclick=$js CLASS='fondl' VALUE='' SIZE='20' />" .
 			  "<span  class='visible_au_chargement' id='valider_ajouter_auteur'>\n<input type='submit' value='"._T('bouton_chercher')."' CLASS='fondo' /></span>")
-			: ("<select name='nouv_auteur' size='1' style='width:150px;' CLASS='fondl' onChange=$js>" .
+			: ("<select name='nouv_auteur' size='1' style='width:150px;' CLASS='fondl' onchange=$js>" .
 			   articles_auteur_select($result) .
 			   "</select>" .
 			   "<span  class='visible_au_chargement' id='valider_ajouter_auteur'>" .
diff --git a/ecrire/inc/editer_mot.php b/ecrire/inc/editer_mot.php
index 41a5b9d724..21e1c4ce62 100644
--- a/ecrire/inc/editer_mot.php
+++ b/ecrire/inc/editer_mot.php
@@ -140,9 +140,9 @@ function recherche_mot_cle($cherche_mots, $id_groupe, $objet, $id_objet, $table,
 		else if (count($resultat) == 1) {
 			$nouveaux_mots[] = $resultat[0];
 			$row = spip_fetch_array(spip_query("SELECT titre FROM spip_mots WHERE id_mot=$resultat[0]"));
-			$res .= "<B>"._T('info_mot_cle_ajoute')." $ou : </B><BR><UL>";
-			$res .= "<LI><FONT FACE='Verdana,Arial,Sans,sans-serif' SIZE='2'><B><FONT SIZE='3'>".typo($row['titre'])."</FONT></B></FONT></LI>\n";
-			$res .= "</UL>";
+			$res .= "<b>"._T('info_mot_cle_ajoute')." $ou : </b><br /><ul>";
+			$res .= "<li><font face='Verdana,Arial,Sans,sans-serif' size='2'><b><font size='3'>".typo($row['titre'])."</font></b></font></li>\n";
+			$res .= "</ul>";
 		}
 		else $res .= affiche_mots_ressemblant($cherche_mot, $objet, $id_objet, $resultat, $table, $table_id, $url_base);
 
@@ -183,7 +183,7 @@ function afficher_mots_cles($flag_editable, $objet, $id_objet, $table, $table_id
 
 			$id_groupes_vus[] = $id_groupe;
 			$url = generer_url_ecrire('mots_edit', "id_mot=$id_mot&redirect=$ret");
-			$vals= array("<A href='$url'>$cle</A>");
+			$vals= array("<a href='$url'>$cle</a>");
 			
 
 			$row_groupe = spip_fetch_array(spip_query("SELECT titre, unseul, obligatoire, minirezo, comite FROM spip_groupes_mots WHERE id_groupe = $id_groupe"));
@@ -197,7 +197,7 @@ function afficher_mots_cles($flag_editable, $objet, $id_objet, $table, $table_id
 			if (($row_groupe['unseul'] == "oui") AND $flag_groupe) {
 				$vals[]= formulaire_mot_remplace($id_groupe, $id_mot, $url_base, $table, $table_id, $objet, $id_objet);
 			} else {
-				$vals[]= "<A href='$url'>".typo($titre_mot)."</A>";
+				$vals[]= "<a href='$url'>".typo($titre_mot)."</a>";
 			}
 
 			if ($connect_toutes_rubriques)
@@ -381,11 +381,11 @@ function menu_mots($row, $id_groupes_vus, $les_mots)
 		$jscript = "onchange=\"$jscript1\"";
 	  
 		if ($obligatoire)
-			$res .= "<SELECT NAME='nouv_mot' SIZE='1' STYLE='width: 180px; background-color:#E86519;' CLASS='fondl' $jscript>";
+			$res .= "<select name='nouv_mot' size='1' style='width: 180px; background-color:#E86519;' class='fondl' $jscript>";
 		else if ($unseul)
-			$res .= "<SELECT NAME='nouv_mot' SIZE='1' STYLE='width: 180px; background-color:#cccccc;' CLASS='fondl' $jscript>";
+			$res .= "<select name='nouv_mot' size='1' style='width: 180px; background-color:#cccccc;' class='fondl' $jscript>";
 		else
-			$res .= "<SELECT NAME='nouv_mot' SIZE='1' STYLE='width: 180px; ' CLASS='fondl' $jscript>";
+			$res .= "<select name='nouv_mot' size='1' style='width: 180px; ' class='fondl' $jscript>";
 
 		$res .= "\n<option value='x' style='font-variant: small-caps;'>$titre</option>";
 		while($row = spip_fetch_array($result)) {
@@ -394,7 +394,7 @@ function menu_mots($row, $id_groupes_vus, $les_mots)
 				textebrut(typo($row['titre'])) .
 				"</option>";
 		}
-		$res .= "</SELECT>";
+		$res .= "</select>";
 		$res .= "<span class='visible_au_chargement' id='$ancre'>";
 		$res .= "\n&nbsp;<input type='submit' value='"._T('bouton_choisir')."' CLASS='fondo' />";
 		$res .= "</span>";
diff --git a/ecrire/inc/gadgets.php b/ecrire/inc/gadgets.php
index 2d96867c7e..1b2af452e5 100644
--- a/ecrire/inc/gadgets.php
+++ b/ecrire/inc/gadgets.php
@@ -472,10 +472,10 @@ function gadget_messagerie() {
 function repercuter_gadgets($id_rubrique) {
 	if ($_COOKIE['spip_accepte_ajax'] != -1) {
 	  return ";
-		AjaxSqueeze('./?exec=gadgets&gadget=rubriques&id_rubrique=$id_rubrique', 'gadget-rubriques');
-		AjaxSqueeze('./?exec=gadgets&gadget=navigation&id_rubrique=$id_rubrique', 'gadget-navigation');
-		AjaxSqueeze('./?exec=gadgets&gadget=agenda&id_rubrique=$id_rubrique', 'gadget-agenda');
-		AjaxSqueeze('./?exec=gadgets&gadget=messagerie&id_rubrique=$id_rubrique', 'gadget-messagerie');";
+		AjaxSqueeze('./?exec=gadgets&amp;gadget=rubriques&amp;id_rubrique=$id_rubrique', 'gadget-rubriques');
+		AjaxSqueeze('./?exec=gadgets&amp;gadget=navigation&amp;id_rubrique=$id_rubrique', 'gadget-navigation');
+		AjaxSqueeze('./?exec=gadgets&amp;gadget=agenda&amp;id_rubrique=$id_rubrique', 'gadget-agenda');
+		AjaxSqueeze('./?exec=gadgets&amp;gadget=messagerie&amp;id_rubrique=$id_rubrique', 'gadget-messagerie');";
 	}
 }
 
diff --git a/ecrire/inc/iconifier.php b/ecrire/inc/iconifier.php
index a4223a4bd8..c47f26ef68 100644
--- a/ecrire/inc/iconifier.php
+++ b/ecrire/inc/iconifier.php
@@ -98,7 +98,7 @@ function indiquer_logo($titre, $id_objet, $mode, $id, $script) {
 		$afficher = "\n" .
 			_T('info_telecharger_nouveau_logo') .
 			"<br />" .
-			"\n<input name='image' type='File' class='forml' style='font-size:9px;' size='15'>" .
+			"\n<input name='image' type='file' class='forml' style='font-size:9px;' size='15' />" .
 			"<div align='" .  $GLOBALS['spip_lang_right'] . "'>" .
 			"\n<input name='sousaction1' type='submit' value='" .
 			_T('bouton_telecharger') .
diff --git a/ecrire/inc/petitionner.php b/ecrire/inc/petitionner.php
index d23182c256..614fe82c94 100644
--- a/ecrire/inc/petitionner.php
+++ b/ecrire/inc/petitionner.php
@@ -43,15 +43,15 @@ function inc_petitionner_dist($id_article, $script, $args, $ajax=false)
 		$val_menu = 'off';
 	}
 
-	$res = "<br />\n";
+	$res = "";
 	foreach ($menu as $val => $desc) {
-		$res .= "<option" . (($val_menu == $val) ? " selected" : '') . " value='$val'>".$desc."</option>\n";
+		$res .= "<option" . (($val_menu == $val) ? " selected='selected'" : '') . " value='$val'>".$desc."</option>\n";
 	}
 
 	$res = "<select name='change_petition'
 		class='fondl' style='font-size:10px;'
-		onChange=\"setvisibility('valider_petition', 'visible');\"
-		>\n$res</select>\n";
+		onchange=\"setvisibility('valider_petition', 'visible');\"
+		>\n$res</select><br />\n";
 
 
 	if ($petition) {
@@ -68,31 +68,31 @@ function inc_petitionner_dist($id_article, $script, $args, $ajax=false)
 			$res .= "<input type='checkbox' name='email_unique' id='emailunique' checked='checked'>";
 		else
 			$res .="<input type='checkbox' name='email_unique'  id='emailunique'>";
-		$res .=" <label for='emailunique'>"._T('bouton_checkbox_signature_unique_email')."</label><BR>";
+		$res .=" <label for='emailunique'>"._T('bouton_checkbox_signature_unique_email')."</label><br />";
 		if ($site_obli=="oui")
 			$res .="<input type='checkbox' name='site_obli' id='siteobli' checked='checked'>";
 		else
 			$res .="<input type='checkbox' name='site_obli'  id='siteobli'>";
-		$res .=" <label for='siteobli'>"._T('bouton_checkbox_indiquer_site')."</label><BR>";
+		$res .=" <label for='siteobli'>"._T('bouton_checkbox_indiquer_site')."</label><br />";
 		if ($site_unique=="oui")
 			$res .="<input type='checkbox' name='site_unique' id='siteunique' checked='checked'>";
 		else
 			$res .="<input type='checkbox' name='site_unique'  id='siteunique'>";
-		$res .=" <label for='siteunique'>"._T('bouton_checkbox_signature_unique_site')."</label><BR>";
+		$res .=" <label for='siteunique'>"._T('bouton_checkbox_signature_unique_site')."</label><br />";
 		if ($message=="oui")
 			$res .="<input type='checkbox' name='message' id='message' checked='checked'>";
 		else
 			$res .="<input type='checkbox' name='message'  id='message' />";
 		$res .=" <label for='message'>"._T('bouton_checkbox_envoi_message')."</label>";
 
-		$res .= "<br />"._T('texte_descriptif_petition')."&nbsp;:<BR />";
-		$res .="<TEXTAREA NAME='texte_petition' CLASS='forml' ROWS='4' COLS='10' wrap='soft'>";
+		$res .= "<br />"._T('texte_descriptif_petition')."&nbsp;:<br />";
+		$res .="<textarea name='texte_petition' class='forml' rows='4' COLS='10' wrap='soft'>";
 		$res .=entites_html($texte_petition);
-		$res .="</TEXTAREA>\n";
+		$res .="</textarea>\n";
 
 		$res .="<span align='$spip_lang_right'>";
 	} else $res .="<span class='visible_au_chargement' id='valider_petition'>";
-	$res .="<input type='submit' CLASS='fondo' VALUE='"._T('bouton_changer')."' STYLE='font-size:10px' />";
+	$res .="<input type='submit' class='fondo' value='"._T('bouton_changer')."' style='font-size:10px' />";
 	$res .="</span>";
 	$res = ajax_action_auteur('petitionner', $id_article, $script, $args, $res);
 
diff --git a/ecrire/inc/presentation.php b/ecrire/inc/presentation.php
index bbf70ac62e..f88f21f3f8 100644
--- a/ecrire/inc/presentation.php
+++ b/ecrire/inc/presentation.php
@@ -487,7 +487,7 @@ function afficher_tranches_requete($num_rows, $colspan, $tmp_var, $url='', $nb_a
 		else {
 			$script = parametre_url($self, $tmp_var, $deb-1);
 			if ($url) {
-				$on = "\nonClick=\"return charger_id_url('"
+				$on = "\nonclick=\"return charger_id_url('"
 				. $url
 				. "&"
 				. $tmp_var
@@ -512,7 +512,7 @@ function afficher_tranches_requete($num_rows, $colspan, $tmp_var, $url='', $nb_a
 	} else {
 			$script = parametre_url($self, $tmp_var, -1);
 			if ($url) {
-				$on = "\nonClick=\"return charger_id_url('"
+				$on = "\nonclick=\"return charger_id_url('"
 				. $url
 				. "&"
 				. $tmp_var
@@ -1492,7 +1492,7 @@ function afficher_forum_thread($row, $controle_id_article, $compteur_forum, $nb_
 	$res = "<a id='$id_forum'></a>";
 
 	if ($spip_display == 4) {
-		$res .= "<li>".typo($titre)."<br>";
+		$res .= "<li>".typo($titre)."<br />";
 	} else {
 
 		$titre_boite = '';
@@ -1640,32 +1640,32 @@ function envoi_link($nom_site_spip) {
 	// CSS de secours en cas de non fonct de la suivante
 	$res = '<link rel="stylesheet" type="text/css" href="'
 	. find_in_path('style_prive_defaut.css')
-	. '" >'  . "\n"
+	. '" />'  . "\n"
 	
 	// CSS espace prive : la vraie
 	. '<link rel="stylesheet" type="text/css" href="'
-	. generer_url_public('style_prive', $args) .'" >' . "\n"
+	. generer_url_public('style_prive', $args) .'" />' . "\n"
 
 	// CSS calendrier
 	. '<link rel="stylesheet" type="text/css" href="'
-	. find_in_path('agenda.css') .'" >' . "\n"
+	. find_in_path('agenda.css') .'" />' . "\n"
 
 	// CSS imprimante (masque des trucs, a completer)
 	. '<link rel="stylesheet" type="text/css" href="'
 	. find_in_path('spip_style_print.css')
-	. '" media="print" >' . "\n"
+	. '" media="print" />' . "\n"
 
 	// CSS "visible au chargement" differente selon js actif ou non
 	. '<link rel="stylesheet" type="text/css" href="'
 	. find_in_path('spip_style_'
 		. (($_COOKIE['spip_accepte_ajax'] != -1) ? 'invisible' : 'visible')
 		. '.css')
-	.' " >' . "\n"
+	.' " />' . "\n"
 
 	// favicon.ico
 	. '<link rel="shortcut icon" href="'
 	. url_absolue(find_in_path('favicon.ico'))
-	. "\" >\n";
+	. "\" />\n";
 	$js = debut_javascript($connect_toutes_rubriques,
 			($GLOBALS['meta']["activer_statistiques"] != 'non'));
 
@@ -1674,16 +1674,16 @@ function envoi_link($nom_site_spip) {
 	$nom = entites_html($nom_site_spip);
 
 	$res .= "<link rel='alternate' type='application/rss+xml' title=\"$nom\" href='"
-			. generer_url_public('backend') . "' >\n";
+			. generer_url_public('backend') . "' />\n";
 	$res .= "<link rel='help' type='text/html' title=\""._T('icone_aide_ligne') . 
 			"\" href='"
 			. generer_url_ecrire('aide_index',"var_lang=$spip_lang")
-			."' >\n";
+			."' />\n";
 	if ($GLOBALS['meta']["activer_breves"] != "non")
 		$res .= "<link rel='alternate' type='application/rss+xml' title=\""
 			. $nom
 			. " ("._T("info_breves_03")
-			. ")\" href='" . generer_url_public('backend-breves') . "' >\n";
+			. ")\" href='" . generer_url_public('backend-breves') . "' />\n";
 
 	return $res . $js;
 }
@@ -1903,7 +1903,7 @@ function icone_bandeau_principal($texte, $lien, $fond, $rubrique_icone = "vide",
 	$class_select = ($sous_rubrique_icone == $sous_rubrique) ? " class='selection'" : '';
 
 	if (eregi("^javascript:",$lien)) {
-		$a_href = "\nonClick=\"$lien; return false;\" href='$lien_noscript' target='spip_aide'$class_select";
+		$a_href = "\nonclick=\"$lien; return false;\" href='$lien_noscript' target='spip_aide'$class_select";
 	}
 	else {
 		$a_href = "\nhref=\"$lien\"$class_select";
@@ -2033,7 +2033,7 @@ function icone($texte, $lien, $fond, $fonction="", $align="", $afficher='oui'){
 	$icone = "\n<table cellpadding='0' class='pointeur' cellspacing='0' border='0' width='$largeur'" .
 	  ((strlen($align) > 2) ? " align='$align' " : '') .
 	">\n<tr><td class='icone36$style' style='text-align:center;'><a
-	href='$lien'>$icone</a></td>\n</tr></table>";
+	href='$lien'>$icone</a></td></tr></table>";
 
 	if ($afficher == 'oui')
 		echo $icone;
@@ -2059,14 +2059,14 @@ function icone_horizontale($texte, $lien, $fond = "", $fonction = "", $echo = tr
 		if ($spip_display != 1) {
 			$retour .= "\n<table class='cellule-h-table' cellpadding='0' valign='middle'>"
 			. "\n<tr><td><a $javascript$lien class='cellule-h'>"
-			. "<div class='cell-i'>" ;
+			. "<span class='cell-i'>" ;
 			if ($fonction){
 				$retour .= http_img_pack($fonction, "", http_style_background($fond, "center center no-repeat"));
 			}
 			else {
 				$retour .= http_img_pack($fond, "", "");
 			}
-			$retour .= "</div></a></td>"
+			$retour .= "</span></a></td>"
 			. "\n<td class='cellule-h-lien'><a $javascript$lien class='cellule-h'>"
 			. $texte
 			. "</a></td></tr></table>\n";
@@ -2152,7 +2152,7 @@ function init_body($rubrique='accueil', $sous_rubrique='accueil', $onLoad='', $i
 
 	definir_barre_boutons();
 	if ($load = "$browser_verifForm$onLoad" . repercuter_gadgets($id_rubrique))
-		$load = " onLoad=\"$load\"";
+		$load = " onload=\"$load\"";
 
 	echo pipeline('body_prive',"<body ". _ATTRIBUTES_BODY
 		.$load
@@ -2660,12 +2660,10 @@ function debloquer_article($arg, $texte) {
 	  "</a>";
 }
 
-
 function meme_rubrique($id_rubrique, $id, $type, $order='date', $limit=30)
 {
 	global $spip_lang_right, $spip_lang_left, $options;
 
-spip_log("option mr $options");
 	if ($options != "avancees") return '';
 
 	$table = $type . 's';
@@ -2686,7 +2684,7 @@ spip_log("option mr $options");
 		. "' style='font-size: 10px;' href='"
 		  . generer_url_ecrire($table,"$key=$ze")
 		. "'>"
-		. "<div class='arial1' style='$style'><b>$numero$ze</b></div>"
+		. "<span class='arial1' style='$style'><b>$numero$ze</b></span>"
 		. typo($row['titre'])
 		. "</a>";
 	}
diff --git a/ecrire/inc/utils.php b/ecrire/inc/utils.php
index 74689eca68..6ab79809f7 100644
--- a/ecrire/inc/utils.php
+++ b/ecrire/inc/utils.php
@@ -971,7 +971,9 @@ function spip_initialisation() {
 	define('_AUTH_USER_FILE', '.htpasswd');
 	define('_SPIP_DUMP', 'dump@stamp@.xml');
 
-	define('_DOCTYPE_ECRIRE', "<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN' 'http://www.w3.org/TR/html4/loose.dtd'>\n");
+	define('_DOCTYPE_ECRIRE', 
+	       // "<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN' 'http://www.w3.org/TR/html4/loose.dtd'>\n");
+	       "<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>");
 
 	// L'adresse de base du site ; on peut mettre '' si la racine est geree par
 	// le script index.php
diff --git a/ecrire/index.php b/ecrire/index.php
index 77122fe804..bfe2efe3ba 100644
--- a/ecrire/index.php
+++ b/ecrire/index.php
@@ -154,7 +154,7 @@ link='" .  $couleurs_spip[$choix_couleur]['couleur_lien'] . "'
 vlink='" . $couleurs_spip[$choix_couleur]['couleur_lien_off'] ."'
 alink='" . $couleurs_spip[$choix_couleur]['couleur_lien_off'] ."'
 bgcolor='#f8f7f3' text='#000000' 
-topmargin='0' leftmargin='0' marginwidth='0' marginheight='0' frameborder='0'" .
+topmargin='0' leftmargin='0' marginwidth='0' marginheight='0'" .
 	($spip_lang_rtl ? " dir='rtl'" : ""));
 
 define('_TRANCHES', 10);
diff --git a/ecrire/public.php b/ecrire/public.php
index 4864237c86..8d144786ff 100644
--- a/ecrire/public.php
+++ b/ecrire/public.php
@@ -48,7 +48,7 @@ if (defined('_INC_PUBLIC')) {
 	if ($action = _request('action')) {
 		$var_f = charger_fonction($action, 'action');
 		$var_f();
-		if ($redirect) redirige_par_entete($redirect);
+		if ($redirect) redirige_par_entete(urldecode($redirect));
 		exit;
 	}
 
-- 
GitLab