From 55e79d738552b656cd51f5d13c7831f4653f1804 Mon Sep 17 00:00:00 2001
From: "Committo,Ergo:sum" <esj@rezo.net>
Date: Thu, 12 Oct 2006 15:30:55 +0000
Subject: [PATCH] =?UTF-8?q?P=C3=A9touille=20graphique=20dans=20un=20attrib?=
 =?UTF-8?q?ut=20Title=20ayant=20une=20apostrophe;=20non=20conformit=C3=A9?=
 =?UTF-8?q?=20XHTML;=20d=C3=A9coupage=20fonctionnel=20empechant=20les=20su?=
 =?UTF-8?q?rcharges=20de=20partager=20le=20code.=20La=20routine=20quoi.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ecrire/exec/auteurs.php | 156 ++++++++++++++++++++--------------------
 1 file changed, 79 insertions(+), 77 deletions(-)

diff --git a/ecrire/exec/auteurs.php b/ecrire/exec/auteurs.php
index 93525d54e8..5fb3a7544b 100644
--- a/ecrire/exec/auteurs.php
+++ b/ecrire/exec/auteurs.php
@@ -14,67 +14,67 @@ if (!defined("_ECRIRE_INC_VERSION")) return;
 
 include_spip('inc/presentation');
 
-//
-// Lire les auteurs qui nous interessent
-// et memoriser la liste des lettres initiales
-//
-
 // http://doc.spip.org/@exec_auteurs_dist
 function exec_auteurs_dist()
 {
-  global  $debut, $tri, $visiteurs;
-
-if (!$tri) $tri='nom'; else $tri = preg_replace('/["\'?=&<>]/', '', $tri);
-$debut = intval($debut);
-$result = requete_auteurs($tri, $visiteurs);
-$nombre_auteurs = spip_num_rows($result);
-$max_par_page = 30;
-$debut = intval($debut);
-if ($debut > $nombre_auteurs - $max_par_page)
-	$debut = max(0,$nombre_auteurs - $max_par_page);
-
-$i = 0;
-$auteurs=$lettre=array();
-$lettres_nombre_auteurs =0;
-$lettre_prec ="";
-
-while ($auteur = spip_fetch_array($result)) {
-	if ($i>=$debut AND $i<$debut+$max_par_page) {
-		if ($auteur['statut'] == '0minirezo')
-			$auteur['restreint'] = spip_num_rows(spip_query("SELECT id_auteur FROM spip_auteurs_rubriques WHERE id_auteur=".$auteur['id_auteur']));
-			$auteurs[] = $auteur;
-	}
-	$i++;
+	global  $visiteurs;
 
-	if ($tri == 'nom') {
-		$premiere_lettre = strtoupper(spip_substr(extraire_multi($auteur['nom']),0,1));
-		if ($premiere_lettre != $lettre_prec) {
-			$lettre[$premiere_lettre] = $lettres_nombre_auteurs;
-		}
-		$lettres_nombre_auteurs ++;
-		$lettre_prec = $premiere_lettre;
-	}
- }
+	$tri = preg_replace('/\W/', '', _request('tri'));
+	if (!$tri) $tri='nom'; 
+
+	$result = requete_auteurs($tri, $visiteurs);
+	$nombre_auteurs = spip_num_rows($result);
+	$max_par_page = 30;
+	$debut = intval(_request('debut'));
+	if ($debut > $nombre_auteurs - $max_par_page)
+		$debut = max(0,$nombre_auteurs - $max_par_page);
+
+	list($auteurs, $lettre)= lettres_d_auteurs($result, $debut, $max_par_page, $tri);
+
+	$res = auteurs_tranches(afficher_n_auteurs($auteurs), $debut, $lettre, $tri, $visiteurs, $max_par_page, $nombre_auteurs);
 
- $res = auteurs_tranches($auteurs, $debut, $lettre, $tri, $visiteurs, $max_par_page, $nombre_auteurs);
+	if (_request('var_ajaxcharset')) ajax_retour($res);
 
- if (_request('var_ajaxcharset')) ajax_retour($res);
+	pipeline('exec_init',array('args'=>array('exec'=>'auteurs'),'data'=>''));
 
-  pipeline('exec_init',array('args'=>array('exec'=>'auteurs'),'data'=>''));
+	bandeau_auteurs($auteurs, $debut, $tri, $visiteurs, $max_par_page, $nombre_auteurs);
 
-  bandeau_auteurs($auteurs, $debut, $lettre, $tri, $visiteurs, $max_par_page, $nombre_auteurs);
+	echo "<div id='auteurs'>", $res, "</div>", fin_page();
+}
+
+function lettres_d_auteurs($query, $debut, $max_par_page, $tri)
+{
+	$auteurs = $lettre = array();
+	$lettres_nombre_auteurs =0;
+	$lettre_prec ="";
+	$i = 0;
+	while ($auteur = spip_fetch_array($query)) {
+		if ($i>=$debut AND $i<$debut+$max_par_page) {
+			if ($auteur['statut'] == '0minirezo')
+				$auteur['restreint'] = spip_num_rows(spip_query("SELECT id_auteur FROM spip_auteurs_rubriques WHERE id_auteur=".$auteur['id_auteur']));
+			$auteurs[] = $auteur;
+		}
+		$i++;
 
-  echo "<div id='auteurs'>$res</div>";
+		if ($tri == 'nom') {
+			$premiere_lettre = strtoupper(spip_substr(extraire_multi($auteur['nom']),0,1));
+			if ($premiere_lettre != $lettre_prec) {
+				$lettre[$premiere_lettre] = $lettres_nombre_auteurs;
+			}
+			$lettres_nombre_auteurs ++;
+			$lettre_prec = $premiere_lettre;
+		}
+	}
 
-  echo fin_page();
+	return array($auteurs, $lettre);
 }
 
+
 // http://doc.spip.org/@affiche_auteurs
-function bandeau_auteurs($auteurs, $debut, $lettre, $tri, $visiteurs, $max_par_page, $nombre_auteurs)
+function bandeau_auteurs($auteurs, $debut, $tri, $visiteurs, $max_par_page, $nombre_auteurs)
 {
   global $options, $spip_lang_right, $connect_id_auteur,   $connect_statut,   $connect_toutes_rubriques;
 
-
   if ($tri=='nom') $s = _T('info_par_nom');
   if ($tri=='statut') $s = _T('info_par_statut');
   if ($tri=='nombre') $s = _T('info_par_nombre_articles');
@@ -91,12 +91,12 @@ function bandeau_auteurs($auteurs, $debut, $lettre, $tri, $visiteurs, $max_par_p
 
  debut_boite_info();
  if ($visiteurs)
-	echo "<p class='arial1'>"._T('info_gauche_visiteurs_enregistres');
+   echo "\n<p class='arial1'>"._T('info_gauche_visiteurs_enregistres'), '</p>';
  else {
-	echo "<p class='arial1'>"._T('info_gauche_auteurs');
+	echo "\n<p class='arial1'>"._T('info_gauche_auteurs'), '</p>';
 
 	if ($connect_statut == '0minirezo')
-		echo '<br>'. _T('info_gauche_auteurs_exterieurs');
+		echo '\n<br />'. _T('info_gauche_auteurs_exterieurs');
  }
  fin_boite_info();
 
@@ -124,32 +124,34 @@ function bandeau_auteurs($auteurs, $debut, $lettre, $tri, $visiteurs, $max_par_p
 	echo pipeline('affiche_droite',array('args'=>array('exec'=>'auteurs'),'data'=>''));
 	debut_droite();
 
-	echo "<br>";
+	echo "\n<br />";
 	if ($visiteurs)
 		gros_titre(_T('info_visiteurs'));
 	else
 		gros_titre(_T('info_auteurs'));
-	echo "<p>";
+	echo "\n<br />";
 }
 
 function auteurs_tranches($auteurs, $debut, $lettre, $tri, $visiteurs, $max_par_page, $nombre_auteurs)
 {
 	global $options, $spip_lang_right;
 
-	$res ="<TABLE BORDER='0' CELLPADDING='2' CELLSPACING='0' WIDTH='100%' class='arial2' style='border: 1px solid #aaaaaa;'>\n"
-	. "<tr bgcolor='#DBE1C5'>"
-	. "<td width='20'>";
+	$res ="\n<tr bgcolor='#DBE1C5'>"
+	. "\n<td width='20'>";
+
 	if ($tri=='statut')
   		$res .= http_img_pack('admin-12.gif','', "border='0'");
 	else {
 	  $t =  _T('lien_trier_statut');
 	  $res .= auteurs_href(http_img_pack('admin-12.gif', $t, "border='0'"),'tri=statut', " title=\"$t\"");
 	}
+
 	$res .= "</td><td>";
+
 	if ($tri == '' OR $tri=='nom')
-			$res .= '<b>'._T('info_nom').'</b>';
+		$res .= '<b>'._T('info_nom').'</b>';
 	else
-	  $res .= auteurs_href(_T('info_nom'), "tri=nom", " title='"._T('lien_trier_nom'). "'");
+		$res .= auteurs_href(_T('info_nom'), "tri=nom", " title='"._T('lien_trier_nom'). "'");
 
 	if ($options == 'avancees')
 	 	$res .= "</td><td colspan='2'>"._T('info_contact');
@@ -160,12 +162,13 @@ function auteurs_tranches($auteurs, $debut, $lettre, $tri, $visiteurs, $max_par_
 		if ($tri=='nombre')
 			$res .= '<b>'._T('info_articles').'</b>';
 		else
-			$res .= auteurs_href(_T('info_articles_2'), "tri=nombre", " title='"._T('lien_trier_nombre_articles'). "'");
+			$res .= auteurs_href(_T('info_articles_2'), "tri=nombre", " title=\""._T('lien_trier_nombre_articles'). '"');
 	} else $visiteurs = '&visiteurs=oui';
+
 	$res .= "</td></tr>\n";
 
 	if ($nombre_auteurs > $max_par_page) {
-		$res .= "<tr bgcolor='white'><td class='arial1' colspan='".($options == 'avancees' ? 5 : 3)."'>";
+		$res .= "\n<tr bgcolor='white'><td class='arial1' colspan='".($options == 'avancees' ? 5 : 3)."'>";
 
 		for ($j=0; $j < $nombre_auteurs; $j+=$max_par_page) {
 			if ($j > 0) 	$res .= " | ";
@@ -183,7 +186,7 @@ function auteurs_tranches($auteurs, $debut, $lettre, $tri, $visiteurs, $max_par_
 		$res .= "</td></tr>\n";
 
 		if ($tri == 'nom' AND $options == 'avancees') {
-			$res .= "<tr bgcolor='white'><td class='arial11' colspan='5'>";
+			$res .= "\n<tr bgcolor='white'><td class='arial11' colspan='5'>";
 			foreach ($lettre as $key => $val) {
 				if ($val == $debut)
 					$res .= "<b>$key</b>\n";
@@ -192,33 +195,32 @@ function auteurs_tranches($auteurs, $debut, $lettre, $tri, $visiteurs, $max_par_
 			}
 			$res .= "</td></tr>\n";
 		}
-		$res .= "<tr height='5'></tr>";
 	}
 
-	$res .= afficher_n_auteurs($auteurs)
-	. "</table>\n"
-	. "<a name='bas'>"
-	. "<table width='100%' border='0'>";
-
+	$nav = '';
 	$debut_suivant = $debut + $max_par_page;
 	if ($debut_suivant < $nombre_auteurs OR $debut > 0) {
-		$res .= "<tr height='10'></tr>"
-		. "<tr bgcolor='white'><td align='left'>";
+		$nav = "\n<table id='bas' width='100%' border='0'>"
+		. "\n<tr bgcolor='white'><td align='left'>";
 
 		if ($debut > 0) {
 			$debut_prec = max($debut - $max_par_page, 0);
-			$res .= auteurs_href('&lt;&lt;&lt;',"tri=$tri&debut=$debut_prec$visiteurs");
+			$nav .= auteurs_href('&lt;&lt;&lt;',"tri=$tri&debut=$debut_prec$visiteurs");
 		}
-		$res .= "</td><td style='text-align: $spip_lang_right'>";
+		$nav .= "</td><td style='text-align: $spip_lang_right'>";
 		if ($debut_suivant < $nombre_auteurs) {
-			$res .= auteurs_href('&gt;&gt;&gt;',"tri=$tri&debut=$debut_suivant$visiteurs");
+			$nav .= auteurs_href('&gt;&gt;&gt;',"tri=$tri&debut=$debut_suivant$visiteurs");
 		}
-		$res .= "</td></tr>\n";
+		$nav .= "</td></tr></table>\n";
 	}
 
-	$res .= "</table>\n";
-
-	return 	debut_cadre_relief('auteur-24.gif',true) . $res . fin_cadre_relief(true);
+	return 	debut_cadre_relief('auteur-24.gif',true)
+	. "\n<table border='0' cellpadding='2' cellspacing='0' width='100%' class='arial2' style='border: 1px solid #aaaaaa;'>\n"
+	. $res
+	. $auteurs
+	. "</table>\n<br />"
+	.  $nav
+	. fin_cadre_relief(true);
 }
 
 function auteurs_href($clic, $args='', $att='')
@@ -293,10 +295,10 @@ function afficher_n_auteurs($auteurs) {
 	$res = '';
 	foreach ($auteurs as $row) {
 
-		$res .= "<tr style='background-color: #eeeeee;'>";
+		$res .= "\n<tr style='background-color: #eeeeee;'>";
 
 	// statut auteur
-		$res .= "<td style='border-top: 1px solid #cccccc;'>";
+		$res .= "\n<td style='border-top: 1px solid #cccccc;'>";
 		$res .= bonhomme_statut($row);
 
 	// nom
@@ -319,12 +321,12 @@ function afficher_n_auteurs($auteurs) {
 				$res .= bouton_imessage($row['id_auteur'],"force")."&nbsp;";
 			if ($connect_statut=="0minirezo")
 				if (strlen($row['email'])>3)
-					$res .= "<A HREF='mailto:".$row['email']."'>"._T('lien_email')."</A>";
+					$res .= "<a href='mailto:".$row['email']."'>"._T('lien_email')."</a>";
 				else
 					$res .= "&nbsp;";
 
 			if (strlen($row['url_site'])>3)
-				$res .= "</td><td class='arial1' style='border-top: 1px solid #cccccc;'><A HREF='".$row['url_site']."'>"._T('lien_site')."</A>";
+				$res .= "</td><td class='arial1' style='border-top: 1px solid #cccccc;'><a href='".$row['url_site']."'>"._T('lien_site')."</a>";
 			else
 				$res .= "</td><td style='border-top: 1px solid #cccccc;'>&nbsp;";
 		}
-- 
GitLab