From 454498d8da57f14c3438939a92ca0351adc5f68b Mon Sep 17 00:00:00 2001
From: "Committo,Ergo:sum" <esj@rezo.net>
Date: Tue, 17 Oct 2006 16:14:46 +0000
Subject: [PATCH] =?UTF-8?q?La=20fonction=20formatant=20les=20informations?=
 =?UTF-8?q?=20sur=20un=20article,=20appel=C3=A9e=20notamment=20dans=20les?=
 =?UTF-8?q?=20boites=20de=2010=20tranches,=20devient=20surchargeable=20sou?=
 =?UTF-8?q?s=20le=20nom=20de=20inc=5Fformater=5Farticle.=20L'=C3=A9ph?=
 =?UTF-8?q?=C3=A9m=C3=A8re=20inc=5Fbouton=5Fauteur=20est=20renomm=C3=A9e?=
 =?UTF-8?q?=20inc=5Fformateur=5Fauteur=20pour=20unifier=20le=20nommage.=20?=
 =?UTF-8?q?Reste=20encore=20=C3=A0=20unifier=20les=20signatures,=20=C3=A7a?=
 =?UTF-8?q?=20viendra.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .gitattributes                                |   3 +-
 ecrire/exec/auteurs.php                       |   4 +-
 ecrire/exec/forum_envoi.php                   |   4 +-
 ecrire/inc/editer_auteurs.php                 |   4 +-
 ecrire/inc/formater_article.php               |  90 ++++++++++++++++
 ...{bouton_auteur.php => formater_auteur.php} |   2 +-
 ecrire/inc/presentation.php                   | 101 +++---------------
 7 files changed, 112 insertions(+), 96 deletions(-)
 create mode 100644 ecrire/inc/formater_article.php
 rename ecrire/inc/{bouton_auteur.php => formater_auteur.php} (98%)

diff --git a/.gitattributes b/.gitattributes
index fb936520e3..f181c425b2 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -430,7 +430,6 @@ ecrire/exec/virtualiser.php -text
 ecrire/inc/actions.php -text
 ecrire/inc/agenda.php -text
 ecrire/inc/article_select.php -text
-ecrire/inc/bouton_auteur.php -text
 ecrire/inc/boutons.php -text
 ecrire/inc/chercher_logo.php -text
 ecrire/inc/chercher_rubrique.php -text
@@ -445,6 +444,8 @@ ecrire/inc/editer_auteurs.php -text
 ecrire/inc/editer_mot.php -text
 ecrire/inc/envoyer_mail.php -text
 ecrire/inc/filtres_images.php -text
+ecrire/inc/formater_article.php -text
+ecrire/inc/formater_auteur.php -text
 ecrire/inc/forum_insert.php -text
 ecrire/inc/gadgets.php -text
 ecrire/inc/grouper_mots.php -text
diff --git a/ecrire/exec/auteurs.php b/ecrire/exec/auteurs.php
index d56663cd7a..d6e1568f68 100644
--- a/ecrire/exec/auteurs.php
+++ b/ecrire/exec/auteurs.php
@@ -291,10 +291,10 @@ function afficher_n_auteurs($auteurs) {
 	global $connect_statut, $options;
 
 	$res = '';
-	$bouton_auteur = charger_fonction('bouton_auteur', 'inc');
+	$formater_auteur = charger_fonction('formater_auteur', 'inc');
 	foreach ($auteurs as $row) {
 
-		list($s, $mail, $nom, $w, $p) = $bouton_auteur($row['id_auteur']);
+		list($s, $mail, $nom, $w, $p) = $formater_auteur($row['id_auteur']);
 		$res .= "\n<tr style='background-color: #eeeeee;'>"
 		. "\n<td style='border-top: 1px solid #cccccc;'>"
 		. $s
diff --git a/ecrire/exec/forum_envoi.php b/ecrire/exec/forum_envoi.php
index 8594988070..36b3a07dd0 100644
--- a/ecrire/exec/forum_envoi.php
+++ b/ecrire/exec/forum_envoi.php
@@ -93,8 +93,8 @@ if ($id_parent) {
 	echo "<span class='arial2'>$date_heure_parent</span> ";
 
 	if ($id_auteur_parent) {
-		$bouton_auteur = charger_fonction('bouton_auteur', 'inc');
-		list($s, $mail, $nom, $w, $p) = $bouton_auteur($id_auteur_parent);
+		$formater_auteur = charger_fonction('formater_auteur', 'inc');
+		list($s, $mail, $nom, $w, $p) = $formater_auteur($id_auteur_parent);
 		echo "$mail&nbsp;$nom";
 	} else 	echo " ", typo($auteur_parent);
 
diff --git a/ecrire/inc/editer_auteurs.php b/ecrire/inc/editer_auteurs.php
index a2c45ae22f..8e127e2626 100644
--- a/ecrire/inc/editer_auteurs.php
+++ b/ecrire/inc/editer_auteurs.php
@@ -174,9 +174,9 @@ function afficher_auteurs_articles($id_article, $flag_editable, $les_auteurs)
 
 	$table = array();
 
-	$bouton_auteur = charger_fonction('bouton_auteur', 'inc');
+	$formater_auteur = charger_fonction('formater_auteur', 'inc');
 	foreach($les_auteurs as $id_auteur) {
-		$vals = $bouton_auteur($id_auteur);
+		$vals = $formater_auteur($id_auteur);
 
 		if ($flag_editable AND ($connect_id_auteur != $id_auteur OR $connect_statut == '0minirezo') AND $options == 'avancees') {
 			$vals[] =  ajax_action_auteur('editer_auteurs', "$id_article,-$id_auteur",'articles', "id_article=$id_article", array(_T('lien_retirer_auteur')."&nbsp;". http_img_pack('croix-rouge.gif', "X", "width='7' height='7' border='0' align='middle'")));
diff --git a/ecrire/inc/formater_article.php b/ecrire/inc/formater_article.php
new file mode 100644
index 0000000000..ca25df0b8c
--- /dev/null
+++ b/ecrire/inc/formater_article.php
@@ -0,0 +1,90 @@
+<?php
+
+/***************************************************************************\
+ *  SPIP, Systeme de publication pour l'internet                           *
+ *                                                                         *
+ *  Copyright (c) 2001-2006                                                *
+ *  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.   *
+\***************************************************************************/
+
+if (!defined("_ECRIRE_INC_VERSION")) return;
+
+function inc_formater_article($id_article, $row, $afficher_auteurs, $afficher_langue, $langue_defaut)
+{
+	global $dir_lang, $options, $spip_lang_right, $spip_display;
+	static $pret = false;
+	static $chercher_logo, $img_admin, $bouton_auteur;
+
+	if (!$pret) {
+		$chercher_logo = ($spip_display != 1 AND $spip_display != 4 AND $GLOBALS['meta']['image_process'] != "non");
+		if ($chercher_logo) 
+			$chercher_logo = charger_fonction('chercher_logo', 'inc');
+		if ($afficher_auteurs)
+			$formater_auteur = charger_fonction('formater_auteur', 'inc');
+		$img_admin = http_img_pack("admin-12.gif", "", "width='12' height='12'", _T('titre_image_admin_article'));
+		$pret = true;
+	}
+
+	if ($chercher_logo) {
+		if ($logo = $chercher_logo($id_article, 'id_article', 'on')) {
+			list($fid, $dir, $nom, $format) = $logo;
+			$logo = ratio_image($fid, $nom, $format, 26, 20, "alt=''");
+		}
+	} else $logo ='';
+
+	$vals = array();
+
+	$titre = sinon($row['titre'], _T('ecrire:info_sans_titre'));
+	$id_rubrique = $row['id_rubrique'];
+	$date = $row['date'];
+	$statut = $row['statut'];
+	if ($lang = $row['lang']) changer_typo($lang);
+	$descriptif = $row['descriptif'];
+
+	$vals[] = puce_statut_article($id_article, $statut, $id_rubrique);
+
+	$vals[]= "<div>"
+	. (acces_restreint_rubrique($id_rubrique) ? $img_admin : '')
+	. "<a href='"
+	. generer_url_ecrire("articles","id_article=$id_article")
+	. "'"
+	. (!$descriptif ? '' : 
+	     (' title="'.attribut_html(typo($descriptif)).'"'))
+	. $dir_lang
+	. " style=\"display:block;\">"
+	. (!$logo ? '' :
+	   ("<div style='float: $spip_lang_right; margin-top: -2px; margin-bottom: -2px;'>" . $logo . "</div>"))
+	. typo($titre)
+	. (!($afficher_langue AND $lang != $langue_defaut) ? '' :
+	   (" <font size='1' color='#666666'$dir_lang>(".traduire_nom_langue($lang).")</font>"))
+	. (!$row['petition'] ? '' : (" <font size=1 color='red'>"._T('lien_petitions')."</font>"))
+
+	. "</a>"
+	. "</div>";
+	
+	if ($formater_auteur) {
+		$les_auteurs = "";
+		$result_auteurs = auteurs_article($id_article);
+
+		while ($row = spip_fetch_array($result_auteurs)) {
+			list($s, $mail, $nom, $w, $p) = $formater_auteur($row['id_auteur']);
+			$les_auteurs .= "$mail&nbsp;$nom, ";
+		}
+		$vals[] = substr($les_auteurs, 0, -2);
+	}
+
+	// La date
+	$vals[] = affdate_jourcourt($date);
+
+	// Le numero (moche)
+	if ($options == "avancees") {
+		$vals[] = "<b>"._T('info_numero_abbreviation')."$id_article</b>";
+	}
+
+	return $vals;
+}
+
+?>
diff --git a/ecrire/inc/bouton_auteur.php b/ecrire/inc/formater_auteur.php
similarity index 98%
rename from ecrire/inc/bouton_auteur.php
rename to ecrire/inc/formater_auteur.php
index f5ed2255aa..daadda8c91 100644
--- a/ecrire/inc/bouton_auteur.php
+++ b/ecrire/inc/formater_auteur.php
@@ -23,7 +23,7 @@ if (!defined("_ECRIRE_INC_VERSION")) return;
 // 5. le nombre d'articles publies
 //
 
-function inc_bouton_auteur_dist($id_auteur) {
+function inc_formater_auteur_dist($id_auteur) {
 
 	global $connect_id_auteur, $spip_lang_rtl;
 
diff --git a/ecrire/inc/presentation.php b/ecrire/inc/presentation.php
index 3ef10440f1..dbffd223a2 100644
--- a/ecrire/inc/presentation.php
+++ b/ecrire/inc/presentation.php
@@ -794,9 +794,6 @@ function afficher_articles($titre_table, $requete, $afficher_visites = false, $a
 			echo "<div id='$tmp_var'>";
 
 	}
-		
-	$voir_logo = ($spip_display != 1 AND $spip_display != 4 AND $GLOBALS['meta']['image_process'] != "non");
-		
 
 	//echo "<table width='100%' cellpadding='2' cellspacing='0' border='0'>";
 	echo afficher_liste_debut_tableau(), $tranches;
@@ -804,8 +801,11 @@ function afficher_articles($titre_table, $requete, $afficher_visites = false, $a
 	$result = spip_query("SELECT " . $requete['SELECT'] . " FROM " . $requete['FROM'] . ($requete['WHERE'] ? (' WHERE ' . $requete['WHERE']) : '') . ($requete['GROUP BY'] ? (' GROUP BY ' . $requete['GROUP BY']) : '') . ($requete['ORDER BY'] ? (' ORDER BY ' . $requete['ORDER BY']) : '') . " LIMIT " . ($deb_aff >= 0 ? "$deb_aff, $nb_aff" : ($requete['LIMIT'] ? $requete['LIMIT'] : "99999")));
 
 	$table = array();
+	$formater_article = charger_fonction('formater_article', 'inc');
 	while ($row = spip_fetch_array($result)) {
-		$table[]= afficher_articles_boucle($row, $tous_id, $afficher_auteurs, $afficher_langue, $langue_defaut, $voir_logo);
+	  	$id = $row['id_article'];
+		$tous_id[]= $id;
+		$table[]= $formater_article($id, $row, $afficher_auteurs, $afficher_langue, $langue_defaut);
 	}
 	spip_free_result($result);
 
@@ -843,81 +843,6 @@ function afficher_articles($titre_table, $requete, $afficher_visites = false, $a
 	return $tous_id;
 }
 
-// http://doc.spip.org/@afficher_articles_boucle
-function afficher_articles_boucle($row, &$tous_id, $afficher_auteurs, $afficher_langue, $langue_defaut, $voir_logo)
-{
-  global $connect_id_auteur, $dir_lang, $options, $spip_lang_right;
-
-	$vals = '';
-
-	$id_article = $row['id_article'];
-	$tous_id[] = $id_article;
-	$titre = sinon($row['titre'], _T('ecrire:info_sans_titre'));
-	$id_rubrique = $row['id_rubrique'];
-	$date = $row['date'];
-	$statut = $row['statut'];
-	if ($lang = $row['lang']) changer_typo($lang);
-	$descriptif = $row['descriptif'];
-	if ($descriptif) $descriptif = ' title="'.attribut_html(typo($descriptif)).'"';
-	$petition = $row['petition'];
-
-	// La petite puce de changement de statut
-	$vals[] = puce_statut_article($id_article, $statut, $id_rubrique);
-
-	// Le titre (et la langue)
-	$s = "<div>";
-
-	if (acces_restreint_rubrique($id_rubrique))
-		$s .= http_img_pack("admin-12.gif", "", "width='12' height='12'", _T('titre_image_admin_article'));
-
-	$s .= "<a href='" . generer_url_ecrire("articles","id_article=$id_article") .
-		"'$descriptif$dir_lang style=\"display:block;\">";
-
-	if ($voir_logo) {
-		$logo_f = charger_fonction('chercher_logo', 'inc');
-		if ($logo = $logo_f($id_article, 'id_article', 'on')) {
-			list($fid, $dir, $nom, $format) = $logo;
-			$logo = ratio_image($fid, $nom, $format, 26, 20, "alt=''");
-			if ($logo)
-				$s .= "<div style='float: $spip_lang_right; margin-top: -2px; margin-bottom: -2px;'>$logo</div>";
-		}
-	}
-
-	$s .= typo($titre);
-	if ($afficher_langue AND $lang != $langue_defaut)
-		$s .= " <font size='1' color='#666666'$dir_lang>(".traduire_nom_langue($lang).")</font>";
-	if ($petition) $s .= " <font size=1 color='red'>"._T('lien_petitions')."</font>";
-	$s .= "</a>";
-	$s .= "</div>";
-	
-	$vals[] = $s;
-
-
-	if ($afficher_auteurs) {
-		$les_auteurs = "";
-		$result_auteurs = auteurs_article($id_article);
-
-		$bouton_auteur = charger_fonction('bouton_auteur', 'inc');
-		while ($row = spip_fetch_array($result_auteurs)) {
-			list($s, $mail, $nom, $w, $p) = $bouton_auteur($row['id_auteur']);
-			$les_auteurs .= "$mail&nbsp;$nom, ";
-		}
-		$vals[] = substr($les_auteurs, 0, -2);
-	}
-
-	// La date
-	$vals[] = affdate_jourcourt($date);
-
-	// Le numero (moche)
-	if ($options == "avancees") {
-		$vals[] = "<b>"._T('info_numero_abbreviation')."$id_article</b>";
-	}
-	
-
-	return $vals;
-}
-
-
 // http://doc.spip.org/@afficher_articles_trad
 function afficher_articles_trad($titre_table, $requete, $afficher_visites = false, $afficher_auteurs = true,
 		$obligatoire = false, $afficher_cadre = true, $afficher_descriptif = true) {
@@ -1015,7 +940,8 @@ function afficher_articles_trad($titre_table, $requete, $afficher_visites = fals
 
 	$table = array();
 	while ($row = spip_fetch_array($result)) {
-		$table[]=afficher_articles_trad_boucle($row, $tous_id, $afficher_langue, $langue_defaut, $langues_site);
+	  	$tous_id[] = $row['id_article'];
+		$table[]=afficher_articles_trad_boucle($row, $afficher_langue, $langue_defaut, $langues_site);
 	}
 	spip_free_result($result);
 
@@ -1036,14 +962,13 @@ function afficher_articles_trad($titre_table, $requete, $afficher_visites = fals
 }
 
 // http://doc.spip.org/@afficher_articles_trad_boucle
-function afficher_articles_trad_boucle($row, &$tous_id, $afficher_langue, $langue_defaut, $langues_site)
+function afficher_articles_trad_boucle($row, $afficher_langue, $langue_defaut, $langues_site)
 {
 	global $dir_lang,  $spip_lang_right;
 
 	$vals = '';
 
 	$id_article = $row['id_article'];
-	$tous_id[] = $id_article;
 	$titre = sinon($row['titre'], _T('ecrire:info_sans_titre'));
 	$id_rubrique = $row['id_rubrique'];
 	$date = $row['date'];
@@ -1350,8 +1275,8 @@ function afficher_auteurs ($titre_table, $requete) {
 	$table = array();
 	while ($row = spip_fetch_array($result)) {
 		$tous_id[] = $row['id_auteur'];
-		$bouton_auteur = charger_fonction('bouton_auteur', 'inc');
-		$table[]= $bouton_auteur($row['id_auteur']);
+		$formater_auteur = charger_fonction('formater_auteur', 'inc');
+		$table[]= $formater_auteur($row['id_auteur']);
 	}
 	spip_free_result($result);
 	$largeurs = array(20, 20, 200, 20, 50);
@@ -1470,8 +1395,8 @@ function afficher_forum_thread($row, $controle_id_article, $compteur_forum, $nb_
 	$res .= "<span class='arial2'>". date_interface($date_heure) . "</span>&nbsp;&nbsp;";
 
 	if ($id_auteur) {
-		$bouton_auteur = charger_fonction('bouton_auteur', 'inc');
-		$res .= join(' ',$bouton_auteur($id_auteur));
+		$formater_auteur = charger_fonction('formater_auteur', 'inc');
+		$res .= join(' ',$formater_auteur($id_auteur));
 	} else if ($email_auteur)
 		$res .= "<a href='mailto:$email_auteur'>".typo($auteur)."</a>";
 	else	$res .= typo($auteur);
@@ -2358,10 +2283,10 @@ function auteurs_recemment_connectes()
 	$result_auteurs = spip_query("SELECT id_auteur FROM spip_auteurs WHERE id_auteur!=$connect_id_auteur AND en_ligne>DATE_SUB(NOW(),INTERVAL 15 MINUTE) AND statut IN ('0minirezo','1comite')");
 
 	if (spip_num_rows($result_auteurs)) {
-		$bouton_auteur = charger_fonction('bouton_auteur', 'inc');
+		$formater_auteur = charger_fonction('formater_auteur', 'inc');
 		$res = "<b>"._T('info_en_ligne'). "&nbsp;</b>";
 		while ($row = spip_fetch_array($result_auteurs)) {
-			list($s, $mail, $nom, $w, $p) = $bouton_auteur($row['id_auteur']);
+			list($s, $mail, $nom, $w, $p) = $formater_auteur($row['id_auteur']);
 			$res .= "$mail&nbsp;$nom, ";
 		}
 		$res = substr($res,0,-2);
-- 
GitLab