From 540ca56a50be105048367f8151e32303e470b646 Mon Sep 17 00:00:00 2001
From: "Committo,Ergo:sum" <esj@rezo.net>
Date: Thu, 7 Dec 2006 15:56:26 +0000
Subject: [PATCH] =?UTF-8?q?Tache=20#587=20et=20conformit=C3=A9=20XHTML=20d?=
 =?UTF-8?q?u=20script=20naviguer.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ecrire/exec/admin_tech.php |   3 +-
 ecrire/exec/export_all.php | 152 +------------------------------
 ecrire/exec/naviguer.php   | 179 +++++++++++++++++--------------------
 3 files changed, 86 insertions(+), 248 deletions(-)

diff --git a/ecrire/exec/admin_tech.php b/ecrire/exec/admin_tech.php
index 72f8bb4b6b..550bf461b8 100644
--- a/ecrire/exec/admin_tech.php
+++ b/ecrire/exec/admin_tech.php
@@ -47,7 +47,8 @@ function exec_admin_tech_dist()
 		debut_gauche();
 		$dir_dump = determine_upload();
 	}
-	include_spip('exec/export_all');
+
+	include_spip('inc/export');
 	$file = joli_repertoire($dir_dump . export_nom_fichier_dump($dir_dump,false));
 	$zfile = joli_repertoire($dir_dump . export_nom_fichier_dump($dir_dump,true));
 	$dir_dump = joli_repertoire($dir_dump);
diff --git a/ecrire/exec/export_all.php b/ecrire/exec/export_all.php
index e620af6601..e509e9c247 100644
--- a/ecrire/exec/export_all.php
+++ b/ecrire/exec/export_all.php
@@ -20,6 +20,7 @@ include_spip('base/auxiliaires');
 include_spip('inc/indexation'); // pour la fonction primary_index_table 
 include_spip('inc/flock');
 include_spip('inc/actions');
+include_spip('inc/export');
 
 // NB: Ce fichier peut ajouter des tables (old-style)
 // donc il faut l'inclure "en globals"
@@ -57,16 +58,6 @@ if (!isset($EXPORT_tables_noexport)){
 }
 $GLOBALS['flag_ob_flush'] = function_exists('ob_flush');
 
-// http://doc.spip.org/@export_nom_fichier_dump
-function export_nom_fichier_dump($dir,$gz=true){
-	$archive = _SPIP_DUMP;
-	if ($gz) $archive .= '.gz';
-	$cpt=0;
-	$stamp = date('Ymd');
-	while ((file_exists($dir.($nom = str_replace('@stamp@',"_{$stamp}_".substr("00$cpt",-3),$archive))))&&($cpt<999))
-		$cpt++;
-	return $nom;
-}
 
 // http://doc.spip.org/@exec_export_all_dist
 function exec_export_all_dist()
@@ -264,145 +255,4 @@ function exec_export_all_dist()
 	install_fin_html();
 
 }
-
-// http://doc.spip.org/@ramasse_parties
-function ramasse_parties($archive, $gz, $partfile){
-	// a ameliorer par un preg_file
-	// si le rammassage est interrompu par un timeout, on perd des morceaux
-	$cpt=0;
-	while(file_exists($f = $partfile.".$cpt")){
-		$contenu = "";
-		if (lire_fichier ($f, $contenu))
-			if (!ecrire_fichier($archive,$contenu,false,false))
-			{
-				echo "<p>"._T('avis_erreur_sauvegarde', array('type'=>'.', 'id_objet'=>'. .'))."</p>\n";
-				exit;
-			}
-		unlink($f);
-		$cpt++;
-	}
-}
-
-//
-// Exportation generique d'objets (fichier ou retour de fonction)
-//
-// http://doc.spip.org/@export_objets
-function export_objets($table, $primary, $liens, $file = 0, $gz = false, $etape_actuelle="", $nom_etape="",$limit=0) {
-	static $etape_affichee=array();
-	static $table_fields=array();
-	$string='';
-
-	$status_dump = explode("::",$GLOBALS['meta']["status_dump"]);
-	$etape_en_cours = $status_dump[2];
-	$pos_in_table = $status_dump[3];
-	
-	if ($etape_en_cours < 1 OR $etape_en_cours == $etape_actuelle){
-
-		$result = spip_query("SELECT COUNT(*) FROM $table");
-		$row = spip_fetch_array($result,SPIP_NUM);
-		$total = $row[0];
-		$debut = $pos_in_table;
-		if (!isset($etape_affichee[$etape_actuelle])){
-			echo "<li><strong>$etape_actuelle-$nom_etape</strong>";
-			echo " : $total";
-			$etape_affichee[$etape_actuelle] = 1;
-			if ($limit<$total) echo "</li>";
-		}
-		if ($pos_in_table!=0)
-			echo "| ", $pos_in_table;
-		if ($GLOBALS['flag_ob_flush']) ob_flush();
-		flush();
-
-		if ($limit == 0) $limit=$total;
-		$result = spip_query("SELECT * FROM $table LIMIT $debut,$limit");
-#" LIMIT  $limit OFFSET $debut" # PG
-
-		if (!isset($table_fields[$table])){
-			$nfields = mysql_num_fields($result);
-			// Recuperer les noms des champs
-			for ($i = 0; $i < $nfields; ++$i) $table_fields[$table][$i] = mysql_field_name($result, $i);
-		}
-		else
-			$nfields = count($table_fields[$table]);
-
-		$string = build_while($file,$gz, $nfields, $pos_in_table, $result, $status_dump, $table, $table_fields[$table]);
-
-		if ($pos_in_table>=$total){
-			// etape suivante : 
-			echo " ok";
-			$status_dump[2] = $status_dump[2]+1;
-			$status_dump[3] = 0;
-		}
-		if ($file) {
-			// on se contente d'une ecriture en base pour aller plus vite
-			// a la relecture on en profitera pour mettre le cache a jour
-			ecrire_meta("status_dump", implode("::",$status_dump));
-			#lire_metas();
-			#ecrire_metas();
-		}
-		spip_free_result($result);
-		return array($string,$status_dump);
-	}
-	else if ($etape_actuelle < $etape_en_cours) {
-		if (!isset($etape_affichee[$etape_actuelle]))
-			echo "<li>", $etape_actuelle,'-',$nom_etape,"</li>";
-		if ($GLOBALS['flag_ob_flush']) ob_flush();
-		flush();
-	} else {
-		if (!isset($etape_affichee[$etape_actuelle]))
-			echo "<li> <font color='#999999'>",$etape_actuelle,'-',$nom_etape,'</font></li>';
-		if ($GLOBALS['flag_ob_flush']) ob_flush();
-		flush();
-	}
-	return array($string,$status_dump);
-}
-
-// Exporter les champs de la table
-
-// http://doc.spip.org/@build_while
-function build_while($file,$gz, $nfields, &$pos_in_table, $result, &$status_dump, $table, $fields) {
-	global $connect_toutes_rubriques ;
-	$string = '';
-	$begin = build_begin_tag($table);
-	$end = build_end_tag($table);
-	$all = $connect_toutes_rubriques || (!in_array('id_rubrique',$fields));
-	while ($row = spip_fetch_array($result,SPIP_ASSOC)) {
-		$item = '';
-		for ($i = 0; $i < $nfields; ++$i) {
-			$k = $fields[$i];
-			$item .= "<$k>" . text_to_xml($row[$k]) . "</$k>\n";
-		}
-		$status_dump[3] = $pos_in_table = $pos_in_table +1;
-		if ($all OR acces_rubrique($row['id_rubrique']))
-			$string .= "$begin$item$end";
-	}
-
-	if ($file) {
-		$_fputs = ($gz) ? gzputs : fputs;
-		$_fputs($file, $string);
-		fflush($file);
-		// on se contente d'une ecriture en base pour aller plus vite
-		// a la relecture on en profitera pour mettre le cache a jour
-		ecrire_meta("status_dump", implode("::",$status_dump));
-		$string = '';
-	}
-	return $string;
-}
-
-// http://doc.spip.org/@build_begin_tag
-function build_begin_tag($tag) {
-	return "<$tag>\n";
-}
-
-// http://doc.spip.org/@build_end_tag
-function build_end_tag($tag) {
-	return "</$tag>\n\n";
-}
-
-// Conversion texte -> xml (ajout d'entites)
-// http://doc.spip.org/@text_to_xml
-function text_to_xml($string) {
-	return str_replace('<', '&lt;', str_replace('&', '&amp;', $string));
-}
-
 ?>
diff --git a/ecrire/exec/naviguer.php b/ecrire/exec/naviguer.php
index 6c502c0067..17d2ef3d0c 100644
--- a/ecrire/exec/naviguer.php
+++ b/ecrire/exec/naviguer.php
@@ -94,24 +94,36 @@ function exec_naviguer_dist()
 	  }
 
 /// Mots-cles
-	    if ($id_rubrique > 0) {
+	if ($id_rubrique > 0) {
 	      $editer_mot = charger_fonction('editer_mot', 'inc');
-	      echo "\n<p>",
-		$editer_mot('rubrique', $id_rubrique,  $cherche_mot,  $select_groupe, $flag_editable);
-	    }
-
+	      echo $editer_mot('rubrique', $id_rubrique,  $cherche_mot,  $select_groupe, $flag_editable);
+	}
 
-	    if (strlen($texte) > 1) {
-	      echo "\n<p><div align='justify'><font size=3 face='Verdana,Arial,Sans,sans-serif'>", justifier(propre($texte)), "&nbsp;</font></div>";
-	    }
 
-	    langue_naviguer($id_rubrique, $id_parent, $flag_editable);
+	if (strlen($texte) > 1) {
+		echo "\n<div align='justify' style='font-size: 16px; font-face: Verdana,Arial,Sans,sans-serif'>", justifier(propre($texte)), "</div>";
+	}
+	
+	langue_naviguer($id_rubrique, $id_parent, $flag_editable);
 	    
-	    fin_cadre_relief();
+	fin_cadre_relief();
+
+	echo afficher_enfant_rub($id_rubrique, $flag_editable, false);
+
+	echo contenu_naviguer($id_rubrique, $id_parent, $ze_logo, $flag_editable);
+
+
+/// Documents associes a la rubrique
+	if ($id_rubrique > 0) {
 
-	    contenu_naviguer($id_rubrique, $id_parent, $ze_logo, $flag_editable);
+		echo naviguer_doc($id_rubrique, "rubrique", 'naviguer', $flag_editable);
+	}
+
+////// Supprimer cette rubrique (si vide)
 
-	    echo fin_page();
+	bouton_supprimer_naviguer($id_rubrique, $id_parent, $ze_logo, $flag_editable);
+
+	echo fin_page();
 }
 
 // http://doc.spip.org/@infos_naviguer
@@ -119,10 +131,10 @@ function infos_naviguer($id_rubrique, $statut)
 {
 	if ($id_rubrique > 0) {
 		debut_boite_info();
-		echo "<CENTER>";
-		echo "<FONT FACE='Verdana,Arial,Sans,sans-serif' SIZE=1><B>"._T('titre_numero_rubrique')."</B></FONT>";
-		echo "<BR><FONT FACE='Verdana,Arial,Sans,sans-serif' SIZE=6><B>$id_rubrique</B></FONT>";
-		echo "</CENTER>";
+		echo "<center>";
+		echo "<font face='Verdana,Arial,Sans,sans-serif' size='1'><b>"._T('titre_numero_rubrique')."</b></font>";
+		echo "<br /><font face='Verdana,Arial,Sans,sans-serif' size='6'><b>$id_rubrique</b></font>";
+		echo "</center>";
 	
 		voir_en_ligne ('rubrique', $id_rubrique, $statut);
 	
@@ -204,7 +216,7 @@ if ($id_rubrique>0 AND $GLOBALS['meta']['multi_rubriques'] == 'oui' AND ($GLOBAL
 		$langue_rubrique = $langue_parent;
 
 	debut_cadre_enfonce('langues-24.gif');
-	echo "<table border='0' cellspacing='0' cellpadding='3' width='100%' background=''><tr><td bgcolor='#eeeecc' class='serif2'>";
+	echo "<table border='0' cellspacing='0' cellpadding='3' width='100%'><tr><td bgcolor='#eeeecc' class='serif2'>";
 	echo bouton_block_invisible('languesrubrique');
 	echo "<b>";
 	echo _T('titre_langue_rubrique');
@@ -223,55 +235,45 @@ if ($id_rubrique>0 AND $GLOBALS['meta']['multi_rubriques'] == 'oui' AND ($GLOBAL
 }
 
 // http://doc.spip.org/@contenu_naviguer
-function contenu_naviguer($id_rubrique, $id_parent, $ze_logo,$flag_editable) {
-
-global $connect_statut, $connect_toutes_rubriques, $options, $spip_lang_left, $spip_lang_right;
-
-///// Afficher les rubriques 
-echo   afficher_enfant_rub($id_rubrique, $flag_editable, false);
-
-
-//echo "<div align='$spip_lang_left'>";
-
-
-//////////  Vos articles en cours de redaction
-/////////////////////////
+function contenu_naviguer($id_rubrique, $id_parent) {
 
-echo "<p />";
+	global  $connect_toutes_rubriques, $spip_lang_right;
 
 //
 // Verifier les boucles a mettre en relief
 //
 
-$relief = spip_num_rows(spip_query("SELECT id_article FROM spip_articles AS articles WHERE id_rubrique='$id_rubrique' AND statut='prop' LIMIT 1"));
+	$relief = spip_num_rows(spip_query("SELECT id_article FROM spip_articles AS articles WHERE id_rubrique='$id_rubrique' AND statut='prop' LIMIT 1"));
 
-if (!$relief) {
-	$relief = spip_num_rows(spip_query("SELECT id_breve FROM spip_breves WHERE id_rubrique='$id_rubrique' AND (statut='prepa' OR statut='prop') LIMIT 1"));
+	if (!$relief) {
+		$relief = spip_num_rows(spip_query("SELECT id_breve FROM spip_breves WHERE id_rubrique='$id_rubrique' AND (statut='prepa' OR statut='prop') LIMIT 1"));
  }
 
-if (!$relief AND $GLOBALS['meta']['activer_syndic'] != 'non') {
-	$relief = spip_num_rows(spip_query("SELECT id_syndic FROM spip_syndic WHERE id_rubrique='$id_rubrique' AND statut='prop' LIMIT 1"));
+	if (!$relief AND $GLOBALS['meta']['activer_syndic'] != 'non') {
+		$relief = spip_num_rows(spip_query("SELECT id_syndic FROM spip_syndic WHERE id_rubrique='$id_rubrique' AND statut='prop' LIMIT 1"));
  }
 
-if (!$relief AND $GLOBALS['meta']['activer_syndic'] != 'non' AND $connect_statut == '0minirezo' AND $connect_toutes_rubriques) {
-	$relief = spip_num_rows(spip_query("SELECT id_syndic FROM spip_syndic WHERE id_rubrique='$id_rubrique' AND (syndication='off' OR syndication='sus') AND statut='publie' LIMIT 1"));
- }
+	if (!$relief AND $GLOBALS['meta']['activer_syndic'] != 'non' AND $connect_toutes_rubriques) {
+		$relief = spip_num_rows(spip_query("SELECT id_syndic FROM spip_syndic WHERE id_rubrique='$id_rubrique' AND (syndication='off' OR syndication='sus') AND statut='publie' LIMIT 1"));
+	}
 
 
-if ($relief) {
-	echo "<p>";
-	debut_cadre_couleur();
-	echo "<div class='verdana2' style='color: black;'><b>"._T('texte_en_cours_validation')."</b></div><p>";
+	$res = '';
+
+	if ($relief) {
+
+	$res .= debut_cadre_couleur('',true);
+	$res .= "<div class='verdana2' style='color: black;'><b>"._T('texte_en_cours_validation')."</b></div>";
 
 	//
 	// Les articles a valider
 	//
-	echo afficher_articles(_T('info_articles_proposes'),	array('WHERE' => "id_rubrique='$id_rubrique' AND statut='prop'", 'ORDER BY' => "date DESC"));
+	$res .= afficher_articles(_T('info_articles_proposes'),	array('WHERE' => "id_rubrique='$id_rubrique' AND statut='prop'", 'ORDER BY' => "date DESC"));
 
 	//
 	// Les breves a valider
 	//
-	echo afficher_breves('<b>' . _T('info_breves_valider') . '</b>', array("FROM" => 'spip_breves', 'WHERE' => "id_rubrique='$id_rubrique' AND (statut='prepa' OR statut='prop')", 'ORDER BY' => "date_heure DESC"), true);
+	$res .= afficher_breves('<b>' . _T('info_breves_valider') . '</b>', array("FROM" => 'spip_breves', 'WHERE' => "id_rubrique='$id_rubrique' AND (statut='prepa' OR statut='prop')", 'ORDER BY' => "date_heure DESC"), true);
 
 
 	//
@@ -279,93 +281,78 @@ if ($relief) {
 	//
 	if ($GLOBALS['meta']['activer_sites'] != 'non') {
 		include_spip('inc/sites_voir');
-		echo afficher_sites('<b>' . _T('info_site_valider') . '</b>', array("FROM" => 'spip_syndic', 'WHERE' => "id_rubrique='$id_rubrique' AND statut='prop'", 'ORDER BY' => "nom_site"));
+		$res .= afficher_sites('<b>' . _T('info_site_valider') . '</b>', array("FROM" => 'spip_syndic', 'WHERE' => "id_rubrique='$id_rubrique' AND statut='prop'", 'ORDER BY' => "nom_site"));
 	}
 
 	//
 	// Les sites a probleme
 	//
-	if ($GLOBALS['meta']['activer_sites'] != 'non' AND $connect_statut == '0minirezo' AND $connect_toutes_rubriques) {
+	if ($GLOBALS['meta']['activer_sites'] != 'non' AND $connect_toutes_rubriques) {
 		include_spip('inc/sites_voir');
-		echo afficher_sites('<b>' . _T('avis_sites_syndiques_probleme') . '</b>', array('FROM' => 'spip_syndic', 'WHERE' => "id_rubrique='$id_rubrique' AND (syndication='off' OR syndication='sus') AND statut='publie'", 'ORDER BY' => "nom_site"));
+		$res .= afficher_sites('<b>' . _T('avis_sites_syndiques_probleme') . '</b>', array('FROM' => 'spip_syndic', 'WHERE' => "id_rubrique='$id_rubrique' AND (syndication='off' OR syndication='sus') AND statut='publie'", 'ORDER BY' => "nom_site"));
 	}
 
 	// Les articles syndiques en attente de validation
-	if ($id_rubrique == 0
-	AND $connect_statut == '0minirezo' AND $connect_toutes_rubriques) {
+	if ($id_rubrique == 0 AND $connect_toutes_rubriques) {
 		$cpt = spip_fetch_array(spip_query("SELECT COUNT(*) AS n FROM spip_syndic_articles WHERE statut='dispo'"));
 		if ($cpt = $cpt['n'])
-			echo "<br /><small><a href='",
-				generer_url_ecrire("sites_tous"),
-				"' style='color: black;'>",
-				$cpt,
-				" ",
-				_T('info_liens_syndiques_1'),
-				" ",
-				_T('info_liens_syndiques_2'),
+			$res .= "<br /><small><a href='" .
+				generer_url_ecrire("sites_tous") .
+				"' style='color: black;'>" .
+				$cpt .
+				" " .
+				_T('info_liens_syndiques_1') .
+				" " .
+				_T('info_liens_syndiques_2') .
 				"</a></small>";
 	}
 
-	fin_cadre_couleur();
-}
+	$res .= fin_cadre_couleur(true);
+	}
 
 //////////  Les articles en cours de redaction
 /////////////////////////
 
-	if ($connect_statut == "0minirezo" AND $options == 'avancees') {
-	  echo afficher_articles(_T('info_tous_articles_en_redaction'), array("WHERE" => "statut='prepa' AND id_rubrique='$id_rubrique'", 'ORDER BY' => "date DESC"));
-	}
+	  $res .= afficher_articles(_T('info_tous_articles_en_redaction'), array("WHERE" => "statut='prepa' AND id_rubrique='$id_rubrique'", 'ORDER BY' => "date DESC"));
 
 
 //////////  Les articles publies
 /////////////////////////
 
-	  echo afficher_articles(_T('info_tous_articles_presents'), array("WHERE" => "statut='publie' AND id_rubrique='$id_rubrique'", 'ORDER BY' => "date DESC"));
-
-
+	  $res .= afficher_articles(_T('info_tous_articles_presents'), array("WHERE" => "statut='publie' AND id_rubrique='$id_rubrique'", 'ORDER BY' => "date DESC"));
 
 	if ($id_rubrique > 0){
-	  echo "<div align='$spip_lang_right'>";
-	  icone(_T('icone_ecrire_article'), generer_url_ecrire("articles_edit","id_rubrique=$id_rubrique&new=oui"), "article-24.gif", "creer.gif");
-	  echo "</div><p>";
+	  $res .= "<div align='$spip_lang_right'>"
+	  . icone(_T('icone_ecrire_article'), generer_url_ecrire("articles_edit","id_rubrique=$id_rubrique&new=oui"), "article-24.gif", "creer.gif", '', 'non')
+	 . "</div>";
 	}
 
 //// Les breves
 
-	echo afficher_breves('<b>' . _T('icone_ecrire_nouvel_article') . '</b>', array("FROM" => 'spip_breves', 'WHERE' => "id_rubrique='$id_rubrique' AND statut != 'prop' AND statut != 'prepa'", 'ORDER BY' => "date_heure DESC"));
+	$res .= afficher_breves('<b>' . _T('icone_ecrire_nouvel_article') . '</b>', array("FROM" => 'spip_breves', 'WHERE' => "id_rubrique='$id_rubrique' AND statut != 'prop' AND statut != 'prepa'", 'ORDER BY' => "date_heure DESC"));
 
-	$activer_breves=$GLOBALS['meta']["activer_breves"];
 
-	if ($id_parent == "0" AND $id_rubrique != "0" AND $activer_breves!="non"){
-	  echo "<div align='$spip_lang_right'>";
-	  icone(_T('icone_nouvelle_breve'), generer_url_ecrire("breves_edit","id_rubrique=$id_rubrique&new=oui"), "breve-24.gif", "creer.gif");
-	  echo "</div><p>";
+	if ((!$id_parent) AND $id_rubrique AND $GLOBALS['meta']["activer_breves"]!="non"){
+	  $res .= "<br /><div align='$spip_lang_right'>"
+	  . icone(_T('icone_nouvelle_breve'), generer_url_ecrire("breves_edit","id_rubrique=$id_rubrique&new=oui"), "breve-24.gif", "creer.gif",'','non')
+	  . "</div>";
 	}
 
 //// Les sites references
 
 	if ($GLOBALS['meta']["activer_sites"] == 'oui') {
 		include_spip('inc/sites_voir');
-		echo afficher_sites('<b>' . _T('titre_sites_references_rubrique') . '</b>', array("FROM" => 'spip_syndic', 'WHERE' => "id_rubrique='$id_rubrique' AND statut!='refuse' AND statut != 'prop' AND syndication NOT IN ('off','sus')", 'ORDER BY' => 'nom_site'));
+		$res .= '<p>' . afficher_sites('<b>' . _T('titre_sites_references_rubrique') . '</b>', array("FROM" => 'spip_syndic', 'WHERE' => "id_rubrique='$id_rubrique' AND statut!='refuse' AND statut != 'prop' AND syndication NOT IN ('off','sus')", 'ORDER BY' => 'nom_site')) . '</p>';
 
-		if ($id_rubrique > 0 AND ($flag_editable OR $GLOBALS['meta']["proposer_sites"]> 0)) {
+		if ($id_rubrique > 0
+		AND ($GLOBALS['meta']["proposer_sites"]> 0 OR acces_rubrique($id_rubrique))) {
 	
-		echo "<div align='$spip_lang_right'>";
-		icone(_T('info_sites_referencer'), generer_url_ecrire('sites_edit', "id_rubrique=$id_rubrique&redirect=" . generer_url_retour('naviguer', "id_rubrique=$id_rubrique")), "site-24.gif", "creer.gif");
-		echo "</div><p>";
-	  }
-	}
-
-/// Documents associes a la rubrique
-	if ($id_rubrique > 0) {
-
-	echo naviguer_doc($id_rubrique, "rubrique", 'naviguer', $flag_editable);
+		$res .= "<br /><div align='$spip_lang_right'>"
+		. icone(_T('info_sites_referencer'), generer_url_ecrire('sites_edit', "id_rubrique=$id_rubrique&redirect=" . generer_url_retour('naviguer', "id_rubrique=$id_rubrique")), "site-24.gif", "creer.gif",'', 'non')
+		. "</div>";
+		}
 	}
-
-
-////// Supprimer cette rubrique (si vide)
-
-	bouton_supprimer_naviguer($id_rubrique, $id_parent, $ze_logo, $flag_editable);
+	return $res;
 }
 
 // http://doc.spip.org/@naviguer_doc
@@ -408,7 +395,7 @@ function montre_naviguer($id_rubrique, $titre, $descriptif, $logo, $flag_editabl
   global $spip_lang_right, $spip_lang_left;
 
   echo "\n<table cellpadding='0' cellspacing='0' border='0' width='100%'>";
-  echo "<tr width='100%'><td width='100%' valign='top'>";
+  echo "<tr><td width='100%' valign='top'>";
   gros_titre((!acces_restreint_rubrique($id_rubrique) ? '' :
 		http_img_pack("admin-12.gif",'', "width='12' height='12'",
 			      _T('info_administrer_rubrique'))) .
@@ -426,7 +413,7 @@ function montre_naviguer($id_rubrique, $titre, $descriptif, $logo, $flag_editabl
   if (strlen($descriptif) > 1) {
 	echo "<tr><td>\n";
 	echo "<div align='$spip_lang_left' style='padding: 5px; border: 1px dashed #aaaaaa;'>";
-	echo "<font size=2 face='Verdana,Arial,Sans,sans-serif'>";
+	echo "<font size='2' face='Verdana,Arial,Sans,sans-serif'>";
 	echo propre($descriptif."~");
 	echo "</font>";
 	echo "</div></td></tr>\n";
@@ -459,9 +446,9 @@ function bouton_supprimer_naviguer($id_rubrique, $id_parent, $ze_logo, $flag_edi
 {
 	if (($id_rubrique>0) AND tester_rubrique_vide($id_rubrique) AND $flag_editable) {
 
-		echo "<p><div align='center'>";
+		echo "<div align='center'>";
 		icone(_T('icone_supprimer_rubrique'), redirige_action_auteur('supprimer', "rubrique-$id_rubrique", "naviguer","id_rubrique=$id_parent"), $ze_logo, "supprimer.gif");
-		echo "</div><p>";
+		echo "</div>";
 	}
 }
 
-- 
GitLab