From 5d6814c4572100be6ebae4b738fbd4df21b35f99 Mon Sep 17 00:00:00 2001
From: Fil <fil@rezo.net>
Date: Sun, 1 Jan 2006 17:14:34 +0000
Subject: [PATCH] gestion auteurs multiples dans RSS (Minh Ha Duong)

---
 ecrire/inc_sites.php3 | 33 +++++++++++++++++++++++----------
 1 file changed, 23 insertions(+), 10 deletions(-)

diff --git a/ecrire/inc_sites.php3 b/ecrire/inc_sites.php3
index f2788cd21c..e247038aef 100644
--- a/ecrire/inc_sites.php3
+++ b/ecrire/inc_sites.php3
@@ -759,10 +759,17 @@ function analyser_backend($rss, $url_syndic='') {
 
 	// chercher auteur/lang dans le fil au cas ou les items n'en auraient pas
 	list($header) = preg_split(',<(item|entry)[:[:space:]>],', $rss, 2);
-	if (preg_match(',<((dc:)?(author|creator))>(.*)</\1>,Uims',$header,$regs)) {
-		$les_auteurs_du_site = trim($regs[4]);
-		if (preg_match(',<name>(.*)</name>,Uims', $les_auteurs_du_site, $regs))
-			$les_auteurs_du_site = $regs[1];
+	if (preg_match_all(
+	',<((dc:)?(author|creator))>(.*)</\1>,Uims',
+	$header, $regs, PREG_SET_ORDER)) {
+		$les_auteurs_du_site = array();
+		foreach ($regs as $reg) {
+			$nom = trim($reg[4]);
+			if (preg_match(',<name>(.*)</name>,Uims', $nom, $reg))
+				$nom = $reg[1];
+			$les_auteurs_du_site[] = $nom;
+		}
+		$les_auteurs_du_site = join(', ', $les_auteurs_du_site);
 	}
 	if (preg_match(',<((dc:|[^>]*xml:)lang(uage)?)>([^<>]+)</\1>,i',
 	$header, $match))
@@ -839,12 +846,18 @@ function analyser_backend($rss, $url_syndic='') {
 		AND $lastbuilddate < time())
 			$data['lastbuilddate'] = $lastbuilddate;
 
-		// Auteur
-		if (preg_match(',<((dc:)?(author|creator))>(.*)</\1>,Uims',$item,$regs)){
-			$data['lesauteurs'] = trim($regs[4]);
-			if (preg_match(',<name>(.*)</name>,Uims',
-			$data['lesauteurs'], $regs))
-				$data['lesauteurs'] = $regs[1];
+		// Auteur(s)
+		if (preg_match_all(
+		',<((dc:)?(author|creator))>(.*)</\1>,Uims',
+		$item, $regs, PREG_SET_ORDER)) {
+			$auteurs = array();
+			foreach ($regs as $reg) {
+				$nom = trim($reg[4]);
+				if (preg_match(',<name>(.*)</name>,Uims', $nom, $reg))
+					$nom = $reg[1];
+				$auteurs[] = $nom;
+			}
+			$data['lesauteurs'] = join(', ', $auteurs);
 		}
 		else
 			$data['lesauteurs'] = $les_auteurs_du_site;
-- 
GitLab