Index: /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/abonnement.html
===================================================================
--- /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/abonnement.html	(revision 90)
+++ /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/abonnement.html	(revision 90)
@@ -0,0 +1,70 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="#LANG" lang="#LANG">
+<head>
+	<title>#NOM_SITE_SPIP</title>
+	<meta http-equiv='Content-Type' content='text/html; charset=#CHARSET' />
+	<style type="text/css">
+	<!--
+	
+	body {
+		color:#000000;
+		background-color:#F5F5F5;
+		font-family:sans-serif;
+	}
+	
+	
+	.cadre {
+		/*border: 1px #000000 solid;*/
+		background-color:#FFFFFF;
+	        text-align: justify;
+	        width:500px;
+	        padding: 10px;
+	        margin-left: auto;
+	        margin-right: auto;
+	        margin-bottom: 10px;
+		-moz-border-radius: 6px;
+		border-radius: 6px;
+	}
+	
+	h1 {
+	 font-size: 150%;
+	 text-decoration: underline ;
+	
+	}
+	
+	.bloc {
+	 margin-top: 10px;
+	 padding: 10px;
+	 text-align: center;
+	}
+	
+	.cdt{
+	  font-size:10px;
+	  text-align:center;
+	  margin-top:10px
+	}
+	
+	-->
+	</style>
+</head>
+<body dir="#LANG_DIR">
+		
+	<div class='bloc'>
+		<h1>#NOM_SITE_SPIP</h1>
+		
+
+		
+		<div class='cadre'>
+			
+			[(#ENV{d}|?{'',' '})
+			#FORMULAIRE_ABONNEMENT
+			<br />
+			]
+			
+			#FORMULAIRE_MODIF_ABONNEMENT
+		</div>
+		<p style="text-align:center"><a href='#URL_SITE_SPIP'><:pass_retour_public:></a></p>
+		<div class='cdt'><:spiplistes:abonnement_cdt:></div>
+	</div>
+</body>
+</html>
Index: /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/action/spiplistes_changer_statut_abonne.php
===================================================================
--- /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/action/spiplistes_changer_statut_abonne.php	(revision 90)
+++ /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/action/spiplistes_changer_statut_abonne.php	(revision 90)
@@ -0,0 +1,55 @@
+<?php
+if (!defined("_ECRIRE_INC_VERSION")) return;
+
+include_spip('inc/autoriser');
+
+function action_spiplistes_changer_statut_abonne_dist()
+{
+	$securiser_action = charger_fonction('securiser_action', 'inc');
+	$arg = $securiser_action();
+	$redirect = urldecode(_request('redirect'));
+
+	$arg = explode('-',$arg);
+	$id_auteur = $arg[0];
+	$action = $arg[1];
+	
+	if ($action=='format'){
+		//changer de statut
+		$statut = _request('statut');
+		if (autoriser('statutabonement','auteur',$id_auteur))
+		if(($statut=='html') OR ($statut=='texte') OR ($statut=='non')){
+			$res = spip_query("SELECT id_auteur FROM spip_auteurs_elargis WHERE id_auteur="._q($id_auteur));
+			if (spip_num_rows($res))
+				spip_query("UPDATE spip_auteurs_elargis SET `spip_listes_format`="._q($statut)." WHERE id_auteur="._q($id_auteur));
+			else
+				spip_query("INSERT INTO spip_auteurs_elargis (id_auteur,`spip_listes_format`) VALUES ("._q($id_auteur).","._q($statut).")");		
+		}
+	}
+	if ($action=='listeabo'){
+		//changer de statut
+		$id_auteur = _request('id_auteur');
+		if ($id_auteur && ($id_liste = $arg[2]) 
+			&& autoriser('abonnerauteur','liste',$id_liste,NULL,array('id_auteur'=>$id_auteur))) {
+			$result=spip_query("DELETE FROM spip_auteurs_listes WHERE id_auteur="._q($id_auteur)." AND id_liste="._q($id_liste));
+			$result=spip_query("INSERT INTO spip_auteurs_listes (id_auteur,id_liste) VALUES ("._q($id_auteur).","._q($id_liste).")");
+			//attribuer un format de reception si besoin (ancien auteur)
+			$abo = spip_fetch_array(spip_query("SELECT `spip_listes_format` FROM `spip_auteurs_elargis` WHERE `id_auteur`='$id_auteur'")) ;		
+			if(!$abo){
+			$ok = spip_query("UPDATE `spip_auteurs_elargis` SET `spip_listes_format`='html' WHERE id_auteur="._q($id_auteur));
+			}
+									
+		}
+	}
+	if ($action=='listedesabo'){
+		if ($id_liste = $arg[2])
+			//if (autoriser())
+			if (autoriser('desabonnerauteur','liste',$id_liste,NULL,array('id_auteur'=>$id_auteur)))
+				spip_query("DELETE FROM spip_auteurs_listes WHERE id_auteur="._q($id_auteur)." AND id_liste="._q($id_liste));
+	}
+	
+	if ($redirect){
+		redirige_par_entete(str_replace("&amp;","&",$redirect)."#abo$id_auteur");
+	}
+}
+
+?>
Index: /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/action/spiplistes_envoi_lot.php
===================================================================
--- /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/action/spiplistes_envoi_lot.php	(revision 90)
+++ /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/action/spiplistes_envoi_lot.php	(revision 90)
@@ -0,0 +1,22 @@
+<?php
+if (!defined("_ECRIRE_INC_VERSION")) return;
+
+include_spip('inc/actions');
+function action_spiplistes_envoi_lot_dist()
+{
+	$securiser_action = charger_fonction('securiser_action', 'inc');
+	$securiser_action();
+
+	//changer de statut
+	// envoi d'un lot par la meleuse
+	include_spip('inc/spiplistes_meleuse');
+	
+	// compter les mail restant a envoyer pour l'affichage
+	$res = spip_query("SELECT COUNT(a.id_auteur) AS n FROM spip_auteurs_courriers AS a JOIN spip_courriers AS c ON c.id_courrier=a.id_courrier WHERE c.statut='encour'");
+	$n = 0;
+	if ($row = spip_fetch_array($res))
+		$n = $row['n'];
+	ajax_retour($n);
+}
+
+?>
Index: /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/action/spiplistes_supprimer_abonne.php
===================================================================
--- /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/action/spiplistes_supprimer_abonne.php	(revision 90)
+++ /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/action/spiplistes_supprimer_abonne.php	(revision 90)
@@ -0,0 +1,30 @@
+<?php
+if (!defined("_ECRIRE_INC_VERSION")) return;
+
+include_spip('inc/autoriser');
+function action_spiplistes_supprimer_abonne_dist()
+{
+	$securiser_action = charger_fonction('securiser_action', 'inc');
+	$id_auteur = $securiser_action();
+	$redirect = urldecode(_request('redirect'));
+
+	//changer de statut
+	if (autoriser('supprimer','auteur',$id_auteur)){
+		$result = spip_query("SELECT * FROM spip_auteurs WHERE id_auteur="._q($id_auteur));
+		if ($row = spip_fetch_array($result)) {
+			$id_auteur=$row['id_auteur'];
+			$statut=$row['statut'];
+	
+			if($statut=='6forum'){
+				spip_query("DELETE FROM spip_auteurs_listes WHERE id_auteur="._q($id_auteur));
+				spip_query("DELETE FROM spip_auteurs WHERE id_auteur="._q($id_auteur));
+				spip_query("DELETE FROM `spip_auteurs_elargis` WHERE id_auteur="._q($id_auteur));
+			}
+		}
+	}	
+	if ($redirect){
+		redirige_par_entete(str_replace("&amp;","&",$redirect));
+	}
+}
+
+?>
Index: /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/balise/formulaire_abonnement.php
===================================================================
--- /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/balise/formulaire_abonnement.php	(revision 90)
+++ /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/balise/formulaire_abonnement.php	(revision 90)
@@ -0,0 +1,379 @@
+<?php
+
+if (!defined("_ECRIRE_INC_VERSION")) return;	#securite
+
+include_spip('base/abstract_sql');
+
+// Balise independante du contexte
+
+
+function balise_FORMULAIRE_ABONNEMENT ($p) {
+	return calculer_balise_dynamique($p, 'FORMULAIRE_ABONNEMENT', array('id_liste'));
+}
+
+// args[0] indique une liste, mais ne sert pas encore
+// args[1] indique un eventuel squelette alternatif
+// [(#FORMULAIRE_ABONNEMENT{mon_squelette})]
+// un cas particulier est :
+// [(#FORMULAIRE_ABONNEMENT{listeX})]
+// qui permet d'afficher le formulaire d'abonnement a la liste numero X
+
+function balise_FORMULAIRE_ABONNEMENT_stat($args, $filtres) {
+	if(!$args[1]) $args[1]='formulaire_abonnement';
+	preg_match_all("/liste([0-9]+)/x",
+               $args[1], $matches);
+
+	if($id_liste=intval($matches[1][0])) {
+	$args[1]='formulaire_abonnement_une_liste';
+	$args[0]=$id_liste;
+	}
+	 return array($args[0],$args[1]);}
+
+// Si inscriptions pas autorisees, retourner une chaine d'avertissement
+// Sinon inclusion du squelette
+// Si pas de nom ou pas de mail valide, premier appel rien d'autre a faire
+// Autrement 2e appel, envoyer un mail et le squelette ne produira pas de
+// formulaire.
+
+
+function balise_FORMULAIRE_ABONNEMENT_dyn($id_liste, $formulaire) {
+
+include_spip ("inc/meta");
+include_spip ("inc/session");
+include_spip ("inc/filtres");
+include_spip ("inc/texte");
+include_spip ("inc/meta");
+include_spip ("inc/mail");
+include_spip ("inc/acces");
+	
+	
+//recuperation des variables utiles
+$oubli_pass = _request('oubli_pass');
+$email_oubli = _request('email_oubli');
+$type = _request('type');
+$desabo = _request('desabo');
+
+// recuperation de la config
+	
+$acces_abonne = lire_meta('abonnement_config');
+($acces_abonne == 'membre') ? $acces_membres = 'oui' : $acces_membres = 'non';
+	
+// aller chercher le formulaire html qui va bien				
+$formulaire = "formulaires/".$formulaire ;		
+		
+// code inscription au site ou/et  a la lettre d'info	
+	
+$inscriptions_ecrire = (lire_meta("accepter_inscriptions") == "oui") ;
+$inscriptions_publiques = (lire_meta('accepter_visiteurs') == "oui");
+unset($erreur);
+$affiche_formulaire="";
+$inscription_redac ="";
+$inscription_visiteur ="";
+	
+	// envoyer le cookie de relance mot de passe si pass oublie
+	if ($email_oubli) {
+		if (email_valide($email_oubli)) {
+			$res = spip_query("SELECT * FROM spip_auteurs WHERE email ="._q($email_oubli));
+			if ($row = spip_fetch_array($res)) {
+				if ($row['statut'] == '5poubelle')
+					$erreur = _T('pass_erreur_acces_refuse');
+				else {
+					$cookie = creer_uniqid();
+					spip_query("UPDATE spip_auteurs SET cookie_oubli = "._q($cookie)." WHERE email ="._q($email_oubli));
+	
+					$nom_site_spip = extraire_multi(lire_meta("nom_site"));
+					$adresse_site = extraire_multi(lire_meta("adresse_site"));
+	
+					$message = _T('spiplistes:abonnement_mail_passcookie', array('nom_site_spip' => $nom_site_spip, 'adresse_site' => $adresse_site, 'cookie' => $cookie));
+					
+					if (envoyer_mail($email_oubli, "[$nom_site_spip] "._T('pass_oubli_mot'), $message))
+						$erreur = _T('pass_recevoir_mail');
+					else
+						$erreur = _T('pass_erreur_probleme_technique');
+				}
+			}
+			else
+				$erreur = _T('pass_erreur_non_enregistre', array('email_oubli' => htmlspecialchars($email_oubli)));
+		}
+		else
+			$erreur = _T('pass_erreur_non_valide', array('email_oubli' => htmlspecialchars($email_oubli)));
+	}
+	
+	// afficher le formulaire d'oubli du pass
+	if($oubli_pass=="oui") {
+		return array($formulaire, $GLOBALS['delais'],
+			array(
+				'oubli_pass' => $oubli_pass,
+				'erreur' => $erreur,
+				'inscription_redac' => '',
+				'inscription_visiteur' => '',
+				'mode_login' => false,
+				'reponse_formulaire' => '',
+				'liste' => ''
+					)
+			);
+	}
+	//code pour s inscrire
+	else if ($inscriptions_ecrire OR $inscriptions_publiques OR (lire_meta('forums_publics') == 'abo') ) {
+		// debut presentation
+	
+		($inscriptions_ecrire AND $type=="redac") ? $inscription_redac = "oui" : $inscription_redac = "non" ;
+		($type!="redac" AND $inscriptions_publiques AND $acces_membres=='oui') ? $inscription_visiteur = "oui" : $inscription_visiteur = "non" ;
+		
+				
+			list($affiche_formulaire,$reponse_formulaire)=formulaire_inscription(($type=="redac")? 'redac' : 'forum',$acces_membres,$formulaire);
+	}
+	else {
+		spip_log(_T('pass_erreur')." "._T('pass_rien_a_faire_ici')."visiteurs non autorises spip listes");
+	}
+	
+
+	return array($formulaire, $GLOBALS['delais'],
+				array(
+					'oubli_pass' => $oubli_pass,
+					'erreur' => $erreur,
+					'inscription_redacteur' => $inscription_redac,
+					'acces_membres' => $acces_membres,
+					'inscription_visiteur' => $inscription_visiteur,
+					'mode_login' => $affiche_formulaire,
+					'reponse_formulaire' => $reponse_formulaire,
+					'accepter_auteur' => lire_meta("accepter_inscriptions") ,
+					'id_liste' => $id_liste
+					)
+				);
+				
+				
+}
+
+
+// inscrire les visiteurs dans l'espace public (statut 6forum) ou prive (statut nouveau->1comite)
+function formulaire_inscription($type,$acces_membres,$formulaire) {
+	
+	$request_uri = $GLOBALS["REQUEST_URI"]."#abo";
+	global $mail_inscription_;
+	global $nom_inscription_;
+	global $list;
+	global $liste;
+	global $id_fond; //fond name of the form posting values
+	
+
+	if ($type == 'redac') {
+		if (lire_meta("accepter_inscriptions") != "oui") return;
+		$statut = "nouveau";
+	}
+	else if ($type == 'forum') {
+		$statut = "6forum";
+	}
+	else {
+		return; // tentative de hack...?
+	}
+
+
+	
+	if($acces_membres == 'non') $nom_inscription_ = test_login2($mail_inscription_) ;
+
+      //utiliser_langue_site();
+	$nomsite= extraire_multi(lire_meta("nom_site"));
+	$urlsite=extraire_multi(lire_meta("adresse_site"));
+	
+	//Verify the form source. This way it is possible to create many newsletter forms
+	//in the same page (but with different fond) to separate subscription and deletion as an example
+	$verify_source_fond = false;
+	if(!$id_fond) {$verify_source_fond = true;}
+	elseif($id_fond==$formulaire) $verify_source_fond = true;
+	
+	if($mail_inscription_ && $verify_source_fond){
+		$mail_valide = email_valide($mail_inscription_);	
+	}
+		
+if ($mail_valide && $nom_inscription_) {
+$result = spip_query("SELECT * FROM spip_auteurs WHERE email="._q($mail_inscription_));
+
+//echo "<div class='reponse_formulaire'>";
+
+		// l'abonne existe deja.
+	 	if ($row = spip_fetch_array($result)) {
+			$id_auteur = $row['id_auteur'];
+			$statut = $row['statut'];
+			$abonne_existant = "oui" ;
+
+			unset ($continue);
+			if ($statut == '5poubelle') {
+				$reponse_formulaire = _T('form_forum_access_refuse');
+			}elseif ($statut == 'nouveau') {
+				spip_query ("DELETE FROM spip_auteurs WHERE id_auteur="._q($id_auteur));
+				$continue = true;
+			}else{
+        	// envoyer le cookie de relance modif abonnement
+
+        	$cookie = creer_uniqid();
+        	spip_query("UPDATE spip_auteurs SET cookie_oubli = "._q($cookie)." WHERE email ="._q($mail_inscription_));
+
+        	$message = _T('spiplistes:abonnement_mail_passcookie', array('nom_site_spip' => $nomsite, 'adresse_site' => $urlsite, 'cookie' => $cookie));
+				if (envoyer_mail($mail_inscription_, "[$nomsite] "._T('spiplistes:abonnement_titre_mail'), $message)){
+					$reponse_formulaire =_T('spiplistes:pass_recevoir_mail');
+					//echo _T('spiplistes:pass_recevoir_mail');
+				}else{
+					$reponse_formulaire =_T('pass_erreur_probleme_technique');
+					//echo _T('pass_erreur_probleme_technique');
+				}
+
+    	}
+		} else {
+			$continue = true;
+		}
+		
+// envoyer identifiants par mail
+if ($continue) {
+		
+//ajouter un code pour retrouver l'abonne
+
+$pass = creer_pass_aleatoire(8, $mail_inscription_);
+$login_ = test_login2($mail_inscription_);
+$mdpass = md5($pass);
+$htpass = generer_htpass($pass);
+
+$cookie = creer_uniqid();
+			
+$type_abo = $GLOBALS['suppl_abo'] ;
+//verify suppl_abo is correct
+if($desabo!="oui" && $type_abo!="texte" && $type_abo!="html") return;
+			
+$result = spip_query("INSERT INTO spip_auteurs (nom, email, login, pass, statut, htpass, cookie_oubli) ".
+				"VALUES ("._q($nom_inscription_).", "._q($mail_inscription_).","._q($login_).","._q($mdpass).","._q($statut).","._q($htpass).","._q($cookie).")");
+				spip_log("insert inscription : ->".$mail_inscription_);
+			$id_abo=spip_insert_id();
+	spip_query("INSERT INTO `spip_auteurs_elargis` (`id_auteur`,`spip_listes_format`) VALUES ("._q($id_abo).","._q($type_abo).")");		
+		
+// abonnement aux listes http://www.phpfrance.com/tutorials/index.php?page=2&id=13
+
+$result = spip_query("SELECT * FROM spip_auteurs WHERE email="._q($mail_inscription_));
+
+	// l'abonne existe deja.
+	 if ($row = spip_fetch_array($result)) {
+	 $id_auteur = $row['id_auteur'];
+	 $statut = $row['statut'];
+
+	 // on abonne l'auteur aux listes
+	     if(is_array($list)){
+			 while( list(,$val) = each($list) ){
+				$result=spip_query("DELETE FROM spip_auteurs_listes WHERE id_auteur="._q($id_auteur)." AND id_liste="._q($val));
+				$result=spip_query("INSERT INTO spip_auteurs_listes (id_auteur,id_liste) VALUES ("._q($id_auteur).","._q($val).")");
+			 }
+		 }
+	 }
+
+			// abo
+
+      ecrire_acces();
+
+	$nom_site_spip = extraire_multi(lire_meta("nom_site"));
+	$adresse_site = extraire_multi(lire_meta("adresse_site"));
+
+	$message = _T('form_forum_message_auto')."\n\n"._T('spiplistes:bonjour')."\n";
+			
+		if ($desabo=="oui"){
+     	$message .= _T('spiplistes:mail_non', array('nom_site_spip' => $nom_site_spip))."\n";
+      	}else if($type_abo=="texte" || $type_abo=="html")  {
+
+        //SELECT des listes de l'abonne		
+		$result_list = spip_query("SELECT * FROM spip_auteurs_listes AS abonnements, spip_listes AS listes WHERE abonnements.id_auteur="._q($id_auteur)." AND abonnements.id_liste=listes.id_liste AND listes.statut='liste'");
+
+				//lister les listes
+       			 $message_list = '' ;
+      			  $i = 0 ;
+
+		        while($row = spip_fetch_array($result_list)) {			
+				  $id_liste = $row['id_liste'] ;	
+				  $result = spip_query("SELECT * FROM spip_listes WHERE id_liste="._q($id_liste));
+		          $row = spip_fetch_array($result);
+		          $titre = $row['titre'] ;
+		          $message_list .= "\n- ".$titre ;
+		          $i++ ;
+		        }
+
+
+	        if($i>1){
+		        $message .= "\n"._T('spiplistes:inscription_responses').$nom_site_spip."." ;
+		        $message .= "\n"._T('spiplistes:inscription_listes').$message_list ;
+	        } 
+	        if($i==1){
+		        $message .= "\n"._T('spiplistes:inscription_response').$nom_site_spip."." ;
+		        $message .= "\n"._T('spiplistes:inscription_liste').$message_list ;
+	        } 
+	        if($i==0){
+	        	$message .= "\n"._T('spiplistes:inscription_response').$nom_site_spip._T('spiplistes:inscription_format').$type_abo."." ;
+	        }
+        }
+
+        if(($acces_membres == 'oui') && ($type == 'forum') ){
+		$message .="\n\n"._T('spiplistes:inscription_mail_forum', array('nom_site_spip' => $nom_site_spip, 'adresse_site' => $adresse_site))."\n\n";
+        $message .= "- "._T('form_forum_login')." $login_\n";
+		$message .= "- "._T('form_forum_pass')." $pass\n\n";
+        }
+
+        if(($type == 'redac') OR ($inscriptions_ecrire AND $acces_membres == 'non')) {
+		$message .="\n\n"._T('spiplistes:inscription_mail_redac', array('nom_site_spip' => $nom_site_spip, 'adresse_site' => $adresse_site))."\n\n";
+		$message .= "- "._T('form_forum_login')." $login_\n";
+		$message .= "- "._T('form_forum_pass')." $pass\n\n";
+        }
+
+
+      }
+
+      $message .= "\n\n-----------------------------------------\n\n" ;
+      $message .= _T('spiplistes:abonnement_mail').' '.generer_url_public("abonnement","d=$cookie") ;
+      $message .= "\n\n-----------------------------------------\n\n" ;
+		
+		if($abonne_existant != 'oui'){
+
+			if (envoyer_mail($mail_inscription_, "[$nom_site_spip] "._T('spiplistes:form_forum_identifiants'), $message)) {
+				spip_log("inscription : ->".$mail_inscription_);
+				if($acces_membres == 'oui'){
+          		$reponse_formulaire =_T('form_forum_identifiant_mail');
+       			}else{
+         		 $reponse_formulaire =_T('spiplistes:form_forum_identifiant_confirm');
+       			 }
+			}
+			else {
+			$reponse_formulaire =_T('form_forum_probleme_mail');
+			}
+		}
+
+	}
+	else {
+		//Non c'è email o non è valida
+		if($mail_inscription_ AND !$mail_valide && $verify_source_fond){
+        $reponse_formulaire =_T('spiplistes:erreur_adresse');
+   		}
+		
+		//Infos sur la liste
+		if(!$liste) $liste='';
+		return array(true,$reponse_formulaire);
+	}
+	return array(false,$reponse_formulaire);
+
+}
+
+
+
+function test_login2($mail) {
+	if (strpos($mail, "@") > 0) $login_base = substr($mail, 0, strpos($mail, "@"));
+	else $login_base = $mail;
+
+	$login_base = strtolower($login_base);
+	$login_base = ereg_replace("[^a-zA-Z0-9]", "", $login_base);
+	if (!$login_base) $login_base = "user";
+
+	for ($i = 0; ; $i++) {
+		if ($i) $login = $login_base.$i;
+		else $login = $login_base;
+		$result = spip_query("SELECT id_auteur FROM spip_auteurs WHERE login="._q($login));
+		if (!spip_num_rows($result)) break;
+	}
+
+	return $login;
+}
+
+
+?>
Index: /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/balise/formulaire_modif_abonnement.php
===================================================================
--- /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/balise/formulaire_modif_abonnement.php	(revision 90)
+++ /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/balise/formulaire_modif_abonnement.php	(revision 90)
@@ -0,0 +1,185 @@
+<?php
+
+
+if (!defined("_ECRIRE_INC_VERSION")) return;	#securite
+
+function balise_FORMULAIRE_MODIF_ABONNEMENT ($p) {
+
+	return calculer_balise_dynamique($p, 'FORMULAIRE_MODIF_ABONNEMENT', array());
+}
+
+function balise_FORMULAIRE_MODIF_ABONNEMENT_stat ($args, $filtres) {
+	
+	if(!$args[0]) $args[0]='formulaire_modif_abonnement';
+	return array($args[0]);
+}
+
+
+
+function balise_FORMULAIRE_MODIF_ABONNEMENT_dyn($formulaire) {
+
+include_spip ("inc/meta");
+include_spip ("inc/session");
+include_spip ("inc/filtres");
+include_spip ("inc/texte");
+include_spip ("inc/meta");
+include_spip ("inc/mail");
+include_spip ("inc/acces");
+include_spip ("inc/spiplistes_api");
+
+
+	global $confirm,$d,$list,$champs_extra,$email_desabo;
+
+	
+	//utiliser_langue_site();
+	$nomsite=extraire_multi(lire_meta("nom_site"));
+	$urlsite=extraire_multi(lire_meta("adresse_site"));
+	
+	// aller chercher le formulaire html qui va bien				
+$formulaire = "formulaires/formulaire_modif_abonnement";	
+	
+	// 3 Cas :
+	// 1) La personne valide le formulaire de modif, traitement des données
+	// 2) Recuperer le cookie de relance désabonnement / afficher le forumlaire de modif
+	// 3) Envoyer par mail le cookie de relance modif abonnement
+	//presentation
+	
+	
+	 // La personne valide le formulaire
+	
+	 // revoir le test ?
+	if($confirm == 'oui'){
+		$res = spip_query("SELECT * FROM spip_auteurs WHERE cookie_oubli="._q($d)." AND statut<>'5poubelle' AND pass<>''");
+	  if ($row = spip_fetch_array($res)) {
+		  	$id_auteur = $row['id_auteur'];
+			$statut = $row['statut'];
+			$nom = $row['nom'];
+			$mail_abo = $row['email'];
+	
+	    	// abonnement aux listes
+			// selectionne les listes publiques et desabonne l'auteur
+			 spiplistes_desabonner($id_auteur);
+	
+			if(is_array($list)){	
+		 	// on abonne l'auteur aux listes choisies
+		 		while( list(,$val) = each($list) ){
+		     	 $result=spip_query("INSERT INTO spip_auteurs_listes (id_auteur,id_liste) VALUES ("._q($id_auteur).","._q($val).")");
+				
+		 		}
+			} 
+			
+		 	// maj du format de reception
+		    $type_abo = _request('suppl_abo'); 
+		    spip_query("UPDATE `spip_auteurs_elargis` SET `spip_listes_format`="._q($type_abo)." WHERE `id_auteur` ="._q($id_auteur));	
+		
+			// detruire le cookie perso
+			spip_query("UPDATE spip_auteurs SET cookie_oubli = '0' WHERE cookie_oubli ="._q($d));
+		
+		   // affichage des modifs
+		$ab_o = spip_fetch_array(spip_query("SELECT `spip_listes_format` FROM `spip_auteurs_elargis` WHERE `id_auteur`="._q($id_auteur))) ;
+		$abo = $ab_o["spip_listes_format"];
+	
+	   	If ($abo == 'non')  {
+			$msg_formulaire = "<h4>"._T('spiplistes:desabonnement_valid').":</h4>&nbsp;".$mail_abo;  
+		  	//peut etre qu'une liste est cochee
+		  	spiplistes_desabonner($id_auteur);
+		  }
+	   	else {
+	   		$msg_formulaire = "<h4>"._T('spiplistes:abonnement_modifie')."</h4>" ;
+	   		$confirm_formulaire = "<p>"._T('spiplistes:abonnement_nouveau_format').$abo."<br />";
+	   	}
+	
+	
+	  } else  {
+	           	$msg_formulaire = _T('pass_erreur_code_inconnu');
+	  }
+	  
+	  return array($formulaire, $GLOBALS['delais'],
+			array(
+				'message_formulaire' => $msg_formulaire,
+				'id_auteur' => $id_auteur,
+				'confirm_formulaire' => $confirm_formulaire,
+				'formulaire_affiche' => '',
+				'formulaire_cookie_affiche' => '',
+				'modif_affiche' => '1'
+					)
+			);
+	}
+	
+	// recuperer le cookie de relance désabonnement, et afficher le formulaire de modif
+	if ($d  AND ($confirm != 'oui')) {
+	
+		$res = spip_query ("SELECT * FROM spip_auteurs WHERE cookie_oubli="._q($d)." AND statut<>'5poubelle' AND pass<>''");
+		if ($row = spip_fetch_array($res)) {
+			$formulaire_affiche = '1';
+	  	$id_auteur = $row['id_auteur'];
+		
+		$abo = spip_fetch_array(spip_query("SELECT `spip_listes_format` FROM `spip_auteurs_elargis` WHERE `id_auteur`=$id_auteur")) ;		
+		//var_dump($abo);die("coucou");
+		$format = $abo["spip_listes_format"];
+		}
+		else
+		{
+	     	$formulaire_affiche = '';
+				$msg_formulaire = _T('pass_erreur_code_inconnu');
+	  }
+	  
+	  return array($formulaire, $GLOBALS['delais'],
+			array(
+				'message_formulaire' => $msg_formulaire,
+				'id_auteur' => $id_auteur,
+				'confirm_formulaire' => $confirm_formulaire,
+				'formulaire_affiche' => $formulaire_affiche,
+				'formulaire_cookie_affiche' => '',
+				'd' => $d,
+				'format' => $format
+					)
+			);
+			
+	}  else {
+	
+	// envoyer le cookie de relance modif abonnement
+	if ($email_desabo) {
+		if (email_valide($email_desabo)) {
+			$res = spip_query("SELECT * FROM spip_auteurs WHERE email ="._q($email_desabo));
+			if ($row = spip_fetch_array($res)) {
+				if ($row['statut'] == '5poubelle')
+					$erreur = _T('pass_erreur_acces_refuse');
+				else {
+					$cookie = creer_uniqid();
+					spip_query("UPDATE spip_auteurs SET cookie_oubli = "._q($cookie)." WHERE email ="._q($email_desabo));
+					$message = _T('spiplistes:abonnement_mail_passcookie', array('nom_site_spip' => $nomsite, 'adresse_site' => $urlsite, 'cookie' => $cookie));
+					
+					if (envoyer_mail($email_desabo, "[$nomsite] "._T('spiplistes:abonnement_titre_mail'), $message))
+						$erreur = _T('spiplistes:pass_recevoir_mail');
+					else
+						$erreur = _T('pass_erreur_probleme_technique');
+				}
+			}
+			else
+				$erreur = _T('pass_erreur_non_enregistre', array('email_oubli' => htmlspecialchars($email_desabo)));
+		}
+		else
+			$erreur = _T('spiplistes:erreur_adresse');
+
+	}
+	
+	if($confirm != 'oui'){
+	  $formulaire_cookie = '1';      
+	}
+	}
+	
+	return array($formulaire, $GLOBALS['delais'],
+			array(
+				'message_formulaire' => $msg_formulaire,
+				'id_auteur' => '',
+				'confirm_formulaire' => $confirm_formulaire,
+				'formulaire_affiche' => '',
+				'formulaire_cookie_affiche' => $formulaire_cookie,
+				'erreur' => $erreur
+					)
+			);
+
+}
+
+?>
Index: /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/base/spip-listes.php
===================================================================
--- /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/base/spip-listes.php	(revision 90)
+++ /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/base/spip-listes.php	(revision 90)
@@ -0,0 +1,144 @@
+<?php
+
+// Ici on declare la structure des tables au compilo
+// Inspiré de spip-lettres, Pierre Basson
+
+	global $table_des_tables;
+	global $tables_principales;
+	global $tables_auxiliaires;
+	global $tables_jointures;
+
+
+
+	//$table_des_tables['abonnes'] = 'abonnes';
+	$table_des_tables['courriers'] = 'courriers';
+	$table_des_tables['listes'] = 'listes';
+
+	//creer la table auteurs_elargis si besoin
+	if(!is_array($tables_principales['spip_auteurs_elargis'])){
+	$spip_auteurs_elargis['id'] = "bigint(21) NOT NULL";
+	$spip_auteurs_elargis['id_auteur'] = "bigint(21) NOT NULL";
+	$spip_auteurs_elargis['`spip_listes_format`'] = "VARCHAR( 8 ) DEFAULT 'non' NOT NULL";
+	$spip_auteurs_elargis_key = array("PRIMARY KEY"	=> "id", 'KEY id_auteur' => 'id_auteur');
+	$tables_principales['spip_auteurs_elargis']  =	array('field' => &$spip_auteurs_elargis, 'key' => &$spip_auteurs_elargis_key);
+	}
+	
+	
+	$spip_auteurs_courriers = array(
+						"id_auteur"		=> "bigint(21) NOT NULL default '0'",
+						"id_courrier"	=> "bigint(21) NOT NULL default '0'",
+						"statut"		=> "enum('a_envoyer','envoye','echec') NOT NULL default 'a_envoyer'",
+						"etat"	=> "varchar(5) NOT NULL default ''",
+						"maj"			=> "datetime NOT NULL default '0000-00-00 00:00:00'"
+					);
+					
+	$spip_auteurs_courriers_key = array(
+						"PRIMARY KEY" => "id_auteur, id_courrier"
+					);
+
+	$spip_auteurs_listes = array(
+						"id_auteur"			=> "bigint(21) NOT NULL default '0'",
+						"id_liste" 			=> "bigint(21) NOT NULL default '0'",
+						"date_inscription"	=> "datetime NOT NULL default '0000-00-00 00:00:00'",
+						"statut"			=> "enum('a_valider','valide') NOT NULL default 'a_valider'",
+						"format"			=> "enum('html','texte') NOT NULL default 'html'"
+
+					);
+	$spip_auteurs_listes_key = array(
+						"PRIMARY KEY" => "id_auteur, id_liste"
+					);
+
+	$spip_courriers = array(
+						"id_courrier"			=> "bigint(21) NOT NULL",
+						"id_auteur"				=> "bigint(21) NOT NULL",
+						"id_liste"				=> "bigint(21) NOT NULL default '0'",
+						"titre"					=> "text NOT NULL",
+						"texte"					=> "longblob NOT NULL",
+						"message_texte"			=> "longblob NOT NULL",
+						"date"					=> "datetime NOT NULL default '0000-00-00 00:00:00'",
+						"statut"				=> "varchar(10) NOT NULL",
+						"type" 					=> "varchar(10) NOT NULL",
+						"email_test"			=> "varchar(255) NOT NULL default ''",
+						"total_abonnes"			=> "bigint(21) NOT NULL default '0'",
+						"nb_emails_envoyes"		=> "bigint(21) NOT NULL default '0'",
+						"nb_emails_non_envoyes"	=> "bigint(21) NOT NULL default '0'",
+						"nb_emails_echec"		=> "bigint(21) NOT NULL default '0'",
+						"nb_emails_html"		=> "bigint(21) NOT NULL default '0'",
+						"nb_emails_texte"		=> "bigint(21) NOT NULL default '0'",
+						"date_debut_envoi"		=> "datetime NOT NULL default '0000-00-00 00:00:00'",
+						"date_fin_envoi"		=> "datetime NOT NULL default '0000-00-00 00:00:00'",
+						"idx"					=> "ENUM('', '1', 'non', 'oui', 'idx') DEFAULT '' NOT NULL"
+					);
+	$spip_courriers_key = array(
+						"PRIMARY KEY"	=> "id_courrier",
+						"KEY idx"		=> "idx"
+					);
+
+	//moderateurs
+	$spip_auteurs_mod_listes = array(
+						"id_auteur"		=> "bigint(21) NOT NULL",
+						"id_liste"		=> "bigint(21) NOT NULL"
+					);
+	$spip_auteurs_mod_listes_key = array(
+						"PRIMARY KEY" => "id_auteur, id_liste",
+					);
+
+	$spip_listes = array(
+						"id_liste"		=> "bigint(21) NOT NULL",
+						"titre"			=> "text NOT NULL",
+						"descriptif"	=> "text NOT NULL",
+						"texte"			=> "longblob NOT NULL",
+						"pied_page"		=> "longblob NOT NULL",
+						"date"			=> "datetime DEFAULT '0000-00-00 00:00:00' NOT NULL",
+						"titre_message"	=> "varchar(255) NOT NULL default ''",
+						"patron"		=> "varchar(255) NOT NULL default ''",
+						"periode"		=> "bigint(21) NOT NULL",
+						"lang"			=> "varchar(10) NOT NULL",
+						"maj"			=> "datetime DEFAULT '0000-00-00 00:00:00' NOT NULL",
+						"statut"		=> "varchar(10) NOT NULL",
+						"email_envoi"	=> "tinytext NOT NULL",
+						"message_auto"	=> "varchar(10) NOT NULL",
+						"extra"			=> "longblob NULL",
+						"idx"			=> "ENUM('', '1', 'non', 'oui', 'idx') DEFAULT '' NOT NULL"
+					);
+	$spip_listes_key = array(
+						"PRIMARY KEY"	=> "id_liste",
+						"KEY idx"		=> "idx"
+					);
+
+	$tables_principales['spip_courriers'] =
+		array('field' => &$spip_courriers, 'key' => &$spip_courriers_key);
+	$tables_principales['spip_listes'] =
+		array('field' => &$spip_listes, 'key' => &$spip_listes_key);
+	
+
+	$tables_auxiliaires['spip_auteurs_courriers'] = 
+		array('field' => &$spip_auteurs_courriers, 'key' => &$spip_auteurs_courriers_key);
+	$tables_auxiliaires['spip_auteurs_listes'] = 
+		array('field' => &$spip_auteurs_listes, 'key' => &$spip_auteurs_listes_key);
+	$tables_auxiliaires['spip_auteurs_mod_listes'] = 
+		array('field' => &$spip_auteurs_mod_listes, 'key' => &$spip_auteurs_mod_listes_key);
+	
+
+
+	//$tables_jointures['spip_abonnes'][]= 'abonnes_courriers';
+	//$tables_jointures['spip_abonnes'][]= 'abonnes_listes';
+	//$tables_jointures['spip_abonnes'][]= 'listes';
+
+	$tables_jointures['spip_courriers'][]= 'auteurs';
+	$tables_jointures['spip_courriers'][]= 'auteurs_courriers';
+	$tables_jointures['spip_courriers'][]= 'listes';
+
+	$tables_jointures['spip_listes'][]= 'auteurs';
+	$tables_jointures['spip_listes'][]= 'auteurs_listes';
+	$tables_jointures['spip_listes'][]= 'courriers';
+	$tables_jointures['spip_listes'][]= 'auteurs_mod_listes';
+	
+
+	//$tables_jointures['spip_auteurs'][]= 'auteurs_mod_listes';
+	$tables_jointures['spip_auteurs'][]= 'auteurs_listes';
+	$tables_jointures['spip_auteurs'][]= 'listes';
+	$tables_jointures['spip_auteurs'][]= 'courriers';
+	
+
+?>
Index: /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/base/spiplistes_upgrade.php
===================================================================
--- /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/base/spiplistes_upgrade.php	(revision 90)
+++ /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/base/spiplistes_upgrade.php	(revision 90)
@@ -0,0 +1,338 @@
+<?php
+
+/******************************************************************************************/
+/* SPIP-listes est un système de gestion de listes d'information par email pour SPIP      */
+/* Copyright (C) 2004 Vincent CARON  v.caron<at>laposte.net , http://bloog.net            */
+/*                                                                                        */
+/* Ce programme est libre, vous pouvez le redistribuer et/ou le modifier selon les termes */
+/* de la Licence Publique Générale GNU publiée par la Free Software Foundation            */
+/* (version 2).                                                                           */
+/*                                                                                        */
+/* Ce programme est distribué car potentiellement utile, mais SANS AUCUNE GARANTIE,       */
+/* ni explicite ni implicite, y compris les garanties de commercialisation ou             */
+/* d'adaptation dans un but spécifique. Reportez-vous à la Licence Publique Générale GNU  */
+/* pour plus de détails.                                                                  */
+/*                                                                                        */
+/* Vous devez avoir reçu une copie de la Licence Publique Générale GNU                    */
+/* en même temps que ce programme ; si ce n'est pas le cas, écrivez à la                  */
+/* Free Software Foundation,                                                              */
+/* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, États-Unis.                   */
+/******************************************************************************************/
+
+	//version actuelle du plugin à changer en cas de maj
+	$GLOBALS['spiplistes_version'] = 1.98;
+	
+	
+	//initialiser les variables
+		if (!isset($GLOBALS['meta']['spiplistes_lots'])){
+		ecrire_meta('spiplistes_lots' , 30) ;
+		ecrire_metas();
+		}
+		
+		if (!isset($GLOBALS['meta']['spiplistes_charset_envoi'])){
+		ecrire_meta('spiplistes_charset_envoi' , 'iso-8859-1') ;
+		ecrire_metas();
+		}
+
+		if (!isset($GLOBALS['meta']['mailer_smtp'])){
+		ecrire_meta('mailer_smtp' , 'non') ;
+		ecrire_metas();
+		}
+		
+		if(!$abonnement_config = $GLOBALS['meta']['abonnement_config']){
+		ecrire_meta('abonnement_config', 'simple');
+		ecrire_metas();
+		}
+		
+	function spip_listes_upgrade_from_18(){
+		$trans_messages_couriers = array();
+		// regarder si des newsletter existent
+		$res = spip_query("SELECT * FROM spip_messages WHERE type='nl'");
+		if(@spip_num_rows($res) > 0) {
+			echo "[spip_courriers] "._T('spiplistes:mettre_a_jour');
+			while ($row = spip_fetch_array($res)){
+				$result = spip_query("INSERT INTO spip_courriers (titre, texte, date, statut, type, id_auteur) VALUES ("
+				._q($row['titre']).","
+				._q($row['texte']).","
+				._q($row['date_heure']).","
+				._q($row['statut']).","
+				._q($row['type']).","
+				._q($row['id_auteur']).")");
+				$trans_messages_couriers[$row['id_message']]= spip_insert_id();
+			}
+			//spip_query("DELETE FROM spip_messages WHERE type='nl'");
+		}
+
+		//Migrer des listes anciennes listes
+		$resultat_aff = spip_query("SELECT * FROM spip_articles WHERE statut='liste' OR statut='inact' OR statut='poublist'");
+		if(@spip_num_rows($resultat_aff) > 0){
+			echo "[spip_listes] "._T('spiplistes:mettre_a_jour');
+			while ($row = spip_fetch_array($resultat_aff)) {
+				$id_article=$row['id_article'];
+				$titre_liste=corriger_caracteres($row['titre']);
+				$texte_liste = corriger_caracteres($row['texte']);
+				$date_liste = $row['date'];
+				$langue=$row["lang"];
+				$statut = $row['statut'];
+				$extra=unserialize($row['extra']);
+				$patron_liste=$extra["squelette"];
+				$periode_liste=$extra["periode"];
+				$maj_liste=$extra["majnouv"];
+				$email_envoi=$extra["email_envoi"];
+				$message_auto=$extra["auto"];
+				$options="<p>".$titre_liste."<br/>";
+				echo $options."</p>";
+				
+				// ajout du pied de page
+				include_spip('public/assembler');
+				$contexte_pied = array('lang'=>$langue);
+				$pied = recuperer_fond('modeles/piedmail', $contexte_pied);
+				
+				spip_query("INSERT INTO spip_listes (titre, texte, statut, date, lang, pied_page) VALUES ("
+					._q($titre_liste).","._q($texte_liste).","._q($statut).","._q($date_liste).","._q($langue).","._q($pied).")" );
+				$id_liste=spip_insert_id();
+				if($message_auto=="oui")
+					spip_query("UPDATE spip_listes SET patron="._q($patron_liste).", periode="._q($periode_liste)
+					  . ", maj=FROM_UNIXTIME("._q($maj_liste)."), email_envoi="._q($email_envoi)
+					  . ", message_auto="._q($message_auto)." WHERE id_liste="._q($id_liste));
+				
+				//Auteur de la liste (moderateur)
+				spip_query("DELETE FROM spip_auteurs_mod_listes WHERE id_liste ="._q($id_liste));
+				spip_query("INSERT INTO spip_auteurs_mod_listes (id_auteur, id_liste) VALUES ("._q($connect_id_auteur).","._q($id_liste).")");
+				
+				//recuperer les abonnes (peut etre plus tard ?)
+				$abos=spip_query("SELECT id_auteur, id_article FROM spip_auteurs_articles WHERE id_article="._q($id_article));
+				while($abonnes=spip_fetch_array($abos)){
+					$abo=$abonnes["id_auteur"];
+					spip_query("INSERT INTO spip_auteurs_listes (id_auteur, id_liste) VALUES ("._q($abo).","._q($id_liste).")");
+				}
+				
+				//effacer les anciens articles/abo
+				#spip_query("DELETE FROM spip_articles WHERE id_article ="._q($id_article));
+				#spip_query("DELETE FROM spip_auteurs_articles WHERE id_article ="._q($id_article));
+	
+				//manque un traitement pour récuperer les courriers
+			}
+		}
+		
+		//evaluer les extras de tous les auteurs et les virer
+		$result = spip_query('SELECT extra, id_auteur FROM spip_auteurs');
+		while ($row = spip_fetch_array($result)) {
+			$abo = unserialize($row['extra']);
+			if (is_array($abo)
+			  && isset($abo['abo'])
+			  && ($format = $abo['abo'])
+			  && ($format=="texte" OR $format=="html")){
+					spip_query("INSERT INTO spip_auteurs_elargis (id_auteur, `spip_listes_format`) VALUES ("._q($row['id_auteur']).","._q($format).") ");
+			  }
+		}
+		
+		echo _T('spiplistes:regulariser');
+
+		$result = spip_query("SELECT a.`email`, a.id_auteur FROM `spip_auteurs` a, `spip_auteurs_listes` l, `spip_auteurs_elargis` f
+			WHERE a.id_auteur=f.id_auteur 
+			AND f.spip_listes_format = 'non'
+			AND a.id_auteur = l.id_auteur
+			AND a.statut!='5poubelle' 
+			GROUP BY email");
+		
+		while($res = spip_fetch_array($result)){
+			spip_query("DELETE FROM spip_auteurs_listes WHERE id_auteur =".$res['id_auteur']) ;			
+		} 
+	}
+	
+	function spiplistes_verifier_base(){
+		
+		//activer si besoin l'inscription des visiteurs
+		$accepter_visiteurs = lire_meta('accepter_visiteurs');
+			if($accepter_visiteurs != 'oui'){
+				$accepter_visiteurs = 'oui';
+				ecrire_meta("accepter_visiteurs", $accepter_visiteurs);
+				ecrire_metas();
+				echo _T('spiplistes:autorisation_inscription');
+			}
+		
+		//install
+		$version_base = $GLOBALS['spiplistes_version'];
+		
+		// Comparaison de la verison actuelle avec la version installee ($GLOBALS['meta']['spiplistes_version'])
+		$current_version = 0.0;
+		if (   (!isset($GLOBALS['meta']['spiplistes_version']) )
+				|| (($current_version = $GLOBALS['meta']['spiplistes_version'])!=$version_base)){
+			include_spip('base/spip-listes');
+			
+			// si etait deja installe mais dans une vieille version, on reprend a zero
+			include_spip('base/abstract_sql');
+			$desc = spip_abstract_showtable("spip_listes", '', true);
+			if (!isset($desc['field']['id_liste']))
+				$current_version = 0.0;
+			if (
+				($res=spip_query("SELECT * FROM spip_articles WHERE statut='liste' OR statut='inact' OR statut='poublist'"))
+				AND ($row = spip_fetch_array($res)) )
+				$current_version=0.0;
+
+			if ($current_version==0.0){
+				// Verifie que les tables spip_listes existent, sinon les creer
+				spip_log('creation des tables spip_listes');
+				include_spip('base/create');
+				include_spip('base/abstract_sql');
+				creer_base();
+				spip_listes_upgrade_from_18(); // faire les eventuels imports depuis la contrib 1.8
+				ecrire_meta('spiplistes_version',$current_version=$version_base,'non');
+			}
+			
+			if ($current_version<1.92){
+				echo "SpipListes Maj 1.92<br />";
+				spip_query("ALTER TABLE spip_listes ADD titre_message varchar(255) NOT NULL default '';");
+				spip_query("ALTER TABLE spip_listes ADD pied_page longblob NOT NULL;");
+				ecrire_meta('spiplistes_version', $current_version=1.92);
+			}
+			if ($current_version<1.94){
+				echo "SpipListes Maj 1.94<br />";
+				include_spip('base/abstract_sql');
+				if (($res=spip_query("SELECT id_auteur FROM spip_auteurs_mod_listes"))
+					AND (!spip_fetch_array($res))
+				  AND ($desc = spip_abstract_showtable("spip_abonnes_listes", '', true))
+				  AND isset($desc['field']['id_auteur'])) {
+					spip_query("DROP TABLE spip_auteurs_mod_listes"); // elle vient d'etre cree par un creer_base inopportun
+					spip_query("DROP TABLE spip_auteurs_courriers"); // elle vient d'etre cree par un creer_base inopportun
+				}
+				spip_query("ALTER TABLE spip_auteurs_listes RENAME spip_auteurs_mod_listes;");
+				spip_query("ALTER TABLE spip_abonnes_listes RENAME spip_auteurs_listes;");
+				spip_query("ALTER TABLE spip_abonnes_courriers RENAME spip_auteurs_courriers;");
+				ecrire_meta('spiplistes_version', $current_version=1.94);
+			}
+			if ($current_version<1.95){
+				echo "SpipListes Maj 1.95<br />";
+				include_spip('base/abstract_sql');
+				spip_query("ALTER TABLE spip_auteurs_courriers ADD etat varchar(5) NOT NULL default '' AFTER statut");
+				ecrire_meta('spiplistes_version', $current_version=1.95);
+			}
+			
+			if ($current_version<1.96){
+				echo "SpipListes Maj 1.96<br />";
+				include_spip('base/abstract_sql');
+				
+				//installer la table spip_auteurs_elargis si besoin
+				$table_nom = "spip_auteurs_elargis";
+				spip_query("CREATE TABLE IF NOT EXISTS ".$table_nom." (
+				`id_auteur` BIGINT NOT NULL ,
+				`spip_listes_format` VARCHAR( 8 ) DEFAULT 'non' NOT NULL
+				 ) ");
+				
+				//evaluer les extras de tous les auteurs + compter tous les auteurs
+				$result = spip_query(
+				  'SELECT extra, spip_auteurs.id_auteur FROM spip_auteurs');
+				$nb_inscrits = 0;
+			
+				//repartition des extras
+				$cmpt = array('texte'=>0, 'html'=>0, 'non'=>0);
+				
+				while ($row = spip_fetch_array($result, SPIP_NUM)) {
+					$nb_inscrits ++ ;
+					$abo = unserialize($row[0]);
+					$format = $abo['abo'] ;
+				if($format=="texte" OR $format=="html")
+				spip_query("INSERT INTO `spip_auteurs_elargis` (`id_auteur`, `spip_listes_format`) 
+				VALUES ("._q($row[1]).","._q($format).") ");
+				else
+				spip_query("INSERT INTO `spip_auteurs_elargis` (`id_auteur`, `spip_listes_format`) 
+				VALUES ("._q($row[1]).","._q('non').") ");
+				
+					if ($abo['abo']) {
+						$cmpt[$abo['abo']] ++;
+					}
+				}
+				
+				echo "<br />html : ".$cmpt['html']." <br />texte : ".$cmpt['texte']."<br />non : ".$cmpt['non']."<br />somme :".$nb_inscrits  ;
+	
+				ecrire_meta('spiplistes_version', $current_version=1.96);
+			}
+			
+			if ($current_version<1.97){
+				echo "SpipListes Maj 1.97<br />";
+				include_spip('base/abstract_sql');
+
+			echo "regulariser les desabonnes avec listes...<br />";
+
+			$result = spip_query("SELECT a.`email`, a.id_auteur FROM `spip_auteurs` a, `spip_auteurs_listes` l, `spip_auteurs_elargis` f
+			WHERE a.id_auteur=f.id_auteur 
+			AND f.spip_listes_format = 'non'
+			AND a.id_auteur = l.id_auteur
+			AND a.statut!='5poubelle' 
+			GROUP BY email
+			");
+			
+			$nb_inscrits = spip_num_rows($result);
+			echo $nb_inscrits ;
+			
+			while($res = spip_fetch_array($result)){
+			spip_query("DELETE FROM spip_auteurs_listes WHERE id_auteur =".$res['id_auteur']) ;			
+			} 
+
+
+				ecrire_meta('spiplistes_version', $current_version=1.97);
+			}
+			
+			
+			if ($current_version<1.98){
+				
+				echo "SpipListes Maj 1.98<br />";
+				include_spip('base/abstract_sql');
+			
+			echo "regulariser l'index";
+			$table_nom = "spip_auteurs_elargis";
+			//ajout des index
+			$desc = spip_abstract_showtable($table_nom, '', true);
+			if($desc['key']['PRIMARY KEY']!='id'){
+			 	spip_query("ALTER TABLE ".$table_nom." DROP PRIMARY KEY");
+					if(!isset($desc['fields']['id']))
+					spip_query("ALTER TABLE ".$table_nom." ADD id INT NOT NULL AUTO_INCREMENT PRIMARY KEY");
+					else 
+					spip_query("ALTER TABLE ".$table_nom." ADD PRIMARY KEY (id)");
+			}
+			if($desc['key']['KEY id_auteur'])
+			spip_query("ALTER TABLE ".$table_nom." DROP INDEX id_auteur, ADD INDEX id_auteur (id_auteur)");
+			else
+			spip_query("ALTER TABLE ".$table_nom." ADD INDEX id_auteur (id_auteur)");
+			
+			ecrire_meta('spiplistes_version', $current_version=1.98);
+			}
+			
+			ecrire_metas();
+		}
+	spip_log("spip-listes $current_version","spiplistes");
+	}
+	
+	function spiplistes_vider_tables() {
+		include_spip('base/agenda_evenements');
+		include_spip('base/abstract_sql');
+		// suppression du champ evenements a la table spip_groupe_mots
+		spip_query("DROP TABLE spip_courriers");
+		spip_query("DROP TABLE spip_listes");
+		spip_query("DROP TABLE spip_auteurs_courriers");
+		spip_query("DROP TABLE spip_auteurs_listes");
+		spip_query("DROP TABLE spip_auteurs_mod_listes");
+		effacer_meta('spiplistes_version');
+		effacer_meta('spiplistes_charset_envoi');
+		effacer_meta('spiplistes_lots');
+		effacer_meta('abonnement_config');
+		ecrire_metas();
+	}
+	
+	function spiplistes_install($action){
+		$version_base = $GLOBALS['spiplistes_version'];
+		switch ($action){
+			case 'test':
+				return (isset($GLOBALS['meta']['spiplistes_version']) 
+				  AND ($GLOBALS['meta']['spiplistes_version']>=$version_base));
+				break;
+			case 'install':
+				spiplistes_verifier_base();
+				break;
+			case 'uninstall':
+				spiplistes_vider_tables();
+				break;
+		}
+	}	
+?>
Index: /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/docs/__exemple-fichier_importationliste_email.txt
===================================================================
--- /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/docs/__exemple-fichier_importationliste_email.txt	(revision 90)
+++ /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/docs/__exemple-fichier_importationliste_email.txt	(revision 90)
@@ -0,0 +1,8 @@
+joe@bloog.net
+william@bloog.net
+avrell@bloog.net
+micheline@bloog.net |b
+|test_erreur|
+dfghdfg
+dfgdfg
+jill@bloog.net
Index: /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/docs/__instalacion_es.txt
===================================================================
--- /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/docs/__instalacion_es.txt	(revision 90)
+++ /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/docs/__instalacion_es.txt	(revision 90)
@@ -0,0 +1,104 @@
+/******************************************************************************************/
+/* SPIP-Listes es un sistema de gestin de listas de informacin por email para SPIP      */
+/* Copyright (C) 2004-2006 Vincent CARON  v.caron<at>laposte.net , http://bloog.net       */
+/*                                                                                        */
+/* Traduccin al castellano: joseluis@digital77.com                                                                                              
+*/
+/* Este programa es libre. Puedes distribuirlo y/o modificarlo segn los trminos */
+/* de la Licencia Pblica General GNU publicada por la Free Software Foundation
+*/
+/* (version 2).                                                                           */
+/*                                                                                        */
+/* Este programa es distribuido pues es potencialmente til, pero SIN NINGUNA GARANTêA,       */
+/* ni explcita ni implicita, y comprende las garantas de comercializacin o             */
+/* de adaptacin en un momento especfico. Consulta la Licencia Pblica General GNU  */
+/* para ms detales.                                                                  */
+/*                                                                                        */
+/* Habrs recibido una copia de la Licencia Pblica Genral GNU
+*/
+/* a la vez que este programa; si no es el caso escribe a la*/
+/* Free Software Foundation,
+*/
+/* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, États-Unis.                   */
+/******************************************************************************************/
+
+
+/**********************************************************/
+/*                    SPIP-Listes                         */
+/**********************************************************/
+
+- Permite crear boletines de novedades manual o automticamente a partir de un sitio con SPIP (http://spip.net/)
+
+Para ello SPIP-Liste te permite:
+* Redactar los mensajes.
+* Gestionar listas de personas inscritas, cada persona es libre de inscribirse o darse de baja y de elegir su formato para los mensajes (html o texto plano).
+* Enviar informaciones por email con una frecuencia regular si as lo quieres.
+* Enviar automticamente las novedades del sitio, o un esqueleto SPIP personalizado.
+* Modificar como quieras la puesta en pgina de los envos.
+
+- La todo list est en el sitio bloog-net: http://bloog.net/rubrique.php3?id_rubrique=109
+
+
+/**********************************************************/
+/*              Instalacin de SPIP-Listes               */
+/**********************************************************/
+
+I. Instalacin de los ficheros del plugin SPIP-Listes
+
+1) Descomprime el archivo .zip
+
+2) Copia por FTP la carpeta descomprimida de spip-listes sin cambiar nada, conservando su jerarqua y subcarpetas, en el directorio /plugins (que tendrs que crear en la raz de tu sitio si no existe.
+
+II. Insercin de SPIP-Listes en los esuqletos
+
+1. Aade el cdigo #FORMULAIRE_ABONNEMENT en el esqueleto donde quieras que aparezca el formulario de inscripcin.
+Puedes utilizar un esqueleto propio para las inscripciones en lugar del formulaire_abonnement.html (para gestionar las inscripciones en una lista particular, por ejemplo), utilizando la notacin #FORMULAIRE_ABONNEMENT{mon_squelette}.
+
+Nota: La pgina abonnement gestiona las modificaciones de las inscripciones de las personas abonadas.
+
+2) En el directorio del plugin, edita los archivos /patrons/nouveautes.html y /patrons/patron_simple.html, y adapta las rutas de las imgenes de vuestro sitio.
+
+Atencin: En caso de seleccionar los bucles por edad, el esqueleto mostrar un mensaje vaco en caso de error. Puedes crear todos los patrones que quieras ponindolos en ese directorio.
+
+III. Utilizacin de SPIP-Listes en la parte privada
+
+1) Cliquea, en el men configuracin, sobre ÒGestin de los pluginsÓ
+
+2) En la lnea del plugin SPIP-Listes selecciona su cuadradito para activar el plugin, despus cliquea sobre validar.
+
+3) Cliquea, en el men Edicin, sobre  Boletines de informacin (o accede directamente por http://votre_site.net/ecrire/?exec=spip_listes)
+
+Ests preparad@:
+
+4) Crea una(s) lista(s) de informacin, despus sus inscritos (con posibilidad de importar una lista de inscripciones)
+
+Disfrtalo.
+
+BoOz
+http://bloog.net/spip-listes
+
+Este script es distribuido bajo licencia GNU/GPL.
+
+/******************************************************************************************/
+/* SPIP-Listes es un sistema de gestin de listas de informacin por email para SPIP      */
+/* Copyright (C) 2004-2006 Vincent CARON  v.caron<at>laposte.net , http://bloog.net       */
+/*                                                                                        */
+/* Traduccin al castellano: joseluis@digital77.com                                                                                              
+*/
+/* Este programa es libre. Puedes distribuirlo y/o modificarlo segn los trminos */
+/* de la Licencia Pblica General GNU publicada por la Free Software Foundation
+*/
+/* (version 2).                                                                           */
+/*                                                                                        */
+/* Este programa es distribuido pues es potencialmente til, pero SIN NINGUNA GARANTêA,       */
+/* ni explcita ni implicita, y comprende las garantas de comercializacin o             */
+/* de adaptacin en un momento especfico. Consulta la Licencia Pblica General GNU  */
+/* para ms detales.                                                                  */
+/*                                                                                        */
+/* Habrs recibido una copia de la Licencia Pblica Genral GNU
+*/
+/* a la vez que este programa; si no es el caso escribe a la*/
+/* Free Software Foundation,
+*/
+/* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, États-Unis.                   */
+/******************************************************************************************/
Index: /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/docs/__installation_en.txt
===================================================================
--- /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/docs/__installation_en.txt	(revision 90)
+++ /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/docs/__installation_en.txt	(revision 90)
@@ -0,0 +1,75 @@
+/******************************************************************************************/
+/* SPIP-Listes is a e-mail newsletter management system for SPIP.						  */
+/* Copyright (C) 2004-2006 Vincent CARON  v.caron<at>laposte.net , http://bloog.net       */
+/* This software is free, you can redistribute it and/or modify it under to the terms of  */
+/* the GNU General Public License (GNU/GPL) as published by the Free Software foundation  */
+/* (version 2).																			  */
+/*                                                                                        */
+/* This software is distributed in the hope that it will be useful but WITHOUT ANY        */
+/* WARRANTY, neither explicit nor implicit, without even the implied warranty of          */
+/* merchantability or fitness for a particular purpose. See the  GNU General Public       */
+/* License for more details.															  */
+/*                                                                                        */
+/* You should have received a copy of the GNU Lesser General Public License along with    */ 
+/* this library; if not, write to the Free Software Foundation, Inc.,                     */
+/* 59 Temple Place, Suite 330, Boston, MA 02111-1307  USA.								  */
+/******************************************************************************************/
+
+/**********************************************************/
+/*                    SPIP-Listes                         */
+/**********************************************************/
+
+Allows the creation of newsletters from a SPIP site (http://www.spip.net), either manually or automatically.
+
+To achieve this task, SPIP-Listes lets you:
+
+write messages
+manage subscribers lists where every subscriber have the possibility to subscribe, un-subscribe and choose the message format most suitable for them (html or text)
+send information by e-mail with a regular frequency if you so wish
+automatically send the latest from the site or a customised Spip template
+modify the layout of what you send at your leisure.
+
+There is a ToDo list on the site bloog.net at: http://bloog.net/spip.php?article115 
+
+Installation
+
+I.Installation of the SPIP-Listes plugin files
+1)extract the .zip archive
+2)upload by FTP the resulting folder spip-Listes/ (and its sub-folders) without any modification to the /plugins folder in your site (you must create it if it doesn't exist)
+II.Calling SPIP-Listes from your templates
+1)add the code  #FORMULAIRE_ABONNEMENT to the template where you want to display the registration form. You can use a custom template instead of formulaire_abonnement.html (to manage the registration to a particular list for instance) with the code #FORMULAIRE_ABONNEMENT{my_template}.
+Note: the page abonnement.html manages the modifications/un-subscriptions of the subscribers.
+2)in the plugin folder, edit the stencil files /patrons/nouveautes.html and /patrons/patron_simple.html and adapt the images URLs to your site.
+Warning, if the selection is based on age loops, the template should return an empty message if an error occurs.
+You can create all the stencils you want and store them in this folder and they will appear automatically amongst the choices in the private area.
+III.Using  SPIP-Listes in the private area
+1)In the Configuration menu, click on Manage plugins.
+2)Check the  SPIP-Listes plugin to activate it then click on Submit.
+3)In the Site Edit menu, click on Newsletters (or go directly to the page with http://your_site.net/ecrire/?exec=spip_listes)
+You are ready now:
+
+4)create one or more mailing lists and subscribers (you can import a list of subscribers).
+
+Have  fun
+
+BoOz
+http://bloog.net/?page=spip-listes
+
+This script is distributed under the GNU/GPL license. 
+
+/******************************************************************************************/
+/* SPIP-Listes is a e-mail newsletter management system for SPIP.						  */
+/* Copyright (C) 2004-2006 Vincent CARON  v.caron<at>laposte.net , http://bloog.net       */
+/* This software is free, you can redistribute it and/or modify it under to the terms of  */
+/* the GNU General Public License (GNU/GPL) as published by the Free Software foundation  */
+/* (version 2).																			  */
+/*                                                                                        */
+/* This software is distributed in the hope that it will be useful but WITHOUT ANY        */
+/* WARRANTY, neither explicit nor implicit, without even the implied warranty of          */
+/* merchantability or fitness for a particular purpose. See the  GNU General Public       */
+/* License for more details.															  */
+/*                                                                                        */
+/* You should have received a copy of the GNU Lesser General Public License along with    */ 
+/* this library; if not, write to the Free Software Foundation, Inc.,                     */
+/* 59 Temple Place, Suite 330, Boston, MA 02111-1307  USA.								  */
+/******************************************************************************************/
Index: /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/docs/__installation_fr.txt
===================================================================
--- /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/docs/__installation_fr.txt	(revision 90)
+++ /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/docs/__installation_fr.txt	(revision 90)
@@ -0,0 +1,97 @@
+/******************************************************************************************/
+/* SPIP-Listes est un système de gestion de listes d'information par email pour SPIP      */
+/* Copyright (C) 2004-2006 Vincent CARON  v.caron<at>laposte.net , http://bloog.net       */
+/*                                                                                        */
+/* Ce programme est libre, vous pouvez le redistribuer et/ou le modifier selon les termes */
+/* de la Licence Publique Générale GNU publiée par la Free Software Foundation            */
+/* (version 2).                                                                           */
+/*                                                                                        */
+/* Ce programme est distribué car potentiellement utile, mais SANS AUCUNE GARANTIE,       */
+/* ni explicite ni implicite, y compris les garanties de commercialisation ou             */
+/* d'adaptation dans un but spécifique. Reportez-vous à la Licence Publique Générale GNU  */
+/* pour plus de détails.                                                                  */
+/*                                                                                        */
+/* Vous devez avoir reçu une copie de la Licence Publique Générale GNU                    */
+/* en même temps que ce programme ; si ce n'est pas le cas, écrivez à la                  */
+/* Free Software Foundation,                                                              */
+/* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, États-Unis.                   */
+/******************************************************************************************/
+
+
+/**********************************************************/
+/*                    SPIP-Listes                         */
+/**********************************************************/
+
+   - Permet de fabriquer des newsletters, manuellement ou automatiquement, à partir d'un site sous Spip (http://spip.net/)
+
+Pour ce faire SPIP-Listes vous permet de :
+   * rédiger des messages,
+   * gérer des listes d'abonnés, chaque abonné étant libre de s'abonner ou se désabonner seul et de choisir son format de message (html ou texte),
+   * envoyer des informations par  e-mail, à fréquence régulière si vous le désirez,
+   * envoyer automatiquement les dernières parutions du site, ou un squelette spip personnalisé
+   * modifier à votre convenance la mise en page de vos envois.
+
+   - La todo list se trouve sur le site bloog.net : http://bloog.net/spip.php?article115
+
+
+/**********************************************************/
+/*              Installation de SPIP-Listes               */
+/**********************************************************/
+
+I. Installation des fichiers du plugin SPIP-Listes
+
+1) Décompressez l'archive .zip
+
+2) Copiez par FTP le repertoire obtenu spip-listes/ (et ses sous-répertoires), sans changement, en conservant l'arborescence, dans le répertoire /plugins (que vous devez créer s'il n'existe pas).
+
+
+II. Appel de SPIP-Listes dans vos squelettes
+
+
+1)  Ajouter le code #FORMULAIRE_ABONNEMENT dans le squelette ou vous souhaitez afficher le formulaire d'inscription.
+Vous pouvez utiliser un squelette personnel à la place de formulaire_abonnement.html (pour gérer l'inscription à une liste particulière par exemple) en utilisant la notation #FORMULAIRE_ABONNEMENT{mon_squelette}.
+
+Note : La page abonnement.html gère des modifications/désinscriptions des abonnés.
+
+2) Dans le repertoire du plugin, éditer les fichiers /patrons/nouveautes.html et /patrons/patron_simple.html, et adapter les adresses des images à votre site.
+Attention, en cas de sélection fondées sur des boucles sur l'âge, le squelette doit retourner un message vide en cas d'erreur.
+Vous pouvez créer tous les patrons que vous désirez, en les déposant dans ce répertoire, ils apparaîtront automatiquement dans les choix de la partie privée.
+
+III. Utilisation de SPIP-Listes, dans la partie privée
+
+1) Cliquer, dans le menu de configuration, sur Gestion des plugins.
+
+2) Sur la ligne Plugin SPIP-Listes cocher la case Activer le plugin, puis valider
+
+3) Cliquer, dans le menu Edition, sur lettres d'information (ou accédez directement à la page par http://votre_site.net/ecrire/?exec=spip_listes)
+
+Vous êtes prêt :
+
+4) Créer une(des) liste(s) de diffusion, puis des abonnés (avec possibilité d'import d'une liste d'abonnés).
+
+
+Amusez-vous bien
+
+BoOz
+http://bloog.net/?page=spip-listes
+
+Ce script est distribué sous licence GNU/GPL.
+
+/******************************************************************************************/
+/* SPIP-Listes est un système de gestion de listes d'information par email pour SPIP      */
+/* Copyright (C) 2004 Vincent CARON  v.caron<at>laposte.net , http://bloog.net            */
+/*                                                                                        */
+/* Ce programme est libre, vous pouvez le redistribuer et/ou le modifier selon les termes */
+/* de la Licence Publique Générale GNU publiée par la Free Software Foundation            */
+/* (version 2).                                                                           */
+/*                                                                                        */
+/* Ce programme est distribué car potentiellement utile, mais SANS AUCUNE GARANTIE,       */
+/* ni explicite ni implicite, y compris les garanties de commercialisation ou             */
+/* d'adaptation dans un but spécifique. Reportez-vous à la Licence Publique Générale GNU  */
+/* pour plus de détails.                                                                  */
+/*                                                                                        */
+/* Vous devez avoir reçu une copie de la Licence Publique Générale GNU                    */
+/* en même temps que ce programme ; si ce n'est pas le cas, écrivez à la                  */
+/* Free Software Foundation,                                                              */
+/* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, États-Unis.                   */
+/******************************************************************************************/
Index: /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/docs/read_me.txt
===================================================================
--- /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/docs/read_me.txt	(revision 90)
+++ /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/docs/read_me.txt	(revision 90)
@@ -0,0 +1,13 @@
+If you want to use the template version of abonnement.php3, which in turn uses
+the new form tag #FORMULAIRE_MODIF_LISTES, you have to overwrite the old
+abonnement.php3 file with abonnement.php3.txt that you can find in this folder.
+Just don't forget to rename it abonnement.php3.
+
+Renato Formato
+
+
+Si vous voulez utiliser la version squelette de abonnement.php3, 
+qui utilise maintenant une balise de formulaire #FORMULAIRE_MODIF_LISTES, 
+vous devez écraser l'ancien fichier abonnement.php3 
+avec le fichier abonnement.php3.txt que vous trouverez dans ce répertoire.
+N'oubliez pas de le renommer en abonnement.php3
Index: /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/exec/abonne_edit.php
===================================================================
--- /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/exec/abonne_edit.php	(revision 90)
+++ /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/exec/abonne_edit.php	(revision 90)
@@ -0,0 +1,186 @@
+<?php
+
+/******************************************************************************************/
+/* SPIP-listes est un système de gestion de listes d'information par email pour SPIP      */
+/* Copyright (C) 2004 Vincent CARON  v.caron<at>laposte.net , http://bloog.net            */
+/*                                                                                        */
+/* Ce programme est libre, vous pouvez le redistribuer et/ou le modifier selon les termes */
+/* de la Licence Publique Générale GNU publiée par la Free Software Foundation            */
+/* (version 2).                                                                           */
+/*                                                                                        */
+/* Ce programme est distribué car potentiellement utile, mais SANS AUCUNE GARANTIE,       */
+/* ni explicite ni implicite, y compris les garanties de commercialisation ou             */
+/* d'adaptation dans un but spécifique. Reportez-vous à la Licence Publique Générale GNU  */
+/* pour plus de détails.                                                                  */
+/*                                                                                        */
+/* Vous devez avoir reçu une copie de la Licence Publique Générale GNU                    */
+/* en même temps que ce programme ; si ce n'est pas le cas, écrivez à la                  */
+/* Free Software Foundation,                                                              */
+/* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, États-Unis.                   */
+/******************************************************************************************/
+
+
+if (!defined("_ECRIRE_INC_VERSION")) return;
+
+include_spip('inc/presentation');
+include_spip('inc/affichage');
+
+function exec_abonne_edit(){
+	global $connect_statut;
+	global $connect_toutes_rubriques;
+	global $connect_id_auteur;
+	
+	$id_auteur = _request('id_auteur');
+	$confirm = _request('confirm');
+	$suppr_auteur = _request('suppr_auteur');
+	$id_liste = _request('id_liste');
+	$effacer_definitif = _request('effacer_definitif');
+	$nom = _request('nom');
+	$email = _request('email');
+	
+	$nomsite=lire_meta("nom_site"); 
+	$urlsite=lire_meta("adresse_site"); 
+		
+	// Admin SPIP-Listes
+	echo debut_page(_T('spiplistes:spip_listes'), "redacteurs", "spiplistes");
+	
+	if ($connect_statut != "0minirezo" ) {
+		echo "<p><b>"._T('spiplistes:acces_a_la_page')."</b></p>";
+		echo fin_page();
+		exit;
+	}
+	
+	if (($connect_statut == "0minirezo") OR ($connect_id_auteur == $id_auteur)) {
+		$statut_auteur=$statut;
+		spip_listes_onglets("messagerie", _T('spiplistes:spip_listes'));
+	}
+	
+	debut_gauche();
+	spip_listes_raccourcis();
+	creer_colonne_droite();
+	debut_droite("messagerie");
+	
+	// MODE ABONNE: gestion d'un abonne---------------------------------------------
+	
+	if($confirm == 'oui'){
+		$type_abo = _request('suppl_abo');
+		if($type_abo=='non') spiplistes_desabonner($id_auteur);
+		
+		 spip_query("UPDATE `spip_auteurs_elargis` SET `spip_listes_format`="._q($type_abo)." WHERE `id_auteur` ="._q($id_auteur));	
+	}
+	
+	$result = spip_query("SELECT * FROM spip_auteurs WHERE id_auteur="._q($id_auteur));
+	
+	if ($row = spip_fetch_array($result)) {
+		$id_auteur=$row['id_auteur'];
+		$nom=$row['nom'];
+		$bio=$row['bio'];
+		$email=$row['email'];
+		$nom_site_auteur=$row['nom_site'];
+		$url_site=$row['url_site'];
+		$login=$row['login'];
+		$pass=$row['pass'];
+		$statut=$row['statut'];
+		$pgp=$row["pgp"];
+		$messagerie=$row["messagerie"];
+		$imessage=$row["imessage"];
+		$low_sec = $row["low_sec"];
+		
+		echo "<div align='center'>";
+		gros_titre($nom);
+		echo "</div>";
+		
+		if ($statut == "0minirezo")
+			$logo = "redacteurs-admin-24.gif";
+		elseif ($statut == "5poubelle")
+			$logo = "redacteurs-poubelle-24.gif";
+		else
+			$logo = "redacteurs-24.gif";
+		
+		if (strlen($email) > 2 OR strlen($bio) > 0 OR strlen($nom_site_auteur) > 0 OR ($champs_extra AND $extra)) {
+			echo debut_cadre_relief("$logo");
+			echo "<font face='Verdana,Arial,Sans,sans-serif'>";
+			if (strlen($email) > 2) 
+				echo _T('email_2')." <b><a href='mailto:$email'>$email</a></b><br /> ";
+			if (strlen($nom_site_auteur) > 2)
+				echo _T('info_site_2')." <b><a href='$url_site'>$nom_site_auteur</a></b>";
+			echo "<p>".propre($bio)."</p>";
+			echo "</font>";
+			echo fin_cadre_relief();
+			
+				echo debut_cadre_relief("$logo");
+				
+				echo"<form action='?exec=abonne_edit' method='post'>";
+				
+				$abo = spip_fetch_array(spip_query("SELECT `spip_listes_format` FROM `spip_auteurs_elargis` WHERE `id_auteur`=$id_auteur")) ;		
+		//var_dump($abo);die("coucou");
+		$abo = $abo["spip_listes_format"];
+				$c1 = ( $abo == 'html')? 'checked=checked)': '';
+				$c2 = ( $abo == 'texte')? 'checked=checked': '';
+				$c3 = ( $abo == 'non')? 'checked=checked': '';
+				echo'<div style="text-align: left;">';
+				echo'<strong>Format :</strong><br>';
+				echo'<input name="suppl_abo" value="html" '.$c1.'  type="radio">'._T('spiplistes:html').'<br>';
+				echo'<input name="suppl_abo" value="texte" '.$c2.' type="radio">'._T('spiplistes:texte').'<br>';
+				echo'<input name="suppl_abo" '.$c3.' value="non" type="radio">'._T('spiplistes:desabonnement').'<br>';
+				echo'</div>';
+				echo"<p>";
+				echo"<input type='submit' name='Valider' value='"._T('spiplistes:modifier')."'>";
+				echo"<input type='hidden' name='id_auteur'  value=$id_auteur >";
+				echo"<input type='hidden' name='confirm'  value='oui' >";
+				echo"</p>";
+				echo"</form>";
+				echo fin_cadre_relief();
+			
+		}
+		
+		
+		echo "<p>";
+		if ($connect_statut == "0minirezo") $aff_art = "'prepa','prop','publie','refuse'";
+		else if ($connect_id_auteur == $id_auteur) $aff_art = "'prepa','prop','publie'";
+		else $aff_art = "'prop','publie'";
+	}
+	
+	echo spiplistes_afficher_en_liste(_T('spiplistes:abonne_listes'), _DIR_PLUGIN_SPIPLISTES.'img_pack/stock_mail.gif', 'abonnements', '', '', 'position') ;
+
+	if ($statut == '6forum'){
+		$retour = generer_url_ecrire('abonnes_tous');
+		$action = generer_action_auteur('spiplistes_supprimer_abonne',$id_auteur,$retour);
+		echo debut_cadre_relief("$logo");
+		echo "<h3>"._T('spiplistes:supprime_contact')."</h3>";
+		echo "<form action='$action' method='post'>";
+		echo form_hidden($action);
+		echo "<p align='center'>";
+		echo "<input type='submit' name='Valider' value='"._T('spiplistes:supprime_contact_base')."'>";
+		echo "</p>";
+		echo "</form>";
+		echo fin_cadre_relief();
+	}
+	
+	
+	//MODE ABONNE FIN abonne -------------------------------------------------------
+	
+	echo "<p style='font-family: Arial, Verdana,sans-serif;font-size:10px;font-weight:bold'>".$GLOBALS['spiplistes_version']."<p>" ;
+	echo fin_gauche(), fin_page();
+}
+
+/******************************************************************************************/
+/* SPIP-listes est un système de gestion de listes d'abonnés et d'envoi d'information     */
+/* par email  pour SPIP.                                                                  */
+/* Copyright (C) 2004 Vincent CARON  v.caron<at>laposte.net , http://bloog.net            */
+/*                                                                                        */
+/* Ce programme est libre, vous pouvez le redistribuer et/ou le modifier selon les termes */
+/* de la Licence Publique Générale GNU publiée par la Free Software Foundation            */
+/* (version 2).                                                                           */
+/*                                                                                        */
+/* Ce programme est distribué car potentiellement utile, mais SANS AUCUNE GARANTIE,       */
+/* ni explicite ni implicite, y compris les garanties de commercialisation ou             */
+/* d'adaptation dans un but spécifique. Reportez-vous à la Licence Publique Générale GNU  */
+/* pour plus de détails.                                                                  */
+/*                                                                                        */
+/* Vous devez avoir reçu une copie de la Licence Publique Générale GNU                    */
+/* en même temps que ce programme ; si ce n'est pas le cas, écrivez à la                  */
+/* Free Software Foundation,                                                              */
+/* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, États-Unis.                   */
+/******************************************************************************************/
+?>
Index: /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/exec/abonnes_tous.php
===================================================================
--- /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/exec/abonnes_tous.php	(revision 90)
+++ /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/exec/abonnes_tous.php	(revision 90)
@@ -0,0 +1,222 @@
+<?php
+
+/******************************************************************************************/
+/* SPIP-listes est un systï¿œe de gestion de listes d'information par email pour SPIP      */
+/* Copyright (C) 2004 Vincent CARON  v.caron<at>laposte.net , http://bloog.net            */
+/*                                                                                        */
+/* Ce programme est libre, vous pouvez le redistribuer et/ou le modifier selon les termes */
+/* de la Licence Publique Gï¿œï¿œale GNU publiï¿œ par la Free Software Foundation            */
+/* (version 2).                                                                           */
+/*                                                                                        */
+/* Ce programme est distribuï¿œcar potentiellement utile, mais SANS AUCUNE GARANTIE,       */
+/* ni explicite ni implicite, y compris les garanties de commercialisation ou             */
+/* d'adaptation dans un but spï¿œifique. Reportez-vous ï¿œla Licence Publique Gï¿œï¿œale GNU  */
+/* pour plus de dï¿œails.                                                                  */
+/*                                                                                        */
+/* Vous devez avoir reï¿œ une copie de la Licence Publique Gï¿œï¿œale GNU                    */
+/* en mï¿œe temps que ce programme ; si ce n'est pas le cas, ï¿œrivez ï¿œla                  */
+/* Free Software Foundation,                                                              */
+/* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, ï¿œats-Unis.                   */
+/******************************************************************************************/
+
+if (!defined("_ECRIRE_INC_VERSION")) return;
+
+include_spip('inc/presentation');
+include_spip('inc/mots');
+include_spip('inc/affichage');
+
+
+function exec_abonnes_tous(){
+	global $connect_statut;
+	global $connect_toutes_rubriques;
+	global $connect_id_auteur;
+	$type = _request('type');
+	$new = _request('new');
+	$id_auteur = _request('id_auteur');
+	
+	$options = 'avancees' ;
+	
+	$nomsite=lire_meta("nom_site"); 
+	$urlsite=lire_meta("adresse_site"); 
+	
+	// Admin SPIP-Listes
+	echo debut_page(_T('spiplistes:spip_listes'), "redacteurs", "spiplistes");
+	
+	if ($connect_statut != "0minirezo" ) {
+		echo "<p><b>"._T('spiplistes:acces_a_la_page')."</b></p>";
+		echo fin_page();
+		exit;
+	}
+	
+	if (($connect_statut == "0minirezo") OR ($connect_id_auteur == $id_auteur))
+		spip_listes_onglets("messagerie", _T('spiplistes:spip_listes'));
+	
+	debut_gauche();
+	spip_listes_raccourcis();
+	creer_colonne_droite();
+	debut_droite("messagerie");
+	
+	//
+	// Recherche d'auteur
+	//
+	
+	spiplistes_cherche_auteur();
+	
+	//Compter tous les abonnes a des listes 
+	$result_pile = spip_query(
+	  'SELECT listes.statut, COUNT(abonnements.id_auteur)
+	   FROM spip_listes AS listes LEFT JOIN spip_auteurs_listes AS abonnements USING (id_liste)
+	   GROUP BY listes.statut');
+	$nb_abonnes = array();
+	while ($row = spip_fetch_array($result_pile, SPIP_NUM)) {
+		$nb_abonnes[$row[0]] = intval($row[1]);
+	}
+
+	//evaluer les formats de tous les auteurs + compter tous les auteurs
+	$result = spip_query('SELECT `spip_listes_format` , COUNT(`spip_listes_format`) FROM `spip_auteurs_elargis` GROUP BY `spip_listes_format`');
+	$nb_inscrits = 0;
+
+	//repartition des formats
+	$cmpt = array('texte'=>0, 'html'=>0, 'non'=>0);
+	
+	while ($row = spip_fetch_array($result, SPIP_NUM)) {
+		$nb_inscrits += $row[1];
+		$abo =$row[0];
+		if ($abo) {
+			$cmpt[$abo] += $row[1];
+		}
+	}
+	
+	//Total des auteurs qui ont un format html ou texte
+	$total_abo = $cmpt['html'] + $cmpt['texte'] ;
+	
+	
+	//Total des auteurs qui ne sont pas abonnes a une liste
+	$abonnes = spip_query("select a.id_auteur, count(d.id_liste) from spip_auteurs a  
+	      left join spip_auteurs_listes d on a.id_auteur =  
+	          d.id_auteur group by a.id_auteur having count(d.id_liste) = 0;"); 
+	$nb_abonnes_auc = spip_num_rows($abonnes);
+	
+	echo debut_cadre_relief('forum-interne-24.gif');
+
+	echo"<div>";
+	echo"<div style='float:right;width:150px'>";
+	echo "<b>"._T('spiplistes:repartition')."</b>  <br /><b>"._T('spiplistes:html')."</b> : {$cmpt['html']} <br /><b>"._T('spiplistes:texte')."</b> : {$cmpt['texte']} <br /><b>"._T('spiplistes:desabonnes')."</b> : {$cmpt['non']}";
+	echo"</div>";
+	
+	$total = $cmpt['html'] + $cmpt['texte'] + $cmpt['non']; // ?
+	
+	echo _T('spiplistes:nbre_abonnes'). $total_abo .
+	  _T('spiplistes:abonnes_liste_pub') . $nb_abonnes['liste'] .
+	  _T('spiplistes:abonnes_liste_int') . $nb_abonnes['inact'] .
+	 "<br />". _T('spiplistes:abonne_aucune_liste') . " : ". ($nb_abonnes_auc - $cmpt['non']) . "</p>";
+	
+	echo"</div>";
+	
+	$result = spip_query("SELECT id_auteur FROM spip_auteurs WHERE statut!='5poubelle' AND statut!='nouveau' LIMIT 2");
+	if (spip_num_rows($result) > 1) {
+		echo "<form action='?exec=abonnes_tous' METHOD='post'>";
+		echo "<div align=center>\n";
+		echo "<input type='text' name='cherche_auteur' class='fondl' value='' size='20' />";
+		echo " <input type='submit' name='Chercher' value='"._T('bouton_chercher')."' class='fondo' />";
+		echo "</div></form>";
+	}
+	
+	echo fin_cadre_relief();
+	
+	echo "<p>";
+	
+	// auteur
+	
+	$retour = generer_url_ecrire("abonnes_tous");
+	
+	$tri = _request('tri') ? _request('tri') : 'nom';
+	$retour = parametre_url($retour,"tri",$tri);
+	
+	//
+	// Construire la requete
+	//
+	
+	$sql_visible="1=1"; 
+	$partri = " " . _T('info_par_tri', array('tri' => $tri));
+	
+	$sql_sel = '';
+	
+	// tri
+	switch ($tri) {
+		case 'nombre':
+			$sql_order = ' ORDER BY compteur DESC, unom';
+			$type_requete = 'nombre';
+			$partri = " "._T('info_par_nombre_article');
+			break;
+		case 'statut':
+			$sql_order = ' ORDER BY statut, login = "", unom';
+			$type_requete = 'auteur';
+			break;
+		case 'nom':
+			$sql_order = ' ORDER BY unom';
+			$type_requete = 'auteur';
+			break;
+		case 'email':
+			$sql_order = ' ORDER BY LOWER(email)';
+			$type_requete = 'auteur';
+			break;
+		case 'multi':
+		default:
+			$type_requete = 'auteur';
+			$sql_sel = ", ".creer_objet_multi ("nom", $spip_lang);
+			$sql_order = " ORDER BY multi";
+	}
+
+	
+	//
+	// La requete de base est tres sympa
+	//
+	
+	$query = "SELECT
+		aut.id_auteur AS id_auteur,
+		aut.statut AS statut,
+		aut.login AS login,
+		aut.nom AS nom,
+		aut.email AS email,
+		aut.url_site AS url_site,
+		aut.messagerie AS messagerie,
+		UPPER(aut.nom) AS unom,
+		count(lien.id_liste) as compteur
+		$sql_sel
+		FROM spip_auteurs as aut
+		LEFT JOIN spip_auteurs_listes AS lien ON aut.id_auteur=lien.id_auteur
+		LEFT JOIN spip_listes AS art ON (lien.id_liste = art.id_liste)
+		WHERE
+		$sql_visible
+		GROUP BY aut.id_auteur
+		$sql_order";
+
+	spiplistes_afficher_auteurs($query, generer_url_ecrire('abonnes_tous'));
+
+	// MODE STATUT FIN -------------------------------------------------------------
+	
+	echo "<p style='font-family: Arial, Verdana,sans-serif;font-size:10px;font-weight:bold'>".$GLOBALS['spiplistes_version']."<p>" ;
+	echo fin_gauche(), fin_page();
+}
+
+/******************************************************************************************/
+/* SPIP-listes est un systï¿œe de gestion de listes d'abonnï¿œ et d'envoi d'information     */
+/* par email  pour SPIP.                                                                  */
+/* Copyright (C) 2004 Vincent CARON  v.caron<at>laposte.net , http://bloog.net            */
+/*                                                                                        */
+/* Ce programme est libre, vous pouvez le redistribuer et/ou le modifier selon les termes */
+/* de la Licence Publique Gï¿œï¿œale GNU publiï¿œ par la Free Software Foundation            */
+/* (version 2).                                                                           */
+/*                                                                                        */
+/* Ce programme est distribuï¿œcar potentiellement utile, mais SANS AUCUNE GARANTIE,       */
+/* ni explicite ni implicite, y compris les garanties de commercialisation ou             */
+/* d'adaptation dans un but spï¿œifique. Reportez-vous ï¿œla Licence Publique Gï¿œï¿œale GNU  */
+/* pour plus de dï¿œails.                                                                  */
+/*                                                                                        */
+/* Vous devez avoir reï¿œ une copie de la Licence Publique Gï¿œï¿œale GNU                    */
+/* en mï¿œe temps que ce programme ; si ce n'est pas le cas, ï¿œrivez ï¿œla                  */
+/* Free Software Foundation,                                                              */
+/* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, ï¿œats-Unis.                   */
+/******************************************************************************************/
+?>
Index: /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/exec/autocron.php
===================================================================
--- /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/exec/autocron.php	(revision 90)
+++ /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/exec/autocron.php	(revision 90)
@@ -0,0 +1,31 @@
+<?php
+
+if (!defined("_ECRIRE_INC_VERSION")) return;
+
+function exec_autocron(){
+
+	$rsult_pile = spip_query("SELECT * FROM spip_courriers AS messages WHERE statut='encour' LIMIT 0,1");
+	$mssage_pile = spip_num_rows($rsult_pile);
+	$mess=spip_fetch_array($rsult_pile);	
+
+	if($mssage_pile > 0 ){
+		// Les valeurs sont deja initialises
+		// Compter le nombre de mails a envoyer
+		
+		$id_mess = $mess["id_courrier"];
+		$nb_inscrits = $mess["total_abonnes"];
+		$nb_messages_envoyes = $mess["nb_emails_envoyes"];
+		
+		if($nb_inscrits > 0)
+			echo "<p align='center'> <strong>".round($nb_messages_envoyes/$nb_inscrits *100)." %</strong> (".$nb_messages_envoyes."/".$nb_inscrits.") </p>";
+	
+	}
+	else
+		echo "fin";
+	
+	echo ' <div style="background-image: url(\''. generer_url_action('cron','&var='.time()).'\');"> </div> ';
+	spip_log("spip_listes :  autocron");	
+ 
+}
+
+?>
Index: /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/exec/config.php
===================================================================
--- /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/exec/config.php	(revision 90)
+++ /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/exec/config.php	(revision 90)
@@ -0,0 +1,271 @@
+<?php
+
+/******************************************************************************************/
+/* SPIP-listes est un systï¿œe de gestion de listes d'information par email pour SPIP      */
+/* Copyright (C) 2004 Vincent CARON  v.caron<at>laposte.net , http://bloog.net            */
+/*                                                                                        */
+/* Ce programme est libre, vous pouvez le redistribuer et/ou le modifier selon les termes */
+/* de la Licence Publique Gï¿œï¿œale GNU publiï¿œ par la Free Software Foundation            */
+/* (version 2).                                                                           */
+/*                                                                                        */
+/* Ce programme est distribuï¿œcar potentiellement utile, mais SANS AUCUNE GARANTIE,       */
+/* ni explicite ni implicite, y compris les garanties de commercialisation ou             */
+/* d'adaptation dans un but spï¿œifique. Reportez-vous ï¿œla Licence Publique Gï¿œï¿œale GNU  */
+/* pour plus de dï¿œails.                                                                  */
+/*                                                                                        */
+/* Vous devez avoir reï¿œ une copie de la Licence Publique Gï¿œï¿œale GNU                    */
+/* en mï¿œe temps que ce programme ; si ce n'est pas le cas, ï¿œrivez ï¿œla                  */
+/* Free Software Foundation,                                                              */
+/* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, ï¿œats-Unis.                   */
+/******************************************************************************************/
+
+if (!defined("_ECRIRE_INC_VERSION")) return;
+
+include_spip('inc/presentation');
+include_spip('inc/distant');
+include_spip('inc/affichage');
+include_spip('inc/meta');
+include_spip('inc/config');
+
+
+function spiplistes_configurer() {
+	if ($abonnement_config = _request('abonnement_config'))
+		ecrire_meta('abonnement_config', $abonnement_config);
+	
+	if ($adresse_defaut = _request('email_defaut') AND email_valide($adresse_defaut)) {
+		ecrire_meta('email_defaut', $adresse_defaut);
+	}
+	
+	if ($smtp_server = _request('smtp_server'))
+		ecrire_meta('smtp_server', $smtp_server);
+
+	if ($smtp_login = _request('smtp_login'))
+		ecrire_meta('smtp_login', $smtp_login);
+	
+	if ($smtp_pass = _request('smtp_pass'))
+		ecrire_meta('smtp_pass', $smtp_pass);
+	
+	if ($smtp_port = _request('smtp_port'))
+		ecrire_meta('smtp_port', $smtp_port);
+	
+	if ($mailer_smtp = _request('mailer_smtp'))
+		ecrire_meta('mailer_smtp', $mailer_smtp);
+	
+	if ($smtp_identification = _request('smtp_identification'))
+		ecrire_meta('smtp_identification', $smtp_identification);
+	
+	if ($smtp_sender = _request('smtp_sender'))
+		ecrire_meta('smtp_sender', $smtp_sender);
+
+	ecrire_metas();
+}
+
+function exec_config(){
+
+	global $connect_statut;
+	global $connect_toutes_rubriques;
+	global $connect_id_auteur,$couleur_foncee;
+	
+	$reinitialiser_config = _request('reinitialiser_config');
+	$Valider_reinit = _request('Valider_reinit');
+
+	$nomsite=$GLOBALS['meta']['nom_site']; 
+	$urlsite=$GLOBALS['meta']['adresse_site']; 
+
+
+	// Admin SPIP-Listes
+	echo debut_page(_T('spiplistes:spip_listes'), "redacteurs", "spiplistes");
+
+	if ($connect_statut != "0minirezo" ) {
+		echo "<p><b>"._T('spiplistes:acces_a_la_page')."</b></p>";
+		echo fin_page();
+		exit;
+	}
+
+	if (($connect_statut == "0minirezo") OR ($connect_id_auteur == $id_auteur)) {
+		$statut_auteur=$statut;
+		spip_listes_onglets("messagerie", _T('spiplistes:spip_listes'));
+	}
+
+	debut_gauche();
+
+	spip_listes_raccourcis();
+	creer_colonne_droite();
+	debut_droite("messagerie");
+
+	// MODE CONFIG: Configuration de spip-listes -----------------------------------
+
+	spiplistes_configurer();
+
+	$config = $GLOBALS['meta']['abonnement_config'] ;
+
+	echo debut_cadre_relief("redacteurs-24.gif", false, "", _T('spiplistes:mode_inscription'));
+	echo "<form action='".generer_url_ecrire('config')."' method='post'>";
+	echo "<input type='hidden' name='changer_config' value='oui' />";
+	
+	echo "<table border=0 cellspacing=1 cellpadding=3 width=\"100%\">";
+	
+	echo "<tr><td background='img_pack/rien.gif' class='verdana2'>";
+
+	$texte1 = '' ;
+	$texte2 = '' ;
+	($config == 'simple' ) ? $texte1 = "checked"  : $texte2 = "checked" ;
+
+	echo "<input type='radio' name='abonnement_config' value='simple' $texte1 id='statut_simple' />";
+	echo "<label for='statut_simple'>"._T('spiplistes:abonnement_simple')."</label> ";
+	echo "<p><input type='radio' name='abonnement_config' value='membre' $texte2 id='statut_membre' />";
+	echo "<label for='statut_membre'>"._T('spiplistes:abonnement_code_acces')."</label> ";
+	echo "</td></tr>";
+	echo "<tr><td style='text-align:$spip_lang_right;'>";
+	echo "<input type='submit' name='Valider' value='"._T('bouton_valider')."' class='fondo' />";
+	echo "</td></tr>";
+	echo "</table>\n";
+	
+	echo "</form>";
+	echo fin_cadre_relief();
+
+	echo "<form action='".generer_url_ecrire('config')."' method='post'>";
+
+	echo '<br />';
+	echo debut_cadre_relief("", false, "", _T('spiplistes:email_envoi'));
+
+	echo debut_cadre_trait_couleur("", false, "", _T('spiplistes:adresse_envoi'));
+	$adresse_defaut = (email_valide($GLOBALS['meta']['email_defaut'])) ? $GLOBALS['meta']['email_defaut'] : $GLOBALS['meta']['email_webmaster'];
+	echo "<input type='text' name='email_defaut' value='".$adresse_defaut."' size='30' CLASS='formo' />";
+	
+	echo fin_cadre_trait_couleur();
+
+	echo debut_cadre_trait_couleur("", false, "", _T('spiplistes:methode_envoi'));
+
+	echo _T('spiplistes:pas_sur');
+
+	$mailer_smtp = $GLOBALS['meta']['mailer_smtp'];
+
+	echo bouton_radio("mailer_smtp", "non", _T('spiplistes:php_mail'), $mailer_smtp == "non", "changeVisible(this.checked, 'smtp', 'none', 'block');");
+	echo "<br />";
+	echo bouton_radio("mailer_smtp", "oui", _T('spiplistes:smtp'), $mailer_smtp == "oui", "changeVisible(this.checked, 'smtp', 'block', 'none');");
+
+	if ($mailer_smtp == "oui") $style = "display: block;";
+	else $style = "display: none;";
+	echo "<div id='smtp' style='$style'>";
+	echo "<ul>";
+	echo "<li>"._T('spiplistes:smtp_hote')." <input type='text' name='smtp_server' value='".$GLOBALS['meta']['smtp_server']."' size='30' class='formo' />";
+	echo "<li>"._T('spiplistes:smtp_port')." <input type='text' name='smtp_port' value='".$GLOBALS['meta']['smtp_port']."' size='4' class='fondl' />";
+	echo "<li>"._T('spiplistes:spip_ident');
+
+	$smtp_identification = $GLOBALS['meta']['smtp_identification'];
+
+	echo bouton_radio("smtp_identification", "oui", _T('item_oui'), $smtp_identification == "oui", "changeVisible(this.checked, 'smtp-auth', 'block', 'none');");
+	echo "&nbsp;";
+	echo bouton_radio("smtp_identification", "non", _T('item_non'), $smtp_identification == "non", "changeVisible(this.checked, 'smtp-auth', 'none', 'block');");
+
+	if ($smtp_identification == "oui") $style = "display: block;";
+	else $style = "display: none;";
+	echo "<div id='smtp-auth' style='$style'>";
+	echo "<ul>";
+	echo "<li>"._T('item_login')." <input type='text' name='smtp_login' value='".$GLOBALS['meta']['smtp_login']."' size='30' CLASS='formo' />";
+	echo "<li>"._T('entree_passe_ldap')." <input type='password' name='smtp_pass' value='".$GLOBALS['meta']['smtp_pass']."' size='30' CLASS='formo' />";
+	echo "</ul>";
+	echo "</div>";
+
+	echo "</ul>";
+	echo "</div>";
+
+	echo "<br />";
+	echo fin_cadre_trait_couleur();
+
+	if ($mailer_smtp == "oui") $style = "display: block;";
+	else $style = "display: none;" ;
+	echo "<div style='$style'>";
+	echo debut_cadre_relief("", false, "", _T('spiplistes:adresse_smtp'));
+	echo "<p style='margin:10px'>"._T('spiplistes:adresse_smtp')."</p>";
+	echo "<input type='text' name='smtp_sender' value=\"".$GLOBALS['meta']['smtp_sender']."\" class='formo' />";
+	echo fin_cadre_relief();
+	echo "</div>\n";
+
+	echo "<input type='submit' name='valid_smtp' value='"._T('bouton_valider')."' class='fondo' style='float:right' />";
+	echo "<hr style='clear:both;visibility:hidden' />";
+
+	echo "</form>";	
+
+	echo fin_cadre_relief();
+	
+	if (($reinitialiser_config == 'oui' AND $Valider_reinit)) {
+		ecrire_meta('spiplistes_lots' , _request('spiplistes_lots')) ;
+		ecrire_meta('spiplistes_charset_envoi' , _request('spiplistes_charset_envoi')) ;
+		ecrire_metas();
+	}
+
+	echo debut_cadre_relief("redacteurs-24.gif", false, "", _T('spiplistes:tableau_bord'));
+	echo "<form action='".generer_url_ecrire('config')."' method='post'>";
+	echo "<input type='hidden' name='reinitialiser_config' value='oui' />";
+	echo "<label for='spiplistes_lots'>"._T('spiplistes:nombre_lot')."</label>" ;
+	echo "<input type='text' name='spiplistes_lots' value=\"".$GLOBALS['meta']['spiplistes_lots']."\" class='formo' />";
+	echo "<label for='spiplistes_charset_envoi'>"._T('spiplistes:envoi_charset')."</label>" ;
+	echo "<input type='text' name='spiplistes_charset_envoi' value=\"".$GLOBALS['meta']['spiplistes_charset_envoi']."\" class='formo' />";
+
+	echo "<input type='submit' name='Valider_reinit' value='"._T('spiplistes:reinitialiser')."' class='fondo' style='float:right' />";
+	echo "<hr style='clear:both;visibility:hidden' />";
+	echo "</form>";
+	echo fin_cadre_relief();
+
+
+	
+function sl_console_lit_log($logname){
+	$files = preg_files(defined('_DIR_TMP')?_DIR_TMP:_DIR_SESSION ,"$logname\.log(\.[0-9])?");
+	krsort($files);
+
+	$log = "";
+	foreach($files as $nom){
+		if (lire_fichier($nom,$contenu))
+			$log.=$contenu;
+	}
+	$contenu = explode("<br />",nl2br($contenu));
+	
+	$out = "";
+	$maxlines = 40;
+	while ($contenu && $maxlines--){
+		$out .= array_pop($contenu)."\n";
+	}
+	return $out;
+}
+
+if(_request('logs')=="oui"){
+echo "<a name='logs'></a>";
+echo debut_cadre_relief("", false, "", "Logs");
+echo "<div style='width:98%;overflow:auto'>";
+echo "<pre>".sl_console_lit_log("spiplistes")."</pre>";
+echo "</div>";
+echo fin_cadre_relief();
+}else{
+echo "<a href='".generer_url_ecrire('config','logs=oui#logs')."'>Logs</a>";
+}
+
+	// MODE CONFIG FIN -------------------------------------------------------------
+
+	//$spiplistes_version = "SPIP-listes 1.9b2";
+	echo "<p style='font-family: Arial, Verdana,sans-serif;font-size:10px;font-weight:bold'>".$GLOBALS['spiplistes_version']."</p>" ;
+
+	echo fin_gauche(), fin_page();
+}
+
+/******************************************************************************************/
+/* SPIP-listes est un systï¿œe de gestion de listes d'abonnï¿œ et d'envoi d'information     */
+/* par email  pour SPIP.                                                                  */
+/* Copyright (C) 2004 Vincent CARON  v.caron<at>laposte.net , http://bloog.net            */
+/*                                                                                        */
+/* Ce programme est libre, vous pouvez le redistribuer et/ou le modifier selon les termes */
+/* de la Licence Publique Gï¿œï¿œale GNU publiï¿œ par la Free Software Foundation            */
+/* (version 2).                                                                           */
+/*                                                                                        */
+/* Ce programme est distribuï¿œcar potentiellement utile, mais SANS AUCUNE GARANTIE,       */
+/* ni explicite ni implicite, y compris les garanties de commercialisation ou             */
+/* d'adaptation dans un but spï¿œifique. Reportez-vous ï¿œla Licence Publique Gï¿œï¿œale GNU  */
+/* pour plus de dï¿œails.                                                                  */
+/*                                                                                        */
+/* Vous devez avoir reï¿œ une copie de la Licence Publique Gï¿œï¿œale GNU                    */
+/* en mï¿œe temps que ce programme ; si ce n'est pas le cas, ï¿œrivez ï¿œla                  */
+/* Free Software Foundation,                                                              */
+/* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, ï¿œats-Unis.                   */
+/******************************************************************************************/
+?>
Index: /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/exec/courrier_edit.php
===================================================================
--- /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/exec/courrier_edit.php	(revision 90)
+++ /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/exec/courrier_edit.php	(revision 90)
@@ -0,0 +1,201 @@
+<?php
+
+/******************************************************************************************/
+/* SPIP-listes est un systï¿œe de gestion de listes d'information par email pour SPIP      */
+/* Copyright (C) 2004 Vincent CARON  v.caron<at>laposte.net , http://bloog.net            */
+/*                                                                                        */
+/* Ce programme est libre, vous pouvez le redistribuer et/ou le modifier selon les termes */
+/* de la Licence Publique Gï¿œï¿œale GNU publiï¿œ par la Free Software Foundation            */
+/* (version 2).                                                                           */
+/*                                                                                        */
+/* Ce programme est distribuï¿œcar potentiellement utile, mais SANS AUCUNE GARANTIE,       */
+/* ni explicite ni implicite, y compris les garanties de commercialisation ou             */
+/* d'adaptation dans un but spï¿œifique. Reportez-vous ï¿œla Licence Publique Gï¿œï¿œale GNU  */
+/* pour plus de dï¿œails.                                                                  */
+/*                                                                                        */
+/* Vous devez avoir reï¿œ une copie de la Licence Publique Gï¿œï¿œale GNU                    */
+/* en mï¿œe temps que ce programme ; si ce n'est pas le cas, ï¿œrivez ï¿œla                  */
+/* Free Software Foundation,                                                              */
+/* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, ï¿œats-Unis.                   */
+/******************************************************************************************/
+
+
+if (!defined("_ECRIRE_INC_VERSION")) return;
+
+include_spip('inc/presentation');
+include_spip('inc/barre');
+include_spip('inc/affichage');
+include_spip('base/spip-listes');
+include_spip('public/assembler');
+
+function exec_courrier_edit(){
+
+	global $connect_statut;
+	global $connect_toutes_rubriques;
+	global $connect_id_auteur;
+	$type = _request('type');
+	$id_message = _request('id_message');
+
+	$nomsite=lire_meta("nom_site"); 
+	$urlsite=lire_meta("adresse_site"); 
+
+	if (_request('new') == "oui") { 
+		$statut = 'redac'; 
+		$type = 'nl'; 
+		$result = spip_query("INSERT INTO spip_courriers (titre, date, statut, type, id_auteur) VALUES ("._q(_T('texte_nouveau_message')).", NOW(),"._q($statut).","._q($type).","._q($connect_id_auteur).")"); 
+		$id_message = spip_insert_id(); 
+	}
+
+	// Admin SPIP-Listes
+	echo debut_page(_T('spiplistes:spip_listes'), "redacteurs", "spiplistes");
+
+	if ($connect_statut != "0minirezo" ) {
+		echo "<p><b>"._T('spiplistes:acces_a_la_page')."</b></p>";
+		echo fin_page();
+		exit;
+	}
+
+	if (($connect_statut == "0minirezo") OR ($connect_id_auteur == $id_auteur)) {
+		$statut_auteur=$statut;
+		spip_listes_onglets("messagerie", _T('spiplistes:spip_listes'));
+	}
+
+	debut_gauche();
+	spip_listes_raccourcis();
+	creer_colonne_droite();
+
+	debut_droite("messagerie");
+
+	// MODE EDIT: Redaction d'un courrier ------------------------------------------
+
+	$result = spip_query("SELECT * FROM spip_courriers WHERE id_courrier="._q($id_message));
+	if ($row = spip_fetch_array($result)) {
+		$id_message = $row['id_courrier'];
+		$date_heure = $row["date"];
+		$titre = entites_html($row["titre"]);
+		$texte = entites_html($row["texte"]);
+		$type = $row["type"];
+		$statut = $row["statut"];
+		$expediteur = $row["id_auteur"];
+		if (!($expediteur == $connect_id_auteur OR ($type == 'nl' AND $connect_statut == '0minirezo'))) 
+			die();
+	}
+
+	if ($type == 'nl') $le_type = _T('spiplistes:email_collec');
+
+	echo "<p><span style='font-family:Verdana,Arial,Sans,sans-serif;color:green;font-size:120%'><b>$le_type</b></span></p>";
+	echo "<p style='margin-bottom:10px;font-family:Verdana,Arial,Sans,sans-serif;color:red;'>"._T('spiplistes:alerte_edit')."</p><br /><br />";
+
+	echo debut_cadre_relief(_DIR_PLUGIN_SPIPLISTES.'img_pack/stock_insert-slide.gif');
+
+	//Charger un patron ?    
+
+	// inclusion du script de gestion des layers de SPIP
+	if($texte ==''){
+		// Titre du bloc
+		echo bouton_block_visible(md5(_T('spiplistes:charger_patron')));
+		echo "<a href=\"javascript:swap_couche('$compteur_block', '$spip_lang_rtl');\">"._T('spiplistes:charger_patron')."</a>";	
+		// Bloc invisible
+		echo debut_block_visible(md5(_T('spiplistes:charger_patron')));			
+	}
+	else {
+		// Titre du bloc
+		echo bouton_block_invisible(md5(_T('spiplistes:charger_patron')));
+		echo "<a href=\"javascript:swap_couche('$compteur_block', '$spip_lang_rtl');\">"._T('spiplistes:charger_patron')."</a>";	
+		// Bloc invisible
+		echo debut_block_invisible(md5(_T('spiplistes:charger_patron')));			
+	}
+
+	echo "<form action='".generer_url_ecrire("import_patron","id_message=$id_message")."' METHOD='post'>";  
+	$liste_patrons = find_all_in_path("patrons/","[.]html$");
+	foreach($liste_patrons as $key => $val) {
+	if(ereg("_texte",$val)) unset ($liste_patrons[$key]) ;
+	}
+
+	echo "<select style='float:left;width:150px' name='patron' size='".(count($liste_patrons)+2)."'>";
+	$i=0;
+	foreach($liste_patrons as $titre_option) {
+		$titre_option = basename($titre_option,".html");		
+		$selected = "";
+		if($i == 0) $selected = "'selected=selected'";
+		echo "<option $selected value='".$titre_option."'>".$titre_option."</option>\n";
+	$i++;
+	}
+	echo "</select>";
+	
+	echo "<link rel='stylesheet' href='".url_absolue(find_in_path('img_pack/date_picker.css'))."' type='text/css' media='all' />";
+	echo '<script src="'.url_absolue(find_in_path('javascript/datepicker.js')).'" type="text/javascript"></script>';
+	echo '<script src="'.url_absolue(find_in_path('javascript/jquery-dom.js')).'" type="text/javascript"></script>';
+
+	echo "\n\n<script type=\"text/javascript\"><!-- \n$(document).ready(function(){ \n $.datePicker.setDateFormat('yyyy-mm-dd');\n"
+	  . unicode2charset(charset2unicode(recuperer_fond('formulaires/date_picker_init'),'html'))
+	  . " \n $('input.date-picker').datePicker({startDate:'01/01/1900'});\n }); \n //--></script> ";
+
+  echo "<input type='hidden' name='inclure_patron' value=\"oui\" />";
+	echo "<input type='hidden' name='id_message' value=\"$id_message\" />";
+	echo "<input type='hidden' name='nomsite' value=\"$nomsite\" />";
+
+	$auj = date('Y-m-d');
+	echo "<div style='margin-left:200px;height:200px'>";
+	echo "<p>"._T('spiplistes:date_ref')."</p><p><input type=\"text\" class=\"date-picker\" name=\"date\" style=\"text-align:center;width:8em\" value=\"$auj\" /></p>";
+	echo "<br />";
+	echo "<p>"._T('spiplistes:alerte_modif')."</p><p><input type='submit' name='Valider' value='"._T('spiplistes:charger_le_patron')."' class='fondo' /></p>";
+	echo "</div>";
+	echo "</form>";
+	echo "<br style='clear:both' />";
+
+	// Fin du bloc
+	echo fin_block();
+
+	echo fin_cadre_relief();
+
+	echo "<br />";
+
+	echo "<form id='choppe_patron-1' action='".generer_url_ecrire("gerer_courrier","id_message=$id_message")."' method='post' name='choppe_patron-1'>";
+	echo "<input type='hidden' name='modifier_message' value=\"oui\" />";
+	echo "<input type='hidden' name='id_message' value=\"$id_message\" />";
+	if(!intval($id_message))
+		echo "<input type='hidden' name='new' value=\"oui\" />";
+
+	echo _T('spiplistes:sujet_courrier');
+
+	echo "<input type='text' class='formo' name='titre' value=\"$titre\" size='40' />";
+	echo "<br />";
+	echo "<br />";
+	echo _T('spiplistes:texte_courrier');
+	echo aide ("raccourcis");
+	echo "<br />";
+	echo afficher_barre('document.formulaire.texte');
+	echo "<textarea id='text_area' name='texte' ".$GLOBALS['browser_caret']." class='formo' rows='20' cols='40' wrap=soft>";
+	echo $texte;
+	echo "</textarea>\n";
+
+	echo "<p align='right'><input type='submit' name='Valider' value='"._T('bouton_valider')."' class='fondo' />";
+	echo "</form>";
+
+	// MODE EDIT FIN ---------------------------------------------------------------
+
+	echo "<p style='font-family: Arial, Verdana,sans-serif;font-size:10px;font-weight:bold'>".$GLOBALS['spiplistes_version']."</p>" ;
+	echo fin_gauche(), fin_page();
+
+}
+/******************************************************************************************/
+/* SPIP-listes est un systï¿œe de gestion de listes d'abonnï¿œ et d'envoi d'information     */
+/* par email  pour SPIP.                                                                  */
+/* Copyright (C) 2004 Vincent CARON  v.caron<at>laposte.net , http://bloog.net            */
+/*                                                                                        */
+/* Ce programme est libre, vous pouvez le redistribuer et/ou le modifier selon les termes */
+/* de la Licence Publique Gï¿œï¿œale GNU publiï¿œ par la Free Software Foundation            */
+/* (version 2).                                                                           */
+/*                                                                                        */
+/* Ce programme est distribuï¿œcar potentiellement utile, mais SANS AUCUNE GARANTIE,       */
+/* ni explicite ni implicite, y compris les garanties de commercialisation ou             */
+/* d'adaptation dans un but spï¿œifique. Reportez-vous ï¿œla Licence Publique Gï¿œï¿œale GNU  */
+/* pour plus de dï¿œails.                                                                  */
+/*                                                                                        */
+/* Vous devez avoir reï¿œ une copie de la Licence Publique Gï¿œï¿œale GNU                    */
+/* en mï¿œe temps que ce programme ; si ce n'est pas le cas, ï¿œrivez ï¿œla                  */
+/* Free Software Foundation,                                                              */
+/* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, ï¿œats-Unis.                   */
+/******************************************************************************************/
+?>
Index: /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/exec/courrier_preview.php
===================================================================
--- /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/exec/courrier_preview.php	(revision 90)
+++ /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/exec/courrier_preview.php	(revision 90)
@@ -0,0 +1,43 @@
+<?php
+
+/******************************************************************************************/
+/* SPIP-listes est un système de gestion de listes d'information par email pour SPIP      */
+/* Copyright (C) 2004 Vincent CARON  v.caron<at>laposte.net , http://bloog.net            */
+/*                                                                                        */
+/* Ce programme est libre, vous pouvez le redistribuer et/ou le modifier selon les termes */
+/* de la Licence Publique Générale GNU publiée par la Free Software Foundation            */
+/* (version 2).                                                                           */
+/*                                                                                        */
+/* Ce programme est distribué car potentiellement utile, mais SANS AUCUNE GARANTIE,       */
+/* ni explicite ni implicite, y compris les garanties de commercialisation ou             */
+/* d'adaptation dans un but spécifique. Reportez-vous à la Licence Publique Générale GNU  */
+/* pour plus de détails.                                                                  */
+/*                                                                                        */
+/* Vous devez avoir reçu une copie de la Licence Publique Générale GNU                    */
+/* en même temps que ce programme ; si ce n'est pas le cas, écrivez à la                  */
+/* Free Software Foundation,                                                              */
+/* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, États-Unis.                   */
+/******************************************************************************************/
+
+if (!defined("_ECRIRE_INC_VERSION")) return;
+
+include_spip('inc/presentation');
+include_spip('inc/affichage');
+
+
+function exec_courrier_preview(){
+
+	$id_message = _request('id_message');
+	$result_m = spip_query("SELECT * FROM spip_courriers WHERE id_courrier="._q($id_message));
+	while($row = spip_fetch_array($result_m)) {
+		$texte = $row["texte"];
+		$statut = $row["statut"];
+		if($statut != 'encour' AND $statut != 'publie' AND $statut != 'ready')
+			$texte = spiplistes_propre($texte);
+		ajax_retour($texte,false) ;
+		//echo $texte;
+	}
+
+}
+
+?>
Index: /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/exec/gerer_courrier.php
===================================================================
--- /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/exec/gerer_courrier.php	(revision 90)
+++ /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/exec/gerer_courrier.php	(revision 90)
@@ -0,0 +1,359 @@
+<?php
+
+/******************************************************************************************/
+/* SPIP-listes est un systï¿œe de gestion de listes d'information par email pour SPIP      */
+/* Copyright (C) 2004 Vincent CARON  v.caron<at>laposte.net , http://bloog.net            */
+/*                                                                                        */
+/* Ce programme est libre, vous pouvez le redistribuer et/ou le modifier selon les termes */
+/* de la Licence Publique Gï¿œï¿œale GNU publiï¿œ par la Free Software Foundation            */
+/* (version 2).                                                                           */
+/*                                                                                        */
+/* Ce programme est distribuï¿œcar potentiellement utile, mais SANS AUCUNE GARANTIE,       */
+/* ni explicite ni implicite, y compris les garanties de commercialisation ou             */
+/* d'adaptation dans un but spï¿œifique. Reportez-vous ï¿œla Licence Publique Gï¿œï¿œale GNU  */
+/* pour plus de dï¿œails.                                                                  */
+/*                                                                                        */
+/* Vous devez avoir reï¿œ une copie de la Licence Publique Gï¿œï¿œale GNU                    */
+/* en mï¿œe temps que ce programme ; si ce n'est pas le cas, ï¿œrivez ï¿œla                  */
+/* Free Software Foundation,                                                              */
+/* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, ï¿œats-Unis.                   */
+/******************************************************************************************/
+
+if (!defined("_ECRIRE_INC_VERSION")) return;
+
+include_spip('inc/presentation');
+include_spip('inc/barre');
+include_spip('inc/affichage');
+include_spip('base/spip-listes');
+
+function exec_gerer_courrier(){
+
+	global $connect_statut;
+	global $connect_toutes_rubriques;
+	global $connect_id_auteur;
+
+	$type = _request('type');
+	$new = _request('new');
+	$id_message = _request('id_message');
+	$modifier_message = _request('modifier_message');
+	$titre = _request('titre');
+	$texte = _request('texte');
+
+	$envoi_test = _request('envoi_test');
+	$change_statut = _request('change_statut');
+	$supp_dest = _request('supp_dest');
+	$envoi = _request('envoi');
+	$adresse_test = _request('adresse_test');
+	$choisir_dest = _request('choisir_dest');
+	$destinataire = _request('destinataire');
+
+	$nomsite=lire_meta("nom_site"); 
+	$urlsite=lire_meta("adresse_site"); 
+
+	// Admin SPIP-Listes
+	echo debut_page(_T('spiplistes:spip_listes'), "redacteurs", "spiplistes");
+
+	if ($connect_statut != "0minirezo" ) {
+		echo "<p><b>"._T('spiplistes:acces_a_la_page')."</b></p>";
+		echo fin_page();
+		exit;
+	}
+
+	if (($connect_statut == "0minirezo") OR ($connect_id_auteur == $id_auteur)) {
+		$statut_auteur=$statut;
+		spip_listes_onglets("messagerie", _T('spiplistes:spip_listes'));
+	}
+
+	debut_gauche();
+	spip_listes_raccourcis();
+	creer_colonne_droite();
+	debut_droite("messagerie");
+
+	// MODE COURRIER: Affichage d'un courrier---------------------------------------
+
+	//Ajouter le destinataire  si on le connait 
+	$result = spip_query("SELECT id_liste, texte, email_test FROM spip_courriers WHERE id_courrier="._q($id_message));
+
+	while($row = spip_fetch_array($result)) {
+		$id_liste = $row["id_liste"] ;
+		if(	email_valide($row["email_test"]) )
+			$test = 'oui' ;
+		
+		if(($choisir_dest OR $envoi_test)){
+			if($envoi_test AND email_valide($adresse_test)){
+				$destinataire = $adresse_test ;
+				$res3 = spip_query("SELECT id_auteur FROM spip_auteurs WHERE email = "._q($adresse_test)." ORDER BY id_auteur ASC ");
+				if(spip_num_rows($res3)==0){
+					$erreur_mail_pas_bon = "<h3>"._T('spiplistes:sans_envoi')."</h3>\n"; 
+				}
+				else{
+					//definir adresse email de test
+					spip_query("UPDATE spip_courriers SET email_test="._q($adresse_test).", total_abonnes=1 WHERE id_courrier="._q($id_message));
+					$change_statut = "ready";
+				}
+			}
+			//definir liste d envoi	
+			if(intval($destinataire)){
+				spip_query("UPDATE spip_courriers SET id_liste="._q($destinataire)." WHERE id_courrier="._q($id_message));
+				//passer le mail en pret a l envoi
+				$change_statut = "ready";
+			}
+			
+			//definir liste d envoi de tous les contacts : pas dans emil test
+			if($destinataire=="tous")
+				$change_statut = "ready";
+		}
+	}
+
+	if(intval($id_message)){
+		if ($modifier_message == "oui")
+			spip_query("UPDATE spip_courriers SET titre="._q($titre).", texte="._q($texte)." WHERE id_courrier="._q($id_message));	
+		
+		if ($change_statut) {
+			spip_query("UPDATE spip_courriers SET statut="._q($change_statut)." WHERE id_courrier="._q($id_message));
+			if($change_statut == "ready"){
+				//enregistrer le texte propre dans la base pour envoi
+				$result_m = spip_query("SELECT * FROM spip_courriers WHERE id_courrier="._q($id_message));
+				
+				while($row = spip_fetch_array($result_m)) {
+					$titre = $row['titre'];
+					$texte = $row['texte'];
+				}
+				$texte = spiplistes_propre($texte);
+				spip_query("UPDATE spip_courriers SET titre="._q($titre).", texte="._q($texte)." WHERE id_courrier="._q($id_message));
+			}
+			
+			if($change_statut == 'publie'){
+				// si on annule un envoi, effacer les abonnes en attente
+				spip_query("DELETE FROM spip_auteurs_courriers WHERE id_courrier="._q($id_message));
+			}
+		}
+		
+		// A securiser ?
+		if ($envoi) {
+			spip_query("UPDATE spip_courriers SET statut='encour' WHERE id_courrier="._q($id_message));
+			spip_query("DELETE FROM spip_auteurs_courriers WHERE id_courrier="._q($id_message));
+		
+			spip_log("test ? ->".$test."idliste->$id_liste");
+			if(intval($id_liste) OR ($id_liste==0 AND $test!='oui') )
+				remplir_liste_envois($id_message,$id_liste) ;
+		}
+	}
+
+	//le message
+	$result_m = spip_query("SELECT * FROM spip_courriers WHERE id_courrier="._q($id_message));
+	while($row = spip_fetch_array($result_m)) {
+		$id_message = $row['id_courrier'];
+		$id_liste = $row['id_liste'];
+		$email_test = $row['email_test'];
+		
+		$date_heure = $row["date"];
+		$titre = typo($row["titre"]);
+		$texte = $row["texte"];
+		$message_texte = $row["message_texte"];
+		$type = $row["type"];
+		$statut = $row["statut"];
+		$expediteur = $row['id_auteur'];		
+		
+		$le_type = _T('spiplistes:message_type');
+		$la_couleur = "red";
+		
+		$total_abonnes = $row["total_abonnes"];
+		$nb_emails_envoyes = $row["nb_emails_envoyes"];
+		$nb_emails_echec = $row["nb_emails_echec"];
+		$nb_emails_non_envoyes = $row["nb_emails_non_envoyes"];
+		$nb_emails_texte = $row["nb_emails_texte"];
+		$nb_emails_html = $row["nb_emails_html"];
+		$debut_envoi = $row["date_debut_envoi"];
+		$fin_envoi = $row["date_fin_envoi"];
+		
+		//trouver un destinataire
+		$destinataire = ''; //secu
+		$pret_envoi=false;
+		
+		if($email_test !=''){
+			$destinataire = $email_test ;
+			if(email_valide($destinataire)){				
+				$destinataire = _T('spiplistes:email_test2').$destinataire ;
+				$pret_envoi=true;
+			}
+			else{
+				$erreur_mail == 'oui';
+			}
+		}
+		
+		elseif(intval($id_liste) !=0){
+			$query_ = spip_query ("SELECT * FROM spip_listes WHERE id_liste = "._q($id_liste));
+			$row = spip_fetch_array($query_);
+			$destinataire = _T('spiplistes:la_liste').' <a href="'.generer_url_ecrire('listes','id_liste='.$id_liste).'">'.$row['titre'].'</a>';
+			//ajouter le nombre d'inscrits
+			// ici
+			$pret_envoi=true;
+		}
+		elseif( ($statut == 'ready' OR $statut == 'encour') && $id_liste == 0){
+			$destinataire = _T('spiplistes:abonees');
+			$pret_envoi=true;
+		}
+	
+		echo debut_cadre_relief(_DIR_PLUGIN_SPIPLISTES.'img_pack/stock_mail_send.gif');
+		//echo "tklo $destinataire, $email_test , $id_liste";
+		
+		if($erreur_mail){
+			echo "<h3>"._T('spiplistes:sans_envoi')."</h3>" ;
+		}
+		if ($statut == 'redac' && !$pret_envoi) {
+			echo "<span style='font-size:120%;color:red;font-weight:bold'>"._T('spiplistes:message_en_cours')." <br />"._T('spiplistes:modif_envoi')."</span>";
+		}
+		
+		if ($statut == 'ready' && $pret_envoi) {
+			echo "<span style='font-size:120%;color:red'>
+			<b>"._T('spiplistes:message_presque_envoye')."</b></span><br /> "._T('spiplistes:a_destination').$destinataire."<br />"._T('spiplistes:confirme_envoi');
+			echo "<form action='?exec=gerer_courrier&id_message=".$id_message."' method='post'>";
+			echo "<div style='text-align:center'><input type='submit' name='envoi' value='"._T('spiplistes:envoyer')."' class='fondo' /></div>";
+			echo "</form>";
+		}
+		
+		if ($statut == 'encour'){
+			if ($expediteur == $connect_id_auteur  OR ($type == 'nl' AND $connect_statut == '0minirezo') OR ($type == 'auto' AND $connect_statut == '0minirezo')) {
+				echo "<div style='float:right'>";
+				echo icone (_T('icone_supprimer_message'), generer_url_ecrire('spip_listes','detruire_message='.$id_message), _DIR_PLUGIN_SPIPLISTES.'img_pack/poubelle_msg.gif', _DIR_PLUGIN_SPIPLISTES.'img_pack/poubelle_msg.gif');
+				echo "</div>";
+			}
+			echo "<p><span style='font-size:120%;color:red'>
+			<b>"._T('spiplistes:envoi_program')."</b></span><br /> "._T('spiplistes:a_destination').$destinataire."<br /><br />
+			<a href='?exec=spip_listes'>["._T('spiplistes:voir_historique')."]</a></p>";
+		}
+		
+		if ($statut == 'publie')  {
+			echo "<span style='font-size:120%;color:red'>
+			<b>"._T('spiplistes:message_arch')."</b></span>";
+			echo "<ul>";
+			echo "<li>"._T('spiplistes:envoyer_a').$destinataire."</li>";
+			echo "<li>"._T('spiplistes:envoi_date').$date_heure."</li>";
+			echo "<ul>";
+			echo "<li>"._T('spiplistes:envoi_debut').$debut_envoi."</li>";
+			echo "<li>"._T('spiplistes:envoi_fin').$fin_envoi."</li>";
+			echo "</ul>";
+			echo "<li>"._T('spiplistes:nbre_abonnes').$total_abonnes."</li>";
+			echo "<ul>";
+			echo "<li>"._T('spiplistes:format_html').$nb_emails_html."</li>";
+			echo "<li>"._T('spiplistes:format_texte').$nb_emails_texte."</li>";
+			echo "<li>"._T('spiplistes:desabonnes').": ".$nb_emails_non_envoyes."</li>";
+			echo "</ul>";
+			echo "<li>"._T('spiplistes:erreur_envoi').$nb_emails_echec."</li>";
+			echo "</ul>";
+		}
+		
+		echo fin_cadre_relief();
+		
+		$texte_original = $texte;
+		if($statut != 'encour' AND $statut != 'publie' AND $statut != 'ready')
+			$texte = spiplistes_propre($texte);
+		
+		echo "<div style='margin-top:20px;border: 1px solid $la_couleur; background-color: $couleur_fond; padding: 5px;' class='cadre cadre-r'>"; // debut cadre de couleur
+		//debut_cadre_relief("messagerie-24.gif");
+		echo "<table width=100% cellpadding=0 cellspacing=0 border=0>";
+		echo "<tr><td width=100%>";
+		if ($statut=="redac" OR $statut=="ready") {
+			echo "<div style='float:right; margin:10px'>";
+			echo icone (_T('spiplistes:bouton_modifier'),generer_url_ecrire('courrier_edit','id_message='.$id_message), _DIR_PLUGIN_SPIPLISTES."img_pack/stock_mail.gif");
+			echo "</div>";
+		}
+		
+		echo "<span style='font-size:120%;color:$la_couleur'><b>$le_type</b></span><br />";
+		echo "<h3>$titre</h3>";
+		echo "<br class='nettoyeur' />";
+		echo debut_boite_info();
+		echo _T('spiplistes:version_html')." <a href=\"".generer_url_ecrire('courrier_preview','id_message='.$id_message)."\" title=\""._T('spiplistes:plein_ecran')."\"><small>(+)</small></a><br />\n";
+		echo "<iframe src=\"?exec=courrier_preview&id_message=$id_message\" width=\"100%\" height=\"500\"></iframe>\n";
+		echo fin_boite_info();    
+		echo "<p>";
+		echo debut_boite_info();
+		
+		if($message_texte !=''){
+			$alt = _T('spiplistes:calcul_patron');
+		}
+		else{
+			$alt = _T('spiplistes:calcul_html');
+			$message_texte = spiplistes_version_texte($texte);
+		}
+		
+		echo _T('spiplistes:version_texte')." <a href='#' title='$alt'><small>(?)</small></a><br />";
+		
+		echo "<textarea name='texte' rows='20' class='formo' cols='40' wrap=soft>";
+		echo $message_texte ;
+		echo "</textarea><p>\n";
+		
+		echo fin_boite_info();
+		echo "<br />";
+		
+		if($statut=="redac" OR $statut=="ready"){
+			//envoi de test 
+			echo "<form action='".generer_url_ecrire('gerer_courrier','id_message='.$id_message)."' method='post'>";
+			echo debut_boite_info();
+			echo "<div style='font-size:12px;font-familly:Verdana,Garamond,Times,serif;color:#000000;'>";
+			if(!$pret_envoi){
+				echo "<b>"._T('spiplistes:envoi')."</b><p style='font-familly : Georgia,Garamond,Times,serif'>"._T('spiplistes:envoi_texte')."</p>";
+				echo debut_cadre_enfonce();
+				echo "<input style='float:left' type='text' name='adresse_test' value='"._T('spiplistes:email_adresse')."' class='fondo' size='35' onfocus=\"this.value=''\" />" ;
+				echo "<div style='font-size:12px;font-familly:Verdana,Garamond,Times,serif;color:#000000;'>";
+				echo "<div style='float:right'><input type='submit' name='envoi_test' value='"._T('spiplistes:email_tester')."' class='fondo'  /></div>";
+				echo "<div style='clear:both;'> </div>";
+				echo "</div>" ;
+				echo fin_cadre_enfonce() ;
+				
+				$list = spip_query ("SELECT * FROM spip_listes WHERE statut = 'liste' OR statut = 'inact' ");
+				echo "<div style='font-size:14px;font-weight:bold'>"._T('spiplistes:destinataires')."</div>";
+				echo "<div style='float:right'><input type='submit' name='choisir_dest' value='"._T('spiplistes:choisir_cette')."' class='fondo' /></div>";
+				echo "<select name='destinataire' >";
+				echo "<option value='tous'>"._T('spiplistes:toutes')."</option>" ;
+				while($row = spip_fetch_array($list)) {
+					$id_liste = $row['id_liste'] ;
+					$titre = $row['titre'] ;
+					echo "<option value='$id_liste'>$titre</option>" ;
+				}
+				echo "</select>";
+			}
+			else{
+				echo "<p style='text-align:center;font-weight:bold'>"._T('spiplistes:confirme_envoi')."</p>";
+			}
+		}
+		echo "</div>";
+
+		echo fin_boite_info();
+		echo "</form>";
+
+		echo "</td></tr></table>";
+		if($statut != 'publie'){
+			echo "<div style='margin:auto;margin-top:10px'>";
+			echo icone (_T('icone_supprimer_message'), '?exec=spip_listes&detruire_message='.$id_message, _DIR_PLUGIN_SPIPLISTES.'img_pack/poubelle_msg.gif', _DIR_PLUGIN_SPIPLISTES.'img_pack/poubelle_msg.gif');
+			echo "</div>";
+		}
+		echo "</div>"; // fin du cadre de couleur
+		
+		echo "<p style='font-family: Arial, Verdana,sans-serif;font-size:10px;font-weight:bold'>".$GLOBALS['spiplistes_version']."<p>" ;
+		
+	}//while		
+
+	echo fin_gauche(), fin_page();
+}
+/******************************************************************************************/
+/* SPIP-listes est un systï¿œe de gestion de listes d'abonnï¿œ et d'envoi d'information     */
+/* par email  pour SPIP.                                                                  */
+/* Copyright (C) 2004 Vincent CARON  v.caron<at>laposte.net , http://bloog.net            */
+/*                                                                                        */
+/* Ce programme est libre, vous pouvez le redistribuer et/ou le modifier selon les termes */
+/* de la Licence Publique Gï¿œï¿œale GNU publiï¿œ par la Free Software Foundation            */
+/* (version 2).                                                                           */
+/*                                                                                        */
+/* Ce programme est distribuï¿œcar potentiellement utile, mais SANS AUCUNE GARANTIE,       */
+/* ni explicite ni implicite, y compris les garanties de commercialisation ou             */
+/* d'adaptation dans un but spï¿œifique. Reportez-vous ï¿œla Licence Publique Gï¿œï¿œale GNU  */
+/* pour plus de dï¿œails.                                                                  */
+/*                                                                                        */
+/* Vous devez avoir reï¿œ une copie de la Licence Publique Gï¿œï¿œale GNU                    */
+/* en mï¿œe temps que ce programme ; si ce n'est pas le cas, ï¿œrivez ï¿œla                  */
+/* Free Software Foundation,                                                              */
+/* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, ï¿œats-Unis.                   */
+/******************************************************************************************/
+?>
Index: /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/exec/import_export.php
===================================================================
--- /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/exec/import_export.php	(revision 90)
+++ /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/exec/import_export.php	(revision 90)
@@ -0,0 +1,416 @@
+<?php
+
+/******************************************************************************************/
+/* SPIP-listes est un systï¿œe de gestion de listes d'information par email pour SPIP*/
+/* Copyright (C) 2004 Vincent CARONv.caron<at>laposte.net , http://bloog.net*/
+/**/
+/* Ce programme est libre, vous pouvez le redistribuer et/ou le modifier selon les termes */
+/* de la Licence Publique Gï¿œï¿œale GNU publiï¿œ par la Free Software Foundation*/
+/* (version 2). */
+/**/
+/* Ce programme est distribuï¿œcar potentiellement utile, mais SANS AUCUNE GARANTIE, */
+/* ni explicite ni implicite, y compris les garanties de commercialisation ou */
+/* d'adaptation dans un but spï¿œifique. Reportez-vous ï¿œla Licence Publique Gï¿œï¿œale GNU*/
+/* pour plus de dï¿œails.*/
+/**/
+/* Vous devez avoir reï¿œ une copie de la Licence Publique Gï¿œï¿œale GNU*/
+/* en mï¿œe temps que ce programme ; si ce n'est pas le cas, ï¿œrivez ï¿œla*/
+/* Free Software Foundation,*/
+/* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, ï¿œats-Unis. */
+/******************************************************************************************/
+
+
+if (!defined("_ECRIRE_INC_VERSION")) return;
+
+include_spip('inc/presentation');
+include_spip('inc/acces');
+include_spip('inc/affichage');
+
+function exec_import_export(){
+
+	global $connect_statut;
+	global $connect_toutes_rubriques;
+	global $connect_id_auteur;
+	global $type;
+
+	$list_abo= _request('list_abo');
+	$etape= _request('etape');
+	$new= _request('new');
+
+	$nomsite=lire_meta("nom_site"); 
+	$urlsite=lire_meta("adresse_site"); 
+
+	// generation du fichier export ?
+	if (isset($_POST['export_txt']) && isset($_POST['export_id']) && $connect_statut == "0minirezo" ) {
+		$export_id =$_POST['export_id'];
+		
+		if (intval($export_id)>0) {			
+			
+			$result = spip_query("SELECT a.`email` FROM `spip_auteurs` a, `spip_auteurs_listes` l 
+			WHERE l.id_liste = "._q($export_id)."
+			AND a.id_auteur=l.id_auteur 
+			AND a.statut!='5poubelle' ");
+			$nb_inscrits = spip_num_rows($result);
+			
+			$str_export= "# spip-listes\r\n";
+			$str_export .= "# "._T('spiplistes:membres_liste')."\r\n";
+			$str_export .= "# liste id: $export_id\r\n";
+			$str_export .= "# date: ".date("Y-m-d")."\r\n\r\n";
+			
+			while($row = spip_fetch_array($result)) {	
+				$str_export .= $row['email']."\r\n";
+ 				}
+			
+			header("Content-type: text/plain");
+			header("Content-Disposition: attachment; filename=\"export_liste$export_id-".date("Y-m-d").".txt\"");
+			echo $str_export;
+			exit;
+		}
+	else{
+
+		if($export_id == "abo_sans_liste"){
+			$abonnes = spip_query("select a.id_auteur, count(d.id_liste) from spip_auteurs a left join spip_auteurs_listes d on a.id_auteur = d.id_auteur group by a.id_auteur having count(d.id_liste) = 0;");
+
+			$str_export= "# spip-listes\r\n"; 
+			$str_export .= "# "._T('spiplistes:membres_liste')."\r\n";
+			$str_export .= "# liste id: $export_id\r\n";
+			$str_export .= "# date: ".date("Y-m-d")."\r\n\r\n";
+			while($row = spip_fetch_array($abonnes)) {
+				$abonne = $row['id_auteur'];
+				$abo = spip_fetch_array(spip_query("SELECT `spip_listes_format` FROM `spip_auteurs_elargis` WHERE `id_auteur`=$abonne")) ;		
+				
+				$format_abo = $abo["spip_listes_format"];
+				if ($format_abo=="html" || $format_abo=="texte") {
+					$subresult = spip_query("SELECT email FROM spip_auteurs WHERE statut!='5poubelle' AND id_auteur="._q($abonne)." LIMIT 1");
+					while ($subrow = spip_fetch_array($subresult)) {
+						$str_export .= $subrow['email']."\r\n";
+ 					}
+ 				}
+			}
+			header("Content-type: text/plain");
+			header("Content-Disposition: attachment; filename=\"export_liste$export_id-".date("Y-m-d").".txt\"");
+			echo $str_export;
+			exit;
+		}
+ 		if($export_id == "desabo"){
+			$result = spip_query("SELECT a.`email`, f.`spip_listes_format` FROM `spip_auteurs` a, `spip_auteurs_elargis` f 
+			WHERE a.id_auteur=f.id_auteur 
+			AND a.statut!='5poubelle' 
+			AND f.`spip_listes_format`='non' ");
+			$nb_inscrits = spip_num_rows($result);
+
+			$str_export= "# spip-listes\r\n";
+			$str_export .= "# "._T('spiplistes:membres_liste')."\r\n";
+			$str_export .= "# liste id: $export_id\r\n";
+			$str_export .= "# date: ".date("Y-m-d")."\r\n\r\n";
+			while($row = spip_fetch_array($result)) {
+				$str_export .= $row['email']."\r\n";
+			}
+			header("Content-type: text/plain");
+			header("Content-Disposition: attachment; filename=\"export_liste$export_id-".date("Y-m-d").".txt\"");
+			echo $str_export;
+			exit;
+		}
+	}
+	}
+
+// generation du fichier export fin
+
+// Admin SPIP-Listes
+	echo debut_page(_T('spiplistes:spip_listes'), "redacteurs", "spiplistes");
+
+	if ($connect_statut != "0minirezo" ) {
+		echo "<p><b>"._T('spiplistes:acces_a_la_page')."</b></p>";
+		echo fin_page();
+		exit;
+	}
+
+	
+	if (($connect_statut == "0minirezo") OR ($connect_id_auteur == $id_auteur)) {
+		$statut_auteur=$statut;
+		spip_listes_onglets("messagerie", _T('spiplistes:spip_listes'));
+	}
+
+	debut_gauche();
+
+	spip_listes_raccourcis();
+
+	creer_colonne_droite();
+
+
+	debut_droite("messagerie");
+
+// import //
+
+	function test_login2($mail) {
+		if (strpos($mail, "@") > 0) $login_base = substr($mail, 0, strpos($mail, "@"));
+		else $login_base = $mail;
+
+		$login_base = strtolower($login_base);
+		$login_base = ereg_replace("[^a-zA-Z0-9]", "", $login_base);
+		if (!$login_base) $login_base = "user";
+
+		for ($i = 0; ; $i++) {
+			if ($i) $login = $login_base.$i;
+			else $login = $login_base;
+			$result = spip_query("SELECT id_auteur FROM spip_auteurs WHERE login="._q($login));
+			if (!spip_num_rows($result)) break;
+		}
+
+	return $login;
+	}
+
+	$format = _request('suppl_abo');
+
+
+	// import form
+	echo debut_cadre_relief("redacteurs-24.gif", false, "", _T('spiplistes:importer'));
+	switch ($etape) {
+		case "2" :
+	{
+
+		if (!$insert_file) $insert_file = $_FILES["insert_file"]["tmp_name"] ;
+		if ($insert_file && $insert_file != "none") {		
+		  $import_file = _DIR_TMP."import_email.txt";
+		  
+      $ok = @copy($insert_file,$import_file); // a terme utiliser la fonction de spip: deplacer_fichier_upload (inc/getdocument) ?
+      if (!$ok) $ok = @move_uploaded_file($insert_file,$import_file);
+                	  
+			if($ok) {
+				// if(ereg("^php[0-9A-Za-z_.-]+$", basename($insert_file)))
+				if(!empty($insert_file) && $insert_file != "none" && ereg("^php[0-9A-Za-z_.-]+$", basename($insert_file)))
+				$liste = fread(fopen($import_file, "r"), filesize($import_file)); //pour NS et IE
+
+				$liste=ereg_replace("\n|\r|\n\r|\r\n|\n\n","\n",$liste);
+				$liste = explode( "\n",$liste);
+				$new_abonne = 0;
+
+				for($i=0;$i<sizeof($liste); $i++) {
+					$tmp_log = "\n<br style='clear:both'/>";				  
+
+					/* Ajouter un nouvel enregistrement dans la table */
+					$liste[$i]=trim($liste[$i]);
+					$ligne_nb = ($i+1);
+						if(!empty($liste[$i])){
+
+						// Inscription
+						// Ajouter un code pour retrouver l'abonne
+						$mail_inscription = $liste[$i] ;
+						
+						if(email_valide($mail_inscription)){
+						  $tmp_log .= "<div style='color:#090;margin-bottom:5px;width:220px;float:left;'>$mail_inscription</div> " ;
+
+							$pass = creer_pass_aleatoire(8, $mail_inscription);
+							$nom_inscription = test_login2($mail_inscription);
+							$login = test_login2($mail_inscription);
+							$mdpass = md5($pass);
+							$htpass = generer_htpass($pass);
+							$statut = "6forum" ;
+							$cookie = creer_uniqid();
+							$format_abo = _q(_request('suppl_abo'));
+							$resulta = spip_query("SELECT * FROM spip_auteurs WHERE email="._q($mail_inscription));
+
+							if ($row = spip_fetch_array($resulta)) {
+								$nom = $row['nom'] ;
+								$mail = $row['email'] ;
+								$id = $row['id_auteur'] ;
+								$tmp_log .= _T('spiplistes:adresse_deja_inclus')." ";								
+								$abo = spip_fetch_array(spip_query("SELECT `spip_listes_format` FROM `spip_auteurs_elargis` WHERE `id_auteur`='$id'")) ;		
+				
+									if($abo){
+									$ok = spip_query("UPDATE `spip_auteurs_elargis` SET `spip_listes_format`=$format_abo WHERE id_auteur="._q($id));
+									}
+									else{
+									$ok = spip_query("INSERT INTO `spip_auteurs_elargis` (`id_auteur`,`spip_listes_format`) VALUES ('$id',$format_abo)");
+									}
+									if ($ok){  
+									$tmp_log .=  "("._T('spiplistes:mis_a_jour').")";
+								
+								}
+							}
+							else {
+				 				$tmp_log .= "<strong>$format</strong>";
+								spip_query("INSERT INTO spip_auteurs (nom, email, login, pass, statut, htpass, cookie_oubli) ".
+								"VALUES ("._q($nom_inscription).","._q($mail_inscription).","._q($login).","._q($mdpass).","._q($statut).","._q($htpass).","._q($cookie).")");
+								$id = spip_insert_id();
+								$ok = spip_query("INSERT INTO `spip_auteurs_elargis` (`id_auteur`,`spip_listes_format`) VALUES  ('$id',$format_abo)");
+							}
+
+							// Inscription aux listes
+							// abonnement aux listes http://www.phpfrance.com/tutorials/index.php?page=2&id=13
+							$resu = spip_query("SELECT * FROM spip_auteurs WHERE email="._q($mail_inscription));
+
+							// l'abonne existe deja.
+							if ($row = spip_fetch_array($resu)) {
+								$id_auteur = $row['id_auteur'];
+								$statut = $row['statut'];
+								$nom = $row['nom'];
+								$mel = $row['email'];
+							// on abonne l'auteur aux listes
+								if(is_array($list_abo)){
+									reset($list_abo);
+									while( list(,$val) = each($list_abo) ){										 
+										//$tmp_log .= "liste $val ";
+										$result = spip_query("DELETE FROM spip_auteurs_listes WHERE id_auteur="._q($id_auteur)." AND id_liste="._q($val));
+
+										if(_request('suppl_abo') !='non')
+											spip_query("INSERT INTO spip_auteurs_listes (id_auteur,id_liste) VALUES ("._q($id_auteur).","._q($val).")");										 	
+										 
+									}																				 
+									$new_abonne++;
+								}else{
+								if(_request('suppl_abo') =='non'){
+									$result=spip_query("DELETE FROM spip_auteurs_mod_listes WHERE id_auteur="._q($id_auteur)); 
+									$tmp_log .= "<strong>"._T('spiplistes:desabo')."</strong>";
+								}
+								}
+							}
+						} else {
+							$tmp_log .= _T('spiplistes:erreur_import').$ligne_nb.": ";
+							$tmp_log .= "<span style='color:red;margin-bottom:5px'>".$liste[$i]." : </span>";
+						}//email valide
+						echo $tmp_log;
+					}//listei
+
+				}// for
+				unlink($import_file);				
+				echo "<div style='margin:10px 0'><strong>"._T('spiplistes:adresses_importees').": </strong> $new_abonne</div>\n";
+			}// move et file
+
+		} // insert
+		else echo "<br /><br /><center><strong>"._T('spiplistes:erreur')."</strong></center>";
+		echo "<a href='?exec=import_export'>["._T('spiplistes:retour_link')."]</a>";
+		echo "</div>";
+	}
+	break ;
+
+	default :
+	if($spip_version < 1.8 ){
+		echo "<h3>"._T('spiplistes:importer')."</h3>" ;
+	}
+
+	echo _T('spiplistes:importer_fichier_txt')."<div>";
+
+	$list = spip_query ("SELECT * FROM spip_listes WHERE statut = 'liste' OR statut = 'inact' ");
+	$nb_listes = spip_num_rows($list);
+	if($nb_listes == 0){
+		echo "<fieldset> ";
+		echo "<legend>"._T('spiplistes:abonnement_newsletter')."</legend>";
+		echo _T('spiplistes:importer_preciser');
+		echo "<form action='./?exec=import_export&etape=2' method='post'enctype='multipart/form-data' name='importform'> ";
+		echo'<div style="text-align: left;">';
+				echo'<strong>Format :</strong><br>';
+				echo'<input name="suppl_abo" value="html" checked="checked"  type="radio">'._T('spiplistes:html').'<br>';
+				echo'<input name="suppl_abo" value="texte" type="radio">'._T('spiplistes:texte').'<br>';
+				echo'<input name="suppl_abo" value="non" type="radio">'._T('spiplistes:desabonnement').'<br>';
+				echo'</div>';
+				echo"<p>";
+				echo"<input type='submit' name='Valider' value='"._T('spiplistes:modifier')."'>";
+				echo"<input type='hidden' name='confirm'  value='oui' >";
+				echo"</p>";
+	} else {
+		echo "<fieldset> ";
+		echo "<legend>"._T('spiplistes:abonnement_newsletter')."</legend>";
+		echo _T('spiplistes:importer_preciser');
+		echo "<div style='text-align:left'>" ;
+		echo "<form action='$PHP_SELF?exec=import_export&etape=2' method='post' enctype='multipart/form-data'name='importform'> ";
+		while($row = spip_fetch_array($list)) {
+			$id_liste = $row['id_liste'] ;
+			$titre = $row['titre'] ;
+			if ($nb_listes = 1) $ischecked = "";
+			else $ischecked = "checked='checked'";
+			echo "<input type=\"checkbox\" name=\"list_abo[]\" $ischecked value=\"".$id_liste."\" />\n";
+			echo "<a href='?exec=import_export&liste=$id_liste' title='"._T('spiplistes:infos_liste')."'>$titre</a><br />" ;
+		}
+		echo "<br />";
+		echo'<strong>Format :</strong><br>';
+				echo'<input name="suppl_abo" value="html" checked="checked"  type="radio">'._T('spiplistes:html').'<br>';
+				echo'<input name="suppl_abo" value="texte" type="radio">'._T('spiplistes:texte').'<br>';
+				echo'<input name="suppl_abo" value="non" type="radio">'._T('spiplistes:desabonnement').'<br>';
+				echo'</div>';
+				echo"<p>";
+				echo"<input type='submit' name='Valider' value='"._T('spiplistes:modifier')."'>";
+				echo"<input type='hidden' name='confirm'  value='oui' >";
+				echo"</p>";
+		echo "</div>";
+
+	} // fin du test nb listes
+
+	echo "<!-- <script language=\"javascript\">function Soumettre(){
+			document.importform.fich.value=document.importform.insert_file.value;
+			document.importform.submit();
+		}
+		</script>
+		--> ";
+
+	echo "<h5>"._T('spiplistes:importer_fichier')."</h5>";
+	echo "<input type=\"file\" name=\"insert_file\" /><br /><br />";
+	echo "<input type=\"hidden\" name=\"mode\" value=\"inout\" />";
+	echo "<input type=\"hidden\" name=\"import\" value=\"oui\" />";
+	echo "</div>" ;
+	echo "<input type='submit' name='Valider' value='"._T('bouton_valider')."' class='fondo' onclick='Soumettre()' />";
+	echo "</form>" ;
+
+	} // switch
+
+	/**************/
+
+	echo "</fieldset></div>"; 
+
+
+	// import form end
+
+	// import end //
+
+	// export //(added by erational.org)
+	// formulaire d'export
+
+	$list = spip_query ("SELECT * FROM spip_listes WHERE statut = 'liste' OR statut = 'inact' ");
+	$nb_listes = spip_num_rows($list);
+	if ($nb_listes > 0) {
+		echo debut_cadre_relief("redacteurs-24.gif", false, "", _T('spiplistes:exporter'));
+		echo "<form action='$PHP_SELF?exec=import_export' method='post'>\n";	 
+		while($row = spip_fetch_array($list)) {
+			$id_liste = $row['id_liste'] ;
+			$titre = $row['titre'];
+			if ($nb_listes==1) $checked = " checked='checked'";
+			else $checked = "";
+			echo "<input type=\"radio\" name=\"export_id\" value=\"".$id_liste."\"$checked />$titre <small>".spip_listes_nb_abonnes_liste($id_liste)."</small><br />\n";
+		}
+		echo "<input type=\"radio\" name=\"export_id\"value=\"abo_sans_liste\"$checked /><strong>"._T('spiplistes:abonne_aucune_liste')."</strong> <br />\n";
+		echo "<input type=\"radio\" name=\"export_id\"value=\"desabo\"$checked /><strong>"._T('spiplistes:desabonnes')."</strong><br />\n"; 
+		echo "<input type='submit' name='export_txt' class='fondo' value='"._T('bouton_valider')."' />\n";
+		echo "</form>\n";
+		echo fin_cadre_relief();
+	}
+		echo fin_cadre_relief();
+	// export end //
+
+	// MODE INOUT FIN --------------------------------------------------------------
+
+	echo "<p style='font-family: Arial, Verdana,sans-serif;font-size:10px;font-weight:bold'>".$GLOBALS['spiplistes_version']."</p>" ;
+
+	echo fin_gauche(), fin_page();
+
+}
+
+/******************************************************************************************/
+/* SPIP-listes est un systï¿œe de gestion de listes d'abonnï¿œ et d'envoi d'information */
+/* par emailpour SPIP.*/
+/* Copyright (C) 2004 Vincent CARONv.caron<at>laposte.net , http://bloog.net*/
+/**/
+/* Ce programme est libre, vous pouvez le redistribuer et/ou le modifier selon les termes */
+/* de la Licence Publique Gï¿œï¿œale GNU publiï¿œ par la Free Software Foundation*/
+/* (version 2). */
+/**/
+/* Ce programme est distribuï¿œcar potentiellement utile, mais SANS AUCUNE GARANTIE, */
+/* ni explicite ni implicite, y compris les garanties de commercialisation ou */
+/* d'adaptation dans un but spï¿œifique. Reportez-vous ï¿œla Licence Publique Gï¿œï¿œale GNU*/
+/* pour plus de dï¿œails.*/
+/**/
+/* Vous devez avoir reï¿œ une copie de la Licence Publique Gï¿œï¿œale GNU*/
+/* en mï¿œe temps que ce programme ; si ce n'est pas le cas, ï¿œrivez ï¿œla*/
+/* Free Software Foundation,*/
+/* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, ï¿œats-Unis. */
+/******************************************************************************************/
+?>
Index: /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/exec/import_patron.php
===================================================================
--- /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/exec/import_patron.php	(revision 90)
+++ /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/exec/import_patron.php	(revision 90)
@@ -0,0 +1,112 @@
+<?php
+
+/******************************************************************************************/
+/* SPIP-listes est un système de gestion de listes d'information par email pour SPIP      */
+/* Copyright (C) 2004 Vincent CARON  v.caron<at>laposte.net , http://bloog.net            */
+/*                                                                                        */
+/* Ce programme est libre, vous pouvez le redistribuer et/ou le modifier selon les termes */
+/* de la Licence Publique Générale GNU publiée par la Free Software Foundation            */
+/* (version 2).                                                                           */
+/*                                                                                        */
+/* Ce programme est distribué car potentiellement utile, mais SANS AUCUNE GARANTIE,       */
+/* ni explicite ni implicite, y compris les garanties de commercialisation ou             */
+/* d'adaptation dans un but spécifique. Reportez-vous à la Licence Publique Générale GNU  */
+/* pour plus de détails.                                                                  */
+/*                                                                                        */
+/* Vous devez avoir reçu une copie de la Licence Publique Générale GNU                    */
+/* en même temps que ce programme ; si ce n'est pas le cas, écrivez à la                  */
+/* Free Software Foundation,                                                              */
+/* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, États-Unis.                   */
+/******************************************************************************************/
+
+if (!defined("_ECRIRE_INC_VERSION")) return;
+
+include_spip('inc/presentation');
+include_spip('inc/distant');
+include_spip('inc/affichage');
+include_spip('inc/meta');
+include_spip('inc/filtres');
+include_spip('inc/lang');
+
+function exec_import_patron(){
+
+	$id_message = _request('id_message');
+	$patron = _request('patron');
+	$date = _request('date');
+	$changer_lang = _request('changer_lang');
+
+	$lang = (isset($changer_lang)) ? $changer_lang : $GLOBALS['spip_lang'] ; 
+
+	$nomsite=lire_meta("nom_site"); 
+	$message_texte ='';
+	$texte_patron = '';
+
+	# ATENTION : une image erronnee dans le patron sous la forme <img src='' />
+	# provoque un deuxieme hit sur cet exec, mais sans argument patron
+	# il ne faut pas ecraser la nl avec la page 404 dans ce cas !
+	if ($patron) {
+		include_spip('public/assembler');
+		$contexte_patron = array('date' => $date,'patron'=>$patron,'lang'=>$lang);
+		
+		if (find_in_path('patrons/'.$patron.'_texte.html')){
+			$patron_version_texte = true ;
+			$message_texte =  recuperer_fond('patrons/'.$patron.'_texte', $contexte_patron);
+		}
+		// Il faut utiliser recuperer_page et non recuperer_fond car sinon les url des articles
+		// sont sous forme privee : spip.php?action=redirect&.... horrible !
+		// pour utiliser recuperer_fond,il faudrait etre ici dans un script action
+		//$texte_patron = recuperer_fond('patrons/'.$patron, $contexte_patron);
+		$url = generer_url_public('patron_switch','',true);
+		foreach ($contexte_patron as $k=>$v)
+			$url = parametre_url($url,$k,$v,'&');
+		$texte_patron = recuperer_page($url) ;
+	
+		// passer tout ca en unicode pour eviter certains problemes
+		include_spip('inc/charsets');
+		$texte_patron = charset2unicode($texte_patron);
+	}
+			
+	$titre_patron = _T('spiplistes:lettre_info')." ".$nomsite;
+	
+	$titre = $titre_patron;
+	$texte = $texte_patron;
+	$message_texte = $message_texte;
+
+	if((strlen($texte) > 10))
+		spip_query("UPDATE spip_courriers SET titre="._q($titre).", texte="._q($texte).", message_texte="._q($message_texte)." WHERE id_courrier="._q($id_message));
+	else
+		$message_erreur = _T('spiplistes:patron_erreur');
+	
+	$nomsite=lire_meta("nom_site");
+	$charset = lire_meta('charset');
+	
+	echo "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\n";
+	echo "<html lang='$lang' dir='ltr'>";
+	echo "<head><meta http_equiv='Content-Type' content='text/html; charset=".$charset."'></head><body>\n";
+	
+  echo "<div style='float:right;width:200px;text-align:left;border:1px solid #000;background: yellow;color: #000;margin-bottom: 10px;padding:10px;'>";  
+  echo "<p><strong>$patron</strong><p>\n";
+  if($patron_version_texte) echo _T('spiplistes:patron_detecte');
+  echo _T('spiplistes:date_ref').": $date<br />";
+  
+  echo menu_langues('changer_lang', $lang , _T('spiplistes:langue') ,'', generer_url_ecrire('import_patron','id_message='.$id_message.'&patron='.$patron.'&date='.$date ) );
+
+	echo "<br /><form action='?exec=courrier_edit&id_message=$id_message' method='post'>\n";	
+	echo "<input type='submit' name='Valider' value='"._T('spiplistes:confirmer')."' class='fondo'>\n";	
+	echo "<a href='?exec=courrier_edit&id_message=$id_message'>"._T('spiplistes:retour_link')."</a><br />\n";
+	echo "</form>";
+	echo "</div>";
+
+	echo "<div style='text-align:left;margin-right:250px;border-right:2px outset #000000'>";
+	echo spiplistes_propre($texte_patron).$message_erreur;
+	
+	$contexte_pied = array('lang'=>$lang);
+	$texte_pied = recuperer_fond('modeles/piedmail', $contexte_pied);
+
+	echo $texte_pied;
+	echo "</div>";
+	
+	echo "</body></html>";
+}	
+
+?>
Index: /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/exec/liste_edit.php
===================================================================
--- /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/exec/liste_edit.php	(revision 90)
+++ /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/exec/liste_edit.php	(revision 90)
@@ -0,0 +1,242 @@
+<?php
+
+/******************************************************************************************/
+/* SPIP-listes est un système de gestion de listes d'information par email pour SPIP      */
+/* Copyright (C) 2004 Vincent CARON  v.caron<at>laposte.net , http://bloog.net            */
+/*                                                                                        */
+/* Ce programme est libre, vous pouvez le redistribuer et/ou le modifier selon les termes */
+/* de la Licence Publique Générale GNU publiée par la Free Software Foundation            */
+/* (version 2).                                                                           */
+/*                                                                                        */
+/* Ce programme est distribué car potentiellement utile, mais SANS AUCUNE GARANTIE,       */
+/* ni explicite ni implicite, y compris les garanties de commercialisation ou             */
+/* d'adaptation dans un but spécifique. Reportez-vous à la Licence Publique Générale GNU  */
+/* pour plus de détails.                                                                  */
+/*                                                                                        */
+/* Vous devez avoir reçu une copie de la Licence Publique Générale GNU                    */
+/* en même temps que ce programme ; si ce n'est pas le cas, écrivez à la                  */
+/* Free Software Foundation,                                                              */
+/* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, États-Unis.                   */
+/******************************************************************************************/
+
+
+if (!defined("_ECRIRE_INC_VERSION")) return;
+
+include_spip('inc/presentation');
+include_spip('inc/barre');
+include_spip('inc/affichage');
+include_spip('base/spip-listes');
+
+
+function exec_liste_edit(){
+	
+	global $connect_statut;
+	global $connect_toutes_rubriques;
+	global $connect_id_auteur;
+	
+	$new = _request('new');
+	$id_liste = _request('id_liste');
+	$titre = _request('titre');
+	$texte = _request('texte');
+	 
+	$nomsite=lire_meta("nom_site"); 
+	$urlsite=lire_meta("adresse_site"); 
+	 
+	// Admin SPIP-Listes
+	echo debut_page(_T('spiplistes:spip_listes'), "redacteurs", "spiplistes");
+	
+	if (!autoriser('modifier','liste',$id_liste)) {
+		echo "<p><b>"._T('spiplistes:acces_a_la_page')."</b></p>";
+		echo fin_page();
+		exit;
+	}
+	
+	if (($connect_statut == "0minirezo") OR ($connect_id_auteur == $id_auteur)) {
+		$statut_auteur=$statut;
+		spip_listes_onglets("messagerie", _T('spiplistes:spip_listes'));
+	}
+	
+	debut_gauche();
+	
+	spip_listes_raccourcis();
+	
+	creer_colonne_droite();
+	
+	debut_droite("messagerie");
+	
+	// MODE CREER_LISTE: ajout liste------------------------------------------------
+	
+	$articles_descriptif = lire_meta("articles_descriptif");
+	$articles_redac = lire_meta("articles_redac");
+	$articles_mots = lire_meta("articles_mots");
+	$articles_modif = lire_meta("articles_modif");
+	
+	// securite
+	$id_liste = intval($id_liste);
+	$lier_trad = intval($lier_trad);
+	unset ($flag_editable);
+	
+	//
+	// Creation de l'objet article
+	//
+	
+	if ($id_liste) {
+		// Recuperer les donnees de l'article
+		$result = spip_query("SELECT * FROM spip_listes WHERE id_liste="._q($id_liste));
+	
+		if ($row = spip_fetch_array($result)) {
+			$titre = $row["titre"];
+			$lang = $row["lang"];
+			$pied_page = $row["pied_page"];
+			$texte = $row["texte"];
+			$date = $row["date"];
+			$statut = $row['statut'];
+				
+			$result_auteur = spip_query("SELECT * FROM spip_auteurs_listes WHERE id_liste="._q($id_liste)." AND id_auteur="._q($connect_id_auteur));
+			$flag_auteur = (spip_num_rows($result_auteur) > 0);
+	
+			$flag_editable = autoriser('modifier','liste',$id_liste);
+		}
+	} 
+	elseif ($new=='oui') {
+	
+		// titre par defaut
+		$titre = filtrer_entites(_T('spiplistes:Nouvelle_liste_de_diffusion'));
+		$onfocus = " onfocus=\"if(!antifocus){this.value='';antifocus=true;}\"";
+		$flag_editable = true;
+	}
+	
+	if ($id_liste && $id_document) {
+		$result_doc = spip_query("SELECT * FROM spip_documents_articles WHERE id_document="._q($id_document)." AND id_liste"._q($id_liste));
+		$flag_document_editable = (spip_num_rows($result_doc) > 0);
+	} else {
+		$flag_document_editable = false;
+	}
+	
+	// a quoi ca sert ca ?
+	$modif_document = $GLOBALS['modif_document'];
+	if ($modif_document == 'oui' AND $flag_document_editable) {
+		$titre_document = corriger_caracteres($titre_document);
+		$descriptif_document = corriger_caracteres($descriptif_document);
+		$query = "UPDATE spip_documents SET titre="._q($titre_document).", descriptif="._q($descriptif_document);
+		if ($largeur_document AND $hauteur_document) 
+			$query .= ", largeur="._q($largeur_document).', hauteur='._q($hauteur_document);
+		$query .= " WHERE id_document="._q($id_document);
+		spip_query($query);
+	}
+	
+	echo debut_cadre_formulaire();
+
+	
+	echo "\n<table cellpadding=0 cellspacing=0 border=0 width='100%'>";
+	echo "<tr width='100%'>";
+	echo "<td>";
+	if ($lier_trad) 
+		icone(_T('icone_retour'), generer_url_ecrire("listes","id_liste=$lier_trad"), "article-24.gif", "rien.gif");
+	else 
+		icone(_T('icone_retour'), generer_url_ecrire("listes","id_liste=$id_liste"), "article-24.gif", "rien.gif");
+	
+	echo "</td>";
+	echo "<td><img src='"._DIR_IMG_PACK."/rien.gif' width=10></td>\n";
+	echo "<td width='100%'>";
+	echo _T('spiplistes:modifier_liste');
+	gros_titre($titre);
+	echo "</td></tr></table>";
+	echo "<p>";
+	
+	echo "<p><HR><p>";
+	
+	$titre = entites_html($titre);
+	$descriptif = entites_html($descriptif);
+	$texte = entites_html($texte);
+	
+	$lien = generer_url_ecrire('listes');
+	if ($id_liste) $lien .= "&id_liste=$id_liste";
+	echo "<form action='$lien' method='post' name='formulaire'>\n";
+
+	if ($id_liste)
+		echo "<input type='hidden' name='id_liste' value='$id_liste'>";
+	else if ($new == 'oui')
+		echo "<input type='hidden' name='new' value='oui'>";
+
+	if ($lier_trad) {
+		echo "<input type='hidden' name='lier_trad' value='$lier_trad'>";
+		echo "<input type='hidden' name='changer_lang' value='$spip_lang'>";
+	}
+	echo _T('texte_titre_obligatoire');
+	echo "<br /><input type='text' name='titre' style='font-weight: bold; font-size: 13px;' class='formo' value=\"$titre\" size='40' $onfocus><p>";
+	
+	if ($new != 'oui') echo "<input type='hidden' name='id_rubrique_old' value=\"$id_rubrique\" >";
+       
+
+	if ($spip_ecran == "large") $rows = 28;
+	else $rows = 20;
+
+	echo "<b>"._T('spiplistes:txt_inscription')."</b>";
+	echo "<br />"._T('spiplistes:txt_abonnement');
+	
+	//echo "<br />";
+	echo afficher_barre('document.formulaire.texte');
+	echo "<textarea id='text_area' NAME='texte' ".$GLOBALS['browser_caret']." CLASS='formo' ROWS='5' COLS='40' wrap=soft>";
+	echo $texte;
+ 	echo "</textarea>\n";
+	
+	$pied = $pied_page ;
+
+	if($pied =='')
+	{
+		include_spip('public/assembler');
+		$contexte_pied = array('lang'=>$lang);
+		$pied = recuperer_fond('modeles/piedmail', $contexte_pied);
+	}	
+
+	echo _T('spiplistes:texte_pied');
+	//echo aide ("artdesc");
+	//echo "<br />"._T('texte_contenu_article')."<br />";
+	echo _T('spiplistes:texte_contenu_pied');
+	echo "<input type='hidden' name='pied_page' value='$pied'>";
+	
+
+	echo "<div style='background-color:#ffffff'>";
+	echo ($pied_page!='')? $pied_page : $pied ;
+	echo "</div>";
+
+	if ($date)
+		echo "<input type='Hidden' name='date' value=\"$date\" size='40'><p>";
+
+	if ($new == "oui")
+		echo "<input type='Hidden' name='statut_nouv' value=\"inact\" size='40'><p>";
+
+	echo "<div align='right'>";
+	echo "<input class='fondo' type='submit' name='Valider' value='"._T('bouton_valider')."'>";
+	echo "</div></form>";
+		
+	
+	echo fin_cadre_formulaire();
+	
+	// MODE CREER LISTE FIN --------------------------------------------------------
+	
+	echo "<p style='font-family: Arial, Verdana,sans-serif;font-size:10px;font-weight:bold'>".$GLOBALS['spiplistes_version']."<p>" ;
+	
+	echo fin_gauche(), fin_page();
+}
+/******************************************************************************************/
+/* SPIP-listes est un système de gestion de listes d'abonnés et d'envoi d'information     */
+/* par email  pour SPIP.                                                                  */
+/* Copyright (C) 2004 Vincent CARON  v.caron<at>laposte.net , http://bloog.net            */
+/*                                                                                        */
+/* Ce programme est libre, vous pouvez le redistribuer et/ou le modifier selon les termes */
+/* de la Licence Publique Générale GNU publiée par la Free Software Foundation            */
+/* (version 2).                                                                           */
+/*                                                                                        */
+/* Ce programme est distribué car potentiellement utile, mais SANS AUCUNE GARANTIE,       */
+/* ni explicite ni implicite, y compris les garanties de commercialisation ou             */
+/* d'adaptation dans un but spécifique. Reportez-vous à la Licence Publique Générale GNU  */
+/* pour plus de détails.                                                                  */
+/*                                                                                        */
+/* Vous devez avoir reçu une copie de la Licence Publique Générale GNU                    */
+/* en même temps que ce programme ; si ce n'est pas le cas, écrivez à la                  */
+/* Free Software Foundation,                                                              */
+/* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, États-Unis.                   */
+/******************************************************************************************/
+?>
Index: /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/exec/listes.php
===================================================================
--- /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/exec/listes.php	(revision 90)
+++ /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/exec/listes.php	(revision 90)
@@ -0,0 +1,497 @@
+<?php
+
+/******************************************************************************************/
+/* SPIP-listes est un systï¿œe de gestion de listes d'information par email pour SPIP      */
+/* Copyright (C) 2004 Vincent CARON  v.caron<at>laposte.net , http://bloog.net            */
+/*                                                                                        */
+/* Ce programme est libre, vous pouvez le redistribuer et/ou le modifier selon les termes */
+/* de la Licence Publique Gï¿œï¿œale GNU publiï¿œ par la Free Software Foundation            */
+/* (version 2).                                                                           */
+/*                                                                                        */
+/* Ce programme est distribuï¿œcar potentiellement utile, mais SANS AUCUNE GARANTIE,       */
+/* ni explicite ni implicite, y compris les garanties de commercialisation ou             */
+/* d'adaptation dans un but spï¿œifique. Reportez-vous ï¿œla Licence Publique Gï¿œï¿œale GNU  */
+/* pour plus de dï¿œails.                                                                  */
+/*                                                                                        */
+/* Vous devez avoir reï¿œ une copie de la Licence Publique Gï¿œï¿œale GNU                    */
+/* en mï¿œe temps que ce programme ; si ce n'est pas le cas, ï¿œrivez ï¿œla                  */
+/* Free Software Foundation,                                                              */
+/* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, ï¿œats-Unis.                   */
+/******************************************************************************************/
+
+if (!defined("_ECRIRE_INC_VERSION")) return;
+
+include_spip('inc/presentation');
+include_spip('inc/mots');
+include_spip('inc/lang');
+include_spip('inc/affichage');
+include_spip('base/spip-listes');
+
+function exec_listes_dist(){
+
+	global $connect_statut;
+	global $connect_toutes_rubriques;
+	global $connect_id_auteur;
+	global $spip_lang_left,$spip_lang_right;
+
+	$new = _request('new');
+	$id_liste = _request('id_liste');
+	$titre = _request('titre');
+	$texte = _request('texte');
+	$pied_page = _request('pied_page');
+	//on peut plus ajouter un auteur la c buggue
+	//global $flag_auteur;
+	$creer_auteur = _request('creer_auteur');
+	//global $ajout_auteur;
+	$supp_auteur = _request('supp_auteur');
+	$cherche_auteur = _request('cherche_auteur');
+	//global $nouv_auteur;
+	$changer_lang = _request('changer_lang');
+	
+	$Valider_auto = _request('Valider_auto');
+	$auto = _request('auto');
+	$changer_extra = _request('changer_extra');
+	$email_envoi = _request('email_envoi');
+	$patron = _request('patron');
+	$periode = _request('periode');
+	$sujet_message = _request('sujet_message');
+	$envoyer_direct = _request('envoyer_direct');
+	
+	$debut = _request('debut');
+ 
+ 	$ok_nouveau_statut  = _request('ok_nouveau_statut');
+	$statut_nouv = _request('statut_nouv');
+ 
+	$nomsite=lire_meta("nom_site"); 
+	$urlsite=lire_meta("adresse_site"); 
+
+ 
+	// Admin SPIP-Listes
+	echo debut_page(_T('spiplistes:spip_listes'), "redacteurs", "spiplistes");
+
+	if ($connect_statut != "0minirezo" ) {
+		echo "<p><b>"._T('spiplistes:acces_a_la_page')."</b></p>";
+		echo fin_page();
+		exit;
+	}
+
+	if (($connect_statut == "0minirezo") OR ($connect_id_auteur == $id_auteur)) {
+		$statut_auteur=$statut;
+		spip_listes_onglets("messagerie", _T('spiplistes:spip_listes'));
+	}
+
+	// Creer une liste -----------------------------------------
+	////
+
+	if ($id_liste==0) {
+		if ($new=='oui') {
+			if ($titre=='') $titre = _T('spiplistes:liste_sans_titre');
+	
+			spip_query("INSERT INTO spip_listes (statut, date, lang) VALUES ('inact', NOW(),"._q($langue_new).")");
+			$id_liste = spip_insert_id();
+			//Auteur de la liste (moderateur)
+			spip_query("DELETE FROM spip_auteurs_mod_listes WHERE id_liste = "._q($id_liste));
+			spip_query("INSERT INTO spip_auteurs_mod_listes (id_auteur, id_liste) VALUES ("._q($connect_id_auteur).","._q($id_liste).")");
+			//abonner le moderateur a sa liste
+			spip_query("DELETE FROM spip_auteurs_listes WHERE id_liste = "._q($id_liste).")");
+			spip_query("INSERT INTO spip_auteurs_listes (id_auteur, id_liste) VALUES ("._q($connect_id_auteur).","._q($id_liste).")");
+		} 
+	}
+
+	debut_gauche();
+	echo debut_boite_info();
+
+	echo '<div align="center">
+	<font face="Verdana,Arial,Sans,sans-serif" size="1"><b>'._T('spiplistes:liste_numero').'&nbsp;:</b></font>
+	<br><font face="Verdana,Arial,Sans,sans-serif" size="6"><b>'.$id_liste.'</b></font>
+	</div>';
+
+	echo fin_boite_info();
+	spip_listes_raccourcis();
+	creer_colonne_droite();
+
+	debut_droite("messagerie");
+
+	//////////////////////////////////////////////////////
+	// Determiner les droits d'edition de la liste
+	//
+
+	$result = spip_query("SELECT statut, titre, maj FROM spip_listes WHERE id_liste="._q($id_liste));
+	if ($row = spip_fetch_array($result)) {
+		$statut_article = $row['statut'];
+		$titre_article = $row['titre'];
+		$maj = $row['maj'];
+	}
+	else {
+		$statut_article = '';
+	}
+
+	$result_auteur = spip_query("SELECT * FROM spip_auteurs_mod_listes WHERE id_liste="._q($id_liste)." AND id_auteur="._q($connect_id_auteur));
+
+	//
+	// Droits mieux structure que ca ?
+	//
+
+	$flag_auteur=true;
+	$flag_editable = ($flag_auteur AND ($statut_article == 'inact' OR $statut_article == 'liste' OR $statut_article == 'poublist'));
+
+	//
+	// Appliquer les modifications sur la liste
+	//
+
+	$ok_nouveau_statut = false;
+
+	//Modifier le statut de la liste
+	if ($statut_nouv) {
+		if ($flag_auteur) {
+		     //il faut etre admin et abonnï¿œpour modifer une liste
+			if ($statut_nouv == 'liste' AND $statut_article == 'inact')
+				$ok_nouveau_statut = true;
+			else if ($statut_nouv == 'inact' AND $statut_article == 'poublist')
+				$ok_nouveau_statut = true;
+			else if ($statut_nouv == 'poublist' AND $statut_article == 'inact')
+				$ok_nouveau_statut = true;
+			else if ($statut_nouv == 'poublist' AND $statut_article == 'liste')
+				$ok_nouveau_statut = true;
+			else if ($statut_nouv == 'inact' AND $statut_article == 'liste')
+				$ok_nouveau_statut = true;
+			else if ($statut_nouv == 'liste' AND $statut_article == 'poublist')
+				$ok_nouveau_statut = true;
+		}
+		if ($ok_nouveau_statut)
+			$result = spip_query("UPDATE spip_listes SET statut="._q($statut_nouv)." WHERE id_liste="._q($id_liste));
+	}
+
+	//modifier la date
+	if ($jour=intval(_request('jour')) && $flag_editable) {
+		$mois = intval(_request('mois'));
+		if (($annee=intval(_request('annee'))) == "0000") $mois = "00";
+		if ($mois == "00") $jour = "00";
+		$result = spip_query("UPDATE spip_listes SET date='$annee-$mois-$jour' WHERE id_liste="._q($id_liste));
+	}
+
+	// Enregistrer les modifs sur la liste
+
+	if ($titre && !$ajout_forum && $flag_editable) {
+		$titre = corriger_caracteres($titre);
+		$descriptif = corriger_caracteres($descriptif);
+		$texte = corriger_caracteres($texte);
+		$pied_page = corriger_caracteres($pied_page);
+		
+		$result = spip_query("UPDATE spip_listes SET titre="._q($titre).",descriptif="._q($descriptif).",texte="._q($texte).",pied_page="._q($pied_page)." WHERE id_liste="._q($id_liste));
+		// afficher le nouveau titre dans la barre de fenetre
+		$titre_article = $titre;
+	}
+
+	if($changer_lang)
+		$result = spip_query("UPDATE spip_listes SET lang="._q($changer_lang)." WHERE id_liste="._q($id_liste));
+
+	// prendre en compte les modifs sur le message auto
+	if($Valider_auto){
+		if($auto == "oui"){
+			$result = spip_query("UPDATE spip_listes SET message_auto='oui' WHERE id_liste="._q($id_liste));
+			if($maj=="0000-00-00 00:00:00"){
+				$result = spip_query("UPDATE spip_listes SET maj=NOW() WHERE id_liste="._q($id_liste));
+			}
+		}
+		elseif ($auto == "non"){
+			$result = spip_query("UPDATE spip_listes SET message_auto='non', maj='0000-00-00 00:00:00' WHERE id_liste="._q($id_liste));
+		}
+		if(email_valide($email_envoi)){
+			$result = spip_query("UPDATE spip_listes SET email_envoi="._q($email_envoi)." WHERE id_liste="._q($id_liste));
+		}
+		if(($changer_extra == "oui") AND ($auto == "oui") ){
+			$result = spip_query("UPDATE spip_listes SET patron="._q($patron).", periode="._q($periode).", titre_message="._q($sujet_message)." WHERE id_liste="._q($id_liste));
+			if($envoyer_direct){
+				$majnouv = (time() - ($periode * 3600*24));
+				$result = spip_query("UPDATE spip_listes SET maj=FROM_UNIXTIME($majnouv), periode="._q($periode)." WHERE id_liste="._q($id_liste));
+			}
+		}
+	}
+
+	//
+	// Lire la liste
+	//
+
+	$result = spip_query("SELECT * FROM spip_listes WHERE id_liste="._q($id_liste));
+
+	if ($row = spip_fetch_array($result)) {
+		$id_liste = $row["id_liste"];
+		$titre = $row["titre"];
+		$titre_message = $row["titre_message"];
+		$pied_page = $row["pied_page"];
+		$texte = $row["texte"];
+		$date = $row["date"];
+		$statut_article = $row["statut"];
+		$maj_nouv = $row["maj"];
+		$email_envoi=$row["email_envoi"];
+		$message_auto = $row["message_auto"];
+		$periode = $row["periode"];
+		$patron = $row["patron"];
+		$lang = $row["lang"];
+	}
+
+	changer_typo('','liste'.$id_liste);
+
+	echo debut_cadre_relief();
+	echo "<center>";
+
+	//
+	// Titre, surtitre, sous-titre
+	//
+
+	if($statut == 'liste') $logo_statut = 'puce-verte.gif';
+	if($statut == 'inact') $logo_statut = 'puce-blanche.gif';
+	if($statut == 'poublist') $logo_statut = 'puce-blanche.gif';
+
+	echo "\n<table cellpadding=0 cellspacing=0 border=0 width='100%'>";
+	echo "<tr width='100%'><td width='100%' valign='top'>";
+
+	gros_titre($titre, $logo_statut);
+
+	echo "<div style='margin:10px 0px 10px 0px'>";
+	echo justifier(propre($texte));
+	echo "</div>";
+	
+	echo "</td>";
+
+	if ($flag_editable) {
+		echo "<td><img src='"._DIR_IMG_PACK."rien.gif' width='5'></td>\n";
+		echo "<td align='center'>";
+		echo listes_edit_presentation($id_liste);
+		echo "</td>";
+	}
+	echo "</tr></table>\n";
+
+	echo fin_cadre_relief();
+
+	//////////////////////////////////////////////////////
+	// Modifier le statut de la liste
+	//
+
+	echo "
+	<script type='text/javascript'><!--
+	function change_bouton(selObj){
+		var selection=selObj.options[selObj.selectedIndex].value;
+		if (selection=='liste'){
+			document.statut.src='"._DIR_IMG_PACK."puce-verte.gif';
+		}
+		if (selection=='inact'){
+			document.statut.src='"._DIR_IMG_PACK."puce-blanche.gif';
+		}
+		if (selection=='poublist'){
+			document.statut.src='"._DIR_IMG_PACK."puce-poubelle.gif';
+		}
+	}
+	// --></script>";
+
+	if ($connect_statut == '0minirezo' ) {
+		echo debut_cadre_relief("racine-site-24.gif");
+		echo "<form action='".generer_url_ecrire('listes',"id_liste=$id_liste")."' method='get'>";
+		echo "<input type='hidden' name='exec' value='listes' />";
+		echo "<input type='hidden' name='id_liste' value='$id_liste' />";
+
+		echo "<b>"._T('spiplistes:Cette_liste_est').": </b> ";
+		
+		echo "<select name='statut_nouv' size='1' class='fondl' onChange='change_bouton(this)'>";
+		echo "<option" . mySel("inact", $statut_article) ." style='background-color: white'>"._T('spiplistes:statut_interne')."\n";
+		echo "<option" . mySel("liste", $statut_article) . " style='background-color: #B4E8C5'>"._T('spiplistes:statut_publique')."\n";
+		echo "<option" . mySel("poublist", $statut_article) . " style='background:url("._DIR_IMG_PACK."rayures-sup.gif)'>"._T('texte_statut_poubelle')."\n";
+		
+		echo "</select>";
+		echo " \n";
+		
+		if ($statut_article=='liste') {
+			echo "<img src='"._DIR_IMG_PACK."/puce-verte.gif' alt='' width='13' height='14' border='0' name='statut'>";
+		}
+		elseif ($statut_article=='inact') {
+			echo "<img src='"._DIR_IMG_PACK."/puce-blanche.gif' alt='' width='13' height='14' border='0' name='statut'>";
+		}
+		elseif ($statut_article == 'poublist') {
+			echo "<img src='"._DIR_IMG_PACK."/puce-poubelle.gif' alt='' width='13' height='14' border='0' name='statut'>";
+		}
+		echo " \n";
+		
+		echo "<input type='submit' name='Modifier' value='"._T('bouton_modifier')."' class='fondo' />";
+		echo aide ("artstatut");
+		echo "</form>";	
+		
+		echo "<div style='margin:10px 0px 10px 0px'>";
+		echo menu_langues('changer_lang', $lang , _T('spiplistes:langue'),'', '');
+		echo "</div>";
+		
+		//regler email d'envoi de la liste
+		echo "<form action='".generer_url_ecrire('listes',"id_liste=$id_liste")."' method='post'>";
+				
+		$email_defaut = entites_html(lire_meta("email_webmaster"));
+		$email_envoi = (email_valide($email_envoi)) ? $email_envoi : $email_defaut ;
+		
+		echo "<strong>";
+		echo _T('spiplistes:retour')."</strong><br />";
+		
+		echo "<p>"._T('spiplistes:adresse')."</p>";
+		echo "<input type='text' name='email_envoi' value=\"".$email_envoi."\" size='20' class='fondl' />&nbsp;";
+				
+		if($id_liste)
+			echo "<input type='hidden' name='id_liste' value='$id_liste' />";
+		if($new)
+			echo "<input type='hidden' name='new' value='$new' />";
+		echo "<input type='submit' name='Valider_auto' value='"._T('bouton_valider')."' class='fondo' />";
+				
+		echo "</form>";
+				
+		echo fin_cadre_relief();
+	}
+
+	echo debut_cadre_relief(_DIR_PLUGIN_SPIPLISTES."img_pack/stock_timer.gif");
+	echo "<form action='".generer_url_ecrire('listes',"id_liste=$id_liste")."' method='post'>";
+	 
+	// programmer un courrier automatique
+	echo "<h3>"._T('spiplistes:program')."</h3>";
+
+	echo "<table border=0 cellspacing=1 cellpadding=3 width=\"100%\">";
+	echo "<tr><td background='"._DIR_IMG_PACK."/rien.gif' align='$spip_lang_left' class='verdana2'>";
+	if ($message_auto != "oui")
+		echo _T('spiplistes:non_program');
+	else {
+		if(($changer_extra == "oui") AND ($auto == "oui") )
+			echo "<h2>"._T('spiplistes:date_act')."</h2>" ;
+		echo "<h3> "._T('spiplistes:sujet_courrier_auto').$titre_message."</h3>";
+		echo _T('spiplistes:env_esquel')." <em>".$patron."</em> " ;
+		echo "<br />"._T('spiplistes:Tous_les')."  <b>".$periode."</b>  "._T('info_jours') ;
+		
+		$dernier_envoi =  strtotime($maj_nouv)  ;
+		$sablier = (time() - $dernier_envoi) ;
+			
+		$proch = round(  (( (24*3600*$periode) - $sablier) / (3600*24)) ) ;
+		$last = round(  ($sablier / (3600*24)) ) ;
+		echo "<br />"._T('spiplistes:dernier_envoi')." <b>$last</b> "._T('spiplistes:jours')."<br />";
+		if($proch != 0) {
+			echo "<br />"._T('spiplistes:prochain_envoi_prevu_dans')."<b>$proch</b> "._T('spiplistes:jours')."<br />";
+		}
+		else {
+			echo "<br />"._T('spiplistes:prochain_envoi_aujd')."<br />";
+		}
+	}
+
+	echo "</td></tr>";
+	echo "<tr><td background='"._DIR_IMG_PACK."/rien.gif' align='$spip_lang_left' class='verdana2'>";
+
+	$checked = ($message_auto=='oui')?"checked='checked'":"";
+	echo "<input type='radio' name='auto' value='oui' id='auto_oui' "
+	 . $checked
+	 ." onchange=\"jQuery('#auto_oui_detail').show();\" />";
+	echo $checked?"<b>":"";
+	echo "<label for='auto_oui'>"._T('spiplistes:prog_env')."</label>";
+	echo $checked?"</b>":"";
+	echo "<input type='hidden' name='changer_extra' value='oui'>";
+	echo "<div id='auto_oui_detail'>";
+	
+	$sujet_message = ($titre_message=='') ? $titre." "._T('zxml_de')." ".$nomsite : $titre_message ;
+	
+	echo "<ul style='list-style-type:none;'>";
+	echo "<li>"._T('spiplistes:message_sujet').": <input type='titre_message' name='sujet_message' value='".$sujet_message."' size='50' class='fondl' /> </li>" ;
+	echo "<li>"._T('spiplistes:squel');
+	
+	
+	$liste_patrons = find_all_in_path("patrons/","[.]html$");
+	echo "<select name='patron'>";
+	foreach($liste_patrons as $titre_option) {
+		$titre_option = basename($titre_option,".html");
+		$selected ="";
+		if ($patron == $titre_option)
+			$selected = "selected='selected";
+		echo "<option ".$selected." value='".$titre_option."'>".$titre_option."</option>\n";
+	}
+	echo "</select>";
+	
+	echo "</li>";
+
+	echo "<li>"._T('spiplistes:Tous_les')." <input type='text' name='periode' value='".$periode."' size='4' class='fondl' /> "._T('info_jours')."</li>" ;
+
+	if(!$envoyer_direct)
+		echo " <li><input type='checkbox' class='checkbox' name='envoyer_direct' id='box' class='fondl' /><label for='box'>"._T('spiplistes:env_maint')."</label></li>";
+
+	echo "</ul></div>";
+	$checked = ($message_auto=='non')?"checked='checked'":"";
+	echo "<br /><input type='radio' name='auto' value='non' id='auto_non' "
+	 . $checked
+	 ." onchange=\"jQuery('#auto_oui_detail').hide();\" />";
+	echo $checked?"<b>":"";
+	echo " <label for='auto_non'>"._T('spiplistes:prog_env_non')."</label> ";
+	echo $checked?"</b>":"";
+	if ($message_auto=='non')
+		echo "<script type='text/javascript'><!--
+		jQuery('#auto_oui_detail').hide();
+		--></script>";
+	
+	echo "</td></tr>\n";
+	
+	echo "<tr><td style='text-align:$spip_lang_right;'>";
+	if($id_liste)
+		echo "<input type='hidden' name='id_liste' value='$id_liste' />";
+	if($new)
+		echo "<input type='hidden' name='new' value='$new' />";
+	echo "<input type='submit' name='Valider_auto' value='"._T('bouton_valider')."' class='fondo' />";
+	echo "</td></tr>";
+	echo "</table>\n";
+	
+	echo "</form>";
+
+	echo fin_cadre_relief();
+
+	//
+	// Liste des abonnes
+	//
+
+	//
+	// Appliquer les modifications sur les abonnes
+	//
+
+	echo "<a name='auteurs'></a>";
+
+	//
+	// Afficher les abonnes
+	//
+
+	//
+	// Liste des abonnes a la liste
+	//
+
+	$editer_auteurs = charger_fonction('editer_auteurs','inc');
+	echo $editer_auteurs('liste',$id_liste,$flag_editable, _request('cherche_auteur'),_request('ids'), 
+		_T('spiplistes:abon'),
+		'listes',
+		'abonne_edit');
+	
+	////
+	// MODE EDIT LISTE FIN ---------------------------------------------------------
+	echo "<p style='font-family: Arial, Verdana,sans-serif;font-size:10px;font-weight:bold'>".$GLOBALS['spiplistes_version']."<p>" ;
+	echo fin_gauche(), fin_page();
+}
+
+function listes_edit_presentation($id_liste){
+	return icone(_T('spiplistes:modifier_liste'), generer_url_ecrire("liste_edit","id_liste=$id_liste"),_DIR_PLUGIN_SPIPLISTES."img_pack/reply-to-all-24.gif", "edit.gif");
+}
+
+/******************************************************************************************/
+/* SPIP-listes est un systÃšme de gestion de listes d'abonnÃ©s et d'envoi d'information     */
+/* par email  pour SPIP.                                                                  */
+/* Copyright (C) 2004 Vincent CARON  v.caron<at>laposte.net , http://bloog.net            */
+/*                                                                                        */
+/* Ce programme est libre, vous pouvez le redistribuer et/ou le modifier selon les termes */
+/* de la Licence Publique GÃ©nÃ©rale GNU publiÃ©e par la Free Software Foundation            */
+/* (version 2).                                                                           */
+/*                                                                                        */
+/* Ce programme est distribuÃ© car potentiellement utile, mais SANS AUCUNE GARANTIE,       */
+/* ni explicite ni implicite, y compris les garanties de commercialisation ou             */
+/* d'adaptation dans un but spÃ©cifique. Reportez-vous Ã  la Licence Publique GÃ©nÃ©ale GNU  */
+/* pour plus de dÃ©tails.                                                                  */
+/*                                                                                        */
+/* Vous devez avoir reÃ§u une copie de la Licence Publique GÃ©nÃ©rale GNU                    */
+/* en mÃªme temps que ce programme ; si ce n'est pas le cas, Ã©crivez Ã  la                  */
+/* Free Software Foundation,                                                              */
+/* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, Etats-Unis.                   */
+/******************************************************************************************/
+
+?>
Index: /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/exec/listes_toutes.php
===================================================================
--- /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/exec/listes_toutes.php	(revision 90)
+++ /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/exec/listes_toutes.php	(revision 90)
@@ -0,0 +1,119 @@
+<?php
+
+/******************************************************************************************/
+/* SPIP-listes est un système de gestion de listes d'information par email pour SPIP      */
+/* Copyright (C) 2004 Vincent CARON  v.caron<at>laposte.net , http://bloog.net            */
+/*                                                                                        */
+/* Ce programme est libre, vous pouvez le redistribuer et/ou le modifier selon les termes */
+/* de la Licence Publique Générale GNU publiée par la Free Software Foundation            */
+/* (version 2).                                                                           */
+/*                                                                                        */
+/* Ce programme est distribué car potentiellement utile, mais SANS AUCUNE GARANTIE,       */
+/* ni explicite ni implicite, y compris les garanties de commercialisation ou             */
+/* d'adaptation dans un but spécifique. Reportez-vous à la Licence Publique Générale GNU  */
+/* pour plus de détails.                                                                  */
+/*                                                                                        */
+/* Vous devez avoir reçu une copie de la Licence Publique Générale GNU                    */
+/* en même temps que ce programme ; si ce n'est pas le cas, écrivez à la                  */
+/* Free Software Foundation,                                                              */
+/* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, États-Unis.                   */
+/******************************************************************************************/
+
+
+if (!defined("_ECRIRE_INC_VERSION")) return;
+
+include_spip('inc/presentation');
+include_spip('inc/affichage');
+
+
+function exec_listes_toutes(){
+	
+	global $connect_statut;
+	global $connect_toutes_rubriques;
+	global $connect_id_auteur;
+
+	$nomsite=lire_meta("nom_site"); 
+	$urlsite=lire_meta("adresse_site"); 
+	
+	// Admin SPIP-Listes
+	echo debut_page(_T('spiplistes:spip_listes'), "redacteurs", "spiplistes");
+	
+	if (!function_exists('spip_listes_onglets')){
+		echo(_T('spiplistes:erreur_install'));     
+		echo fin_page();
+		exit;
+	}
+	
+	if ($connect_statut != "0minirezo" ) {
+		echo "<p><b>"._T('spiplistes:acces_a_la_page')."</b></p>";
+		echo fin_page();
+		exit;
+	}
+	
+	if (($connect_statut == "0minirezo") OR ($connect_id_auteur == $id_auteur)) {
+	$statut_auteur=$statut;
+	spip_listes_onglets("messagerie", _T('spiplistes:spip_listes'));
+	}
+	
+	debut_gauche();
+	
+	spip_listes_raccourcis();
+	
+	creer_colonne_droite();
+	
+	debut_droite("messagerie");
+
+	
+	// MODE LISTES: afficher les listes --------------------------------------------
+	
+	/*
+	debut_cadre_relief('forum-interne-24.gif');
+	
+	echo _T('spiplistes:nb_abonnes')."$nb_abonnes<p>";
+	echo "<p>";
+	fin_cadre_relief();
+	*/
+	
+	echo "<p>";
+	
+	//
+	// Afficher tableau de listes
+	//
+	
+	
+	//
+	// lettres d'infos
+	//
+	
+	
+	echo spiplistes_afficher_en_liste(_T('spiplistes:listes_internes'), _DIR_PLUGIN_SPIPLISTES.'img_pack/stock_mail.gif', 'listes', 'inact', '', 'position') ;
+	echo spiplistes_afficher_en_liste(_T('spiplistes:liste_diff_publiques'), _DIR_PLUGIN_SPIPLISTES.'img_pack/stock_mail.gif', 'listes', 'liste', '', 'position') ;
+	echo spiplistes_afficher_en_liste(_T('spiplistes:listes_poubelle'), _DIR_PLUGIN_SPIPLISTES.'img_pack/stock_mail.gif', 'listes', 'poublist', '', 'position') ;
+	
+	
+	// MODE EDIT LISTES FIN --------------------------------------------------------
+	
+	echo "<p style='font-family: Arial, Verdana,sans-serif;font-size:10px;font-weight:bold'>".$GLOBALS['spiplistes_version']."<p>" ;
+	echo fin_gauche(), fin_page();
+}
+
+/******************************************************************************************/
+/* SPIP-listes est un système de gestion de listes d'abonnés et d'envoi d'information     */
+/* par email  pour SPIP.                                                                  */
+/* Copyright (C) 2004 Vincent CARON  v.caron<at>laposte.net , http://bloog.net            */
+/*                                                                                        */
+/* Ce programme est libre, vous pouvez le redistribuer et/ou le modifier selon les termes */
+/* de la Licence Publique Générale GNU publiée par la Free Software Foundation            */
+/* (version 2).                                                                           */
+/*                                                                                        */
+/* Ce programme est distribué car potentiellement utile, mais SANS AUCUNE GARANTIE,       */
+/* ni explicite ni implicite, y compris les garanties de commercialisation ou             */
+/* d'adaptation dans un but spécifique. Reportez-vous à la Licence Publique Générale GNU  */
+/* pour plus de détails.                                                                  */
+/*                                                                                        */
+/* Vous devez avoir reçu une copie de la Licence Publique Générale GNU                    */
+/* en même temps que ce programme ; si ce n'est pas le cas, écrivez à la                  */
+/* Free Software Foundation,                                                              */
+/* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, États-Unis.                   */
+/******************************************************************************************/
+?>
Index: /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/exec/spip_listes.php
===================================================================
--- /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/exec/spip_listes.php	(revision 90)
+++ /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/exec/spip_listes.php	(revision 90)
@@ -0,0 +1,186 @@
+<?php
+
+/******************************************************************************************/
+/* SPIP-listes est un systï¿œe de gestion de listes d'information par email pour SPIP      */
+/* Copyright (C) 2004 Vincent CARON  v.caron<at>laposte.net , http://bloog.net            */
+/*                                                                                        */
+/* Ce programme est libre, vous pouvez le redistribuer et/ou le modifier selon les termes */
+/* de la Licence Publique Gï¿œï¿œale GNU publiï¿œ par la Free Software Foundation            */
+/* (version 2).                                                                           */
+/*                                                                                        */
+/* Ce programme est distribuï¿œcar potentiellement utile, mais SANS AUCUNE GARANTIE,       */
+/* ni explicite ni implicite, y compris les garanties de commercialisation ou             */
+/* d'adaptation dans un but spï¿œifique. Reportez-vous ï¿œla Licence Publique Gï¿œï¿œale GNU  */
+/* pour plus de dï¿œails.                                                                  */
+/*                                                                                        */
+/* Vous devez avoir reï¿œ une copie de la Licence Publique Gï¿œï¿œale GNU                    */
+/* en mï¿œe temps que ce programme ; si ce n'est pas le cas, ï¿œrivez ï¿œla                  */
+/* Free Software Foundation,                                                              */
+/* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, ï¿œats-Unis.                   */
+/******************************************************************************************/
+
+
+if (!defined("_ECRIRE_INC_VERSION")) return;
+
+include_spip('inc/presentation');
+include_spip('inc/affichage');
+include_spip ('base/spip-listes');
+include_spip('inc/plugin');
+
+function spiplistes_afficher_pile_messages(){
+	
+	if ($GLOBALS['spip_version_code']<1.9204){
+		include_spip('base/spiplistes_upgrade');
+		if (!spiplistes_install('test'))
+			spiplistes_install('install');
+	}
+	$out = "";
+	$list = spip_query ("SELECT * FROM spip_listes WHERE message_auto='oui' ");
+	$message_pile = spip_num_rows($list);
+	if ($message_pile == 0) return $out; 
+	$out .= debut_cadre_enfonce(_DIR_PLUGIN_SPIPLISTES.'img_pack/stock_timer.gif',true);
+	$out .= "<div  class='chapo' style='border-top:1px #cccccc;width:100%;font-weight:bold;font-size:14px'>"._T('spiplistes:Messages_automatiques')."</div>";
+	$out .= "<style>
+	table.tab td {
+	text-align:center;
+	padding:3px;
+	width:33%;
+	background-color:#cccccc;
+	}
+	table.tab {
+	margin-top:5px;
+	}
+	tr.row_even {
+	background-color:#cccccc;
+	}
+	</style>";
+	$out .= "<table class='tab'>" ;	
+	$out .= "<tr style='padding:5px'>";
+	$out .= "<td style='font-weight:bold;background-color:#eeeecc'>"._T('spiplistes:envoi_patron')."</td>";
+	$out .= "<td style='font-weight:bold;background-color:#eeeecc'>"._T('spiplistes:sur_liste')."</td>";
+	$out .= "<td style='font-weight:bold;background-color:#eeeecc'>"._T('spiplistes:prochain_envoi_prevu')."</td>";
+	$out .= "</tr>";
+
+	while($row = spip_fetch_array($list)) {
+		$id_article = $row['id_liste'] ;
+		$titre = $row['titre'] ;
+		$sablier = time() - strtotime($row['maj']) ;
+		$proch = round( ( (24*3600*$row['periode']) - $sablier) / (3600*24) ) ;
+	
+		if($i == 0){
+			$out .= "<tr style='padding:5px'>" ;
+			$i = 1 ;
+		}else {
+			$out .= "<tr style='padding:5px' class='row_even'>" ;
+			$i = 0 ;
+		}
+	
+  	$date_dernier = strtotime($row['maj']) ;
+    $date_dernier = date(_T('spiplistes:format_date'),$date_dernier) ;
+
+		$out .= "<td><a href='".generer_url_public('patron_switch',"patron=".$row['patron']."&date=".$date_dernier)."'> ".$row['patron']."</a><br />"._T('spiplistes:Tous_les')." ".$row['periode']." "._T('spiplistes:jours')."</td><td><a href='?exec=listes&id_liste=$id_article'>$titre</a><br />" ;
+		$out .= "</td>" ;
+		$out .= "<td>";
+		if($proch != 0)
+			$out .= _T('spiplistes:dans_jours')." <b>$proch</b> "._T('spiplistes:jours')."</td>";
+		else 
+			$out .= "<b>"._T('date_aujourdhui')."</b></td>";
+		$out .= "</tr>" ;
+	}
+	$out .= "</table>" ;
+	$out .= fin_cadre_enfonce(true);
+	return $out;
+}
+
+function exec_spip_listes() {
+	
+	include_spip ('inc/acces');
+	include_spip ('inc/filtres');
+	include_spip ('inc/config');
+	include_spip ('inc/barre');
+	
+	include_spip ('inc/mots');
+	include_spip ('inc/documents');
+	
+	
+	global $connect_statut;
+	global $connect_toutes_rubriques;
+	global $connect_id_auteur;
+	global $supp_dest;
+	
+	$nomsite=lire_meta("nom_site"); 
+	$urlsite=lire_meta("adresse_site"); 
+	
+	// Admin SPIP-Listes
+	echo debut_page(_T('spiplistes:spip_listes'), "redacteurs", "spiplistes");
+	
+	if ($connect_statut != "0minirezo" ) {
+		echo "<p><b>"._T('spiplistes:acces_a_la_page')."</b></p>";
+		echo fin_page();
+		exit;
+	}
+	
+	if (($connect_statut == "0minirezo") OR ($connect_id_auteur == $id_auteur)) {
+		$statut_auteur=$statut;
+		spip_listes_onglets("messagerie", _T('spiplistes:spip_listes'));
+	}
+	
+	debut_gauche();
+	spip_listes_raccourcis();
+	creer_colonne_droite();
+
+	debut_droite("messagerie");
+	
+	// MODE HISTORIQUE: Historique des envois --------------------------------------
+	
+	if ($detruire_message = _request('detruire_message')) {
+		spip_query("DELETE FROM spip_courriers WHERE id_courrier="._q($detruire_message));
+		spip_query("DELETE FROM spip_auteurs_messages WHERE id_message="._q($detruire_message));
+		spip_query("DELETE FROM spip_forum WHERE id_message="._q($detruire_message));
+	}
+	
+	/// afficher un tableau de messages
+	
+	///
+	
+	$messages_vus = '';
+	
+	echo spiplistes_afficher_en_liste(_T('spiplistes:aff_encours'), _DIR_PLUGIN_SPIPLISTES.'img_pack/24_send-receive.gif', 'messages', 'encour', '', 'position') ;
+	echo spiplistes_afficher_en_liste(_T('spiplistes:aff_redac'), _DIR_PLUGIN_SPIPLISTES.'img_pack/stock_mail.gif', 'messages', 'redac', '', 'position') ;
+	
+	
+	// afficher les messages auto
+	echo spiplistes_afficher_pile_messages();
+	
+	echo "<br /><br />";
+
+	echo spiplistes_afficher_en_liste(_T('spiplistes:messages_auto_envoye'),_DIR_PLUGIN_SPIPLISTES.'img_pack/stock_mail.gif', 'messages', 'auto', '', 'position') ;
+	echo spiplistes_afficher_en_liste(_T('spiplistes:aff_envoye'), _DIR_PLUGIN_SPIPLISTES.'img_pack/stock_mail.gif', 'messages', 'publie', '', 'position') ;
+	
+	
+	// MODE HISTORIQUE FIN ---------------------------------------------------------
+	
+	echo "<p style='font-family: Arial, Verdana,sans-serif;font-size:10px;font-weight:bold'>".$GLOBALS['spiplistes_version']."</p>" ;
+	echo fin_gauche(), fin_page();
+}
+
+/******************************************************************************************/
+/* SPIP-listes est un systï¿œe de gestion de listes d'abonnï¿œ et d'envoi d'information     */
+/* par email  pour SPIP.                                                                  */
+/* Copyright (C) 2004 Vincent CARON  v.caron<at>laposte.net , http://bloog.net            */
+/*                                                                                        */
+/* Ce programme est libre, vous pouvez le redistribuer et/ou le modifier selon les termes */
+/* de la Licence Publique Gï¿œï¿œale GNU publiï¿œ par la Free Software Foundation            */
+/* (version 2).                                                                           */
+/*                                                                                        */
+/* Ce programme est distribuï¿œcar potentiellement utile, mais SANS AUCUNE GARANTIE,       */
+/* ni explicite ni implicite, y compris les garanties de commercialisation ou             */
+/* d'adaptation dans un but spï¿œifique. Reportez-vous ï¿œla Licence Publique Gï¿œï¿œale GNU  */
+/* pour plus de dï¿œails.                                                                  */
+/*                                                                                        */
+/* Vous devez avoir reï¿œ une copie de la Licence Publique Gï¿œï¿œale GNU                    */
+/* en mï¿œe temps que ce programme ; si ce n'est pas le cas, ï¿œrivez ï¿œla                  */
+/* Free Software Foundation,                                                              */
+/* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, ï¿œats-Unis.                   */
+/******************************************************************************************/
+?>
Index: /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/formulaires/date_picker_init.html
===================================================================
--- /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/formulaires/date_picker_init.html	(revision 90)
+++ /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/formulaires/date_picker_init.html	(revision 90)
@@ -0,0 +1,5 @@
+$.datePicker.setLanguageStrings(
+	['<:date_jour_1:>', '<:date_jour_2:>', '<:date_jour_3:>', '<:date_jour_4:>', '<:date_jour_5:>', '<:date_jour_6:>', '<:date_jour_7:>'],
+	['<:date_mois_1:>', '<:date_mois_2:>', '<:date_mois_3:>', '<:date_mois_4:>', '<:date_mois_5:>', '<:date_mois_6:>', '<:date_mois_7:>', '<:date_mois_8:>', '<:date_mois_9:>', '<:date_mois_10:>', '<:date_mois_11:>', '<:date_mois_12:>'],
+	{p:'<:precedent:>', n:'<:suivant:>', c:'X'}
+);
Index: /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/formulaires/formulaire_abonnement.html
===================================================================
--- /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/formulaires/formulaire_abonnement.html	(revision 90)
+++ /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/formulaires/formulaire_abonnement.html	(revision 90)
@@ -0,0 +1,105 @@
+<a name="abo"></a>
+[(#ENV{oubli_pass}|=={oui}|?{' ',''})
+	<h2><:pass_mot_oublie:></h2>
+
+	[(#ENV*{erreur})]
+
+	[(#ENV{erreur}|?{'',' '})
+	<:pass_indiquez_cidessous:>
+	
+	<form action="#SELF" method="post">
+		<div style="text-align:right">
+				<input type="text" class="spip_formulaires" name="email_oubli" value="" />
+				<input type="hidden" name="oubli_pass" value="oui" />
+				<input type="submit" class="spip_bouton" name="oubli" value="<:pass_ok:>" />
+		</div>
+	</form>	
+
+	]
+]
+
+<div class="formulaire_spip formulaire_inscription">
+[(#REM) 
+texte d'inscription en tant que rédacteur
+]
+[(#ENV{inscription_redacteur}|=={oui}|?{' ',''})
+<fieldset>
+<legend style="color:#000000"><:spiplistes:devenir_abonne:></legend>
+<strong><:spiplistes:devenir_redac:></strong>
+<div><:spiplistes:inscription_redacteurs:></div>
+<div style="margin-top:5px"><:form_forum_indiquer_nom_email:></div>
+</fieldset>
+]
+
+[(#REM) 
+texte d'inscription en tant que visiteur
+]
+[(#ENV{inscription_visiteur}|=={oui}|?{' ',''})
+<fieldset>
+<legend style="color:#000000"><:spiplistes:devenir_abonne:></legend>
+<div><:spiplistes:inscription_visiteurs:></div>
+<div style="margin-top:5px"><:form_forum_indiquer_nom_email:></div>
+	[(#CONFIG{accepter_inscriptions}|=={oui}|?{' ',''})
+	<div style="margin-top:5px">(<:spiplistes:vous_pouvez_egalement:> <a href="[(#SELF|parametre_url{'type','redac'})]"><:spiplistes:vous_inscrire_auteur:></a>)
+	</div>
+	]
+</fieldset>
+]
+
+
+[<span style="color:red">(#ENV*{reponse_formulaire})</span>]
+
+
+[(#ENV{mode_login}|?{' ',''})
+	<form action="#SELF#spip-listes" method="post">
+]
+		<div><a name="spip-listes"></a></div>
+		<BOUCLE_liste(LISTES) {statut=liste} {id_liste=#ENV{liste}} {0,(#ENV{mode_login}|?{1,0})}>
+			[<fieldset style="margin-bottom:1em;">
+			[<legend style="font-weight:bold;">(#TITRE)</legend>]
+			(#TEXTE)
+			</fieldset>]
+		</BOUCLE_liste>
+
+		
+		<B_listes>
+			<fieldset>
+			<legend style="color:#000000">[(#TOTAL_BOUCLE|=={1}|?{
+				<:spiplistes:abo_1_lettre:></legend>
+				,<:spiplistes:abo_listes:></legend>})]
+			
+		<BOUCLE_listes(LISTES) {statut=liste} {0,(#ENV{mode_login}|?{100,0})}>
+				[(#TOTAL_BOUCLE|=={1}|?{' ',''})
+				<input type="hidden" name="list&#91;&#93;"  checked="checked" value="#ID_LISTE" />
+				]
+				[(#TOTAL_BOUCLE|!={1}|?{' ',''})
+				<div style="text-align:left; padding:0px 0px 4px 0px;clear:both">
+				<label><input type="checkbox" name="list&#91;&#93;"  [(#COMPTEUR_BOUCLE|=={1}|?{'checked="checked"',''})]  value="#ID_LISTE" />#TITRE</label></div>]
+		</BOUCLE_listes>
+		[(#COMPTEUR_BOUCLE|!={1}|?{'<br />',''})]
+		</B_listes>
+			[(#ENV{mode_login}|?{' ',''})
+			<fieldset style="color:#000000">
+			<legend><:spiplistes:abo_1_lettre:></legend>]
+		<//B_listes>
+		[(#ENV{mode_login}|?{' ',''})
+		<div>
+				<input name="suppl_abo" id="suppl_abo_html" value="html"  type="hidden" />
+				
+			[(#ENV{acces_membres}|=={oui}|?{' ',''})
+				<div style="margin-top:5px"><label for="nom_inscription_" style="font-weight:bold;"><:form_pet_votre_nom:></label></div>
+				<input type="text" class="forml" style="width:12em" name="nom_inscription_" id="nom_inscription_" value="" size="30" style="clear:both;" />
+				]
+			<div style="margin-top:5px"><label for="mail_inscription_" style="font-weight:bold;"><:form_pet_votre_email:></label></div>
+			<input type="text" class="forml" style="width:12em;clear:both;" name="mail_inscription_" id="mail_inscription_" value="" size="30" />
+			<div>
+			<input name="desabo" id="suppl_abo_oui" value="non" checked="checked" type="radio" />
+			<label for="suppl_abo_oui"><:spiplistes:abonnement_0:></label>
+			</div>
+			<div>
+			<input name="desabo" id="desabo" value="oui" type="radio" />
+				<label for="desabo"><:spiplistes:desabonnement:></label>
+			</div>
+		<div class="spip_bouton" style="text-align:right"><input type="submit" name="Valider" value="<:bouton_valider:>" /></div>
+		</div></fieldset></form>]
+</div>
Index: /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/formulaires/formulaire_abonnement_une_liste.html
===================================================================
--- /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/formulaires/formulaire_abonnement_une_liste.html	(revision 90)
+++ /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/formulaires/formulaire_abonnement_une_liste.html	(revision 90)
@@ -0,0 +1,71 @@
+<div class="formulaire_spip formulaire_inscription">
+[(#REM) 
+texte d'inscription en tant que rédacteur
+]
+[(#ENV{inscription_redacteur}|=={oui}|?{' ',''})
+<fieldset>
+<legend style="color:#000000"><:spiplistes:devenir_abonne:></legend>
+<strong><:spiplistes:devenir_redac:></strong>
+<div><:spiplistes:inscription_redacteurs:></div>
+<div style="margin-top:5px"><:form_forum_indiquer_nom_email:></div>
+</fieldset>
+]
+
+[(#REM) 
+texte d'inscription en tant que visiteur
+]
+[(#ENV{inscription_visiteur}|=={oui}|?{' ',''})
+<fieldset>
+<legend style="color:#000000"><:spiplistes:devenir_abonne:></legend>
+<div><:spiplistes:inscription_visiteurs:></div>
+<div style="margin-top:5px"><:form_forum_indiquer_nom_email:></div>
+	[(#CONFIG{accepter_inscriptions}|=={oui}|?{' ',''})
+	<div style="margin-top:5px">(<:spiplistes:vous_pouvez_egalement:> <a href="[(#SELF|parametre_url{'type','redac'})]"><:spiplistes:vous_inscrire_auteur:></a>)
+	</div>
+	]
+</fieldset>
+]
+
+
+<a name="spip-listes"></a>
+[(#ENV{mode_login}|?{' ',''})
+	<form action="#SELF#spip-listes" method="post" class="lettre">
+]
+		<BOUCLE_liste(LISTES) {statut=liste} {id_liste=#ENV{id_liste}}>
+			<fieldset style="margin-bottom:1em;">
+			<legend style="font-weight:bold;color:#000000">#TITRE</legend>
+			[(#ENV{mode_login}|?{' ',''})
+			<div style="margin-bottom:1em">#TEXTE</div>
+			]
+			<input type="hidden" name="list&#91;&#93;"  checked="checked" value="#ID_LISTE" />
+			
+			[(#ENV{mode_login}|?{' ',''})
+		<div>
+				<input name="suppl_abo" id="suppl_abo_html" value="html"  type="hidden" />
+				
+				[(#ENV{acces_membres}|=={oui}|?{' ',''})
+				<div style="margin-top:5px"><label for="nom_inscription_" style="font-weight:bold;"><:form_pet_votre_nom:></label></div>
+				<input type="text" class="forml" style="width:12em" name="nom_inscription_" id="nom_inscription_" value="" size="30" style="clear:both;" />
+				]
+			<div style="margin-top:5px"><label for="mail_inscription_" style="font-weight:bold;"><:form_pet_votre_email:></label></div>
+			<input type="text" class="forml" style="width:12em;clear:both;" name="mail_inscription_" id="mail_inscription_" value="" size="30" />
+			<div>
+			<input name="desabo" id="suppl_abo_oui" value="non" checked="checked" type="radio" />
+			<label for="suppl_abo_oui"><:spiplistes:abonnement_0:></label>
+			</div>
+			<div>
+			<input name="desabo" id="desabo" value="oui" type="radio" />
+			<label for="desabo"><:spiplistes:desabonnement:></label>
+			</div>
+		<div class="spip_bouton" style="text-align:right"><input type="submit" name="Valider" value="<:bouton_valider:>" /></div>
+		
+		</div>]
+
+	[(#ENV*{reponse_formulaire})]		
+			</fieldset>
+		</BOUCLE_liste>
+	[(#ENV{mode_login}|?{' ',''})
+	</form>
+	]		
+
+</div>
Index: /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/formulaires/formulaire_modif_abonnement.html
===================================================================
--- /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/formulaires/formulaire_modif_abonnement.html	(revision 90)
+++ /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/formulaires/formulaire_modif_abonnement.html	(revision 90)
@@ -0,0 +1,66 @@
+[(#ENV*{message_formulaire})]
+
+<BOUCLE_liste(LISTES) {statut=liste} {id_liste=#ENV{liste}}>
+			<fieldset style="margin-bottom:1em;">
+			<legend style="font-weight:bold;color:#000000">#TITRE</legend>
+			#TEXTE
+			</fieldset>
+		</BOUCLE_liste>
+[(#ENV*{confirm_formulaire})]
+<BOUCLE_auteur(AUTEURS){tous} {id_auteur=(#ENV{id_auteur})}>
+[(#ENV{formulaire_affiche}|?{' ',''})
+#NOM
+<h4><:spiplistes:abonnement:></h4>
+<form action="#SELF" method="post">
+	<div style="text-align:left">]
+</BOUCLE_auteur>
+<B_listes>
+	<fieldset>
+	<legend style="color:#000000">[(#TOTAL_BOUCLE|=={1}|?{<:spiplistes:abo_1_lettre:>,<:spiplistes:abo_listes:>})]</legend>
+	<ul style='width:350px;list-style-type:none'>
+<BOUCLE_listes(LISTES) {statut=liste} {0,(#ENV{formulaire_affiche}|?{100,0})}>
+				[(#TOTAL_BOUCLE|=={1}|?{' ',''})
+				<li style="margin-bottom:3px">
+				<input type="checkbox" name="list&#91;&#93;" checked="checked"  value="#ID_LISTE" /><a href='[(#SELF|parametre_url{liste,#ID_LISTE})]' title='<:spiplistes:infos_liste:>'>#TITRE</a>				
+				</li>]
+				<BOUCLE_inscription(AUTEURS){tous} {id_liste} {id_auteur=#ENV{id_auteur}}></BOUCLE_inscription>
+				[(#TOTAL_BOUCLE|!={1}|?{' ',''})
+				<li style="margin-bottom:3px">
+					<input type="checkbox" name="list&#91;&#93;" [(#_inscription:TOTAL_BOUCLE|?{' ',''})checked="checked"] value="#ID_LISTE" />
+					<a title='<:spiplistes:infos_liste:>' href='[(#SELF|parametre_url{liste,#ID_LISTE})]' title='<:spiplistes:infos_liste:>'>#TITRE</a>
+				</li>]
+</BOUCLE_listes>
+	</ul>
+</B_listes>
+	[(#ENV{formulaire_affiche}|?{' ',''})<fieldset>
+	<legend style="color:#000000"><:spiplistes:abo_1_lettre:></legend>]
+<//B_listes>
+[(#ENV{formulaire_affiche}|?{' ',''})
+ <div style="text-align: left;"> 
+				 <strong>Format :</strong><br/> 
+				 <input name="suppl_abo" id="formathtml" value="html" [(#ENV{format}|=={html}|?{'checked=checked',''})]  type="radio"><label for="formathtml"><:html:></label><br/> 
+				 <input name="suppl_abo" id="formattexte" value="texte" [(#ENV{format}|=={texte}|?{'checked=checked',''})] type="radio"><label for="formattexte"><:texte:></label><br/> 
+				 <input name="suppl_abo" id="formatnon" [(#ENV{format}|=={non}|?{'checked=checked',''})] value="non" type="radio"><label for="formatnon"><:desabonnement:></label><br/> 
+				 </div> 
+	<input style="margin-top:3px" type='submit' name='Valider' value='<:spiplistes:abonnement_bouton:>' />
+	<input type="hidden" name="d"  value="[(#ENV{d})]"  />
+	<input type="hidden" name="confirm"  value="oui" />
+	</fieldset>
+	</div>
+</form>
+]
+[(#ENV{formulaire_cookie_affiche}|?{' ',''})
+<fieldset> 
+	<legend style="color:#000000"><:spiplistes:abonnement_bouton:></legend>
+	<h4><:spiplistes:abonnement_change_format:></h4>
+	[(#ENV*{erreur}|sinon{
+	<:spiplistes:abonnement_texte_mail:>
+	<form action="#SELF" method="post">
+		<div style="text-align:right">
+			<input type="text" class="fondo" name="email_desabo" value="" />
+			<input type="hidden" name="desabo" value="oui" />
+			<input type="submit" class="fondl" name="oubli" value="<:pass_ok:>" />
+		</div>
+	</form>})]
+</fieldset>
+]
Index: /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/img_pack/date_picker.css
===================================================================
--- /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/img_pack/date_picker.css	(revision 90)
+++ /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/img_pack/date_picker.css	(revision 90)
@@ -0,0 +1,109 @@
+/* Date picker specific styles follow */
+
+a.date-picker {
+	width: 26px;
+	height: 26px;
+	border: none;
+	color: #fff;
+	padding: 0;
+	margin: 0;
+	float: left;
+	overflow: hidden;
+	cursor: pointer;
+	background: url(select_day_26.gif) no-repeat; 
+}
+a.date-picker span {
+	margin: 0 0 0 -2000px;
+}
+div.date-picker-holder {
+	position: relative;
+}
+div.date-picker-holder input {
+	float: left;
+}
+div.popup-calendar * {
+	margin: 0;
+	padding: 0;
+}
+div.popup-calendar {
+	display: none;
+	position: absolute;
+	z-index: 2;
+	top: 0;
+	left: -16px; /* value for IE */
+	padding: 4px;
+	border: 2px solid #000;
+	background: #fff;
+	color: #000;
+	overflow:hidden;
+	width: 163px;
+	font-size:0.8em;
+}
+html>body div.popup-calendar {
+	left: 99px; /* value for decent browsers */
+}
+div.popup-calendar iframe
+{
+	display:none;/*sorry for IE5*/
+	display/**/:block;/*sorry for IE5*/
+	position:absolute;
+	top:0;
+	left:0;
+	z-index:-1;
+	filter:mask();
+	width:3000px;
+	height:3000px;
+}
+div.popup-calendar div.link-close {
+	float: right;
+}
+div.popup-calendar div.link-prev {
+	float: left;
+}
+div.popup-calendar h3 {
+	font-size: 1.1em;
+	font-weight:bold;
+	margin: 2px 0 5px 3px;
+}
+div.popup-calendar div.link-next {
+	float: right;
+}
+div.popup-calendar div a {
+	padding: 1px 2px;
+	color: #000;
+}
+div.popup-calendar div a:hover {
+	background-color: #000;
+	color: #fff;
+}
+div.popup-calendar table {
+	margin: 0;
+}
+* html div.popup-calendar table {
+	display: inline;
+}
+div.popup-calendar table th, div.popup-calendar table td {
+	background: #eee;
+	width: 21px;
+	height: 17px;
+	text-align: center;
+}
+div.popup-calendar table td.inactive {
+	color: #aaa;
+	padding: 1px 0 0;
+}
+div.popup-calendar table td a {
+	display: block;
+	border: 1px solid #eee;
+	width: 19px;
+	height: 15px;
+	text-decoration: none;
+	color: #333;
+}
+div.popup-calendar table td.today a {
+	border-color: #aaa;
+}
+div.popup-calendar table td a.selected, div.popup-calendar table td a:hover {
+	background: #333; 
+	color: #fff;
+}
Index: /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/inc/affichage.php
===================================================================
--- /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/inc/affichage.php	(revision 90)
+++ /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/inc/affichage.php	(revision 90)
@@ -0,0 +1,696 @@
+<?php
+
+/******************************************************************************************/
+/* SPIP-listes est un système de gestion de listes d'information par email pour SPIP      */
+/* Copyright (C) 2004 Vincent CARON  v.caron<at>laposte.net , http://bloog.net            */
+/*                                                                                        */
+/* Ce programme est libre, vous pouvez le redistribuer et/ou le modifier selon les termes */
+/* de la Licence Publique Générale GNU publiée par la Free Software Foundation            */
+/* (version 2).                                                                           */
+/*                                                                                        */
+/* Ce programme est distribué car potentiellement utile, mais SANS AUCUNE GARANTIE,       */
+/* ni explicite ni implicite, y compris les garanties de commercialisation ou             */
+/* d'adaptation dans un but spécifique. Reportez-vous à la Licence Publique Générale GNU  */
+/* pour plus de détails.                                                                  */
+/*                                                                                        */
+/* Vous devez avoir reçu une copie de la Licence Publique Générale GNU                    */
+/* en même temps que ce programme ; si ce n'est pas le cas, écrivez à la                  */
+/* Free Software Foundation,                                                              */
+/* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, États-Unis.                   */
+/******************************************************************************************/
+
+include_spip('inc/spiplistes_api');
+
+
+function spip_listes_onglets($rubrique, $onglet){
+	global $id_auteur, $connect_id_auteur, $connect_statut, $statut_auteur, $options;
+	
+	echo debut_onglet();
+	if ($rubrique == "messagerie"){
+		echo onglet(_T('spiplistes:Historique_des_envois'), generer_url_ecrire("spip_listes"), "messagerie", $onglet, _DIR_PLUGIN_SPIPLISTES."img_pack/stock_hyperlink-mail-and-news-24.gif");
+		echo onglet(_T('spiplistes:Listes_de_diffusion'), generer_url_ecrire("listes_toutes"), "messagerie", $onglet, _DIR_PLUGIN_SPIPLISTES."img_pack/reply-to-all-24.gif");
+		echo onglet(_T('spiplistes:Suivi_des_abonnements'), generer_url_ecrire("abonnes_tous"), "messagerie", $onglet, _DIR_PLUGIN_SPIPLISTES."img_pack/addressbook-24.gif");
+	}
+	echo fin_onglet();
+}
+
+
+function boite_autocron(){
+	@define('_SPIP_LISTE_SEND_THREADS',1);
+	include_spip('inc/spiplistes_cron');
+	if (cron_spiplistes_cron(0)) return; // rien a faire
+	$res = spip_query("SELECT COUNT(a.id_auteur) AS n FROM spip_auteurs_courriers AS a JOIN spip_courriers AS c ON c.id_courrier=a.id_courrier WHERE c.statut='encour'");
+	$n = 0;
+	if ($row = spip_fetch_array($res))
+		$n = $row['n'];
+
+	if(true or $n > 0 ){
+		echo "<br />";
+		echo debut_boite_info();
+		//echo "<script type='text/javascript' src='".find_in_path('javascript/autocron.js')."'></script>";
+		
+		echo "<div style='font-weight:bold;text-align:center'>"._T('spiplistes:envoi_en_cours')."</div>";
+		echo "<div style='padding : 10px;text-align:center'><img src='"._DIR_PLUGIN_SPIPLISTES."img_pack/48_import.gif'></div>";
+		
+		$total = $n;
+		$res2 = spip_query("SELECT SUM(total_abonnes) AS total FROM spip_courriers WHERE statut='encour'");
+		$row2 = spip_fetch_array($res2);
+		$total = $row2['total'];
+		echo "<div id='meleuse'>";
+		echo "<p align='center' id='envoi_statut'>"._T('spiplistes:envoi_en_cours')." "
+		  . "<strong id='envois_restants'>$n</strong>/<span id='envois_total'>$total</span> (<span id='envois_restant_pourcent'>"
+		  . round($n/$total*100)."</span>%)</p>";
+		 
+		$href = generer_action_auteur('spiplistes_envoi_lot','envoyer');
+		
+		for ($i=0;$i<_SPIP_LISTE_SEND_THREADS;$i++)
+			echo "<span id='proc$i' class='processus' name='$href'></span>";
+		if (_request('exec')=='spip_listes')
+			echo "<a href='".generer_url_ecrire('spip_listes')."' id='redirect_after'></a>";
+		echo "</div>";
+		
+		echo "<script><!--
+		var target = $('#envois_restants');
+		var total = $('#envois_total').html();
+		var target_pc = $('#envois_restant_pourcent');
+		function redirect_fin(){
+			redirect = $('#redirect_after');
+			if (redirect.length>0){
+				href = redirect.attr('href');
+				setTimeout('document.location.href = \"'+href+'\"',0);
+			}
+		}
+		jQuery.fn.runProcessus = function(url) {
+			var proc=this;
+			var href=url;
+			$(target).load(url,function(data){
+				restant = $(target).html();
+				pourcent=Math.round(restant/total*100);
+				$(target_pc).html(pourcent);
+				if (Math.round(restant)>0)
+					$(proc).runProcessus(href);
+				else
+					redirect_fin();
+			});
+		}
+		$('span.processus').each(function(){
+			var href = $(this).attr('name');
+			$(this).html(ajax_image_searching).runProcessus(href);
+			//run_processus($(this).attr('id'));
+		});
+		//--></script>";
+		echo "<p>"._T('spiplistes:texte_boite_en_cours')."</p>" ;
+		echo "<p align='center'><a href='".generer_url_ecrire('gerer_courrier','change_statut=publie&id_message='.$id_mess)."'>["._T('annuler')."]</a></p>";
+		echo fin_boite_info();
+	}
+	//echo ' <div style="background-image: url(\''. generer_url_action('cron','&var='.time()).'\');"> </div> ';
+	//spip_log("spip_listes :  autocron");	
+}
+
+function spip_listes_raccourcis(){
+	global  $connect_statut;
+	
+	// debut des racourcis
+	echo debut_raccourcis(_DIR_PLUGIN_SPIPLISTES."img_pack/mailer_config.gif");
+	
+	if ($connect_statut == "0minirezo") {
+		icone_horizontale(_T('spiplistes:Nouveau_courrier'), generer_url_ecrire("courrier_edit","new=oui&type=nl"), _DIR_PLUGIN_SPIPLISTES."img_pack/stock_mail_send.gif");
+// 		echo "</a>"; // bug icone_horizontale()
+		echo "<br />" ;
+		echo "<br />" ;
+		
+		icone_horizontale(_T('spiplistes:Nouvelle_liste_de_diffusion'), generer_url_ecrire("liste_edit","new=oui"), _DIR_PLUGIN_SPIPLISTES."img_pack/reply-to-all-24.gif");
+// 		echo "</a>"; // bug icone_horizontale()
+		icone_horizontale(_T('spiplistes:import_export'), generer_url_ecrire("import_export"), _DIR_PLUGIN_SPIPLISTES."img_pack/listes_inout.png");
+// 		echo "</a>"; // bug icone_horizontale()
+		
+		icone_horizontale(_T('spiplistes:Configuration'), generer_url_ecrire("config"),_DIR_PLUGIN_SPIPLISTES."img_pack/mailer_config.gif");
+// 		echo "</a>"; // bug icone_horizontale()
+	}
+	echo fin_raccourcis();
+
+	//Afficher la console d'envoi ?
+	boite_autocron();
+	
+	// colonne gauche boite info
+	echo "<br />" ;
+	echo debut_boite_info();
+	echo _T('spiplistes:_aide');
+	echo fin_boite_info();
+}
+
+/**
+* spiplistes_afficher_en_liste
+*
+* affiche des listes d'éléments
+*
+* @param string titre
+* @param string image
+* @param string statut
+* @param string recherche
+* @param string nom_position
+* @return string la liste des lettres pour le statut demandé @author BoOz / Pierre Basson
+**/
+function spiplistes_afficher_en_liste($titre, $image, $element='listes', $statut, $recherche='', $nom_position='position') {
+	
+	global $pas, $id_auteur;
+	$position = intval($_GET[$nom_position]);
+	
+	$clause_where = '';
+	if (!empty($recherche)) {
+		$clause_where.= ' AND ( titre LIKE '._q("%$recherche%").' OR descriptif LIKE '._q("%$recherche%").' OR  texte LIKE '._q("%$recherche%").' )';
+	}
+	
+	$lettres = '';
+	
+	if(!$pas) $pas=10 ;
+	if(!$position) $position=0 ;
+	
+	if($element == 'listes'){
+		$requete_listes = 'SELECT id_liste,
+		titre,
+		date
+		FROM spip_listes
+		WHERE statut='._q($statut).' '.$clause_where.'
+		ORDER BY date DESC
+		LIMIT '.intval($position).','.intval($pas).'';
+	}
+	
+	if($element == 'messages'){
+		$type='nl' ;
+		$type2="";
+		$statut2="";
+		if($statut=='redac')
+			$statut2=" OR statut='ready'";
+		if($statut=='auto'){
+			$type='auto';
+			$statut='publie';
+		}
+		if($statut=='encour')
+			$type2=" OR type='auto'";
+	
+		$requete_listes = 'SELECT id_courrier,
+			titre,
+			date, nb_emails_envoyes
+			FROM spip_courriers
+			WHERE (type='._q($type).$type2.') AND (statut='._q($statut).$statut2.') '.$clause_where.'
+			ORDER BY date DESC
+			LIMIT '.intval($position).','.intval($pas).'';
+	}
+	
+	if($element == 'abonnements'){
+		if($statut=='')
+			$requete_listes = 'SELECT listes.id_liste, listes.titre, listes.statut, listes.date,lien.id_auteur,lien.id_liste 
+			  FROM spip_auteurs_listes AS lien 
+			  LEFT JOIN spip_listes AS listes ON lien.id_liste=listes.id_liste 
+			  WHERE lien.id_auteur='._q($id_auteur).' AND (listes.statut="liste" OR listes.statut="inact") 
+			  ORDER BY listes.date DESC LIMIT '.intval($position).','.intval($pas).'';
+		else{
+			$requete_listes = 'SELECT id_courrier,
+			titre,
+			date, nb_emails_envoyes
+			FROM spip_courriers
+			WHERE type='._q($type).' AND statut='._q($statut).' '.$clause_where.'
+			ORDER BY date DESC
+			LIMIT '.intval($position).','.intval($pas).'';
+		}
+	}
+	
+	//echo "$requete_listes";
+	$resultat_aff = spip_query($requete_listes);
+
+	
+	if (@spip_num_rows($resultat_aff) > 0) {
+	
+	$en_liste.= "<div class='liste'>\n";
+	$en_liste.= "<div style='position: relative;'>\n";
+	$en_liste.= "<div style='position: absolute; top: -12px; left: 3px;'>\n";
+	$en_liste.= "<img src='".$image."'  />\n";
+	$en_liste.= "</div>\n";
+	$en_liste.= "<div style='background-color: white; color: black; padding: 3px; padding-left: 30px; border-bottom: 1px solid #444444;' class='verdana2'>\n";
+	$en_liste.= "<b>\n";
+	$en_liste.= $titre;
+	$en_liste.= "</b>\n";
+	$en_liste.= "</div>\n";
+	$en_liste.= "</div>\n";
+	$en_liste.= "<table width='100%' cellpadding='2' cellspacing='0' border='0'>\n";
+	
+	while ($row = spip_fetch_array($resultat_aff)) {
+		$titre		= $row['titre'];
+		$date		= affdate($row['date']);				
+		
+		$retour = _DIR_RESTREINT_ABS.self();
+		switch ($element){
+			case "abonnements":
+				$id_row = $row['id_liste'];
+				$url_row	= generer_url_ecrire('listes', 'id_liste='.$id_row);
+				$url_desabo = generer_action_auteur('spiplistes_changer_statut_abonne', $row['id_auteur']."-listedesabo-$id_row", $retour);
+				break;
+			case "listes":
+				$id_row = $row['id_liste'];
+				$url_row	= generer_url_ecrire('listes', 'id_liste='.$id_row);
+				break;
+			default:
+				$id_row	= $row['id_courrier'];			
+				$nb_emails_envoyes	= $row['nb_emails_envoyes'];
+				$url_row	= generer_url_ecrire('gerer_courrier', 'id_message='.$id_row);
+		}
+		
+		$en_liste.= "<tr class='tr_liste'>\n";
+		$en_liste.= "<td width='11'>";
+		switch ($statut) {
+			case 'brouillon':
+				$en_liste.= "<img src='"._DIR_IMG_PACK."puce-blanche.gif' alt='puce-blanche' border='0' style='margin: 1px;' />";
+				break;
+			case 'publie':
+				$en_liste.= "<img src='"._DIR_IMG_PACK."puce-verte.gif' alt='puce-verte' border='0' style='margin: 1px;' />";
+				break;
+			case 'envoi_en_cours':
+				$en_liste.= "<img src='"._DIR_IMG_PACK."puce-orange.gif' alt='puce-orange' border='0' style='margin: 1px;' />";
+				break;
+		}
+		$en_liste.= "</td>";
+		$en_liste.= "<td class='arial2'>\n";
+		$en_liste.= "<div>\n";
+		$en_liste.= "<a href=\"".$url_row."\" dir='ltr' style='display:block;'>\n";
+		$en_liste.= $titre;
+		
+		if ($element == 'listes') {
+			$nb_abo= spip_num_rows(spip_query("SELECT id_auteur FROM spip_auteurs_listes WHERE id_liste="._q($id_row)));
+			$nb_abo = ($nb_abo>1)? $nb_abo._T('spiplistes:nb_abonnes_plur') : $nb_abo._T('spiplistes:nb_abonnes_sing');
+			
+			$en_liste.= " <span style='font-size:100%;color:#666666' dir='ltr'>\n";
+			$en_liste.= "(".$nb_abo.")\n";
+			$en_liste.= "</span>\n";
+		}
+		
+		if($nb_emails_envoyes>0){
+			$en_liste.= "<span style='font-size:100%;color:#666666' dir='ltr'>\n";
+			$en_liste.= "(".$nb_emails_envoyes.")\n";
+			$en_liste.= "</span>\n";
+		}
+		
+		$en_liste.= "</a>\n";
+		$en_liste.= "</div>\n";
+		$en_liste.= "</td>\n";
+		
+		switch ($element){
+			case "abonnements":
+				$en_liste.= "<td width='120' class='arial1'><a href=\"".$url_desabo."\" dir='ltr' style='display:block;'>"._T('spiplistes:desabonnement')."</a></td>\n";
+				break;
+			default:
+				$en_liste.= "<td width='120' class='arial1'>".$date."</td>\n";
+		}
+		
+		$en_liste.= "<td width='50' class='arial1'><b>"._T('spiplistes:numero').$id_row."</b></td>\n";
+		$en_liste.= "</tr>\n";
+	
+	}
+	$en_liste.= "</table>\n";
+	
+	switch ($element){
+		case "listes":
+			$requete_total = 'SELECT id_liste
+			FROM spip_listes
+			WHERE statut='._q($statut).' '.$clause_where.'
+			ORDER BY date DESC';
+			$retour = 'listes_toutes';
+			break;
+		case "messages":
+			$requete_total = 'SELECT id_courrier
+			FROM spip_courriers
+			WHERE type='._q($type).' AND statut='._q($statut);
+			$retour = 'spip_listes';
+			break;
+		case "abonnements":
+			$requete_total = 'SELECT listes.id_liste, listes.titre, listes.statut, listes.date, lien.id_auteur,lien.id_liste 
+			 FROM  spip_auteurs_listes AS lien 
+			 LEFT JOIN spip_listes AS listes 
+			 ON lien.id_liste=listes.id_liste 
+			 WHERE lien.id_auteur='._q($id_auteur).' AND (listes.statut ="liste" OR listes.statut ="inact") 
+			 ORDER BY listes.date DESC';
+			$retour = 'abonne_edit';
+			$param = '&id_auteur='.$id_auteur;
+			break;
+	}
+	
+	$resultat_total = spip_query($requete_total);
+	$total = spip_num_rows($resultat_total);
+	
+	$en_liste.= spiplistes_afficher_pagination($retour, $param, $total, $position, $nom_position);
+	$en_liste.= "</div>\n";
+	$en_liste.= "<br />\n";
+	}
+
+	return $en_liste;
+
+}
+
+
+
+/**
+* adapte de lettres_afficher_pagination
+*
+* @param string fond
+* @param string arguments
+* @param int total
+* @param int position
+* @author Pierre Basson
+**/
+function spiplistes_afficher_pagination($fond, $arguments, $total, $position, $nom) {
+	global $pas;
+	$pagination = '';
+	$i = 0;
+
+	$nombre_pages = floor(($total-1)/$pas)+1;
+
+	if($nombre_pages>1) {
+	
+		$pagination.= "<div style='background-color: white; color: black; padding: 3px; padding-left: 30px;  padding-right: 40px; text-align: right;' class='verdana2'>\n";
+		while($i<$nombre_pages) {
+			$url = generer_url_ecrire($fond, $nom.'='.strval($i*$pas).$arguments, '&');
+			$item = strval($i+1);
+			if(($i*$pas) != $position) {
+				$pagination.= '&nbsp;&nbsp;&nbsp;<a href="'.$url.'">'.$item.'</a>'."\n";
+			} else {
+				$pagination.= '&nbsp;&nbsp;&nbsp;<i>'.$item.'</i>'."\n";
+			}
+			$i++;
+		}
+		
+		$pagination.= "</ul>\n";
+		$pagination.= "</div>\n";
+	}
+
+	return $pagination;
+}
+
+
+function spiplistes_cherche_auteur(){
+	if (!$cherche_auteur = _request('cherche_auteur')) return;
+	
+	echo "<p align='left'>";
+	$col = strpos($cherche_auteur, '@') !== false ? 'email' : 'nom';
+	$like = '';
+	if (strpos($cherche_auteur, '%') !== false) {
+		$like = " WHERE $col LIKE '" . $cherche_auteur . "'";
+		$cherche_auteur = str_replace('%', ' ', $cherche_auteur);
+	}
+	$result = spip_query("SELECT id_auteur, $col FROM spip_auteurs$like");
+	
+	while ($row = spip_fetch_array($result, SPIP_NUM)) {
+		$table_auteurs[] = $row[1];
+		$table_ids[] = $row[0];
+	}
+	
+	$resultat = mots_ressemblants($cherche_auteur, $table_auteurs, $table_ids);
+	echo debut_boite_info();
+	if (!$resultat)
+		echo "<b>"._T('texte_aucun_resultat_auteur', array('cherche_auteur' => $cherche_auteur)).".</b><br />";
+	elseif (count($resultat) == 1) {
+		list(, $nouv_auteur) = each($resultat);
+		echo "<b>"._T('spiplistes:une_inscription')."</b><br />";
+		$result = spip_query("SELECT * FROM spip_auteurs WHERE id_auteur="._q($nouv_auteur));
+		echo "<ul>";
+		while ($row = spip_fetch_array($result)) {
+			$id_auteur = $row['id_auteur'];
+			$nom_auteur = $row['nom'];
+			$email_auteur = $row['email'];
+			$bio_auteur = $row['bio'];
+			
+			echo "<li><font face='Verdana,Arial,Sans,sans-serif' size=2><b><font size=3><a href=\"?exec=abonne_edit&id_auteur=$id_auteur\">".typo($nom_auteur)."</a></font></b>";
+			echo " | $email_auteur";
+			echo "</font>\n";
+		}
+		echo "</ul>";
+	}
+	elseif (count($resultat) < 16) {
+		reset($resultat);
+		unset($les_auteurs);
+		while (list(, $id_auteur) = each($resultat))
+			$les_auteurs[] = $id_auteur;
+		if ($les_auteurs) {
+			$les_auteurs = join(',', $les_auteurs);
+			echo "<b>"._T('texte_plusieurs_articles', array('cherche_auteur' => $cherche_auteur))."</b><br />";
+			$result = spip_query("SELECT * FROM spip_auteurs WHERE id_auteur IN ($les_auteurs) ORDER BY nom");
+			echo "<ul>";
+			while ($row = spip_fetch_array($result)) {
+				$id_auteur = $row['id_auteur'];
+				$nom_auteur = $row['nom'];
+				$email_auteur = $row['email'];
+				$bio_auteur = $row['bio'];
+				
+				echo "<li><font face='Verdana,Arial,Sans,sans-serif' size=2><b><font size=3>".typo($nom_auteur)."</font></b>";
+				if ($email_auteur)
+					echo " ($email_auteur)";
+				echo " | <a href=\"".generer_url_ecrire("abonne_edit","id_auteur=$id_auteur")."\">"._T('spiplistes:choisir')."</a>";
+				if (trim($bio_auteur))
+					echo "<br /><font size=1>".couper(propre($bio_auteur), 100)."</font>\n";
+				echo "</font><p>\n";
+			}
+			echo "</ul>";
+		}
+	}
+	else
+		echo "<b>"._T('texte_trop_resultats_auteurs', array('cherche_auteur' => $cherche_auteur))."</b><br />";
+
+	echo fin_boite_info();
+	echo "<p>";
+}
+
+function spiplistes_afficher_auteurs($query, $url){
+	$tri = _request('tri') ? _request('tri') : 'nom';
+
+	$t = spip_query('SELECT COUNT(*) FROM spip_auteurs');
+	$nombre_auteurs = spip_fetch_array($t, SPIP_NUM);
+	$nombre_auteurs = intval($nombre_auteurs[0]);
+	
+	// reglage du debut
+	$max_par_page = 30;
+	$debut = intval(_request('debut'));
+	if ($debut > $nombre_auteurs - $max_par_page) {
+		$debut = max(0,$nombre_auteurs - $max_par_page);
+	}
+	
+	$t = spip_query($query . ' LIMIT ' . $debut . ',' . $max_par_page);
+	
+	$auteurs=array();
+	$les_auteurs = array();
+	while ($auteur = spip_fetch_array($t)) {
+		if ($auteur['statut'] == '0minirezo') {
+		$auteur['restreint'] = spip_num_rows(spip_query(
+		  "SELECT * FROM spip_auteurs_rubriques WHERE id_auteur="._q($auteur['id_auteur'])));
+		}
+		$auteurs[] = $auteur;
+		$les_auteurs[] = $auteur['id_auteur'];
+	}
+		
+	$lettre = array();
+	if (($tri == 'nom') AND $GLOBALS['options'] == 'avancees') {
+		$qlettre = spip_query(
+	'select distinct upper(left(nom,1)) l, count(*) from spip_auteurs group by l order by l');
+		$count = 0;
+		while ($rlettre = spip_fetch_array($qlettre, SPIP_NUM)) {
+			$lettre[$rlettre[0]] = $count;
+			$count += intval($rlettre[1]);
+		}
+	}
+	
+	//
+	// Affichage
+	//
+	
+	// ici commence la vraie boucle
+	echo debut_cadre_relief('redacteurs-24.gif');
+	echo "<table border='0' cellpadding=3 cellspacing=0 width='100%' class='arial2'>\n";
+	
+	if ($nombre_auteurs > $max_par_page) {
+		echo "<tr bgcolor='white'><td colspan='6'>";
+		echo "<font face='Verdana,Arial,Sans,sans-serif' size='1'>";
+		for ($j=0; $j < $nombre_auteurs; $j+=$max_par_page) {
+			if ($j > 0) echo " | ";
+			
+			if ($j == $debut)
+				echo "<b>$j</b>";
+			elseif ($j > 0)
+				echo "<a href='".parametre_url($url,'debut',$j)."'>$j</a>";
+			else
+				echo " <a href='".parametre_url($url,'debut',0)."'>0</a>";
+			
+			if ($debut > $j  AND $debut < $j+$max_par_page)
+				echo " | <b>$debut</b>";
+		}
+		echo "</font>";
+		echo "</td></tr>\n";
+		
+		if (($tri == 'nom') AND $GLOBALS['options'] == 'avancees') {
+			// affichage des lettres
+			echo "<tr bgcolor='white'><td colspan='6'>";
+			echo "<font face='Verdana,Arial,Sans,sans-serif' size=2>";
+			foreach ($lettre as $key => $val) {
+				if ($val == $debut)
+					echo "<b>$key</b> ";
+				else
+					echo "<a href='".parametre_url($url,'debut',$val)."'>$key</a> ";
+			}
+			echo "</font>";
+			echo "</td></tr>\n";
+		}
+		echo "<tr height='5'></tr>";
+	}
+	
+	echo "<tr bgcolor='#DBE1C5'>";
+	echo "<td width='20'>";
+	$img = "<img src='"._DIR_IMG_PACK."/admin-12.gif' alt='' border='0'>";
+	if ($tri=='statut')
+		echo $img;
+	else
+		echo "<a href='".parametre_url($url,'tri','statut')."' title='"._T('lien_trier_statut')."'>$img</a>";
+	
+	echo "</td><td>";
+	if ($tri == '' OR $tri=='nom')
+		echo '<b>'._T('info_nom').'</b>';
+	else
+		echo "<a href='".parametre_url($url,'tri','nom')."' title='"._T('lien_trier_nom')."'><b>"._T('info_nom')."</b></a>";
+	
+	echo "</td><td colspan='2'><b>"._T('info_site')."</b>";
+		echo "</td><td>";
+	if ($visiteurs != 'oui') {
+		if ($tri=='nombre')
+			echo "<b>"._T('spiplistes:format')."</b>";
+		else
+			echo "<b>"._T('spiplistes:format')."</b>"; 
+	}
+	echo "</td><td>";
+	echo "<b>"._T('spiplistes:modifier')."</b>";
+	
+	echo "</td></tr>\n";
+	
+	//translate extra field data
+	list(,,,$trad,$val) = explode("|",_T("spiplistes:options")); 
+	$trad = explode(",",$trad);
+	$val = explode(",",$val);
+	$trad_map = Array();
+	for($index_map=0;$index_map<count($val);$index_map++) {
+		$trad_map[$val[$index_map]] = $trad[$index_map];
+	}
+	$i=0;
+	foreach ($auteurs as $row) {
+		// couleur de ligne
+		$couleur = ($i % 2) ? '#FFFFFF' : $couleur_claire;
+		$i++;
+		echo "<tr bgcolor='$couleur'>";
+		
+
+		// statut auteur
+		echo "<td>";
+		echo bonhomme_statut($row);
+		
+		// nom
+		echo '</td><td>';
+		echo "<a href='?exec=abonne_edit&id_auteur=".$row['id_auteur']."'>".typo($row['nom']).'</a>';
+		
+		if ($connect_statut == '0minirezo' AND $row['restreint'])
+		echo " &nbsp;<small>"._T('statut_admin_restreint')."</small>";
+		
+		// contact
+		if ($GLOBALS['options'] == 'avancees') {
+			echo '</td><td>';
+			if ($row['messagerie'] == 'oui' AND $row['login']
+			  AND $activer_messagerie != "non" AND $connect_activer_messagerie != "non" AND $messagerie != "non")
+				echo _T('spiplistes:erreur'); // bouton_imessage($row['id_auteur'],"force")."&nbsp;";
+			if ($connect_statut=="0minirezo"){
+				if (strlen($row['email'])>3)
+					echo "<a href='mailto:".$row['email']."'>"._T('lien_email')."</a>";
+				else
+					echo "&nbsp;";
+			}
+			
+			if (strlen($row['url_site'])>3)
+				echo "</td><td><a href='".$row['url_site']."'>"._T('lien_site')."</a>";
+			else
+				echo "</td><td>&nbsp;";
+		}
+		
+		// Abonne ou pas ?
+		echo '</td><td>';
+		$id_auteur=$row['id_auteur'] ;
+		$abo = spip_fetch_array(spip_query("SELECT `spip_listes_format` FROM `spip_auteurs_elargis` WHERE `id_auteur`=$id_auteur")) ;		
+		//var_dump($abo);die("coucou");
+		$abo = $abo["spip_listes_format"];
+		//var_dump($abo);
+		if($abo == "non")
+			echo "-";
+		else
+			echo "&nbsp;".$trad_map[$abo];
+		
+		// Modifier l'abonnement
+		echo '</td><td>';
+		echo "<a name='abo".$row['id_auteur']."'></a>";
+
+		$retour = parametre_url($url,'debut',$debut);
+			$u = generer_action_auteur('spiplistes_changer_statut_abonne', $row['id_auteur']."-format", $retour);
+			if($abo == 'html'){
+				$option_abo = "<a href='".parametre_url($u,'statut','non')."'>"._T('spiplistes:desabo')
+				 . "</a> | <a href='".parametre_url($u,'statut','texte')."'>"._T('spiplistes:texte')."</a>";
+			}
+			elseif ($abo == 'texte') 
+				$option_abo = "<a href='".parametre_url($u,'statut','non')."'>"._T('spiplistes:desabo')
+				 . "</a> | <a href='".parametre_url($u,'statut','html')."'>"._T('spiplistes:html')."</a>";
+			elseif(($abo == 'non')OR (!$abo)) 
+				$option_abo = "<a href='".parametre_url($u,'statut','texte')."'>"._T('spiplistes:texte')
+				 . "</a> | <a href='".parametre_url($u,'statut','html')."'>"._T('spiplistes:html')."</a>";
+			echo "&nbsp;".$option_abo;
+		
+		echo "</td></tr>\n";
+	}
+	
+	echo "</table>\n";
+	
+	echo "<a name='bas'>";
+	echo "<table width='100%' border='0'>";
+	
+	$debut_suivant = $debut + $max_par_page;
+	if ($debut_suivant < $nombre_auteurs OR $debut > 0) {
+		echo "<tr height='10'></tr>";
+		echo "<tr bgcolor='white'><td align='left'>";
+		if ($debut > 0) {
+			$debut_prec = strval(max($debut - $max_par_page, 0));
+			echo '<form method="post" action="'.parametre_url($url,'debut',$debut_prec).'">';
+			echo "<input type='submit' name='submit' value='&lt;&lt;&lt;' class='fondo' />";
+			echo "</form>";
+		}
+		echo "</td><td align='right'>";
+		if ($debut_suivant < $nombre_auteurs) {
+			echo '<form method="post" action="'.parametre_url($url,'debut',$debut_suivant).'">';
+			echo "<input type='submit' name='submit' value='&gt;&gt;&gt;' class='fondo' />";
+			echo "</form>";
+		}
+		echo "</td></tr>\n";
+	}
+	
+	echo "</table>\n";
+	echo fin_cadre_relief();
+	return join(',', $les_auteurs);
+}
+
+/******************************************************************************************/
+/* SPIP-Listes est un systeme de gestion de listes d'abonnes et d'envoi d'information     */
+/* par email pour SPIP. http://bloog.net/spip-listes                                      */
+/* Copyright (C) 2004 Vincent CARON  v.caron<at>laposte.net                               */
+/*                                                                                        */
+/* Ce programme est libre, vous pouvez le redistribuer et/ou le modifier selon les termes */
+/* de la Licence Publique Generale GNU publiee par la Free Software Foundation            */
+/* (version 2).                                                                           */
+/*                                                                                        */
+/* Ce programme est distribue car potentiellement utile, mais SANS AUCUNE GARANTIE,       */
+/* ni explicite ni implicite, y compris les garanties de commercialisation ou             */
+/* d'adaptation dans un but specifique. Reportez-vous à la Licence Publique Generale GNU  */
+/* pour plus de détails.                                                                  */
+/*                                                                                        */
+/* Vous devez avoir reçu une copie de la Licence Publique Generale GNU                    */
+/* en meme temps que ce programme ; si ce n'est pas le cas, ecrivez a la                  */
+/* Free Software Foundation,                                                              */
+/* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, Etats-Unis.                   */
+/******************************************************************************************/
+?>
Index: /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/inc/formater_auteur_liste.php
===================================================================
--- /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/inc/formater_auteur_liste.php	(revision 90)
+++ /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/inc/formater_auteur_liste.php	(revision 90)
@@ -0,0 +1,98 @@
+<?php
+
+/***************************************************************************\
+ *  SPIP, Systeme de publication pour l'internet                           *
+ *                                                                         *
+ *  Copyright (c) 2001-2007                                                *
+ *  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;
+
+
+//
+// Construit un tableau des 5 informations principales sur un auteur,
+// avec des liens vers les scripts associes:
+// 1. l'icone du statut, avec lien vers la page de tous ceux ayant ce statut
+// 2. l'icone du mail avec un lien mailto ou a defaut la messagerie de Spip
+// 3. le nom, avec lien vers la page complete des informations
+// 4. le mot "site" avec le lien vers le site Web personnelle
+// 5. le nombre d'articles publies
+//
+
+// http://doc.spip.org/@inc_formater_auteur_dist
+function inc_formater_auteur_liste_dist($id_auteur, $script_edition = 'abonne_edit') {
+
+  global $connect_id_auteur, $spip_lang_rtl, $connect_statut;
+
+	$id_auteur = intval($id_auteur);
+
+	$row = spip_fetch_array(spip_query("SELECT *, (en_ligne<DATE_SUB(NOW(),INTERVAL 15 DAY)) AS parti FROM spip_auteurs where id_auteur=$id_auteur"));
+
+	$vals = array();
+
+	$href = generer_url_ecrire("auteurs","statut=" . $row['statut']);
+	$vals[] = "<a href='$href'>" . bonhomme_statut($row) . '</a>';
+
+	if (($id_auteur == $connect_id_auteur) OR $row['parti'])
+		$vals[]= '&nbsp;';
+	else	$vals[]= formater_auteur_listes_mail($row['email'], $id_auteur);
+
+	if ($bio_auteur = attribut_html(propre(couper($row["bio"], 100))))
+		$bio_auteur = " title=\"$bio_auteur\"";
+
+	if (!$nom = typo($row['nom']))
+		$nom = "<span style='color: red'>" . _T('texte_vide') . '</span>';
+
+	$vals[] = "<a href='"
+	. generer_url_ecrire($script_edition, "id_auteur=$id_auteur&initial=-1")
+	. "' $bio_auteur>$nom</a>";
+
+	if ($url_site_auteur = $row["url_site"]) $vals[] =  "<a href='$url_site_auteur'>"._T('info_site_min')."</a>";
+	else $vals[] =  "&nbsp;";
+
+	$cpt = spip_fetch_array(spip_query("SELECT COUNT(listes.id_liste) AS n FROM spip_auteurs_listes AS lien, spip_listes AS listes WHERE lien.id_auteur=$id_auteur AND listes.id_liste=lien.id_liste AND (listes.statut='liste' OR listes.statut='inact') GROUP BY lien.id_auteur"));
+
+	$nombre_listes = intval($cpt['n']);
+
+	if ($nombre_listes > 1) $vals[] =  $nombre_listes.' '._T('spiplistes:info_liste_2');
+	elseif ($nombre_listes == 1) $vals[] =  _T('spiplistes:info_1_liste');
+	else $vals[] =  "&nbsp;";
+
+	return $vals;
+}
+
+// http://doc.spip.org/@formater_auteur_mail
+function formater_auteur_listes_mail($email, $id_auteur)
+{
+	global $spip_lang_rtl;
+
+//	if ($email) $href='mailto:' . $email;
+//	else $href = generer_action_auteur("editer_message","normal/$id_auteur");
+	$href = generer_action_auteur("editer_message","normal/$id_auteur");
+
+	return "<a href='$href' title=\""
+		  . _T('email')
+		  . '">'
+		. http_img_pack("m_envoi$spip_lang_rtl.gif", "m&gt;", " width='14' height='7'", _T('info_envoyer_message_prive'))
+		  . '</a>';
+}
+
+function inc_determiner_non_auteurs_liste($type, $id, $cond_les_auteurs, $order)
+{
+	$cond = '';
+	$res = determiner_auteurs_objet($type, $id, $cond_les_auteurs);
+	if (spip_num_rows($res)<200){ // probleme de performance au dela, on ne filtre plus
+		while ($row = spip_fetch_array($res))
+			$cond .= ",".$row['id_auteur'];
+	}
+	if (strlen($cond))
+		$cond = "id_auteur NOT IN (" . substr($cond,1) . ') AND ';
+
+	return spip_query("SELECT * FROM spip_auteurs WHERE $cond" . "statut!='5poubelle' AND statut!='nouveau' ORDER BY $order");
+}
+
+?>
Index: /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/inc/options_spip_listes.php
===================================================================
--- /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/inc/options_spip_listes.php	(revision 90)
+++ /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/inc/options_spip_listes.php	(revision 90)
@@ -0,0 +1,222 @@
+<?php
+/******************************************************************************************/
+/* SPIP-Listes est un systeme de gestion de listes d'abonnes et d'envoi d'information     */
+/* par email pour SPIP. http://bloog.net/spip-listes                                      */
+/* Copyright (C) 2004 Vincent CARON  v.caron<at>laposte.net                               */
+/*                                                                                        */
+/* Ce programme est libre, vous pouvez le redistribuer et/ou le modifier selon les termes */
+/* de la Licence Publique Generale GNU publiee par la Free Software Foundation            */
+/* (version 2).                                                                           */
+/*                                                                                        */
+/* Ce programme est distribue car potentiellement utile, mais SANS AUCUNE GARANTIE,       */
+/* ni explicite ni implicite, y compris les garanties de commercialisation ou             */
+/* d'adaptation dans un but specifique. Reportez-vous à la Licence Publique Generale GNU  */
+/* pour plus de détails.                                                                  */
+/*                                                                                        */
+/* Vous devez avoir reçu une copie de la Licence Publique Generale GNU                    */
+/* en meme temps que ce programme ; si ce n'est pas le cas, ecrivez a la                  */
+/* Free Software Foundation,                                                              */
+/* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, Etats-Unis.                   */
+/******************************************************************************************/
+
+
+function pied_de_page_liste($id_liste) {
+if(intval($id_liste) > 0){
+	$pied=spip_query("SELECT pied_page FROM spip_listes WHERE id_liste="._q($id_liste)." LIMIT 0,1");
+	$pied=spip_fetch_array($pied);
+	$pied= $pied['pied_page'];
+}else{
+	include_spip('public/assembler');
+	$contexte_pied = array('lang'=>$GLOBALS['spip_lang']);
+	$pied = recuperer_fond('modeles/piedmail', $contexte_pied);
+}
+return $pied ;
+}
+
+function spiplistes_langue_liste ($id_liste) {
+$lang=spip_query("SELECT lang FROM spip_listes WHERE id_liste="._q($id_liste)." LIMIT 0,1");
+$lang=spip_fetch_array($lang);
+$lang= $lang['lang'];
+return $lang ;
+}
+
+
+
+
+// Bloogletter
+
+
+
+/****
+ * titre : propre_bloog
+ * Enleve les enluminures Spip pour la bloogletter
+ Vincent CARON
+****/
+
+function propre_bloog($texte) {
+
+        $texte = ereg_replace("<p class=\"spip\">(\r\n|\n|\r)?</p>",'',$texte);
+        $texte = eregi_replace("\n{3}", "\n", $texte);
+       
+      
+      // div imbrique dans un p
+        $texte = eregi_replace( "<p class=\"spip\">(\r\n|\n|\r| )*<div([^>]*)>" , "<div\\2>" , $texte);
+        $texte = eregi_replace( "<\/div>(\r\n|\n|\r| )*<\/p>" , "</div>" , $texte);
+        
+        // style imbrique dans un p
+        $texte = eregi_replace( "<p class=\"spip\">(\r\n|\n|\r| )*<style([^>]*)>" , "<style>" , $texte);
+        $texte = eregi_replace( "<\/style>(\r\n|\n|\r| )*<\/p>" , "</style>" , $texte);
+      
+      
+        // h3 imbrique dans un p
+        $texte = eregi_replace( "<p class=\"spip\">(\r\n|\n|\r| )*<h3 class=\"spip\">" , "<h3>" , $texte);
+        $texte = eregi_replace( "<\/h3>(\r\n|\n|\r| )*<\/p>" , "</h3>" , $texte);
+
+	// h2 imbrique dans un p
+        $texte = eregi_replace( "<p class=\"spip\">(\r\n|\n|\r| )*<h2>" , "<h2>" , $texte);
+        $texte = eregi_replace( "<\/h2>(\r\n|\n|\r| )*<\/p>" , "</h2>" , $texte);
+        
+    // h1 imbrique dans un p
+        $texte = eregi_replace( "<p class=\"spip\">(\r\n|\n|\r| )*<h1>" , "<h1>" , $texte);
+        $texte = eregi_replace( "<\/h1>(\r\n|\n|\r| )*<\/p>" , "</h1>" , $texte);
+        
+
+	// tableaux imbriques dans p
+       $texte = eregi_replace( "<p class=\"spip\">(\r\n|\n|\r| )*<(table|TABLE)" , "<table" , $texte);
+       $texte = eregi_replace( "<\/(table|TABLE)>(\r\n|\n|\r| )*<\/p>" , "</table>" , $texte);
+
+	// TD imbriques dans p
+       $texte = eregi_replace( "<p class=\"spip\">(\r\n|\n|\r| )*<(\/td|\/TD)" , "</td" , $texte);
+       //$texte = eregi_replace( "<\/(td|TD)>(\r\n|\n|\r| )*<\/p>" , "</td>" , $texte);
+
+	// p imbriques dans p
+       $texte = eregi_replace( "<p class=\"spip\">(\r\n|\n|\r| )*<(p|P)" , "<p" , $texte);
+       //$texte = eregi_replace( "<\/(td|TD)>(\r\n|\n|\r| )*<\/p>" , "</td>" , $texte);
+
+         // DIV imbriques dans p
+       $texte = eregi_replace( "<p class=\"spip\">(\r\n|\n|\r| )*<(div|DIV)" , "<div" , $texte);
+       $texte = eregi_replace( "<\/(DIV|div)>(\r\n|\n|\r| )*<\/p>" , "</div>" , $texte);
+
+ //$texte = PtoBR($texte);
+  $texte = ereg_replace ("\.php3&nbsp;\?",".php3?", $texte);
+  $texte = ereg_replace ("\.php&nbsp;\?",".php?", $texte);
+
+  return $texte;
+}
+
+
+
+/****
+ * titre : version_texte
+ * d'après Clever Mail (-> NHoizey), mais en mieux.
+****/
+
+function spiplistes_version_texte($in) {
+// Nettoyage des liens des notes de bas de page
+$out = ereg_replace("<a href=\"#n(b|h)[0-9]+-[0-9]+\" name=\"n(b|h)[0-9]+-[0-9]+\" class=\"spip_note\">([0-9]+)</a>", "\\3", $in);
+
+// Supprimer tous les liens internes
+$patterns = array("/\<a href=['\"]#(.*?)['\"][^>]*>(.*?)<\/a>/ims");
+$replacements = array("\\2");
+$out = preg_replace($patterns,$replacements, $out);
+
+// Supprime feuille style
+$out = ereg_replace("<style[^>]*>[^<]*</style>", "", $out);
+
+// les puces
+$out = str_replace($GLOBALS['puce'], "\n".'-', $out);
+
+// Remplace tous les liens	
+$patterns = array(
+           "/\<a [^>]*?href=['\"](.*?)['\"][^>]*>(.*?)<\/a>/ims"
+       );
+       $replacements = array(
+           "\\2 (\\1)"
+       );
+$out = preg_replace($patterns,$replacements, $out);
+
+$out = ereg_replace("<h1[^>]*>", "_SAUT__SAUT_--------------------------------------------------------_SAUT_", $out);
+$out = str_replace("</h1>", "_SAUT__SAUT_--------------------------------------------------------_SAUT__SAUT_", $out);
+$out = ereg_replace("<h2[^>]*>", "_SAUT__SAUT_............... ", $out);
+$out = str_replace("</h2>", " ..............._SAUT__SAUT_", $out);
+$out = ereg_replace("<h3[^>]*>", "_SAUT__SAUT_*", $out);
+$out = str_replace("</h3>", "*_SAUT__SAUT_", $out);
+
+// Les notes de bas de page
+    $out = str_replace("<p class=\"spip_note\">", "\n", $out);
+    $out = ereg_replace("<sup>([0-9]+)</sup>", "[\\1]", $out);
+
+$out = str_replace("<p[^>]*>", "\n\n", $out);
+
+    //$out = str_replace('<br /><img class=\'spip_puce\' src=\'puce.gif\' alt=\'-\' border=\'0\'>', "\n".'-', $out);
+$out = ereg_replace ('<li[^>]>', "\n".'-', $out);
+    //$out = str_replace('<li>', "\n".'-', $out);
+
+
+    // accentuation du gras -
+    // <b>texte</b> -> *texte*
+    $out = ereg_replace ('<b[^>|r]*>','*' ,$out);
+    $out = str_replace ('</b>','*' ,$out);
+
+	// accentuation du gras -
+    // <strong>texte</strong> -> *texte*
+    $out = ereg_replace ('<strong[^>]*>','*' ,$out);
+    $out = str_replace ('</strong>','*' ,$out);
+
+
+    // accentuation de l'italique
+    // <i>texte</i> -> *texte*
+    $out = ereg_replace ('<i[^>|mg]*>','*' ,$out);
+    $out = str_replace ('</i>','*' ,$out);
+
+	$out = str_replace('&oelig;', 'oe', $out);
+	$out = str_replace("&nbsp;", " ", $out);
+	$out = filtrer_entites($out);
+
+	//attention, trop brutal pour les logs irc <@RealET>
+	$out = supprimer_tags($out);
+	
+	$out = str_replace("\x0B", "", $out); 
+	$out = ereg_replace("\t", "", $out) ;
+	$out = ereg_replace("[ ]{3,}", "", $out);
+	
+	// espace en debut de ligne
+	$out = preg_replace("/(\r\n|\n|\r)[ ]+/", "\n", $out);
+
+//marche po
+	// Bring down number of empty lines to 4 max
+    $out = preg_replace("/(\r\n|\n|\r){3,}/m", "\n\n", $out);
+	
+	//retablir les saut de ligne
+	$out = preg_replace("/(_SAUT_){3,}/m", "_SAUT__SAUT__SAUT_", $out);
+	$out = preg_replace("/_SAUT_/", "\n", $out);
+	//saut de lignes en debut de texte
+	$out = preg_replace("/^(\r\n|\n|\r)+/", "\n\n", $out);
+	//saut de lignes en debut ou fin de texte
+	$out = preg_replace("/(\r\n|\n|\r)+$/", "\n\n", $out);
+
+    return $out;
+
+}
+
+
+/******************************************************************************************/
+/* SPIP-Listes est un systeme de gestion de listes d'abonnes et d'envoi d'information     */
+/* par email pour SPIP. http://bloog.net/spip-listes                                      */
+/* Copyright (C) 2004 Vincent CARON  v.caron<at>laposte.net                               */
+/*                                                                                        */
+/* Ce programme est libre, vous pouvez le redistribuer et/ou le modifier selon les termes */
+/* de la Licence Publique Generale GNU publiee par la Free Software Foundation            */
+/* (version 2).                                                                           */
+/*                                                                                        */
+/* Ce programme est distribue car potentiellement utile, mais SANS AUCUNE GARANTIE,       */
+/* ni explicite ni implicite, y compris les garanties de commercialisation ou             */
+/* d'adaptation dans un but specifique. Reportez-vous à la Licence Publique Generale GNU  */
+/* pour plus de détails.                                                                  */
+/*                                                                                        */
+/* Vous devez avoir reçu une copie de la Licence Publique Generale GNU                    */
+/* en meme temps que ce programme ; si ce n'est pas le cas, ecrivez a la                  */
+/* Free Software Foundation,                                                              */
+/* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, Etats-Unis.                   */
+/******************************************************************************************/
+?>
Index: /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/inc/spiplistes_api.php
===================================================================
--- /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/inc/spiplistes_api.php	(revision 90)
+++ /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/inc/spiplistes_api.php	(revision 90)
@@ -0,0 +1,109 @@
+<?php
+/******************************************************************************************/
+/* SPIP-Listes est un systeme de gestion de listes d'abonnes et d'envoi d'information     */
+/* par email pour SPIP. http://bloog.net/spip-listes                                      */
+/* Copyright (C) 2004 Vincent CARON  v.caron<at>laposte.net                               */
+/*                                                                                        */
+/* Ce programme est libre, vous pouvez le redistribuer et/ou le modifier selon les termes */
+/* de la Licence Publique Generale GNU publiee par la Free Software Foundation            */
+/* (version 2).                                                                           */
+/*                                                                                        */
+/* Ce programme est distribue car potentiellement utile, mais SANS AUCUNE GARANTIE,       */
+/* ni explicite ni implicite, y compris les garanties de commercialisation ou             */
+/* d'adaptation dans un but specifique. Reportez-vous à la Licence Publique Generale GNU  */
+/* pour plus de détails.                                                                  */
+/*                                                                                        */
+/* Vous devez avoir reçu une copie de la Licence Publique Generale GNU                    */
+/* en meme temps que ce programme ; si ce n'est pas le cas, ecrivez a la                  */
+/* Free Software Foundation,                                                              */
+/* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, Etats-Unis.                   */
+/******************************************************************************************/
+
+// API a enrichir
+
+// ajouter les abonnes d'une liste a un envoi
+function remplir_liste_envois($id_courrier,$id_liste){
+	if($id_liste==0)
+		$result_m = spip_query("SELECT id_auteur FROM spip_auteurs ORDER BY id_auteur ASC");
+	else
+		$result_m = spip_query("SELECT id_auteur FROM spip_auteurs_listes WHERE id_liste="._q($id_liste));
+	
+	while($row_ = spip_fetch_array($result_m)) {
+		$id_abo = $row_['id_auteur'];
+		spip_query("INSERT INTO spip_auteurs_courriers (id_auteur,id_courrier,statut,maj) VALUES ("._q($id_abo).","._q($id_courrier).",'a_envoyer', NOW()) ");
+	}
+	$res = spip_query("SELECT COUNT(id_auteur) AS n FROM spip_auteurs_courriers WHERE id_courrier="._q($id_courrier)." AND statut='a_envoyer'");
+	if ($row = spip_fetch_array($res))
+		spip_query("UPDATE spip_courriers SET total_abonnes="._q($row['n'])." WHERE id_courrier="._q($id_courrier)); 
+}
+
+// Nombre d'abonnes a une liste
+function spip_listes_nb_abonnes_liste($id_liste){
+	$row = spip_fetch_array(spip_query("SELECT COUNT(id_auteur) AS n FROM spip_auteurs_listes WHERE id_liste=$id_liste"));
+	$nb_abo = ( $row['n'] >1)?  $row['n']." abonn&eacute;s" :  $row['n']." abonn&eacute;";
+	return "(".$nb_abo.")";
+}
+
+
+//taille d'une chaine sans saut de lignes ni espaces
+function spip_listes_strlen($out){
+	$out = preg_replace("/(\r\n|\n|\r| )+/", "", $out);
+	return $out ;
+}
+
+
+//desabonner des listes publiques
+function spiplistes_desabonner($id_auteur){
+	$listes = spip_query ("SELECT * FROM spip_listes WHERE statut = 'liste'");
+			while($row = spip_fetch_array($listes)) {
+				$id_liste = $row['id_liste'] ;
+				$result=spip_query("DELETE FROM spip_auteurs_listes WHERE id_auteur="._q($id_auteur)." AND id_liste="._q($id_liste));
+			}
+	$result=spip_query("UPDATE `spip_auteurs_elargis` SET `spip_listes_format`='non' WHERE `id_auteur` ="._q($id_auteur));
+}
+
+
+//function spiplistes_propre($texte)
+// passe propre() sur un texte puis nettoye les trucs rajoutes par spip sur du html
+// ca s'utilise pour afficher un courrier dans l espace prive
+// on l'applique au courrier avant de confirmer l'envoi
+function spiplistes_propre($texte){
+	$temp_style = ereg("<style[^>]*>[^<]*</style>", $texte, $style_reg);
+	if (isset($style_reg[0])) 
+		$style_str = $style_reg[0]; 
+	else 
+		$style_str = "";
+	$texte = ereg_replace("<style[^>]*>[^<]*</style>", "__STYLE__", $texte);
+	//passer propre si y'a pas de html (balises fermantes)
+	if( !preg_match(',</?('._BALISES_BLOCS.')[>[:space:]],iS', $texte) ) 
+	$texte = propre($texte); // pb: enleve aussi <style>...  
+	$texte = propre_bloog($texte); //nettoyer les spip class truc en trop
+	$texte = ereg_replace("__STYLE__", $style_str, $texte);
+	//les liens avec double début #URL_SITE_SPIP/#URL_ARTICLE
+	$texte = ereg_replace($GLOBALS['meta']['adresse_site']."/".$GLOBALS['meta']['adresse_site'], $GLOBALS['meta']['adresse_site'], $texte);
+	$texte = liens_absolus($texte);
+	
+	return $texte;
+}
+
+
+/******************************************************************************************/
+/* SPIP-Listes est un systeme de gestion de listes d'abonnes et d'envoi d'information     */
+/* par email pour SPIP. http://bloog.net/spip-listes                                      */
+/* Copyright (C) 2004 Vincent CARON  v.caron<at>laposte.net                               */
+/*                                                                                        */
+/* Ce programme est libre, vous pouvez le redistribuer et/ou le modifier selon les termes */
+/* de la Licence Publique Generale GNU publiee par la Free Software Foundation            */
+/* (version 2).                                                                           */
+/*                                                                                        */
+/* Ce programme est distribue car potentiellement utile, mais SANS AUCUNE GARANTIE,       */
+/* ni explicite ni implicite, y compris les garanties de commercialisation ou             */
+/* d'adaptation dans un but specifique. Reportez-vous à la Licence Publique Generale GNU  */
+/* pour plus de détails.                                                                  */
+/*                                                                                        */
+/* Vous devez avoir reçu une copie de la Licence Publique Generale GNU                    */
+/* en meme temps que ce programme ; si ce n'est pas le cas, ecrivez a la                  */
+/* Free Software Foundation,                                                              */
+/* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, Etats-Unis.                   */
+/******************************************************************************************/
+?>
Index: /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/inc/spiplistes_cron.php
===================================================================
--- /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/inc/spiplistes_cron.php	(revision 90)
+++ /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/inc/spiplistes_cron.php	(revision 90)
@@ -0,0 +1,155 @@
+<?php
+
+/******************************************************************************************/
+/* SPIP-listes est un systeme de gestion de listes d'abonnes et d'envoi d'information     */
+/* par email  pour SPIP.                                                                  */
+/* Copyright (C) 2004 Vincent CARON  v.caron<at>laposte.net , http://bloog.net            */
+/*                                                                                        */
+/* Ce programme est libre, vous pouvez le redistribuer et/ou le modifier selon les termes */
+/* de la Licence Publique Generale GNU publiee par la Free Software Foundation            */
+/* (version 2).                                                                           */
+/*                                                                                        */
+/* Ce programme est distribue car potentiellement utile, mais SANS AUCUNE GARANTIE,       */
+/* ni explicite ni implicite, y compris les garanties de commercialisation ou             */
+/* d'adaptation dans un but specifique. Reportez-vous a la Licence Publique Generale GNU  */
+/* pour plus de details.                                                                  */
+/*                                                                                        */
+/* Vous devez avoir recu une copie de la Licence Publique Generale GNU                    */
+/* en meme temps que ce programme ; si ce n'est pas le cas, ecrivez a la                  */
+/* Free Software Foundation,                                                              */
+/* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, etats-Unis.                   */
+/******************************************************************************************/
+
+function cron_spiplistes_cron($t){
+
+	$nomsite = $GLOBALS['meta']['nom_site'];
+	
+	// ---------------------------------------------------------------------------------------------
+	// Taches de fond
+	
+	//
+	// Envoi du mail quoi de neuf
+	//
+	
+	$time = time();
+	spip_log("liste meleuse cron");
+		
+	// Verifier toutes les listes et determiner les dates d'envoi
+	
+	$list_bg = spip_query ("SELECT * FROM spip_listes WHERE statut = 'liste' OR statut = 'inact'");
+	
+	while($row = spip_fetch_array($list_bg)) {
+	
+		$id_liste_bg = $row['id_liste'] ;
+		$titre_bg = $row['titre'] ;
+		$titre_message = $row['titre_message'] ;
+		$last_maj_bg = strtotime($row["maj"]);
+		$auto_bg =  $row["message_auto"];
+		$periode_bg = $row["periode"];
+	
+		
+		$temps = $time - $last_maj_bg ;
+		$top = 3600 * 24 * $periode_bg ;
+		
+		if ( ($auto_bg == 'oui') AND ($periode_bg > 0) AND ( $temps > $top) ) {
+		spip_log("la liste $id_liste_bg demande un envoi");
+			//squelette du patron
+			$patron = $row["patron"] ;
+			$lang_bg = $row["lang"];
+			spip_log('->'.$lang_bg);
+			//Maj de la date d'envoi
+			spip_query("UPDATE spip_listes SET maj=NOW() WHERE id_liste="._q($id_liste_bg)); 
+	
+		
+			// preparation mail
+			
+			$date = date('Y-m-d H:i:s',$last_maj_bg) ;
+			
+			include_spip('public/assembler');
+			$contexte_patron = array('date' => $date,'patron'=>$patron, 'lang'=>$lang_bg);
+			$texte_patron_bg = recuperer_fond('patrons/'.$patron, $contexte_patron);
+		 	//$texte_patron_bg = recuperer_page(generer_url_public('patron_switch',"patron=$patron&date=$date",true)) ;		
+			
+			$titre_patron_bg = ($titre_message =="") ? $titre_bg." de ".$nomsite : $titre_message;
+			$titre_bg = $titre_patron_bg;
+			
+			spip_log("Message choppe -> $titre".$titre_bg, "spiplistes");
+	
+			// ne pas envoyer des textes de moins de 10 caracteres
+			include_spip('inc/spiplistes_api');
+			$taille = strlen(spip_listes_strlen(spiplistes_version_texte($texte_patron_bg))) ;
+			spip_log("taille -> $taille","spiplistes");
+			//spip_log("txt -> ".spiplistes_version_texte($texte_patron_bg),"spiplistes");
+	
+			if ( $taille > 10 ) {
+	
+					include_spip('inc/filtres');
+					$texte_patron_bg = liens_absolus($texte_patron_bg);
+					// si un mail a pu etre genere, on l'ajoute a la pile d'envoi
+					$type_bg = 'auto';
+					$statut_bg = 'encour';
+					
+					// creer le courrier
+					$result = spip_query("INSERT INTO spip_courriers (titre, texte, date, statut, type, id_auteur, id_liste) 
+						VALUES ("._q($titre_bg).","._q($texte_patron_bg).", NOW(),"._q($statut_bg).","._q($type_bg).", '1',"._q($id_liste_bg).")");
+					
+					$id_message_bg = spip_insert_id();
+					
+					//generer la pile d'envoi
+					 remplir_liste_envois($id_message_bg,$id_liste_bg);
+					spip_log("remplir courrier $id_message_bg, liste : $id_liste_bg");
+				} else {
+					spip_log("envoi mail nouveautes : pas de nouveautes ->$taille");
+						
+					$type_bg = 'auto';
+					$statut_bg = 'publie';
+	
+					$result = spip_query("INSERT INTO spip_courriers (titre, texte, date, statut, type, id_auteur, id_liste) 
+					 VALUES ("._q(_L("Pas d'envoi"))
+					 .","._q(_L("aucune nouveaut&eacute;, le mail automatique n'a pas &eacute;t&eacute; envoy&eacute;"))
+					 .", NOW(),"._q($statut_bg).","._q($type_bg).", '1' ,"._q($id_liste_bg)." )");
+					$id_message_bg = spip_insert_id();
+			
+				} // y'a du neuf
+		} // c'est l'heure
+	
+	}// fin du test nb listes
+	
+	/**************/
+	
+	// Envoi d'un mail automatique ?
+	$result_pile = spip_query("SELECT COUNT(id_courrier) AS n FROM spip_courriers WHERE statut='encour'");
+	if (($row = spip_fetch_array($result_pile)) && $row['n']){
+		spip_log("appel meleuse");
+		include_spip('inc/spiplistes_meleuse');
+		
+		$result_pile = spip_query("SELECT COUNT(id_courrier) AS n FROM spip_courriers WHERE statut='encour'");
+		if (($row = spip_fetch_array($result_pile)) && $row['n']){
+			spip_log("spiplistes cron : il reste des courriers a envoyer !");
+			return (0 - $t);
+		}
+	}
+	return 1; 
+}
+
+/******************************************************************************************/
+/* SPIP-listes est un systeme de gestion de listes d'abonnes et d'envoi d'information     */
+/* par email  pour SPIP.                                                                  */
+/* Copyright (C) 2004 Vincent CARON  v.caron<at>laposte.net , http://bloog.net            */
+/*                                                                                        */
+/* Ce programme est libre, vous pouvez le redistribuer et/ou le modifier selon les termes */
+/* de la Licence Publique Generale GNU publiee par la Free Software Foundation            */
+/* (version 2).                                                                           */
+/*                                                                                        */
+/* Ce programme est distribue car potentiellement utile, mais SANS AUCUNE GARANTIE,       */
+/* ni explicite ni implicite, y compris les garanties de commercialisation ou             */
+/* d'adaptation dans un but specifique. Reportez-vous a la Licence Publique Generale GNU  */
+/* pour plus de details.                                                                  */
+/*                                                                                        */
+/* Vous devez avoir recu une copie de la Licence Publique Generale GNU                    */
+/* en meme temps que ce programme ; si ce n'est pas le cas, ecrivez a la                  */
+/* Free Software Foundation,                                                              */
+/* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, etats-Unis.                   */
+/******************************************************************************************/
+
+?>
Index: /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/inc/spiplistes_mail.inc.php
===================================================================
--- /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/inc/spiplistes_mail.inc.php	(revision 90)
+++ /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/inc/spiplistes_mail.inc.php	(revision 90)
@@ -0,0 +1,129 @@
+<?php
+
+	include_spip('phpmailer/class.phpmailer');
+	include_spip('phpmailer/class.smtp');
+
+	class phpMail extends PHPMailer {
+
+		function phpMail($email, $objet, $message_html, $message_texte, $charset) {
+		
+			$fromname = $GLOBALS['meta']['nom_site'];
+
+			if ($GLOBALS['meta']['spiplistes_charset_envoi']!=$GLOBALS['meta']['charset']){
+			include_spip('inc/charsets');
+			$fromname = unicode2charset(charset2unicode($fromname),$GLOBALS['meta']['spiplistes_charset_envoi']);
+			}
+
+			$this->FromName    =  $fromname ; 
+			
+			$this->CharSet	= $charset ;
+	    	$this->Mailer	= 'mail';
+			$this->Subject	= $objet;
+			$this->AddAddress($email); 
+			
+			if ($smtp_sender =  $GLOBALS['meta']['smtp_sender']) {
+				$this->Sender = $GLOBALS['meta']['spip_lettres_smtp_sender'];
+			}
+			
+			$envoi_par_smtp =  $GLOBALS['meta']['mailer_smtp'] ;
+
+			if($envoi_par_smtp == "oui"){
+				if ($smpt_server =  $GLOBALS['meta']['smtp_server']) {
+		    		$this->IsSMTP(); // telling the class to use SMTP
+		    		$this->Mailer	= 'smtp';
+				    $this->Host 	=  $GLOBALS['meta']['smtp_server'];
+				    $this->Port 	=  $GLOBALS['meta']['smtp_port'];
+					
+					$smtp_identification =  $GLOBALS['meta']['smtp_identification'] ;
+
+					if ($smtp_identification == "oui") {
+					    $this->SMTPAuth = true;
+					    $this->Username =  $GLOBALS['meta']['smtp_login'];
+					    $this->Password =  $GLOBALS['meta']['smtp_pass'];
+					} else {
+					    $this->SMTPAuth = false;
+					}
+				}
+			}
+			if (!empty($message_html) AND !empty($message_texte)) {
+	     		$this->Body = $message_html;
+	     		$this->AltBody = $message_texte;
+				//$this->spiplistes_JoindreImagesHTML();
+			}
+			if (!empty($message_texte) AND empty($message_html)) {
+				
+					$this->IsHTML(false);
+					$this->Body = $message_texte;
+				
+			}
+		}
+		function SetAddress($address, $name = "") {
+			$this->to=array();
+			$this->AddAddress($address,$name);
+		}       
+
+	/**
+	 * d'apres SPIP-Lettres : plugin de gestion de lettres d'information
+	 * inutilisé mais ca pourra peut etre servir pour emabarquer les images
+	 * Copyright (c) 2006
+	 * Agence Atypik Creations
+	 *  
+	 *  
+	 **/
+
+		function spiplistes_JoindreImagesHTML() {
+			$image_types = array(
+								'gif'	=> 'image/gif',
+								'jpg'	=> 'image/jpeg',
+								'jpeg'	=> 'image/jpeg',
+								'jpe'	=> 'image/jpeg',
+								'bmp'	=> 'image/bmp',
+								'png'	=> 'image/png',
+								'tif'	=> 'image/tiff',
+								'tiff'	=> 'image/tiff',
+								'swf'	=> 'application/x-shockwave-flash'
+							);
+			while (list($key,) = each($image_types))
+				$extensions[] = $key;
+
+			preg_match_all('/"([^"]+\.('.implode('|', $extensions).'))"/Ui', $this->Body, $images);
+
+			for ($i=0; $i<count($images[1]); $i++) {
+				if (file_exists('../'.$images[1][$i])) {
+					$html_images[] = '../'.$images[1][$i];
+					$this->Body = str_replace($images[1][$i], basename($images[1][$i]), $this->Body);
+				}
+				if (file_exists($images[1][$i])) {
+					$html_images[] = $images[1][$i];
+					$this->Body = str_replace($images[1][$i], basename($images[1][$i]), $this->Body);
+				}
+			}
+
+			$images = array();
+			preg_match_all("/'([^']+\.(".implode('|', $extensions)."))'/Ui", $this->Body, $images);
+
+			for ($i=0; $i<count($images[1]); $i++) {
+				if (file_exists('../'.$images[1][$i])) {
+					$html_images[] = '../'.$images[1][$i];
+					$this->Body = str_replace($images[1][$i], basename($images[1][$i]), $this->Body);
+				}
+				if (file_exists($images[1][$i])) {
+					$html_images[] = $images[1][$i];
+					$this->Body = str_replace($images[1][$i], basename($images[1][$i]), $this->Body);
+				}
+			}
+
+			if (!empty($html_images)) {
+				$html_images = array_unique($html_images);
+				sort($html_images);
+				for ($i=0; $i<count($html_images); $i++) {
+					$cid = md5(uniqid(time()));
+					$this->AddEmbeddedImage($html_images[$i], $cid);
+					$this->Body = str_replace(basename($html_images[$i]), "cid:$cid", $this->Body);
+				}
+			}
+		}
+
+	}
+
+?>
Index: /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/inc/spiplistes_meleuse.php
===================================================================
--- /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/inc/spiplistes_meleuse.php	(revision 90)
+++ /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/inc/spiplistes_meleuse.php	(revision 90)
@@ -0,0 +1,331 @@
+<?php
+/******************************************************************************************/
+/* SPIP-Listes est un systeme de gestion de listes d'abonnes et d'envoi d'information     */
+/* par email pour SPIP. http://bloog.net/spip-listes                                      */
+/* Copyright (C) 2004 Vincent CARON  v.caron<at>laposte.net                               */
+/*                                                                                        */
+/* Ce programme est libre, vous pouvez le redistribuer et/ou le modifier selon les termes */
+/* de la Licence Publique Generale GNU publiee par la Free Software Foundation            */
+/* (version 2).                                                                           */
+/*                                                                                        */
+/* Ce programme est distribue car potentiellement utile, mais SANS AUCUNE GARANTIE,       */
+/* ni explicite ni implicite, y compris les garanties de commercialisation ou             */
+/* d'adaptation dans un but specifique. Reportez-vous à la Licence Publique Generale GNU  */
+/* pour plus de détails.                                                                  */
+/*                                                                                        */
+/* Vous devez avoir reçu une copie de la Licence Publique Generale GNU                    */
+/* en meme temps que ce programme ; si ce n'est pas le cas, ecrivez a la                  */
+/* Free Software Foundation,                                                              */
+/* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, Etats-Unis.                   */
+/******************************************************************************************/
+
+include_spip('inc/meta');
+include_spip('inc/texte');
+include_spip('inc/filtres');
+include_spip('inc/acces');
+
+include_spip('spiplistes_boutons');
+include_once(_DIR_PLUGIN_SPIPLISTES.'inc/spiplistes_mail.inc.php');
+
+// Trouver un message a envoyer 
+$result_pile = spip_query("SELECT * FROM spip_courriers AS messages WHERE statut='encour' ORDER BY date ASC LIMIT 0,1");
+$message_pile = spip_num_rows($result_pile);
+
+if ($message_pile > 0){
+
+	// Message
+	$row = spip_fetch_array($result_pile);
+	$titre = typo($row["titre"]);
+	$texte = $row["texte"];
+	$texte = stripslashes($texte);
+	$message_texte = $row["message_texte"];
+	
+	
+	$type = $row["type"];
+	$id_courrier = $row["id_courrier"];
+	$id_liste = $row["id_liste"];
+	$email_test = $row["email_test"];
+	
+	$nb_emails_envoyes = 0;
+	$total_abonnes = $row["total_abonnes"];
+	
+	$nb_emails_echec = 0;
+	$nb_emails_non_envoyes = 0;
+	$nb_emails['texte'] = 0;
+	$nb_emails['html'] = 0;
+
+	$debut_envoi = $row["date_debut_envoi"];
+
+	$pied_page = "" ;
+	$pied_page = pied_de_page_liste($id_liste) ;
+	
+	// on prepare l'email
+	$nomsite = $GLOBALS['meta']['nom_site'];
+	$urlsite = $GLOBALS['meta']['adresse_site'];
+
+	$pied_page_texte="\n\n________________________________________________________________________"  ;
+	$pied_page_texte.="\n\n"._T('spiplistes:editeur').$nomsite."\n"  ;
+	$pied_page_texte.=$urlsite."\n";
+	$pied_page_texte.="________________________________________________________________________"  ;
+		
+	$lang = spiplistes_langue_liste($id_liste);
+	if($lang != '') $GLOBALS['spip_lang'] = $lang ;
+	
+	// Determiner le destinataire ou la liste destinataire
+	
+	//est-ce un mail de test ?
+	if( email_valide($email_test) ){
+		spiplistes_log( _T('spiplistes:email_test')." : ".$destinataires);
+		$test = 'oui';
+		$mail_collectif = 'non' ;
+	} 
+	else {
+		//est-ce un mail collectif ? // a degager : on devrait toujours avoir une liste
+		if($id_liste == 0){
+			$mail_collectif = 'oui' ;
+			spiplistes_log(_T('spiplistes:envoi_tous')) ;
+		}
+		else {
+			//c'est un mail pour une liste alors ?
+			$mail_collectif = 'non' ;
+			$result_d = spip_query("SELECT * FROM spip_listes WHERE id_liste="._q($id_liste));
+	
+			if($ro = spip_fetch_array($result_d)){
+				$titre_liste = $ro["titre"];
+				$id = $ro["id_liste"];
+				$email_liste = $ro["email_envoi"];
+				spiplistes_log(_T('spiplistes:envoi_listes').$titre_liste);
+			}
+			else{			//erreur
+				spiplistes_log(_T('spiplistes:envoi_erreur'));
+			}
+		}
+	}
+	
+
+	// email emmeteur
+	$email_webmaster = (email_valide($GLOBALS['meta']['email_defaut'])) ? $GLOBALS['meta']['email_defaut'] : $GLOBALS['meta']['email_webmaster'];
+	$from = email_valide($email_liste) ? $email_liste : $email_webmaster;
+
+	$is_from_valide = email_valide($from);         
+          
+	$objet= filtrer_entites($titre);
+	if ($GLOBALS['meta']['spiplistes_charset_envoi']!=$GLOBALS['meta']['charset']){
+		include_spip('inc/charsets');
+		$pied_page = unicode2charset(charset2unicode($pied_page),$GLOBALS['meta']['spiplistes_charset_envoi']);
+		$pied_page_texte = unicode2charset(charset2unicode($pied_page_texte),$GLOBALS['meta']['spiplistes_charset_envoi']);
+		$from = unicode2charset(charset2unicode($from),$GLOBALS['meta']['spiplistes_charset_envoi']);
+		$objet = unicode2charset(charset2unicode($objet),$GLOBALS['meta']['spiplistes_charset_envoi']);
+	}
+	
+	// on prepare le debut de la version html
+	$pageh = "<html>\n\n<body>\n\n".$texte."\n\n";
+	// la fin de la version html sera generee pour chaque destinataire
+  
+	// on prepare la version texte
+	if($message_texte !='')
+		$page_ = $message_texte ;  
+	else
+		$page_ = spiplistes_version_texte($texte);
+    
+
+	if ($GLOBALS['meta']['spiplistes_charset_envoi']!=$GLOBALS['meta']['charset']){
+		include_spip('inc/charsets');
+		$pageh = unicode2charset(charset2unicode($pageh),$GLOBALS['meta']['spiplistes_charset_envoi']);
+		$page_ = unicode2charset(charset2unicode($page_),$GLOBALS['meta']['spiplistes_charset_envoi']);
+	}
+
+	$page_.= $pied_page_texte;
+
+	$remplacements = array("&#8216;"=>"'","&#8217;"=>"'","&#8220;"=>'"',"&#8221;"=>'"');
+	if ($GLOBALS['meta']['spiplistes_charset_envoi'] <> 'utf-8') {
+		$objet = strtr($objet, $remplacements);
+		$page_ = strtr($page_, $remplacements);
+		$pied_page = strtr($pied_page, $remplacements);
+		$pied_page_texte = strtr($pied_page_texte, $remplacements);
+		$from = strtr($from, $remplacements);
+ 	}
+	
+	$email_a_envoyer['texte'] = new phpMail('', $objet, '',$page_, $GLOBALS['meta']['spiplistes_charset_envoi']);
+	$email_a_envoyer['texte']->From = $from ; 
+	$email_a_envoyer['texte']->AddCustomHeader("Errors-To: ".$from); 
+	$email_a_envoyer['texte']->AddCustomHeader("Reply-To: ".$from); 
+	$email_a_envoyer['texte']->AddCustomHeader("Return-Path: ".$from); 
+	$email_a_envoyer['texte']->SMTPKeepAlive = true;
+	
+	$email_a_envoyer['html'] = new phpMail('', $objet, $pageh, $page_, $GLOBALS['meta']['spiplistes_charset_envoi']);
+	$email_a_envoyer['html']->From = $from ; 
+	$email_a_envoyer['html']->AddCustomHeader("Errors-To: ".$from); 
+	$email_a_envoyer['html']->AddCustomHeader("Reply-To: ".$from); 
+	$email_a_envoyer['html']->AddCustomHeader("Return-Path: ".$from); 	
+	$email_a_envoyer['html']->SMTPKeepAlive = true;
+
+	spiplistes_log(_T('spiplistes:email_reponse').$from."\n"._T('spiplistes:contacts')." : ".$total_abonnes) ;
+	if($total_abonnes){
+
+		spiplistes_log(_T('spiplistes:message'). $titre);
+
+		$limit=$GLOBALS['meta']['spiplistes_lots']; // nombre de messages envoyes par boucles.	
+		
+		//chopper un lot 
+		
+		if($test == 'oui')
+			$result_inscrits = spip_query("SELECT id_auteur, nom, email FROM spip_auteurs WHERE email ="._q($email_test)." ORDER BY id_auteur ASC");
+		else{
+			//$result_inscrits = spip_query("SELECT a.nom, a.id_auteur, a.email, a.extra FROM spip_auteurs AS a, spip_auteurs_courriers AS b WHERE a.id_auteur=b.id_auteur AND b.id_courrier = "._q($id_courrier)." ORDER BY a.id_auteur ASC  LIMIT 0,".intval($limit));
+			// un id pour ce processus
+			$id_process = substr(creer_uniqid(),0,5);
+			spip_query("UPDATE spip_auteurs_courriers SET etat="._q($id_process)." WHERE etat='' AND id_courrier = "._q($id_courrier)." LIMIT ".intval($limit));
+			$result_inscrits = spip_query(
+				"SELECT a.nom, a.id_auteur, a.email 
+				FROM spip_auteurs AS a, spip_auteurs_courriers AS b 
+				WHERE a.id_auteur=b.id_auteur AND b.id_courrier = "._q($id_courrier)." AND etat="._q($id_process)."
+				ORDER BY a.id_auteur ASC");
+		}
+			
+		$liste_abonnes = spip_num_rows($result_inscrits);
+		if($liste_abonnes > 0){
+
+			// ne sert qu'a laffichage
+			$debut = $nb_emails_envoyes + $nb_emails_non_envoyes ; // ??
+			spiplistes_log("envois effectues : ".$debut.", pas : ".$limit.", nb:".$liste_abonnes) ;	
+#	spip_timer();
+			//envoyer le lot d'email selectionne
+			while ($row2 = spip_fetch_array($result_inscrits)) {
+				$str_temp = " ";
+				$id_auteur = $row2['id_auteur'] ;
+
+				//indiquer eventuellement le debut de l'envoi
+				if($debut_envoi=="0000-00-00 00:00:00" AND $test !='oui') {
+					spip_query("UPDATE spip_courriers SET date_debut_envoi=NOW() WHERE id_courrier="._q($id_courrier)); 
+					$debut_envoi = true; // ne pas faire 20 update au premier lot :)
+				}
+		
+				$abo = spip_fetch_array(spip_query("SELECT `spip_listes_format` FROM `spip_auteurs_elargis` WHERE `id_auteur`=$id_auteur")) ;		
+				
+				$format_abo = $abo["spip_listes_format"];
+
+				$nom_auteur = $row2["nom"];
+				$email = $row2["email"];
+				
+				$str_temp .= $nom_auteur."(".$format_abo.") - $email";
+				$total=$total+1;
+				unset ($cookie);
+
+				
+
+				if ( ($format_abo == 'texte') 
+				  OR ($format_abo == 'html') ) {
+					$cookie = creer_uniqid();
+					spip_query("UPDATE spip_auteurs SET cookie_oubli ="._q($cookie)." WHERE email ="._q($email));				
+
+					if ($is_from_valide){
+						$body_html = $pageh.$pied_page."<a href=\"".generer_url_public('abonnement','d='.$cookie)."\">"._T('spiplistes:abonnement_mail')."</a>\n\n</body></html>";
+						$body_text = $page_ ."\n\n"
+							  . filtrer_entites(_T('spiplistes:abonnement_mail'))."\n"
+							  . filtrer_entites(generer_url_public('abonnement','d='.$cookie))."\n\n"  ;
+						
+						if ($format_abo == 'html')  {// email HTML ------------------
+							// desabo pied de page HTML
+							$email_a_envoyer[$format_abo]->Body = $body_html;
+							$email_a_envoyer[$format_abo]->AltBody = $body_text;
+						} else {						// email TXT -----------------------
+							// desabo pied de page texte
+              $email_a_envoyer[$format_abo]->Body = $body_text;
+						}
+
+						$email_a_envoyer[$format_abo]->SetAddress($email,$nom_auteur);
+
+						
+						if ($email_a_envoyer[$format_abo]->send()) {
+							spip_query("DELETE FROM spip_auteurs_courriers WHERE id_auteur="._q($id_auteur)." AND id_courrier="._q($id_courrier));				
+							$str_temp .= "  [OK]";
+							$nb_emails_envoyes++;
+							$nb_emails[$format_abo]++;
+						}
+						else {
+							$str_temp .= _T('spiplistes:erreur_mail');
+							$nb_emails_echec++;
+       			}
+					}
+					else {
+						$str_temp .= _T('spiplistes:sans_adresse');
+						$nb_emails_echec++;
+					}
+				}
+				else {  // email fin TXT /HTML  -----------------------------------------
+					$nb_emails_non_envoyes++; //desabonnes 
+					spip_query("DELETE FROM spip_auteurs_courriers WHERE id_auteur="._q($id_auteur)." AND id_courrier="._q($id_courrier));	
+					$str_temp .= _L('pas abonne en ce moment');
+				} /* fin abo*/
+				spiplistes_log($str_temp);
+			}/* fin while */
+			
+			// si c'est un test on repasse en redac
+			if ($test== 'oui') {
+				spip_query("UPDATE spip_courriers SET statut='redac', email_test='', total_abonnes=0 WHERE id_courrier="._q($id_courrier));
+				spiplistes_log('repasse en redac');
+			}
+			$email_a_envoyer['texte']->SmtpClose();
+			$email_a_envoyer['html']->SmtpClose();
+		} 
+		else {   /* fin liste abonnes */	
+			// archiver
+			spiplistes_log("UPDATE spip_courriers SET statut='publie' WHERE id_courrier="._q($id_courrier));
+			spip_query("UPDATE spip_courriers SET statut='publie' WHERE id_courrier="._q($id_courrier));
+			$fin_envoi="oui";
+		}
+	}
+	else {
+		//aucun destinataire connu pour ce message
+		spiplistes_log(_T('spiplistes:erreur_sans_destinataire')."---"._T('spiplistes:envoi_annule'));
+		spip_query("UPDATE spip_courriers SET titre="._q(_T('spiplistes:erreur_destinataire')).", statut='publie' WHERE id_courrier="._q($id_courrier)); 
+	}
+#echo 	spip_timer();
+	// faire le bilan apres l'envoi d'un lot en esperant que les differents processus simultanes se telescopent pas trop
+	if($test != 'oui'){
+		$stats = spip_fetch_array(spip_query("SELECT nb_emails_envoyes,nb_emails_non_envoyes,nb_emails_echec,nb_emails_texte,nb_emails_html FROM spip_courriers AS messages WHERE id_courrier = $id_courrier"));
+		$nb_emails_envoyes = $nb_emails_envoyes + $stats['nb_emails_envoyes'] ;
+		spip_query("UPDATE spip_courriers SET nb_emails_envoyes="._q($nb_emails_envoyes)." WHERE id_courrier="._q($id_courrier)); 
+	   if($nb_emails_non_envoyes > 0){
+			$nb_emails_non_envoyes = $nb_emails_non_envoyes + $stats['nb_emails_non_envoyes'] ;
+			spip_query("UPDATE spip_courriers SET nb_emails_non_envoyes="._q($nb_emails_non_envoyes)." WHERE id_courrier="._q($id_courrier));
+	    }
+		if($nb_emails_echec > 0){
+			$nb_emails_echec = $nb_emails_echec + $stats['nb_emails_echec'] ;
+			spip_query("UPDATE spip_courriers SET nb_emails_echec="._q($nb_emails_echec)." WHERE id_courrier="._q($id_courrier)); 
+	    }
+		$nb_emails['texte'] = $nb_emails['texte'] + $stats['nb_emails_texte'] ;
+		$nb_emails['html'] = $nb_emails['html'] + $stats['nb_emails_html'] ;
+		spip_query("UPDATE spip_courriers SET nb_emails_texte="._q($nb_emails['texte'])." WHERE id_courrier="._q($id_courrier)); 
+	    spip_query("UPDATE spip_courriers SET nb_emails_html="._q($nb_emails['html'])." WHERE id_courrier="._q($id_courrier)); 
+		if($fin_envoi=="oui")
+			spip_query("UPDATE spip_courriers SET date_fin_envoi=NOW() WHERE id_courrier="._q($id_courrier)); 
+	}
+}
+else {
+	spiplistes_log(_T('spiplistes:envoi_fini'))   ;
+}	/* flag pile*/
+
+
+
+/******************************************************************************************/
+/* SPIP-Listes est un systeme de gestion de listes d'abonnes et d'envoi d'information     */
+/* par email pour SPIP. http://bloog.net/spip-listes              					      */
+/* Copyright (C) 2004 Vincent CARON  v.caron<at>laposte.net                               */
+/*                                                     								      */
+/* Ce programme est libre, vous pouvez le redistribuer et/ou le modifier selon les termes */
+/* de la Licence Publique Generale GNU publiee par la Free Software Foundation            */
+/* (version 2).                                                                           */
+/*                                                                                        */
+/* Ce programme est distribue car potentiellement utile, mais SANS AUCUNE GARANTIE,       */
+/* ni explicite ni implicite, y compris les garanties de commercialisation ou             */
+/* d'adaptation dans un but specifique. Reportez-vous à la Licence Publique Generale GNU  */
+/* pour plus de détails.                                                                  */
+/*                                                                                        */
+/* Vous devez avoir reçu une copie de la Licence Publique Generale GNU                    */
+/* en meme temps que ce programme ; si ce n'est pas le cas, ecrivez a la                  */
+/* Free Software Foundation,                                                              */
+/* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, Etats-Unis.                   */
+/******************************************************************************************/
+?>
Index: /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/javascript/autocron.js
===================================================================
--- /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/javascript/autocron.js	(revision 90)
+++ /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/javascript/autocron.js	(revision 90)
@@ -0,0 +1,24 @@
+if (window.XMLHttpRequest) { 
+    xmlHttp = new XMLHttpRequest();
+} else if (window.ActiveXObject) { 
+    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
+}
+function callServer(url) {
+  xmlHttp.open("GET", url, true);
+  xmlHttp.onreadystatechange = updatePage;
+  xmlHttp.send(null);
+}
+function updatePage() {
+  if (xmlHttp.readyState == 4) {
+    var response = xmlHttp.responseText;
+    var fin="fin";
+    if(response.indexOf(fin) == 0){
+    document.getElementById("meleuse").innerHTML = "<p align='center'><strong>100%</strong>";
+    setTimeout("document.location.href = '?exec=spip_listes'",5000);
+    }else{
+    document.getElementById("meleuse").innerHTML = response;
+    setTimeout("callServer('?exec=autocron')",15000);
+    }
+  }
+}
+callServer("?exec=autocron");
Index: /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/javascript/datepicker.js
===================================================================
--- /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/javascript/datepicker.js	(revision 90)
+++ /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/javascript/datepicker.js	(revision 90)
@@ -0,0 +1,458 @@
+/*
+ * Date picker plugin for jQuery
+ * http://kelvinluck.com/assets/jquery/datePicker
+ *
+ * Copyright (c) 2006 Kelvin Luck (kelvnluck.com)
+ * Licensed under the MIT License:
+ *   http://www.opensource.org/licenses/mit-license.php
+ *
+ * $LastChangedDate: 2006-10-08 19:08:47 +0100 (Sun, 08 Oct 2006) $
+ * $Rev: 23 $
+ */
+ 
+$.datePicker = function()
+{
+	// so that firebug console.log statements don't break IE
+	if (window.console == undefined) { window.console = {log:function(){}}; }
+	
+	var months = ['January', 'Febuary', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
+	var days = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
+	var navLinks = {p:'Prev', n:'Next', c:'Close'};
+	var dateFormat = 'dd/mm/yyyy';
+	var _firstDate;
+	var _lastDate;
+	
+	var _selectedDate;
+	var _openCal;
+	
+	var _zeroPad = function(num) { 
+		var s = '0'+num;
+		return s.substring(s.length-2) 
+		//return ('0'+num).substring(-2); // doesn't work on IE :(
+	};
+	var _strToDate = function(dIn)
+	{
+		switch (dateFormat.toLowerCase()) {
+			case 'yyyy-mm-dd':
+				dParts = dIn.split('-');
+				return new Date(dParts[0], Number(dParts[1])-1, dParts[2]);
+			case 'dd/mm/yyyy':
+				dParts = dIn.split('/');
+				return new Date(dParts[2], Number(dParts[1])-1, Number(dParts[0]));
+			case 'mm/dd/yyyy':
+			default:
+				var parts = parts ? parts : [2, 1, 0];
+				dParts = dIn.split('/');
+				return new Date(dParts[2], Number(dParts[0])-1, Number(dParts[1]));
+		}
+	};
+	var _dateToStr = function(d)
+	{
+		var dY = d.getFullYear();
+		var dM = _zeroPad(d.getMonth()+1);
+		var dD = _zeroPad(d.getDate());
+		switch (dateFormat.toLowerCase()) {
+			case 'yyyy/mm/dd':
+				return dY + '/' + dM + '/' + dD;
+			case 'yyyy-mm-dd':
+				return dY + '-' + dM + '-' + dD;
+			case 'dd/mm/yyyy':
+				return dD + '/' + dM + '/' + dY;
+			case 'mm/dd/yyyy':
+			default:
+				return dM + '/' + dD + '/' + dY;
+		}
+	};
+	
+	var _getCalendarDiv = function(dIn)
+	{
+		var today = new Date();
+		if (dIn == undefined) {
+			// start from this month.
+			d = new Date(today.getFullYear(), today.getMonth(), 1);
+		} else {
+			// start from the passed in date
+			d = dIn;
+			d.setDate(1);
+		}
+		// check that date is within allowed limits:		
+		if ((d.getMonth() < _firstDate.getMonth() && d.getFullYear() == _firstDate.getFullYear()) || d.getFullYear() < _firstDate.getFullYear()) {
+			d = new Date(_firstDate.getFullYear(), _firstDate.getMonth(), 1);;
+		} else if ((d.getMonth() > _lastDate.getMonth() && d.getFullYear() == _lastDate.getFullYear()) || d.getFullYear() > _lastDate.getFullYear()) {
+			d = new Date(_lastDate.getFullYear(), _lastDate.getMonth(), 1);;
+		}
+		
+		var calDiv = $.DIV({className:'popup-calendar'}, '');
+		var jCalDiv = $(calDiv);
+		var firstMonth = true;
+		var firstDate = _firstDate.getDate();
+		
+		// create prev and next links
+		var prevLinkDiv = '';
+		if (!(d.getMonth() == _firstDate.getMonth() && d.getFullYear() == _firstDate.getFullYear())) { 
+			// not in first display month so show a previous link
+			firstMonth = false;
+			var lastMonth = new Date(d.getFullYear(), d.getMonth()-1, 1);
+			var prevLink = $.A({href:'javascript:;'}, navLinks.p);
+			$(prevLink).click(function()
+			{
+				$.datePicker.changeMonth(lastMonth, this);
+				return false;
+			});
+			prevLinkDiv = $.DIV({className:'link-prev'}, '<', prevLink);
+		}
+		
+		var finalMonth = true;
+		var lastDate = _lastDate.getDate();
+		nextLinkDiv = '';
+		if (!(d.getMonth() == _lastDate.getMonth() && d.getFullYear() == _lastDate.getFullYear())) { 
+			// in the last month - no next link
+			finalMonth = false;
+			var nextMonth = new Date(d.getFullYear(), d.getMonth()+1, 1);
+			var nextLink = $.A({href:'javascript:;'}, navLinks.n);
+			$(nextLink).click(function() 
+			{
+				$.datePicker.changeMonth(nextMonth, this);
+				return false;
+			});
+			nextLinkDiv = $.DIV({className:'link-next'}, nextLink, '>');
+		}
+		
+		var closeLink = $.A({href:'javascript:;'}, navLinks.c);
+		$(closeLink).click(function()
+		{
+			$.datePicker.closeCalendar();
+		});
+		
+		jCalDiv.append(
+			$.DIV({className:'link-close'}, closeLink),
+			$.H3({}, months[d.getMonth()], ' ', d.getFullYear())
+		);
+		
+		var headRow = $.TR({});
+		for (var i=0; i<7; i++) {
+			var day = days[i];
+			headRow.appendChild(
+				$.TH({scope:'col', abbr:day, title:day}, day.substr(0, 1))
+			);
+		}
+		
+		var tBody = $.TBODY();
+		
+		var lastDay = (new Date(d.getFullYear(), d.getMonth()+1, 0)).getDate();
+		var curDay = -d.getDay();
+		
+		var todayDate = (new Date()).getDate();
+		var thisMonth = d.getMonth() == today.getMonth() && d.getFullYear() == today.getFullYear();
+		
+		var w = 0;
+		while (w++<6) {
+			var thisRow = $.TR({});
+			for (var i=0; i<7; i++) {
+				var atts = {};
+				
+				if (curDay < 0 || curDay >= lastDay) {
+					dayStr = ' ';
+				} else if (firstMonth && curDay < firstDate-1) {
+					dayStr = curDay+1;
+					atts.className = 'inactive';
+				} else if (finalMonth && curDay > lastDate-1) {
+					dayStr = curDay+1;
+					atts.className = 'inactive';
+				} else {
+					d.setDate(curDay+1);
+					var dStr = _dateToStr(d);
+					dayStr = $.A({href:'#', rel:dStr}, curDay+1);
+					$(dayStr).click(function(e)
+					{
+						$.datePicker.selectDate($.attr(this, 'rel'), this);
+						return false;
+					});
+					if (_selectedDate && _selectedDate==dStr) {
+						$(dayStr).addClass('selected');
+					}
+				}
+				
+				if (thisMonth && curDay+1 == todayDate) {
+					atts.className = 'today';
+				}
+				thisRow.appendChild($.TD(atts, dayStr));
+				curDay++;
+			}
+			tBody.appendChild(thisRow);
+		}
+		
+		jCalDiv.append(
+			$.TABLE({cellspacing:2}, $.THEAD({}, headRow), tBody),
+			prevLinkDiv,
+			nextLinkDiv
+		);
+
+		if ($.browser.msie) { 
+			
+			// we put a styled iframe behind the calendar so HTML SELECT elements don't show through
+			jCalDiv.append(document.createElement('iframe'));
+
+		}
+		jCalDiv.css({'display':'block'});
+		return calDiv;
+	};
+	var _draw = function(c)
+	{
+		// explicitly empty the calendar before removing it to reduce the (MASSIVE!) memory leak in IE
+		// still not perfect but a lot better!
+		// Strangely if you chain the methods it reacts differently - when chained opening the calendar on
+		// IE uses a bunch of memory and pressing next/prev doubles this memory. When you close the calendar
+		// the memory is freed. If they aren't chained then pressing next or previous doesn't double the used
+		// memory so only one chunk of memory is used when you open the calendar (which is also freed when you
+		// close the calendar).
+		$('div.popup-calendar a', _openCal).unbind();
+		$('div.popup-calendar', _openCal).empty();
+		$('div.popup-calendar', _openCal).remove();
+		_openCal.append(c);
+	};
+	var _closeDatePicker = function()
+	{
+		$('div.popup-calendar a', _openCal).unbind();
+		$('div.popup-calendar', _openCal).empty();
+		$('div.popup-calendar', _openCal).css({'display':'none'});
+		
+		/*
+		if ($.browser.msie) {
+			_openCal.unbind('keypress', _handleKeys);
+		} else {
+			$(window).unbind('keypress', _handleKeys);
+		}
+		*/
+		$(document).unbind('mousedown', _checkMouse);
+		delete _openCal;
+		_openCal = null;
+	};
+	var _handleKeys = function(e)
+	{
+		var key = e.keyCode ? e.keyCode : (e.which ? e.which: 0);
+		//console.log('KEY!! ' + key);
+		if (key == 27) {
+			_closeDatePicker();
+		}
+		return false;
+	};
+	var _checkMouse = function(e)
+	{
+		var target = $.browser.msie ? window.event.srcElement : e.target;
+		var cp = $(target).findClosestParent('div.popup-calendar');
+		if (cp.get(0).className != 'date-picker-holder') {
+			_closeDatePicker();
+		}
+	};
+	
+	return {
+		show: function()
+		{
+			if (_openCal) {
+				_closeDatePicker();
+			}
+			this.blur();
+			var input = $('input', $(this).findClosestParent('input'))[0];
+			_firstDate = input._startDate;
+			_lastDate = input._endDate;
+			_openCal = $(this).findClosestParent('div.popup-calendar');
+			var d = $(input).val();
+			if (d != '') {
+				if (_dateToStr(_strToDate(d)) == d) {
+					_selectedDate = d;
+					_draw(_getCalendarDiv(_strToDate(d)));
+				} else {
+					// invalid date in the input field - just default to this month
+					_selectedDate = false;
+					_draw(_getCalendarDiv());
+				}
+			} else {
+				_selectedDate = false;
+				_draw(_getCalendarDiv());
+			}
+			/*
+			if ($.browser == "msie") {
+				_openCal.bind('keypress', _handleKeys);
+			} else {
+				$(window).bind('keypress', _handleKeys);
+			}
+			*/
+			$(document).bind('mousedown', _checkMouse);
+		},
+		changeMonth: function(d, e)
+		{
+			
+			_draw(_getCalendarDiv(d));
+		},
+		selectDate: function(d, ele)
+		{
+			selectedDate = d;
+			$('input', $(ele).findClosestParent('input')).val(d);
+			_closeDatePicker(ele);
+		},
+		closeCalendar: function()
+		{
+			_closeDatePicker(this);
+		},
+		setInited: function(i)
+		{
+			i._inited = true;
+		},
+		isInited: function(i)
+		{
+			return i._inited != undefined;
+		},
+		setDateFormat: function(format)
+		{
+			// set's the format that selected dates are returned in.
+			// options are 'dd/mm/yyyy' (european), 'mm/dd/yyyy' (americian) and 'yyyy-mm-dd' (unicode)
+			dateFormat = format;
+		},
+		/**
+		* Function: setLanguageStrings
+		*
+		* Allows you to localise the calendar by passing in relevant text for the english strings in the plugin.
+		*
+		* Arguments:
+		* days		-	Array, e.g. ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']
+		* months	-	Array, e.g. ['January', 'Febuary', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
+		* navLinks	-	Object, e.g. {p:'Prev', n:'Next', c:'Close'}
+		**/
+		setLanguageStrings: function(aDays, aMonths, aNavLinks)
+		{
+			days = aDays;
+			months = aMonths;
+			navLinks = aNavLinks;
+		},
+		/**
+		* Function: setDateWindow
+		*
+		* Used internally to set the start and end dates for a given date select
+		*
+		* Arguments:
+		* i			-	The id of the INPUT element this date window is for
+		* w			-	The date window - an object containing startDate and endDate properties
+		*				each in the current format as set in a call to setDateFormat (or in the
+		*				default format dd/mm/yyyy if setDateFormat hasn't been called).
+		*				e.g. {startDate:'01/03/2006', endDate:'11/04/2006}
+		**/
+		setDateWindow: function(i, w)
+		{
+			if (w == undefined) w = {};
+			if (w.startDate == undefined) {
+				i._startDate = new Date();
+			} else {
+				i._startDate = _strToDate(w.startDate);
+			}
+			if (w.endDate == undefined) {
+				i._endDate = new Date();
+				i._endDate.setFullYear(i._endDate.getFullYear()+5);
+			} else {
+				i._endDate = _strToDate(w.endDate);
+			};
+		}
+	};
+}();
+$.fn.findClosestParent = function(s)
+{
+	var ele = this;
+	while (true) {
+		if ($(s, ele).length > 0) {
+			return (ele);
+		}
+		ele = ele.parent();
+		if(ele[0].length == 0) {
+			return false;
+		}
+	}
+};
+$.fn.datePicker = function(a)
+{
+	this.each(function() {
+		if(this.nodeName.toLowerCase() != 'input') return;
+		$.datePicker.setDateWindow(this, a);
+		if (!$.datePicker.isInited(this)) {
+			var calBut = $.A({href:'javascript:;', className:'date-picker', title:'Choose date'}, $.SPAN({}, 'Choose date'));
+			$(calBut).click($.datePicker.show);
+			$(this).wrap(
+				'<div class="date-picker-holder"></div>'
+			).before(
+				$.DIV({className:'popup-calendar'})
+			).after(
+				calBut
+			);
+			$.datePicker.setInited(this);
+		}
+	});
+	
+};
+/*
+<!-- Generated calendar HTML looks like this - style with CSS -->
+<div class="popup-calendar">
+	<div class="link-close"><a href="#">Close</a></div>
+	<h3>July 2006</h3>
+	<table cellspacing="2">
+		<thead>
+			<tr>
+				<th scope="col" abbr="Monday" title="Monday">M</th>
+				<th scope="col" abbr="Tuesday" title="Tuesday">T</th>
+				<th scope="col" abbr="Wednesday" title="Wednesday">W</th>
+				<th scope="col" abbr="Thursday" title="Thursday">T</th>
+				<th scope="col" abbr="Friday" title="Friday">F</th>
+				<th scope="col" abbr="Saturday" title="Saturday">S</th>
+				<th scope="col" abbr="Sunday" title="Sunday">S</th>
+			</tr>
+		</thead>
+		<tbody>
+			<tr>
+				<td>&nbsp;</td>
+				<td>&nbsp;</td>
+				<td>&nbsp;</td>
+				<td class="inactive">1</td>
+				<td class="inactive">2</td>
+				<td class="inactive">3</td>
+				<td class="inactive">4</td>
+			</tr>
+			<tr>
+				<td class="inactive">5</td>
+				<td class="inactive">6</td>
+				<td class="inactive">7</td>
+				<td class="today"><a href="#">8</a></td>
+				<td><a href="#">9</a></td>
+				<td><a href="#">10</a></td>
+				<td><a href="#">11</a></td>
+			</tr>
+			<tr>
+				<td><a href="#">12</a></td>
+				<td><a href="#">13</a></td>
+				<td><a href="#">14</a></td>
+				<td><a href="#">15</a></td>
+				<td><a href="#">16</a></td>
+				<td><a href="#">17</a></td>
+				<td><a href="#" class="selected">18</a></td>
+			</tr>
+			<tr>
+				<td><a href="#">19</a></td>
+				<td><a href="#">20</a></td>
+				<td><a href="#">21</a></td>
+				<td><a href="#">22</a></td>
+				<td><a href="#">23</a></td>
+				<td><a href="#">24</a></td>
+				<td><a href="#">25</a></td>
+			</tr>
+			<tr>
+				<td><a href="#">26</a></td>
+				<td><a href="#">27</a></td>
+				<td><a href="#">28</a></td>
+				<td><a href="#">29</a></td>
+				<td><a href="#">30</a></td>
+				<td>&nbsp;</td>
+				<td>&nbsp;</td>
+			</tr>
+		</tbody>
+	</table>
+	<div class="link-prev"><a href="#">Prev</a></div>
+	<div class="link-next"><a href="#">Next</a></div>
+</div>
+*/
Index: /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/javascript/jquery-dom.js
===================================================================
--- /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/javascript/jquery-dom.js	(revision 90)
+++ /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/javascript/jquery-dom.js	(revision 90)
@@ -0,0 +1,61 @@
+// DOM element creator for jQuery and Prototype by Michael Geary
+// http://mg.to/topics/programming/javascript/jquery
+// Inspired by MochiKit.DOM by Bob Ippolito
+// Free beer and free speech. Enjoy!
+
+$.defineTag = function( tag ) {
+	$[tag.toUpperCase()] = function() {
+		return $._createNode( tag, arguments );
+	}
+};
+
+(function() {
+	var tags = [
+		'a', 'br', 'button', 'canvas', 'div', 'fieldset', 'form',
+		'h1', 'h2', 'h3', 'hr', 'img', 'input', 'label', 'legend',
+		'li', 'ol', 'optgroup', 'option', 'p', 'pre', 'select',
+		'span', 'strong', 'table', 'tbody', 'td', 'textarea',
+		'tfoot', 'th', 'thead', 'tr', 'tt', 'ul' ];
+	for( var i = tags.length - 1;  i >= 0;  i-- ) {
+		$.defineTag( tags[i] );
+	}
+})();
+
+$.NBSP = '\u00a0';
+
+$._createNode = function( tag, args ) {
+	var fix = { 'class':'className', 'Class':'className' };
+	var e;
+	try {
+		var attrs = args[0] || {};
+		e = document.createElement( tag );
+		for( var attr in attrs ) {
+			var a = fix[attr] || attr;
+			e[a] = attrs[attr];
+		}
+		for( var i = 1;  i < args.length;  i++ ) {
+			var arg = args[i];
+			if( arg == null ) continue;
+			if( arg.constructor != Array ) append( arg );
+			else for( var j = 0;  j < arg.length;  j++ )
+				append( arg[j] );
+		}
+	}
+	catch( ex ) {
+		alert( 'Cannot create <' + tag + '> element:\n' +
+			args.toSource() + '\n' + args );
+		e = null;
+	}
+	
+	function append( arg ) {
+		if( arg == null ) return;
+		var c = arg.constructor;
+		switch( typeof arg ) {
+			case 'number': arg = '' + arg;  // fall through
+			case 'string': arg = document.createTextNode( arg );
+		}
+		e.appendChild( arg );
+	}
+	
+	return e;
+};
Index: /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/lang/spiplistes_de.php
===================================================================
--- /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/lang/spiplistes_de.php	(revision 90)
+++ /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/lang/spiplistes_de.php	(revision 90)
@@ -0,0 +1,365 @@
+<?php
+
+// This is a SPIP module file  --  Ceci est un fichier module de SPIP
+
+$GLOBALS['i18n_spiplistes_de'] = array(
+
+
+//_ 
+'_aide' => '<p>Mit SPIP-Listes k&ouml;nnen Sie Mails und automatisierte Nachrichten an Abonnenten senden.</p> <p>Sie k&ouml;nnen einen einfachen Text schreiben, Ihre Nachricht als HTML gestalten oder sie mit einer "Vorlage" formatieren und erg&auml;nzen.</p>
+<p>Mit Hilfe eines &ouml;ffentlichen Formulars k&ouml;nnen die Abonnenten ihren Status selber &auml;ndern und bestimmen, ob sie Nachrichten im Text- oder HTML-Format erhalten wollen.</p><p>Die Mails werden automatisch in das Text-Format umgewandelt, wenn ein Abonnent diese Versandform gew&auml;hlt hat.</p><p><b>Anmerkung :</b><br />
+Der Versand der Mails kann einige Minuten in Anspruch nehmen: Die Empf&auml;nger werden nach und nach abgearbeitet, wenn Besucher die Website aufrufen. Sie k&ouml;nnen den Versand auch manuell ausl&ouml;sen, indem Sie auf den Link "Versand verwalten" klicken.</p>',
+
+// A
+'abo_1_lettre' => 'Newsletter',
+'abonnement_0' => 'Abonnement',
+'abonnement'=>'Sie m&ouml;chten Ihr Abonnement des Newsletters bearbeiten',
+'abonnement_bouton'=>'Ihr Abonnement bearbeiten',
+'abonnement_cdt' => '<a href=\'http://bloog.net/spip-listes/\'>SPIP-Listes</a>' ,
+'abonnement_change_format'=>'Sie k&ouml;nnen das Format, in dem Sie den Newsletter erhalten &auml;ndern: ',
+'abonnement_mail' => 'Um Ihr Abonnement zu bearbeiten, gehen Sie bitte zu dieser Adresse',
+'abonnement_mail_passcookie' => '(Dieses ist eine automatische Nachricht)
+Um Ihr Abonnement der Website: @nom_site_spip@ (@adresse_site@) zu bearbeiten,
+gehen Sie bitte zu dieser Adresse:
+
+    @adresse_site@/spip.php?page=abonnement&d=@cookie@
+
+Sie k&ouml;nnen dann die &auml;nderung Ihres Abonnements best&auml;tigen.',
+'abonnement_modifie'=>'Ihre &auml;nderungen wurden gespeichert',
+'abonnement_nouveau_format'=>'Sie haben dieses Format f&uuml;r Ihr Abonnement gew&auml;hlt: ',
+'abonnement_titre_mail'=>'Ihr Abonnement &auml;ndern',
+'abonnement_texte_mail'=>'Bitte geben Sie hier die E-Mail Adresse an, mit der der Sie sich angemeldet haben. Sie erhalten dann eine Mail, die Ihnen erlaubt, auf die Webseite zur &auml;nderung Ihres Abonnements zuzugreifen.',
+'abonner' => 'Anmeldung',
+'actualiser' => 'Aktualisieren',
+'adresse' => 'Geben Sie hier die Adresse f&uuml;r Antworten (reply-to) ein (Wenn Sie keine Angabe machen, wird die Adresse des Webmasters verwendet): ',
+'adresses_importees' => 'Adressen importiert',
+'aff_redac' => 'Nachricht in Bearbeitung',
+'aff_encours' => 'Nachricht wird gesendet',
+'aff_envoye' => 'Gesendete Nachrichten',
+'aff_lettre_auto' => 'Gesendete Newsletter',
+'aff_envoye' => 'Gesendete Nachrichten',
+'alerte_edit' => 'Achtung: Diese Nachricht kann von allen Administratoren der Website ge&auml;ndert werden und wird an alle Abonnenten gschickt. Verwenden Sie den Newsletter nur f&uuml;r wichtige Ereignisse der Website.',
+'alerte_modif' => '<b>Nachdem Ihre Nachricht angezeigt wurde, k&ouml;nnen Sie ihren Inhalt bearbeiten</b>',
+'annuler_envoi' => 'Versand abbrechen',
+
+//B
+
+//C
+'Cette_liste_est' => 'Diese Liste ist',
+'charger_patron' => 'Vorlage f&uuml;r die Nachricht w&auml;hlen',
+'charger_le_patron' => 'Nachricht erzeugen',
+'Configuration' => 'Konfiguration',
+'courriers' => 'Nachrichten',
+
+//D
+'definir_squel' => 'W&auml;hlen Sie eine Vorlage f&uuml;r die Vorschau der Nachricht',
+'definir_squel_choix' => 'Wenn Sie eine neue Nachricht verfassen, k&ouml;nnen Sie eine Vorlage laden. Wenn Sie die Schaltfl&auml;che anklicken, wird der Inhalt einer Vorlage aus dem Verzeichnis <b>/patrons</b> (das sich im Wurzelverzeichnis Ihrer SPIP-Insatllation befindet) ihn Ihre Nachricht geladen. <p><b>Sie k&ouml;nnen diese Vorlagen nach Belieben bearbeiten und &auml;ndern.</b></p> <ul><li>Diese Vorlagen k&ouml;nnen klassisches HTML enthalten</li>
+<li>Diese Vorlage kann SPIP-Code enthalten</li>
+<li>Nachdem eine Vorlage geladen wurde, k&ouml;nnen Sie den Text Ihrer Nachricht vor dem Senden erneut bearbeiten.</li>
+</ul><p>Die Funktion "Vorlage laden" erlaubt, individuelle HTML-Templates mit SPIP-Schleifen, die bestimmte Inhalte einf&uuml;gen, f&uuml;r Ihre Nachrichten und Newsletter &uuml;ber bestimmte Themen zu verwenden.</p><p>Achtung: Diese Templates d&uuml;rfen auf keinen Fall die Tags body, head oder html enthalten, sondern ausschlie&szlig;lich sonstigen HTML- und SPIP-Code.</p>',
+'definir_squel_texte' => 'Wenn Sie &uuml;ber einen FTP-Zugang zu dieser Website verf&uuml;gen, k&ouml;nnen Sie SPIP-Templates in das Verzeichnis /patrons (im Wurzelverzeichnis der SPIP-Installation) hochladen.',
+'devenir_redac'=>'Anmeldung als Redakteur der Website',
+'devenir_abonne'=>'Anmeldung bei der Website',
+'desabonnement_valid'=>'Diese Adresse hat den Newsletter nicht mehr abonniert.' ,
+'pass_recevoir_mail'=>'Sie erhalten eine E-Mail mit Informationen zur &auml;nderung Ihres Abonnements. ',
+'desabonnement_confirm'=>'Sie sind dabei, Ihr Abonnement des Newsletters zu beenden',
+'date_depuis'=>'seit @delai@', 
+
+
+//E
+'email' => 'E-Mail',
+'envoi' => 'Sendung :',
+'envoi_nouv' => 'Sendung der Neuigkeiten',
+'envoi_program' => 'Programmierte Sendung',
+'envoi_texte' => 'Wenn Sie mit der Nachricht zufrieden sind, k&ouml;nnen Sie sie absenden',
+'exporter' => 'Liste der Abonnenten exportieren',
+
+//F
+'faq' => 'FAQ',
+'forum' => 'Forum',
+'ferme' => 'Diese Diskussion ist geschlossen',
+'form_forum_identifiants' => 'Best&auml;tigung',
+'form_forum_identifiant_confirm'=>'Ihr Abonnement wurde gespeichert. Sie erhalten nun eine Best&auml;tigungsmail.',
+'format' => 'Format',
+
+//H
+'Historique_des_envois' => 'Verlauf der Sendungen',
+
+//I
+'info_auto' => 'SPIP-Listes kann Ihren Abonnenten regelm&auml;&szlig;ig Informationen &uuml;ber die neuesten Inhalte (k&uuml;rzlich ver&ouml;ffentlichte Artikel und Meldungen) Ihrer Website senden.',
+'info_heberg' => 'Manche Provider verhindern den automatischen Mailversand &uuml;ber ihre Server. In diesem Fall wird SPIP-Listes nicht funktionieren.',
+'info_nouv' => 'Sie haben den Versand der Neuigkeiten aktiviert.',
+'info_nouv_texte' => 'N&auml;chter Versand der Neuigkeiten in @proch@ Tagen',
+'inscription_mail_forum' => 'Hier Ihre Zugngsdaten f&uuml;r die Website @nom_site_spip@ (@adresse_site@)',
+'inscription_mail_redac' => 'Hier Ihre Zugngsdaten f&uuml;r die Website @nom_site_spip@ (@adresse_site@) und f&uuml;r das Redaktionssystem (@adresse_site@/ecrire)',
+'inscription_visiteurs' => 'Ihre Anmeldung erm&ouml;glicht Ihnen den Zugang zu den gesch&uuml;tzten Bereichen der Website, das Verfassen von Beitr&auml;gen in Foren f&uuml;r eingetragene Leser und den Erhalt der Newsletter.' ,
+'inscription_redacteurs' =>'Das Redaktionssystem dieser Website ist f&uuml;r eingetragene Besucher zug&auml;nglich. Nach der Anmeldung k&ouml;nnen Sie Artikel vor ihrer Ver&ouml;ffentlichung kommentieren, eigen Artikel schreiben und vorschlagen und an allen Foren teilnehmen. Mit der Anmeldung erhalten Sie ebenfalls Zugang zu den pa&szlig;wortgesch&uuml;tzten Bereichen der Website und k&ouml;nnen die Newsletter empfangen.',
+'import_export' => 'Import / Export',
+
+//J
+'jours' => 'Tage',
+
+//L
+'Listes_de_diffusion' => 'Newsletter',
+'login' => 'Login',
+'logout' => 'Abmelden',
+'lot_suivant' => 'N&auml;chten Stapel abschicken',
+'lieu' => 'Ort',
+'lettre_d_information' => 'Newsletter',
+
+//M
+'mail_format' => 'Sie haben den Newsletter der Website @nom_site_spip@ im folgenden Format abonniert',
+'mail_non' => 'Sie haben den Newsletter der Website @nom_site_spip@ nicht abonniert.',
+'message_arch' => 'Nachricht archiviert',
+'messages_auto' => 'Automatische Nachrichten',
+'messages_auto_texte' => '<p>Das Standard-Template erm&ouml;glicht, automatisch eine Liste der seit dem letzten automatisch gesendeten Newsletter neu erschienenen Artikel und Meldungen Ihrer Website zu verschicken.</p><p>Sie k&ouml;nnen diesen Newsletter anpassen, indem Sie den URL eines Logos und eines Hintergrundbilds f&uuml;r Abschnitts&uuml;berschriften in der Datei <b>"nouveautes.html"</b> eintragen. Sie befindet sich im Wurzelverzeichnis Ihrer SPIP-Installation.</p>',
+'message_redac' => 'In Bearbeitung und fertig f&uuml;r den Versand',
+'message_en_cours' => 'Nachricht wird gesendet',
+'message_type' => 'E-Mail',
+'membres_liste' => 'Mitgliederliste',
+'membres_groupes' => 'Benutzergruppe',
+'membres_profil' => 'Profil',
+'membres_messages_deconnecte' => 'Melden Sie sich an, um Ihre privaten Nachrichten zu lesen',
+'membres_sans_messages_connecte' => 'Sie haben keine neuen Nachrichten',
+'membres_avec_messages_connecte' => 'Sie haben @nombres@ neue Nachricht(en)',
+'message' => 'Nachricht: ',
+'message_date' => 'Gesendet am',
+'message_sujet' => 'Betreff ',
+'messages' => 'Nachrichten',
+'Messages_automatiques' => 'Programmierte Nachrichten',
+'messages_derniers' => 'Letzte Nachrichten',
+'messages_forum_clos' => 'Forum desaktiviert',
+'messages_nouveaux' => 'Neue Nachrichten',
+'messages_pas_nouveaux' => 'Keine neuen Nachrichten',
+'messages_non_lus_grand' => 'Keine neuen Nachrichten',
+'messages_repondre' => 'Neï¿œe Antwort',
+'messages_voir_dernier' => 'Letzte Nachricht lesen',
+'moderateurs' => 'Moderator(en)',
+'modifier' => '&auml;ndern',
+'mis_a_jour' => 'Updated', // FIXME
+
+//N
+'nom' => 'Benutzername',
+'Nouveau_courrier' => 'Neue Nachricht',
+'nouveaux_messages' => 'Neue Nachrichten',
+'Nouvelle_liste_de_diffusion' => 'Neuer Newsletter',
+
+//P
+'par_date' => 'Nach Anmeldedatum',
+'patron_disponibles' => 'Verf&uuml;gbare Vorlagen',
+'Patrons' => 'Vorlagen',
+'poster' => 'Nachricht senden',
+
+//R
+'recherche' => 'Suchen',
+'revenir_haut' => 'Nach oben',
+'reponse' => 'Antwort auf die Nachricht',
+'retour' => 'E-Mail Adresse des Listenverwalters (reply-to)',
+
+//S
+'suivi' => 'Abonnements verwalten',
+'Suivi_des_abonnements' => 'Abonnements verwalten',
+'sujet_nouveau' => 'Neues Thema',
+'sujet_auteur' => 'Autor',
+'sujet_visites' => 'Besuche',
+'sujets' => 'Themen',
+'sujets_aucun' => 'In diesem Forum gibt es kein Thema',
+'site' => 'Website',
+'sujet_clos_titre' => 'Thema geschlossen',
+'sujet_clos_texte' => 'Dieses Thema ist geschlossen, Sie k&ouml;nnen keinen Beitrag dazu schreiben.',
+ 
+ //T
+'texte_boite_en_cours' => 'SPIP-Listes verschickt gerade eine Nachricht. <p> Sie k&ouml;nnen den Versand beschleunigen, indem Sie auf den Link klicken.</p> <p>Dieser Kasten wird nicht mehr angezeigt, wenn die Nachricht vollst&auml;ndig gesendet wurde.</p>',
+'texte_lettre_information' => 'Hier ist der Newsletter von ',
+'Tous_les' => 'Alle',
+
+//V
+'voir' => 'ansehen',
+'vous_pouvez_egalement' => 'Sie k&ouml;nnen',
+'vous_inscrire_auteur' => 'sich als Reakteur anmelden',
+
+// ====================== spip_listes.php3 ======================
+'abon' => 'ABONNENTEN',
+'abon_ajouter' => 'ABONNENTEN hinzuf&uuml;gen&nbsp; ',
+'abonees' => 'alle Abonnenten',
+'abonne_listes' => 'Diese Adresse hat folgende Listen abonniert',
+'abonne_aucune_liste' => 'Keine Liste abonniert',
+'abonnement_simple' => '<b>Einfaches Abonnieren: </b><br /><i>Die Abonnenten erhalten eine Best&auml;tigungsmail nach dem Abonnieren.</i>',
+'abonnement_code_acces' => '<b>Abonnement mit Zugangsdaten: </b><br /><i>Die Abonnenten erhalten au&szlig;erdem einen Benutzernamen und ein Pa&szlig;wort, mit denen sie sich bei der Website anmelden k&ouml;nnen. </i>',
+'abonnement_newsletter' => '<b>Abonnement des Newsletters</b>',
+'acces_a_la_page' => 'Sie k&ouml;nnen diese Seite nicht &ouml;ffnen.',
+'adresse_deja_inclus' => 'Die Adresse ist bereits bekannt',
+'autorisation_inscription' => 'SPIP-Listes hat die Anmeldefunktion f&uuml;r Besucher der Website aktiviert.',
+
+'choisir' => 'Ausw&auml;hlen',
+'choisir_cette' => 'Diese Liste ausw&auml;hlen',
+'confirme_envoi' => 'Bitte best&auml;tigen Sie den Versand',
+
+'date_act' => 'Daten aktualisiert',
+'date_ref' => 'Vergleichsdatum',
+'desabo' => 'Abmeldung',
+'desabonnement' => 'Abonnement&nbsp;k&uuml;ndigen&nbsp;',
+'desabonnes' => 'Abgemeldet',
+'desole' => 'Entschuldigung',
+'destinataire' => 'Empf&auml;nger',
+'destinataires' => 'Empf&auml;nger',
+
+'efface' => 'hat die Listen aus der Datenbank gel&ouml;scht',
+'efface_base' => 'wurde aus den Listen der der Datenbak gel&ouml;scht',
+'email_adresse' => 'Test-E-Mail',
+'email_collec' => 'Kollektive E-Mail',
+'email_test' => 'Testmail senden',
+'email_test_liste' => 'An eine Mailing-Liste senden',
+'email_tester' => 'Per E-Mail testen',
+'env_esquel' => 'Programmierter Versand der Vorlage',
+'env_maint' => 'Jetzt senden',
+'envoyer' => 'Mail senden',
+'envoyer_a' => 'Senden an',
+'erreur' => 'Fehler',
+'erreur_import' => 'Die Importdatei hat einen Fehler in Zeile',
+
+'format_date' => 'Y/m/d',
+
+'html' => 'HTML',
+
+'importer' => 'Abonnentenliste importieren',
+'importer_fichier' => 'Importer un fichier',
+'importer_fichier_txt' => '<p><b>Ihre Abonnetenliste mu&szlig; eine einfache Textdatei sein, die eine E-Mail Adresse pro Zeile enth&auml;lt</b></p>',
+'importer_preciser' => '<p>Geben Sie die Liste und das Format an, das die Abonnenten bevorzugen</p>',
+'inconnu' => 'ist nicht mehr Abonnent der Liste',
+'liste_diff_publiques' => '&ouml;ffentliche Listen<br /><i>Die &ouml;ffentliche Seite zur Anmeldung erm&ouml;glicht, diese Listen zu abonnieren.</i>',
+'liste_sans_titre' => 'Listen ohne Titel',
+'listes_internes' => 'Interne Listen<br /><i>Beim Senden einer Nachricht k&ouml;nnen diese Listen als Empf&auml;nger gew&auml;hlt werden.</i>',
+'listes_poubelle' => 'Ihre gel&ouml;schten Listen',
+'lock' => 'Gesperrt: ',
+'liste_numero' => 'LISTE NUMMER',
+
+'mail_a_envoyer' => 'Anzahl der zu sendenden Mails: ',
+'mail_tache_courante' => 'F&uuml;r den aktuellen Task gesendete Mails: ',
+'messages_auto_envoye' => 'Automatisch gesendete Nachrichten',
+'message_en_cours' => 'Diese Nachricht ist in Bearbeitung',
+'message_presque_envoye' =>'Diese Nachricht wird unverz&uuml;glich gesendet',
+'mode_inscription' => 'Einschreibemodus der Besucher einstellen',
+'modif_envoi' => 'Sie k&ouml;nnen sie bearbeiten oder den Versand beauftragen',
+'modifier_liste' => 'Diese Liste bearbeiten:',
+
+'nb_abonnes' => 'In den Listen: ',
+'nb_inscrits' => 'Auf der Site:  ',
+'nb_listes' => 'Bei allen Listen anmelden: ',
+'non_program' => 'F&uuml;r diese Liste gibt es keinen programmierten Versand.',
+'nouvelle_abonne' => 'Der folgende Abonnent wurde der Liste hinzugef&uuml;gt',
+'pas_acces' => 'Sie d&uuml;rfen diese Seite nicht &ouml;ffnen.',
+'plus_abonne' => ' ist nicht mehr Abonnent dieser Liste ',
+'prochain_envoi_aujd' => 'N&auml;chste Sendung f&uuml;r heute vorgesehen',
+'prochain_envoi_prevu' => 'N&auml;chste Senden vorgesehen',
+'prochain_envoi_prevu_dans' => 'N&auml;chste Sendung vorgesehen in',
+'prog_env' => 'Automatische Sendung programmieren',
+'prog_env_non' => 'Keinen Versand programmieren',
+'program' => 'Programmaierung der automatischen Sendungen',
+'plein_ecran' => '(Vollbild)',
+
+'reinitialiser' => 'neu initialisieren',
+'remplir_tout' => 'Alle Felder m&uuml;ssen ausgef&uuml;llt werden',
+'repartition' => 'Verteilung',
+'retour_link' => 'Zur&uuml;ck',
+
+'sans_envoi' => 'Achtung, die angegebene E-Mail entspricht keinem Abonnenten<br />der Versand kann nicht ausgef&uuml;hrt werden. Bitte wiederholen Sie den Vorgang<br /><br />',
+'squel' => 'Vorlage: &nbsp;',
+'statut_interne' => 'Intern',
+'statut_publique' => '&ouml;ffentlich',
+'suivi_envois' => 'Versand verwalten',
+'supprime_contact' => 'Diese Adresse endg&uuml;ltig l&ouml;schen',
+'supprime_contact_base' => 'Endg&uuml;ltig aus der Datenbank l&ouml;schen',
+
+'tableau_bord' => 'Steuerung',
+'texte' => 'Text',
+'toutes' => 'Alle Abonnenten',
+'txt_abonnement' => '(Geben Sie hier den Text zum Abonnieren der Liste an, der auf der &ouml;ffnetlichen Seite angezeigt werden soll)',
+'txt_inscription' => 'Anmeldetext : ',
+
+'une_inscription' => 'Ein Abonnent gefunden',
+
+'val_texte' => 'Text',
+'version' => 'Version',
+'voir_historique' => 'Verlauf der Sendungen anzeigen',
+
+
+
+// ====================== inscription-listes.php3 / abonnement.php3 ======================
+
+'abo_listes' => 'Abonnement',
+'acces_refuse' => 'Sie haben keinen Zugriff auf diese Website',
+
+'confirmation_format' => ' im Format ',
+'confirmation_liste_unique_1' => 'Sie haben den Newsletter dieser Website abonniert',
+'confirmation_liste_unique_2' =>'Sie haben sich f&uuml;r den Empfang von Nachrichten der folgenden Liste eingetragen:',
+'confirmation_listes_multiples_1' => 'Sie haben die Newsletter der Website abonniert ',
+'confirmation_listes_multiples_2' => 'Sie haben folgende Listen abonniert:',
+
+'erreur_adresse' => 'Fehler: Sie haben eine ung&uuml;ltige E-Mail Adresse angegeben',
+
+'infos_liste' => 'Informationen &uuml;ber diese Liste',
+
+
+// ====================== spip-meleuse.php3 ======================
+
+'contacts' => 'Anzahl der Adressen',
+'contacts_lot' => 'Adressen dieses Stapels',
+'editeur' => 'Herausgeber : ',
+'envoi_en_cours' => 'Versand in Arbeit',
+'envoi_tous' => 'Versand an alle Abonnenten',
+'envoi_listes' => 'Versand an alle Abonnenten diese Liste : ',
+'envoi_erreur' => 'Fehler : SPIP-Listes findet keine Empf&auml;nger f&uuml;r diese Nachricht',
+'email_reponse' => 'Antwortadresse : ',
+'envoi_annule' => 'Versand gestoppt',
+'envoi_fini' => 'Versand beendet',
+'erreur_destinataire' => 'Empf&auml;ngerfehler: Kein Versand',
+'erreur_sans_destinataire' => 'Fehler: F&uuml;r diese Nachricht kann wird kein Empf&auml;nger gefunden',
+'erreur_mail' => 'Fehler: Versand nicht m&ouml;glich (&uuml;berpr&uuml;fen Sie, ob die PHP-Funktion mail() zur Verf&uuml;gung steht)',
+
+'forcer_lot' => 'N&auml;chsten Stapel senden',
+
+'non_courrier' => 'Keine Mails (mehr) zu senden',
+'non_html' => 'Ihr Mailprogramm kann offensichtlich die grafische (HTML) Version dieser E-Mail nicht anzeigen',
+'sans_adresse' => 'Mail wurde nicht gesendet -> Bitte tragen Sie eine ANzwortadresse (reply-to) ein',
+
+
+
+// ====================== inc_import_patron.php3 ======================
+
+'confirmer' => 'Best&auml;tigen',
+
+'lettre_info' => 'Newsletter der Website',
+
+'patron_erreur' => 'Die gew&auml;hlte Vorlage generiert mit den gew&auml;hlten Parametern keine Daten',
+
+
+
+// ====================== listes.html ======================
+
+'abonees_titre' => 'Abonnenten',
+
+
+// ====================== inc-presentation.php3 ======================
+
+'listes_emails' => 'Newsletter',
+
+
+// ====================== mes-options.php3 ======================
+
+
+'options' => 'radio|brut|Format :|HTML,Text,Abbestellen|html,texte,non',
+
+// ====================== mes-options.php3 ======================
+
+'bonjour' => 'Hallo,',
+
+'inscription_response' => 'Sie haben den Newsletter dieser Website abonniert ',
+'inscription_responses' => 'Sie haben die Newsletter dieser Website abonniert ',
+'inscription_liste' => 'Sie haben sich f&uuml;r den Empfang von Nachrichten der folgenden Liste eingetragen: ',
+'inscription_listes' => 'Sie haben folgende Listen abonniert: ',
+'inscription_format' => ' im Format ',
+
+);
+
+?>
Index: /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/lang/spiplistes_en.php
===================================================================
--- /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/lang/spiplistes_en.php	(revision 90)
+++ /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/lang/spiplistes_en.php	(revision 90)
@@ -0,0 +1,440 @@
+<?php
+
+// This is a SPIP module file  --  Ceci est un fichier module de SPIP
+
+$GLOBALS['i18n_spiplistes_en'] = array(
+
+
+//_ 
+'_aide' => '<p>SPIP-Lists allows you to send newsletters or other automated messages to people who have signed up. </p> <p>You can write your message in simple text format, in HTML, or apply a stencil - called "patron" in SPIP language - which can include SPIP-code.</p>
+<p>A sign-up form on the webpage frontend allows users to decide themselves to which newsletters they want to subscribe and the format in which they want to receive it (HTML or text).</p> 
+<p>Every message is automatically converted from HTML into text format for those who prefer receiving it in this format.</p><p><b>Note:</b><br/>Sending out a newsletter can take several minutes: The batches are sent out message by message while the users browse the site. You can manually speed-up the sending process by clicking on the "Dispatches follow-up" link during the dispatch. </p>',
+
+// A
+'abo_1_lettre' => 'Newsletter',
+'abonnement_0' => 'Subscription',
+'abonnement'=>'You wish to modify your subscription to the newsletter',
+'abonnement_bouton'=>'Modify your subscription',
+'abonnement_cdt' => '<a href=\'http://bloog.net/spip-listes/\'>SPIP-Lists</a>' ,
+'abonnement_change_format'=>'You can change the format in which you will receive the newsletter or cancel your subscription: ',
+'abonnement_mail' => 'To modify your subscription, please visit the following webpage: ',
+'abonnement_mail_passcookie' => '(this is an automatically generated e-mail)
+To modify your subscription to the newsletter of this site:
+@nom_site_spip@ (@adresse_site@)
+
+Please visit the following page:
+
+@adresse_site@/spip.php?page=abonnement&d=@cookie@
+
+There, you can confirm any modification to your subscription',
+'abonnement_modifie'=>'Your modifications have been registered.',
+'abonnement_nouveau_format'=>'The format in which you will receive the newsletter will be from now on: ',
+'abonnement_titre_mail'=>'Modify your subscription',
+'abonnement_texte_mail'=>'Please specify which e-mail address you used when signing up previously. 
+You will receive an e-mail with a link to the page where you can modify your subscription.',
+'abonner' => 'Subscribe',
+'abonnes_liste_int' => '<br />Subscribers to internal lists: ',
+'abonnes_liste_pub' => '<p>Subscribers to public lists: ',
+'actualiser' => 'Update',
+'a_destination' => 'to ',
+'adresse' => 'Enter here the reply-to e-mail address (otherwise the default webmaster\'s address will be used):',
+'adresse_envoi' => 'Default sender\'s address',
+'adresses_importees' => 'Imported addresses',
+'adresse_smtp' => 'e-mail address of SMTP <i>sender</i>',
+'aff_redac' => 'Editing in progress',
+'aff_encours' => 'Sending in progress',
+'aff_envoye' => 'Messages sent',
+'aff_lettre_auto' => 'Sent newsletters',
+'alerte_edit' => 'The following form can be used to modify the body of a message. You can choose to start by importing a stencil to generate the content of your message.',
+'alerte_modif' => '<b>Once your message is displayed, you can modify its content </b>',
+'annuler_envoi' => 'Cancel',
+'article_entier' => 'Read the whole article',
+
+
+//B
+
+'bouton_listes' => 'Newsletters',
+'bouton_modifier' => 'Modify this mail',
+
+//C
+'calcul_patron' => 'Based on a text version stencil',
+'calcul_html' => 'Based on a html version of message',
+'Cette_liste_est' => 'This list is',
+'charger_patron' => 'Choose a stencil:',
+'charger_le_patron' => 'Generate the message',
+'choix_defini' => 'No specified choice.\n',
+'Configuration' => 'Configuration',
+'courriers' => 'Messages',
+
+//D
+'dans_jours' => 'in',
+'definir_squel' => 'Choose a template to display',
+'definir_squel_choix' => 'When editing a new message, SPIP-Lists allows you to load a stencil. Pressing a button allows will load the content of one of the stencils folder <b>/patrons</b> (located at the root of the plugin) templates into the message. <p><b>You can edit and modify these templates at will.</b></p> <ul><li>These templates may contain HTML code</li>
+<li>This templates may contain SPIP loops</li>
+<li>After loading a stencil, you can still modify the message before sending it out (for example to add text)</li>
+</ul><p>The function "Load a stencil" allows you to use customised HTML code or to create newsletters by topic with the help of SPIP loops.</p><p>Warning: the template should not contain the tags body, head or html, only the HTML code and the SPIP loops.</p>',
+'definir_squel_texte' => 'If you have an FTP access to your website, you can add SPIP templates in the folder /patrons at the root of the SPIP-site.',
+'dernier_envoi'=>'Last dispatch was',
+'devenir_redac'=>'Become an editor of this website',
+'devenir_abonne'=>'Subscribe to this website',
+'desabonnement_valid'=>'The following e-mail address is not subscribed anymore' ,
+'pass_recevoir_mail'=>'You will receive a confirmation e-mail detailing how to modify your subscription.',
+'desabonnement_confirm'=>'You are about to cancel your subscription to the newsletter',
+'date_depuis'=>'since @delai@', 
+'discussion_intro' => 'Hello, <br />Here are the discussions started on the site',
+
+//E
+'email' => 'E-mail',
+'email_envoi' => 'Mail sending',
+'envoi' => 'Send:',
+'envoi_charset' => 'Charset of dispatch',
+'envoi_date' => 'Dispatch date: ',
+'envoi_debut' => 'Start of dispatch: ',
+'envoi_fin' => 'End of dispatch: ',
+'envoi_nouv' => 'Newsletter dispatch',
+'envoi_patron' => 'stencil dispatch',
+'envoi_program' => 'Scheduled dispatch',
+'envoi_smtp' => 'When sending via SMTP, this field indicate the sender\'s address.',
+'envoi_texte' => 'If this message is all right, you can send it now',
+'erreur_envoi' => 'Number of dispatch errors: ',
+'erreur_install' => '<h3>error: spip-lists is not installed correctly!</h3>',
+'erreur_install2' => '<p>Verify the installation steps, especially whether you renamed <i>mes_options.txt</i> into <i>mes_options.php</i> or not.</p>',
+'exporter' => 'Export the subscribers list',
+
+//F
+'faq' => 'FAQ',
+'forum' => 'Forum',
+'ferme' => 'This discussion has been closed',
+'form_forum_identifiants' => 'Confirm',
+'form_forum_identifiant_confirm'=>'Your subscription has been recorded. You will receive a confirmation e-mail.',
+'format' => 'Format',
+'format2' => 'Format:',
+'format_html' => 'HTML format: ',
+'format_texte' => 'Text format: ',
+
+//H
+'Historique_des_envois' => 'Summary of dispatches',
+
+//I
+'info_auto' => 'SPIP-Lists for SPIP can automatically send messages to the subscribers with the latest news of your website (articles and news items recently published).',
+'info_heberg' => 'Some hosts disable automatic sending of e-mail messages from their servers. In this case, the following features of SPIP-Lists will not work',
+'info_nouv' => 'You have activated the automatic e-mail messages',
+'info_nouv_texte' => 'The next message will be sent in @proch@ days',
+'inscription_mail_forum' => 'This is your identification code to login to the website @nom_site_spip@ (@adresse_site@)',
+'inscription_mail_redac' => 'This is your identification code to login to the website @nom_site_spip@ (@adresse_site@) and to the private area (@adresse_site@/ecrire)',
+'inscription_visiteurs' => 'The subscription allows you to acces to the restricted parts of this website, to post messages in the forum and to receive the newsletters',
+
+'inscription_redacteurs' =>'The editorial backend is open to website visitors after registration. Once registered, you can read and comment on articles submitted for publication, submit your own articles and participate in all forums. The subscription also allows you to access the restricted parts of the website and to receive the newsletters.',
+'import_export' => 'Import / Export',
+
+//J
+'jours' => 'days',
+
+//L
+'la_liste' => 'the list:',
+'langue' => '<strong>Language:</strong>&nbsp;',
+'lire' => 'Read',
+'Listes_de_diffusion' => 'Mailing lists',
+'log' => 'Logs',
+'login' => 'Login',
+'logout' => 'Logout',
+'lot_suivant' => 'Send the next batch',
+'lieu' => 'Location',
+'lettre_d_information' => 'Newsletter',
+
+
+//M
+'mail_format' => 'You are now subscribed to the newsletter of the website @nom_site_spip@. You will receive the newsletter in the format',
+'mail_non' => 'Your e-mail address is not subscribed to the newsletter of  @nom_site_spip@',
+'message_arch' => 'Message has been archived;',
+'messages_auto' => 'Automated messages',
+'messages_auto_texte' => '<p>The default configuration of the template will automatically send messages with the list of articles and news published since the last newsletter.</p><p>you can customise the newsletter by adding your own logo and background image for the headings in the file called <b>"nouveautes.html"</b> (located in the /dist folder).</p>',
+'message_redac' => 'Editing in progress and ready to send',
+'message_en_cours' => 'Sending in progress',
+'message_type' => 'E-mail',
+'membres_liste' => 'Members list',
+'membres_groupes' => 'User groups',
+'membres_profil' => 'Profile',
+'membres_messages_deconnecte' => 'Connect to check private messages',
+'membres_sans_messages_connecte' => 'You dont have any new messages',
+'membres_avec_messages_connecte' => 'You have @nombres@ new message(s)',
+'message' => 'Message: ',
+'message_date' => 'Sent on ',
+'message_sujet' => 'subjest ',
+'messages' => 'Messages',
+'Messages_automatiques' => 'Scheduled automated messages',
+'messages_derniers' => 'Lastest messages',
+'messages_forum_clos' => 'Forum disabled',
+'messages_nouveaux' => 'New messages',
+'messages_pas_nouveaux' => 'No new messages',
+'messages_non_lus_grand' => 'No new messages',
+'messages_repondre' => 'New reply',
+'messages_voir_dernier' => 'Read last message',
+'methode_envoi' => 'Sending method',
+'mettre_a_jour' => '<h3>SPIP-lists will update</h3>',
+'moderateurs' => 'Moderators',
+'modifier' => 'Modify',
+'mis_a_jour' => 'Updated', 
+
+//n
+'nb_abonnes_plur' => ' subscribers',
+'nb_abonnes_sing' => ' subscriber',
+'nbre_abonnes' => 'Number of subscribers: ',
+'nom' => 'Username',
+'nombre_lot' => 'Number of dispatches per batch',
+'Nouveau_courrier' => 'New message',
+'nouveaute_intro' => 'Hello, <br />Here are the latest publications in the site',
+'nouveaux_messages' => 'New messages',
+'Nouvelle_liste_de_diffusion' => 'New list',
+'numero' => 'No.&nbsp;',
+
+//P
+'par_date' => 'By registration date',
+'patron_disponibles' => 'Stencils available',
+'Patrons' => 'Stencils',
+'pas_sur' => '<p>If you are not sure, choose the PHP mail function.</p>',
+'photos' => 'Photos',
+'php_mail' => 'Use the PHP mail() function',
+'poster' => 'Post a message',
+'publie' => 'Published on',
+
+//R
+'recherche' => 'Search',
+'regulariser' => 'put in order the unsubscribed for lists...<br />',
+'revenir_haut' => 'Top of the page',
+'reponse' => 'Reply to message',
+'reponse_plur' => 'replies',
+'reponse_sing' => 'reply',
+'retour' => 'E-mail address of the list administrator (reply-to)',
+
+//S
+'smtp' => 'Use SMTP',
+'spip_ident' => 'Requires identification',
+'smtp_hote' => 'Host',
+'spip_listes' => 'Spip lists',
+'smtp_port' => 'Port',
+'suivi' => 'Subscribers',
+'Suivi_des_abonnements' => 'Subscriptions follow up',
+'sujet_nouveau' => 'New subject',
+'sujet_auteur' => 'Author',
+'sujet_courrier' => '<b>Message subject</b> (required)<br />',
+'sujet_courrier_auto' => 'Subject of automated mail: ',
+'sujet_visites' => 'Visits',
+'sujets' => 'Sujects',
+'sujets_aucun' => 'No Topics in this forum yet',
+'site' => 'Website',
+'sujet_clos_titre' => 'Topic closed',
+'sujet_clos_texte' => 'This topic has been closed. You can not post any further message',
+'sur_liste' => 'to the list',
+
+//T
+'texte_boite_en_cours' => 'SPIP-List is sending out a newsletter. <p>This message will disappear once the dispatch is completed.</p>',
+'texte_courrier' => '<b>Message text</b> (HTML authorised)',
+'texte_contenu_pied' => '<br />(Message added at the bottom of each e-mail when sent)<br />',
+'texte_lettre_information' => 'This is the newsletter of',
+'texte_pied' => '<p><b>Footer text</b>',
+'Tous_les' => 'Every',
+
+//V
+'version_html' => '<b>HTML version</b>',
+'version_texte' => '<b>Text version</b>',
+'voir' => 'read',
+'vous_pouvez_egalement' => 'You can also',
+'vous_inscrire_auteur' => 'sign up as author',
+'voir_discussion' => 'Show discussion',
+
+// ====================== spip_listes.php3 ======================
+'abon' => 'SUBSCRIBERS',
+'abon_ajouter' => 'ADD A SUBSCRIBER &nbsp; ',
+'abonees' => 'all subscribers',
+'abonne_listes' => 'This contact has been added to the following listes',
+'abonne_aucune_liste' => 'Not subscribed to any list',
+'abonnement_simple' => '<b>Simple subscription: </b><br /><i>Subscribers receive a confirmation message</i>',
+'abonnement_code_acces' => '<b>Subscription with login: </b><br /><i>Additionally subscribers receive a username and password to identify on the website. </i>',
+'abonnement_newsletter' => '<b>Subscription to the newsletter. </b>',
+'acces_a_la_page' => 'You dont have access to this part of the website.',
+'adresse_deja_inclus' => 'Your e-mail address is already subscribed.',
+'autorisation_inscription' => 'SPIP-Lists has now activated visitors sign-up. ',
+
+'choisir' => 'Choose',
+'choisir_cette' => 'Choose this list',
+'confirme_envoi' => 'Please confirm',
+
+'date_act' => 'Data has been saved',
+'date_ref' => 'Reference date',
+'desabo' => 'unsubscribe',
+'desabonnement' => 'Unsubscribe',
+'desabonnes' => 'No more subscribed',
+'desole' => 'Sorry',
+'destinataire' => 'Destination',
+'destinataires' => 'Destinations',
+
+'efface' => 'has been deleted from the lists and the database',
+'efface_base' => 'has been deleted from the lists and the database',
+'email_adresse' => 'Test e-mail address',
+'email_collec' => 'Write a message',
+'email_test' => 'Send a test message',
+'email_test2' => 'the test e-mail: ',
+'email_test_liste' => 'Send to a list',
+'email_tester' => 'Test by e-mail',
+'env_esquel' => 'Scheduled sending of the stencil',
+'env_maint' => 'Send now',
+'envoyer' => 'send the e-mail',
+'envoyer_a' => 'Send to ',
+'erreur' => 'Error',
+'erreur_import' => 'The import file has an error at line ',
+
+'format_date' => 'Y/m/d',
+
+'html' => 'HTML',
+
+'importer' => 'Import a subscribers list',
+'importer_fichier' => 'Import a file',
+'importer_fichier_txt' => '<p><b>Your subscribers list needs to be in simple text format that contains only one e-mail address per line</b></p>',
+'importer_preciser' => '<p>Please specify the lists to which you want to add the addresses and the message format (HTML or txt)</p>',
+'inconnu' => 'not subscribed to the mailing list anymore',
+
+'liste_diff_publiques' => 'Public mailing lists<br /><i>The web page of the public site allows the subscription to these lists.</i>',
+'liste_sans_titre' => 'List without title',
+'listes_internes' => 'Internal mailing lists<br /><i>When sending a message you can select these lists as destination</i>',
+'listes_poubelle' => 'Lists to the dustbin',
+'lock' => 'Active lock: ',
+'liste_numero' => 'LIST NUMBER',
+
+'mail_a_envoyer' => 'Number of messages to send: ',
+'mail_tache_courante' => 'Number of e-mails sent for the current task: ',
+'messages_auto_envoye' => 'Automatically sent messages',
+'message_en_cours' => 'Editing in progress',
+'message_presque_envoye' =>'This message is ready to be sent out',
+'mode_inscription' => 'Specify the subscription mode for your visitors',
+'modif_envoi' => 'You can modify it or ask to send it out',
+'modifier_liste' => 'Modify this list:',
+
+'nb_abonnes' => 'On the list: ',
+'nb_inscrits' => 'On the site: ',
+'nb_listes' => 'Subscribe to all lists: ',
+'non_program' => 'There is no message to send out on this list.',
+'nouvelle_abonne' => 'The following subscriber has been added to the list',
+
+'pas_acces' => 'You dont have access to this webpage.',
+'plus_abonne' => ' has been unsubscribed from this list ',
+'prochain_envoi_aujd' => 'Next message to be sent out today',
+'prochain_envoi_prevu' => 'Next message that will be send out',
+'prochain_envoi_prevu_dans' => 'Next message that will be sent out in',
+'prog_env' => 'Schedule an automated dispatch',
+'prog_env_non' => 'Do not schedule a dispatch',
+'program' => 'Schedule automated sending of message',
+'plein_ecran' => '(Full screen)',
+
+'reinitialiser' => 'initialise',
+'remplir_tout' => 'All fields must be filled',
+'repartition' => 'Distribution',
+'retour_link' => 'Back',
+
+'sans_envoi' => 'Warning, there is no such e-mail address on the subscribers list, <br /> no message could be sent. Please retry<br /><br />',
+'squel' => 'Stencil: &nbsp;',
+'statut_interne' => 'Internal',
+'statut_publique' => 'Public',
+'suivi_envois' => 'Dispatches follow-up',
+'supprime_contact' => 'Delete this contact permanently',
+'supprime_contact_base' => 'Delete permanently from the database',
+
+'tableau_bord' => 'Dashbord',
+'texte' => 'Text',
+'toutes' => 'All subscribers',
+'txt_abonnement' => '(Specify here the subscription text to this list that will be published on the webpage if the list is activated)',
+'txt_inscription' => 'Subscription text: ',
+
+'une_inscription' => 'One subscriber found',
+
+'val_texte' => 'Text',
+'version' => 'version',
+'voir_historique' => 'Show sent messages',
+
+
+
+// ====================== inscription-listes.php3 / abonnement.php3 ======================
+
+'abo_listes' => 'Subscription',
+'acces_refuse' => 'You dont have access to this site anymore',
+
+'confirmation_format' => ' in format ',
+'confirmation_liste_unique_1' => 'You have been subscribed to the mailing list of the site',
+'confirmation_liste_unique_2' =>'You have chosen to receive the messages of the following newsletter:',
+'confirmation_listes_multiples_1' => 'You have been subscribed to the following newsletters ',
+'confirmation_listes_multiples_2' => 'You have chosen to receive the newsletters sent to the following mailing lists:',
+
+'erreur_adresse' => 'Error, the e-mail address you provided is not valid',
+
+'infos_liste' => 'Information on this list',
+
+
+// ====================== spip-meleuse.php3 ======================
+
+'contacts' => 'Number of contacts',
+'contacts_lot' => 'Contacts of this batch',
+'editeur' => 'Editor: ',
+'envoi_en_cours' => 'Processing dispatch',
+'envoi_tous' => 'Send to all subscribers',
+'envoi_listes' => 'Send to all subscribers to the list: ',
+'envoi_erreur' => 'Error: SPIP-Lists cannot find a destination for this message',
+'email_reponse' => 'Reply e-mail: ',
+'envoi_annule' => 'Dispatch cancelled;',
+'envoi_fini' => 'Dispatches completed',
+'erreur_destinataire' => 'Destination error: no message has been sent',
+'erreur_sans_destinataire' => 'Error: no e-mail address can be found for this message',
+'erreur_mail' => 'Error: sending impossible (make sure that the php mail() is enabled)',
+
+'forcer_lot' => 'Send the next batch',
+
+'non_courrier' => 'No more messages to send',
+'non_html' => 'It looks like your e-mail client is unable to correctly display the graphical version (HTML) of this message.',
+'sans_adresse' => 'No e-mail has been sent -> please specify a reply-to address',
+
+
+
+// ====================== inc_import_patron.php3 ======================
+
+'confirmer' => 'Confirm',
+
+'lettre_info' => 'The newsletter of ',
+
+'patron_detecte' => '<p><strong>Detected stencil for the text version</strong><p>',
+
+'patron_erreur' => 'With the current parameters, the stencil finds no news to be send',
+
+
+
+// ====================== listes.html ======================
+
+'abonees_titre' => 'Subscribers',
+
+
+// ====================== inc-presentation.php3 ======================
+
+'listes_emails' => 'Newsletters',
+
+
+// ====================== mes-options.php3 ======================
+
+
+'options' => 'radio|simple|Format :|Html,Text,unsubscribe|html,text,no',
+
+// ====================== mes-options.php3 ======================
+
+'bonjour' => 'Hello,',
+
+'inscription_response' => 'Your e-mail address has been added to the mailing list of ',
+'inscription_responses' => 'Your e-mail address has been added to the mailing lists of ',
+'inscription_liste' => 'You will receive the newsletter sent to the following mailing list : ',
+'inscription_listes' => 'You will receive the newsletters sent to the following mailing lists : ',
+'inscription_format' => ', in format ',
+
+'info_1_liste' => '1 list',
+'info_liste_2' => 'lists'
+
+);
+
+// English translation: Simon simon@okko.org reviewed by George
+
+?>
Index: /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/lang/spiplistes_es.php
===================================================================
--- /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/lang/spiplistes_es.php	(revision 90)
+++ /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/lang/spiplistes_es.php	(revision 90)
@@ -0,0 +1,443 @@
+<?php
+
+// Este es un archivo para SPIP -- This is a SPIP module file  --  Ceci est un fichier module de SPIP
+
+$GLOBALS['i18n_spiplistes_es'] = array(
+
+//_
+'_aide' => 'SPIP-Listes te permite enviar boletines informativos autom&aacute;ticos y mensajes colectivos a las personas inscritas. Puedes utilizar una plantilla, escribir un mensaje o prepararlo en HTML. 
+<br><br> Las personas inscritas pueden modificar sus opciones en l&iacute;nea: darse de baja, boletines informativos que les interesan y formato en el que quieren recibir sus mensajes (HTML/texto).
+<br><br>Los mensajes ser&aacute;n traducidos autom&aacute;ticamente al formato texto para las personas que lo soliciten o que tengan configurada su recepci&oacute;n de correos en modo texto.<br><br><b>Nota:</b><br>El env&iacute;o de mensajes puede tardar unos minutos: los env&iacute;os salen cuando se visita la parte p&uacute;blica de la web. Puedes forzar ese env&iacute;o cliqueando en el enlace "Seguimiento de env&iacute;os".',
+
+// A
+'abo_1_lettre' => '<b>Recibir boletines y correos con las novedades del sitio </b>',
+'abonnement_0' => 'Inscripci&oacute;n',
+'abonnement' => 'Inscripci&oacute;n',
+'abonnement_mod'=>'Modificar tu inscripci&oacute;n',
+'abonnement_bouton'=>'Modificar',
+'abonnement_cdt'=>'<a href=\'http://bloog.net\'>SPIP-Listes</a>' ,
+'abonnement_change_format'=>'Puedes cambiar las boletines informativos y el formato en el que recibes las novedades y los mensajes, o darte de baja. ',
+'abonnement_mail'=>'Para modificar tu inscripci&oacute;n, cliquea en este enlace',
+'abonnement_modifie'=>'Los cambios se han guardado',
+'abonnement_nouveau_format'=>'Tu nuevo formato para recibir nuestras novedades e informaciones: ',
+'abonnement_titre_mail'=>'Modificar tu inscripci&oacute;n',
+'abonnement_texte_mail'=>'Escribe la direcci&oacute;n de correo electr&oacute;nico con la que est&aacute;s inscrito(a). 
+Te enviaremos un correo electr&oacute;nico con el enlace a la p&aacute;gina en la que podr&aacute;s hacer los cambios.',
+'abonnement_mail_passcookie'=>'(este es un mensaje autom&aacute;tico)
+
+Hola. En el siguiente enlace:
+
+@adresse_site@/spip.php?page=abonnement&d=@cookie@
+
+podr&aacute;s cambiar el formato de recepci&oacute;n de los mensajes y novedades de
+"@nom_site_spip@" (@adresse_site@) o darte de baja.
+
+Un saludo
+  
+    ',
+
+'abonner' => 'inscribirse',
+'abonnement_modifie'=>'Las modificaciones se han realizado',
+'abonnement_nouveau_format'=>'Tu formato para recibir emails a partir de ahora: ',
+'abonnement_titre_mail'=>'Modificar tus datos de inscripci&oacute;n',
+'abonnement_texte_mail'=>'Indica l\'adresse la direcci&oacute;n de email con la que estabas inscrit@. 
+Recibir&aacute;s un email para acceder a la p&aacute;gina de modificaci&oacute;n de tus datos de inscripci&oacute;n.',
+'abonnes_liste_int' => '<br />Inscripciones en boletines internos: ',
+'abonnes_liste_pub' => '<p>Inscripciones en boletines p&uacute;blicos: ',
+'actualiser' => 'Actualizar esta p&aacute;gina',
+'a_destination' => 'enviar a ',
+'adresse' => 'Direcci&oacute;n de correo electr&oacute;nico para responder al mensaje (por defecto, la direcci&oacute;n del/la webmestre/webmistress ser&aacute; utilizada como direcci&oacute;n de respuesta) :',
+'adresse_envoi' => 'Remitente por defecto',
+'adresses_importees' => 'Direcciones importantes',
+'adresse_smtp' => 'direcci&oacute;n email del <i>sender</i> SMTP',
+'aff_redac' => 'Mensajes en curso de redacci&oacute;n',
+'aff_encours' => 'Mensajes a enviar',
+'aff_envoye' => 'Mensajes enviados "manualmente"',
+'aff_lettre_auto' => 'Boletines informativos enviados de forma programada',
+'aff_redac' => 'Mensajes en curso de redacci&oacute;n',
+'alerte_edit' => 'Atenci&oacute;n: este mensaje puede ser modificado por l@s administradore(a)s y lo recibir&aacute;n todas las personas inscritas para recibir el bolet&iacute;n informativo (puedes seleccionarla en el siguiente paso).<br />No utilices los mensajes colectivos nada m&aacute;s que para acontecimientos importantes de la vida del sitio.',
+'alerte_modif' => '<b>Despu&eacute;s de \'visualizar el mensaje\',<br />podr&aacute;s modificar su contenido</b>',
+'annuler_envoi' => 'Cancelar el env&iacute;o',
+'article_entier' => 'Leer el art&iacute;culo entero',
+
+// B
+
+'bouton_listes' => 'Boletines de informaci&oacute;n',
+'bouton_modifier' => 'Modificar este mensaje',
+
+//C
+'calcul_patron' => 'Calcular la versi&oacute;n texto con la plantilla',
+'calcul_html' => 'Calcular desde la versi&oacute;n HTML del mensaje',
+'Cette_liste_est' => 'Bolet&iacute;n informativo ',
+'charger_le_patron' => 'Visualizar el mensaje',
+'charger_patron' => 'Elegir una plantilla',
+'choix_defini' => 'Nada seleccionado.\n',
+'Configuration' => 'Configuraci&oacute;n',
+'courriers' => 'Mensajes',
+
+//D
+'dans_jours' => 'en',
+'definir_squel' => 'Elegir la plantilla y el formato a previsualizar',
+'definir_squel_choix' => 'Al redactar un nuevo mensaje, SPIP-Listes te permite seleccionar una plantilla. Cliqueadno en el bot&oacute;n, ver&aacute;s el contenido del mensaje en \'una de las plantillas del directorio <b>/patrons</b> (situado en la ra&iacute;z de tu sitio Spip). <p><b>Puedes personalizar estas plantillas a tu gusto.</b></p> <UL><li>Las plantillas pueden hacerse con HTML cl&aacute;sico</li>
+<li>La plantilla tambi&eacute;n puede contener bucles SPIP</li>
+<li>Despu&eacute;s de preparar el mensaje, puedes volver a editarlo antes de enviarlo (para modificar su contenido)</li>
+</ul><p>La funci&oacute;n "elegir una plantilla" permite utilizar plantillas HTML personalizadas pata tus mensajes o crear boletines de informaci&oacute;n tem&aacute;ticos ya que el contenido lo pueden gestionar los bucles de SPIP.</p><p>Atenci&oacuten: ce squelette ne doit pas contenir de balises body, head ou html mais juste du code HTML ou des boucles Spip.</p>',
+'definir_squel_texte' => 'Si dispones de acceso por FTP, puedes a&ntilde;adir esqueletos SPIP (u otras plantillas) en el directorio /patrons (en la ra&iacute;z de vuestro sitio Spip).',
+'dernier_envoi'=>'&Uacute;ltimo env&iacute;o hace',
+'devenir_redac'=>'Ser redactor(a) de este sitio',
+'devenir_abonne'=>'Bolet&iacute;n de inscripci&oacute;n',
+'desabonnement'=>'No recibir novedades del sitio por email' ,
+'desabonnement_valid'=>'La siguiente direcci&oacuten no est&aacute; inscrita para recibir nuestras novedades e informaciones' ,
+'pass_recevoir_mail'=>'Hemos enviado un correo electr&oacute;nico para que puedas cambiar tu inscripci&oacute;n.',
+'desabonnement_confirm'=>'Vas a darte de baja para recibir las novedades de este sitio',
+'date_depuis'=>'desde @delai@', //FIX ME
+'discussion_intro' => 'Hola, <br />Estos son los comentarios del sitio',
+
+//E
+'email' => 'Mensaje',
+'email_envoi' => 'Env&iacute;o de emails',
+'envoi' => 'Env&iacute;o:',
+'envoi_charset' => 'Charset del env&iacute;o',
+'envoi_date' => 'Fecha del env&iacute;o: ',
+'envoi_debut' => 'Comienzo del env&iacute;o: ',
+'envoi_fin' => 'Fin del env&iacute;o: ',
+'envoi_nouv' => 'Env&iacute;o de novedades',
+'envoi_patron' => 'Env&iacute;o de la plantilla',
+'envoi_program' => 'Env&iacute;o programado',
+'envoi_smtp' => 'Lors d\'un envoi via la m&eacute;thode SMTP ce champ d&eacute;finit l\'adresse de l\'envoyeur.',
+'envoi_texte' => 'Si has terminado tu mensaje, puedes enviarlo ya con una de estas dos opciones:',
+'erreur_envoi' => 'N&uacute;mero de env&iacute;os fallados: ',
+'erreur_install' => '<h3>error: spip-listes est&aacute; mal instalado!</h3>',
+'erreur_install2' => '<p>Comprobar los pasos de la instalaci&oacute;n, sobre todo si has renombrado bien <i>mes_options.txt</i> como <i>mes_options.php</i>.</p>',
+'exporter' => 'Exportar las inscripciones del bolet&iacute;n informativo',
+
+//F
+'faq' => 'FAQ',
+'forum' => 'Foro',
+'ferme' => 'Este foro est&aacute; cerrado',
+'form_forum_identifiants' => 'Confirmaci&oacute;n',
+'form_forum_identifiant_confirm'=>'Tu inscripci&oacute;n est&aacute; guardada, recibir&aacute;s un mensaje de confirmaci&oacute;n.',
+'forum' => 'Foro',
+'ferme' => 'Este foro est&aacute; cerrado',
+'form_forum_identifiants' => 'Confirmaci&0acute;n',
+'format' => 'Formato',
+'format2' => 'Formato:',
+'format_html' => 'Formato html: ',
+'format_texte' => 'Formato texto: ',
+
+//H
+'Historique_des_envois' => 'Env&iacute;os',
+
+//I
+'info_auto' => 'SPIP-Listes para SPIP puede enviar peri&oacute;dicamente a l@s inscrit@s, la \'informaci&oacute;n de las &uacute;ltimas novedades del sitio (art&iacute;culos, breves, mensajes en los foros, sitios sindicados,... recientemente publicados).',
+'info_heberg' => 'En algunos servidores est&aacute; desactivado el \'env&iacute;o autom&aacute;tico de mensajes. En ese caso, las siguientes opciones de SPIP-Listes para SPIP no funcionar&aacute;n',
+'info_nouv' => 'Tienes activado el env&iacute;o de novedades',
+'info_nouv_texte' => 'Pr&oacute;simo env&iacute;o de novedades en @proch@ d&iacute;as',
+'inscription_mail_forum' => 'Estos son tus identificadores para conectarte a @nom_site_spip@ (@adresse_site@)',
+'inscription_mail_redac' => 'Estos son tus identificadores para conectarte a @nom_site_spip@ (@adresse_site@) et l\'interface de rédaction (@adresse_site@/ecrire)',
+'inscription_visiteurs' => 'Inscripci&oacute;n s&oacute;lo como visitante',
+'inscription_redacteurs' =>'Inscripci&oacute;n como redactor(a)',
+'import_export' => 'Importar / Exportar',
+
+//J
+'jours' => 'd&iacute;a(s)',
+
+//L
+'langue' => '<strong>Idioma: </strong>&nbsp;',
+'lettre_d_information' => 'Mensaje informativo',
+'lieu' => 'Localizaci&oacute;n',
+'lire' => 'Leer',
+'Listes_de_diffusion' => 'Boletines de informaci&oacute;n',
+'login' => 'Conexi&oacute;n',
+'logout' => 'Desconexi&oacute;n',
+'log' => 'Logs',
+'lot_suivant' => 'Enviar siguiente lote',
+'liste_numero' => 'BOLET&Iacute;N N&Uacute;MERO:',
+
+//M
+'mail_format' => 'Est&aacute;s inscrit@ para recibir los novedades de @nom_site_spip@ en formato',
+'mail_non' => 'No est&aacute;s inscrit@ para recibir las novedades de @nom_site_spip@',
+'membres_avec_messages_connecte' => 'Tienes @nombres@ nuevo(s) mensaje(s)',
+'membres_groupes' => 'Grupos de usuari@s',
+'membres_liste' => 'Inscripciones',
+'membres_messages_deconnecte' => 'Con&eacute;ctate para verificar los mensajes privados',
+'membres_profil' => 'Perfil',
+'membres_sans_messages_connecte' => 'No hay nuevos mensajes',
+'message' => 'Mensaje: ',
+'message_arch' => 'Mensaje guardado','message_date' => 'Enviarlo ',
+'messages_auto' => 'Mensajes autom&aacute;ticos',
+'messages_auto_texte' => '<p>Por defecto la plantilla \'nouveautes.html\' permite \'enviar autom&aacute;ticamente la lista de los art&iacute;culos y breves publicados en el sitio desde el &uacute;ltimo env&iacute;o. </p><p>puedes personalizar el mensaje incluyendo una \'direcci&oacute;n, \'un logo o \'una imagen de fondo para los t&iacute;tulos de las secciones editando el archivo <b>"nouveautes.html"</b> (situado en el directorio \'/patrons\' en la ra&iacute;z de tu sitio Spip).</p>',
+'message_redac' => 'En curso de redacci&oacute;n y pendiente de ser enviado',
+'message_sujet' => 'T&iacute;tulo',
+'message_type' => 'Correo electr&oacute;nico',
+'messages_auto_envoye' => 'Novedades enviadas',
+'message_en_cours' => 'Mensaje para enviar',
+'messages' => 'Mensajes',
+'Messages_automatiques' => 'Programaci&oacute;n de env&iacute;os de boletines informativos',
+'messages_derniers' => '&uacute;ltimos mensajes',
+'messages_forum_clos' => 'Foro desactivado',
+'messages_non_lus_grand' => 'No hay mensajes nuevos',
+'messages_nouveaux' => 'Nuevos mensajes',
+'messages_pas_nouveaux' => 'No hay mensajes nuevos',
+'messages_repondre' => 'Responder',
+'messages_voir_dernier' => 'Ver el &uacute;ltimo mensaje',
+'methode_envoi' => 'Sistema de env&iacute;o',
+'mettre_a_jour' => '<h3>Acutalizar SPIP-listes</h3>',
+'moderateurs' => 'Moderadora(e)(s)',
+'modifier' => 'Cambiar',
+'mis_a_jour' => 'Actualizado',
+
+//N
+'nb_abonnes_plur' => ' inscripciones',
+'nb_abonnes_sing' => ' inscripci&oacute;n',
+'nbre_abonnes' => 'N&uacute;mero de inscripciones: ',
+'nom' => 'Nombre de usuari@',
+'nombre_lot' => 'N&uacute;mero de env&iacute;os por lote',
+'Nouveau_courrier' => 'Nuevo mensaje',
+'nouveaute_intro' => 'Hola, <br />Estas son las novedades publicadas en',
+'nouveaux_messages' => 'Nuevos mensajes',
+'Nouveau_courrier' => 'Nuevo mensaje',
+'Nouvelle_liste_de_diffusion' => 'Nuevo bolet&iacute;n',
+'numero' => 'N&nbsp;',
+
+//P
+'par_date' => 'Por fecha de inscripci&oacute;n',
+'Patrons' => 'Plantillas',
+'patron_disponibles' => 'Plantillas disponibles',
+'pas_sur' => '<p>Si tienes dudas, elige la funci&oacute;n mail de PHP.</p>',
+'photos' => 'Im&aacute;genes',
+'php_mail' => 'Utilizar la funci&oacute;n mail() de PHP',
+'poster' => 'Env&iacute;ar un mensaje',
+'prochain_envoi_prevu' => 'Pr&oacute;ximo env&iacute;o hoy',
+'plein_ecran' => '(Pantalla completa)',
+'publie' => 'Publicado el',
+
+//R
+'recherche' => 'Buscar',
+'regulariser' => 'regularizar las inscripciones en los boletines...<br />',
+'revenir_haut' => 'Ir al principio de la p&aacute;gina',
+'reponse' => 'Respuesta al mensaje',
+'reponse_plur' => 'respuestas',
+'reponse_sing' => 'respuesta',
+'retour' => 'Direcci&oacute;n de correo electr&oacute;nico del bolet&iacute;n (para las respuestas)',
+
+//S
+'smtp' => 'Utilizar SMTP',
+'spip_ident' => 'Necesitas una identificaci&oacute;n',
+'smtp_hote' => 'Servidor',
+'smtp_port' => 'Puerto',
+'spip_listes' => 'Spip-listes',
+'suivi' => 'Seguimiento de inscripciones',
+'Suivi_des_abonnements' => 'Inscripciones',
+'sujet_nouveau' => 'Nuevo mensaje',
+'sujet_auteur' => 'Autor(a)',
+'sujet_courrier' => '<b>T&iacute;tulo del mensaje</b> (obligatorio)<br />',
+'sujet_courrier_auto' => 'T&iacute;tulo del mensaje autom&aacute;tico: ',
+'sujet_visites' => 'Visitas',
+'sujets' => 'Temas',
+'sujets_aucun' => 'Por ahora no hay mensajes en este foro',
+'site' => 'Sitio web',
+'sujet_clos_titre' => 'Tema cerrado',
+'sujet_clos_texte' => 'Este tema est&aacute; cerrado, no puedes env&iacute;ar mensajes.',
+'sur_liste' => 'Con el bolet&iacute;n',
+ 
+ //T
+'texte_boite_en_cours' => 'SPIP-Listes tiene mensajes para enviar. <p> Puedes forzar su env&iacute;o entrando en "Revisar tareas pendientes".</p> <p>Este recuadro desaparecer&aacute; cuando acabe el env&iacute;o.</p>',
+'texte_courrier' => '<b>Texto del mensaje</b> (HTML autorizado)',
+'texte_contenu_pied' => '<br />(Texto a&ntilde;adido al pie de los emails al enviarlos)<br />',
+'texte_lettre_information' => 'Informaci&oacute;n de ',
+'texte_pied' => '<p><b>Texto de pie de p&aacute;gina</b>',
+'Tous_les' => 'cada',
+
+//V
+'version_html' => '<b>Versi&oacute;n HTML</b>',
+'version_texte' => '<b>Versi&oacute;n texto</b>',
+'voir' => 'vista previa',
+'vous_pouvez_egalement' => 'Cliquea',
+'vous_inscrire_auteur' => 'aqu&iacute; si quieres inscribirte como redactor(a)',
+'voir_discussion' => 'Ver el los comentarios',
+
+// ====================== spip_listes.php3 ======================
+
+'abon' => 'INSCRIPCIONES',
+'abon_ajouter' => 'A&Ntilde;ADIR INSCRIPCIONES &nbsp; ',
+'abonees' => 'Todas las inscripciones',
+'abonne_listes' => 'Este contacto est&aacute; inscrito/a en los siguientes boletines',
+'abonne_aucune_liste' => 'Inscripciones del sitio sin bolet&iacute;n',
+'abonnement_simple' => '<b>Inscripci&oacute;n simple: </b><br><i>Las personas inscritas s&oacute;lo recibir&aacute;n un mensaje de confirmaci&oacute;n</i>',
+'abonnement_code_acces' => '<b>Inscripci&oacute;n con identificadores (datos de acceso a la parte privada): </b><br><i>Las personas inscritas recibir&aacute;n un login y una contrase&ntilde;a que les permitir&aacute; acceder a la parte privada del sitio. </i>',
+'abonnement_newsletter' => '<b>Inscripci&oacute;n en los boletines</b>',
+'acces_a_la_page' => 'No tienes acceso a est&aacute; p&aacute;gina.',
+'adresse_deja_inclus' => 'Est&aacute; direcci&oacute;n de correo ya est&aacute; inscrita',
+'autorisation_inscription' => 'La bloOgletter vient d\'activer l\'autorisation de s\'inscrire aux visiteurs du site',
+
+
+'choisir' => 'Seleccionar',
+'choisir_cette' => 'Enviarlo a este grupo',
+'confirme_envoi' => 'Para confirmar el env&iacute;o ve hasta el final.',
+
+'date_act' => 'Datos actualizados',
+'date_ref' => 'Fecha de referencia',
+'desabo' => 'baja',
+'desabonnes' => 'Sin inscripci&oacute;n',
+'desole' => 'Desolado/a',
+'destinataire' => 'destinatari@',
+'destinataires' => 'Destinatari@s',
+
+'efface' => 'ha sido borrado/a de la base de datos\"',
+'efface_base' => 'Ha sido borrado/a de los boletines informativos y de la base de datos',
+'email_adresse' => 'Direcci&oacute;n de prueba',
+'email_collec' => 'Mensaje colectivo',
+'email_test' => 'Env&iacute;ar un correo de prueba',
+'email_test_liste' => 'Enviarlo a un bolet&iacute;n',
+'email_tester' => 'Enviarlo a esta direcci&oacute;n',
+'env_maint' => 'Enviar ahora',
+'env_esquel' => 'Env&iacute;o programado con la plantilla ',
+'envoyer' => 'enviar el correo',
+'envoyer_a' => 'Enviar a',
+'erreur' => 'Error',
+'erreur_import' => 'El archivo de importaci&oacute;n tiene un error en la l&iacute;nea ',
+
+'format_date' => 'd-m-Y',
+
+'html' => 'HTML',
+
+'importer' => 'Importar inscripciones',
+'importer_fichier' => 'Importar un archivo',
+'importer_fichier_txt' => '<p><b>Las inscripciones a importar deben estar en un fichero de texto que s&oacute;lo tenga una direcci&oacute;n por l&iacute;nea</b></p>',
+'importer_preciser' => '<p>Selecciona los boletines informativos y el formato para las nuevas inscripciones</p>',
+'inconnu' => 'no est&aacute; inscrit@ en el bolet&iacute;n',
+
+'liste_diff_publiques' => 'Boletines p&uacute;blicos<br><i>En la parte p&uacute;blica del sitio se propone la inscripci&oacute;n a estos boletines.</i>',
+'liste_sans_titre' => 'Bolet&iacute;n sin t&iacute;tulo',
+'listes_internes' => 'Boletines informativos internos<br /><i>Al enviar un mensaje, estos boletines son propuestos entre los posibles destinatarios</i>',
+'listes_poubelle' => 'Boletines en la papelera',
+'lock' => 'Bloqueo activo: ',
+
+'mail_a_envoyer' => 'N&uacute;mero de correos a enviar: ',
+'mail_tache_courante' => 'Correos enviados en este lote: ',
+'messages_auto_envoye' => 'Env&iacute;os autom&aacute;ticos de los boletines ya realizado',
+'message_en_cours' => 'Mensaje NO enviado',
+'message_presque_envoye' =>'Mensaje preparado para ser enviado.',
+'mode_inscription' => 'Tipo de inscripci&oacute;n',
+'modif_envoi' => 'Puedes modificarlo o enviarlo con las opciones del final.',
+'modifier_liste' => 'Modificar las inscripciones de este bolet&iacute;n:',
+
+'nb_abonnes' => 'En los boletines: ',
+'nb_inscrits' => 'En el sitio:  ',
+'nb_listes' => 'Entre todas los boletines: ',
+'non_program' => 'No hay env&iacute;os programados para este bolet&iacute;n.',
+'nouvelle_abonne' => 'La siguiente inscripci&oacute;n ha sido a&ntilde;adida al bolet&iacute;n',
+
+'pas_acces' => 'No tienes acceso permitido a esta p&aacute;gina.',
+'plus_abonne' => ' No est&aacute;s inscrit@ en este bolet&iacute;n ',
+'prochain_envoi_aujd' => 'Pr&oacute;ximo env&iacute;o hoy',
+'prochain_envoi_prevu' => 'Pr&oacute;ximo env&iacute;o',
+'prochain_envoi_prevu_dans' => 'P&oacute;ximo env&iacute;o en ',
+'prog_env' => 'Programar un env&iacute;o',
+'prog_env_non' => 'No programar el env&iacute;o',
+'program' => 'Programaci&oacute;n de env&iacute;os',
+
+'reinitialiser' => 'Actualizar',
+'remplir_tout' => 'Tous les champs doivent être remplis',
+'repartition' => 'Distribuci&oacute;n',
+'retour_link' => 'Volver',
+
+'sans_envoi' => 'La direcci&oacute;n de correo que has escrito no corresponde con ninguna inscripci&oacute;n, <br />No puede hacerse el env&iacute;o, int&eacute;ntalo otra vez<br /><br />',
+'squel' => 'Plantilla: &nbsp;',
+'statut_interne' => 'Interna',
+'statut_publique' => 'P&uacute;blica',
+'suivi_envois' => 'Revisar tareas pendientes',
+'supprime_contact' => 'Suprimir esta inscripci&oacute;n definitivamente',
+'supprime_contact_base' => 'Borrarlo definitivamente de la base de datos',
+
+'tableau_bord' => 'Cuadro resumen',
+'texte' => 'texto',
+'toutes' => 'Todas las inscripciones de este sitio',
+'txt_inscription' => 'Texto descriptivo del bolet&iacute;n informativo: ',
+'txt_abonnement' => '(Indica aqu&iacute; el texto para la inscripci&oacute;n en este bolet&iacute;n, se ver&aacute; en la zona p&uacute;blica si el bolet&iacute;n es p&uacute;blico)',
+
+'une_inscription' => 'Se ha encontrado una inscripci&oacute;n',
+
+'val_texte' => 'Texto',
+'version' => 'versi&oacute;n',
+'voir_historique' => 'Ver todos los env&iacute;os',
+
+
+// ====================== inscription-listes.php3 / abonnement.php3 ======================
+
+'abo_listes' => '<b>Boletines informativos para recibir las novedades de este sitio </b>',
+'acces_refuse' => 'No tienes acceso a este sitio',
+'confirmation_format' => ' en formato ',
+'confirmation_liste_unique_1' => 'Est&aacute;s inscrit@ para recibir los boletines informativos de este sitio',
+'confirmation_liste_unique_2' =>'Has seleccionado recibir el bolet&iacute;n informativo:',
+'confirmation_listes_multiples_1' => 'Est&aacute;s inscri@ en los boletines informativos de este sitio ',
+'confirmation_listes_multiples_2' => 'Has seleccionado recibir los mensajes de los siguientes boletines informativos:',
+
+'erreur_adresse' => 'Error, la direcci&oacute;n que has escrito no es v&aacute;lida',
+
+'infos_liste' => 'Informaci&oacute;n sobre este bolet&iacute;n informativo',
+
+
+// ====================== spip-meleuse.php3 ======================
+
+'contacts' => 'N&uacute;mero de inscripciones',
+'contacts_lot' => 'Env&iacute;os en este lote',
+'editeur' => 'Enviado por: ',
+'envoi_en_cours' => 'Realiz&aacute;ndose el env&iacute;o',
+'envoi_tous' => 'Env&iacute a todas las inscripciones del sitio',
+'envoi_listes' => 'Env&iacute;o a todas las inscripciones del bolet&iacute;n: ',
+'envoi_erreur' => 'Error : SPIP-listes no encuentra destinatari@ para este mensaje',
+'email_reponse' => 'Direcci&oacute;n de respuesta: ',
+'envoi_annule' => 'Env&iacute;o cancelado',
+'envoi_fini' => 'Env&iacute;os acabados',
+'erreur_destinataire' => 'Error de destinatari@: no enviado',
+'erreur_sans_destinataire' => 'Error: no hay destinatari@ para este mensaje',
+'erreur_mail' => 'Error: no se puede enviar el mensaje (comprueba si mail() de php est&aacute; disponible)',
+
+'forcer_lot' => 'Enviar el siguiente lote',
+
+'non_courrier' => 'No quedan correos por enviar',
+'non_html' => 'Puede que tu aplicaci&oacute;n para correo electr&oacute;nico no pueda mostrar la versi&oacute;n gr&aacute;fica (HTML) de este mensaje',
+
+'sans_adresse' => 'Correo no enviado -> No hay direcci&oacute;n de respuesta',
+
+
+
+// ====================== inc_import_patron.php3 ======================
+
+'confirmer' => 'Confirmar',
+
+'lettre_info' => 'Informaci&oacute;n de ',
+
+'patron_erreur' => 'Puede que tu mensaje tenga menos de diez car&aacute;cteres o por las opciones que tienes seleccionadas haya alg&uacute;n error en el contenido mensaje.',
+
+
+// ====================== listes.html ======================
+
+'abonees_titre' => 'Inscripciones',
+
+
+// ====================== inc-presentation.php3 ======================
+
+'listes_emails' => 'Boletines informativos<br />y mensajes colectivos',
+
+
+// ====================== mes-options.php3 ======================
+
+'bonjour' => 'Hola,',
+
+'inscription_response' => 'Est&aacute;s inscrit@ en el bolet&iacute;n informativo ',
+'inscription_responses' => 'Est&aacute;s inscrit@ en los boletines ',
+'inscription_liste' => 'Has seleccionado recibir los boletines informativos: ',
+'inscription_listes' => 'Has seleccionado recibir los boletines informativos: ',
+'inscription_format' => ' en formato ',
+
+'info_1_liste' => '1 bolet&iacute;n informativo',
+'info_liste_2' => 'boletines informativos',
+
+'options' => 'radio|brut|Formato:|Html,Texto,No recibir novedades|html,texte,non'
+
+);
+
+?>
Index: /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/lang/spiplistes_fr.php
===================================================================
--- /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/lang/spiplistes_fr.php	(revision 90)
+++ /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/lang/spiplistes_fr.php	(revision 90)
@@ -0,0 +1,441 @@
+<?php
+
+// This is a SPIP module file  --  Ceci est un fichier module de SPIP
+
+$GLOBALS['i18n_spiplistes_fr'] = array(
+
+
+//_ 
+'_aide' => '<p>SPIP-Listes permet d\'envoyer un courrier ou des courriers automatiques &agrave; des abonn&eacute;s.</p> <p>Vous pouvez &eacute;crire un texte simple, composer votre courrier en HTML ou appliquer un "patron" &agrave; votre courrier</p>
+<p>Via un formulaire d\'inscription public, les abonn&eacute;s d&eacute;finissent eux-m&ecirc;mes leur statut d\'abonnement, les listes auxquelles ils s\'abonnent et le format
+dans lequel ils souhaitent recevoir les courriers (HTML/texte). </p><p>Tout courrier sera traduit automatiquement en format texte pour les abonn&eacute;s qui en ont fait la demande.</p><p><b>Note :</b><br />L\'envoi des mails peut prendre quelques minutes : les lots partent peu &agrave; peu quand les utilisateurs parcourent le site public. Vous pouvez aussi provoquer manuellement l\'envoi des lots en cliquant sur le lien "suivi des envois" pendant un envoi.</p>',
+
+// A
+'abo_1_lettre' => 'Lettre d\'information',
+'abonnement_0' => 'Abonnement',
+'abonnement'=>'Vous souhaitez modifier votre abonnement &agrave; la lettre d\'information',
+'abonnement_bouton'=>'Modifier votre abonnement',
+'abonnement_cdt' => '<a href=\'http://bloog.net/spip-listes/\'>SPIP-Listes</a>' ,
+'abonnement_change_format'=>'Vous pouvez changer de format de r&eacute;ception ou vous d&eacute;sabonner : ',
+'abonnement_mail' => 'Pour modifier votre abonnement, veuillez vous rendre &agrave; l\'adresse suivante',
+'abonnement_mail_passcookie' => '(ceci est un message automatique)
+Pour modifier votre abonnement &agrave; la lettre d\'information de ce site :
+@nom_site_spip@ (@adresse_site@)
+
+Veuillez vous rendre &agrave; l\'adresse suivante :
+
+@adresse_site@/spip.php?page=abonnement&d=@cookie@
+
+Vous pourrez alors confirmer la modification de votre abonnement.',
+'abonnement_modifie'=>'Vos modifications sont prises en compte',
+'abonnement_nouveau_format'=>'Votre format de r&eacute;ception est d&eacute;sormais : ',
+'abonnement_titre_mail'=>'Modifier votre abonnement',
+'abonnement_texte_mail'=>'Indiquez ci-dessous l\'adresse email sous laquelle vous vous &ecirc;tes pr&eacute;c&eacute;demment enregistr&eacute;. 
+Vous recevrez un email permettant d\'acc&eacute;der &agrave; la page de modification de votre abonnement.',
+'abonner' => 's\'abonner',
+'abonnes_liste_int' => '<br />Abonn&eacute;s aux listes internes : ',
+'abonnes_liste_pub' => '<p>Abonn&eacute;s aux listes publiques : ',
+'actualiser' => 'Actualiser',
+'a_destination' => '&agrave; destination de ',
+'adresse' => 'Indiquez ici l\'adresse &agrave; utiliser pour les retours de mails (&agrave; d&eacute;faut, l\'adresse du webmestre sera utilis&eacute;e comme adresse de retour) :',
+'adresse_envoi' => 'Adresse d\'envoi par d&eacute;faut',
+'adresses_importees' => 'Adresses import&eacute;es',
+'adresse_smtp' => 'adresse email du <i>sender</i> SMTP',
+'aff_redac' => 'Courriers en cours de r&eacute;daction',
+'aff_encours' => 'Courriers en cours d\'envoi',
+'aff_envoye' => 'Courriers envoy&eacute;s',
+'aff_lettre_auto' => 'Lettres des nouveaut&eacute;s envoy&eacute;es',
+'alerte_edit' => 'Le formulaire ci-dessous permet de modifier le texte d\'un courrier. Vous pouvez choisir de commencer par importer un patron pour g&eacute;n&eacute;rer le contenu de votre message.',
+'alerte_modif' => '<b>Apr&egrave;s l\'affichage de votre courrier, vous pourrez en modifier le contenu</b>',
+'annuler_envoi' => 'Annuler l\'envoi',
+'article_entier' => 'Lire l\'article entier',
+
+
+//B
+
+'bouton_listes' => 'Lettres d\'information',
+'bouton_modifier' => 'Modifier ce courrier',
+
+//C
+'calcul_patron' => 'Calcul avec le patron version texte',
+'calcul_html' => 'Calcul depuis la version HTML du message',
+'Cette_liste_est' => 'Cette liste est',
+'charger_patron' => 'Choisir un patron pour le courrier',
+'charger_le_patron' => 'G&eacute;n&eacute;rer le courrier',
+'choix_defini' => 'Pas de choix d&eacute;finis.\n',
+'Configuration' => 'Configuration',
+'courriers' => 'Courriers',
+
+//D
+'dans_jours' => 'dans',
+'definir_squel' => 'Choisir le mod&egrave;le de courrier &agrave; pr&eacute;visualiser',
+'definir_squel_choix' => 'A la r&eacute;daction d\'un nouveau courrier, SPIP-Listes vous permet de charger un patron. En appuyant sur un bouton, vous chargez dans le corps du courrier le contenu d\'un des squelettes du repertoire <b>/patrons</b> (situ&eacute; &agrave; la racine de votre site Spip). <p><b>Vous pouvez &eacute;diter et modifier ces squelettes selon vos go&ucirc;ts.</b></p> <ul><li>Ces squelettes peuvent contenir du code HTML classique</li>
+<li>Ce squelette peut contenir des boucles Spip</li>
+<li>Apr&egrave;s le chargement du patron, vous pourrez re-&eacute;diter le courrier avant envoi (pour ajouter du texte)</li>
+</ul><p>La fonction "charger un patron" permet donc d\'utiliser des gabarits HTML personnalis&eacute;s pour vos courriers ou de cr&eacute;er des lettres d\'information th&eacute;matiques dont le contenu est d&eacute;fini gr&acirc;ce aux boucles Spip.</p><p>Attention : ce squelette ne doit pas contenir de balises body, head ou html mais juste du code HTML ou des boucles Spip.</p>',
+'definir_squel_texte' => 'Si vous disposez des codes d\'acc&egrave;s au FTP, vous pouvez ajouter des squelettes SPIP dans le r&eacute;pertoire /patrons (&agrave; la racine de votre site Spip).',
+'dernier_envoi'=>'Dernier envoi il y a',
+'devenir_redac'=>'devenir r&eacute;dacteur pour ce site',
+'devenir_abonne'=>'Vous inscrire sur ce site',
+'desabonnement_valid'=>'L\'adresse suivante n\'est plus abonn&eacute;e &agrave; la lettre d\'information' ,
+'pass_recevoir_mail'=>'Vous allez recevoir un email vous indiquant comment modifier votre abonnement. ',
+'desabonnement_confirm'=>'Vous &ecirc;tes sur le point de r&eacute;silier votre abonnement &agrave; la lettre d\'information',
+'date_depuis'=>'depuis @delai@', 
+'discussion_intro' => 'Bonjour, <br />Voici les discussions d&eacute;marr&eacute;es sur le site',
+
+
+//E
+'email' => 'E-mail',
+'email_envoi' => 'Envoi des emails',
+'envoi' => 'Envoi :',
+'envoi_charset' => 'Charset de l\'envoi',
+'envoi_date' => 'Date de l\'envoi : ',
+'envoi_debut' => 'Debut de l\'envoi : ',
+'envoi_fin' => 'Fin de l\'envoi : ',
+'envoi_nouv' => 'Envoi des nouveaut&eacute;s',
+'envoi_patron' => 'envoi du patron',
+'envoi_program' => 'Envoi programm&eacute;',
+'envoi_smtp' => 'Lors d\'un envoi via la m&eacute;thode SMTP ce champ d&eacute;finit l\'adresse de l\'envoyeur.',
+'envoi_texte' => 'Si ce courrier vous convient, vous pouvez l\'envoyer',
+'erreur_envoi' => 'Nombre d\'envois en erreur : ',
+'erreur_install' => '<h3>erreur: spip-listes est mal install&eacute;!</h3>',
+'erreur_install2' => '<p>V&eacute;rifier les &eacute;tapes d\'installation, notamment si vous avez bien renomm&eacute;<i>mes_options.txt</i> en <i>mes_options.php</i>.</p>',
+'exporter' => 'Exporter la liste d\'abonn&eacute;s',
+
+//F
+'faq' => 'FAQ',
+'forum' => 'Forum',
+'ferme' => 'Cette discussion est cl&ocirc;tur&eacute;e',
+'form_forum_identifiants' => 'Confirmation',
+'form_forum_identifiant_confirm'=>'Votre abonnement est enregistr&eacute;, vous allez recevoir un mail de confirmation.',
+'format' => 'Format',
+'format2' => 'Format :',
+'format_html' => 'Format html : ',
+'format_texte' => 'Format texte : ',
+
+//H
+'Historique_des_envois' => 'Historique des envois',
+
+//I
+'info_auto' => 'SPIP-Listes pour spip peut envoyer r&eacute;guli&egrave;rement aux inscrits, l\'annonce des derni&egrave;res nouveaut&eacute;s du site (articles et br&egrave;ves r&eacute;cemment publi&eacute;s).',
+'info_heberg' => 'Certains h&eacute;bergeurs d&eacute;sactivent l\'envoi automatique de mails depuis leurs serveurs. Dans ce cas, les fonctionnalit&eacute;s suivantes de SPIP-Listes pour SPIP ne fonctionneront pas',
+'info_nouv' => 'Vous avez activ&eacute; l\'envoi des nouveaut&eacute;s',
+'info_nouv_texte' => 'Prochain envoi des nouveaut&eacute;s dans @proch@ jours',
+'inscription_mail_forum' => 'Voici vos identifiants pour vous connecter au site @nom_site_spip@ (@adresse_site@)',
+'inscription_mail_redac' => 'Voici vos identifiants pour vous connecter au site @nom_site_spip@ (@adresse_site@) et &agrave; l\'interface de r&eacute;daction (@adresse_site@/ecrire)',
+'inscription_visiteurs' => 'L\'abonnement vous permet d\'acc&eacute;der aux parties du site en acc&egrave;s restreint,
+d\'intervenir sur les forums r&eacute;serv&eacute;s aux visiteurs enregistr&eacute;s et de recevoir les lettres d\'informations.' ,
+
+'inscription_redacteurs' =>'L\'espace de r&eacute;daction de ce site est ouvert aux visiteurs apr&egrave;s inscription.
+Une fois enregistr&eacute;, vous pourrez consulter les articles en cours de r&eacute;daction, proposer des articles
+et participer &agrave; tous les forums.  L\'inscription permet &eacute;galement d\'acc&eacute;der aux parties du site en acc&egrave;s restreint
+et de recevoir les lettres d\'informations.',
+'import_export' => 'Import / Export',
+
+//J
+'jours' => 'jours',
+
+//L
+'langue' => '<strong>Langue :</strong>&nbsp;',
+'lire' => 'Lire',
+'Listes_de_diffusion' => 'Listes de diffusion',
+'log' => 'Logs',
+'login' => 'Connexion',
+'logout' => 'D&eacute;connexion',
+'lot_suivant' => 'Provoquer l\'envoi du lot suivant',
+'lieu' => 'Localisation',
+'lettre_d_information' => 'Lettre d\'information',
+
+//M
+'mail_format' => 'Vous &ecirc;tes abonn&eacute; &agrave; la lettre d\'information du site @nom_site_spip@ en format',
+'mail_non' => 'Vous n\'&ecirc;tes pas abonn&eacute; &agrave; la lettre d\'information du site @nom_site_spip@',
+'message_arch' => 'Courrier archiv&eacute;',
+'messages_auto' => 'Courriers automatiques',
+'messages_auto_texte' => '<p>Par d&eacute;faut, le squelette des nouveaut&eacute;s permet d\'envoyer automatiquement la liste des articles et br&egrave;ves publi&eacute;s sur le site depuis le dernier envoi automatique. </p><p>vous pouvez personnaliser le message en d&eacute;finissant l\'adresse d\'un logo et d\'une image de fond pour les titres de parties en &eacute;ditant le fichier nomm&eacute; <b>"nouveautes.html"</b> (situ&eacute; &agrave; dans le rep&eacute;rtoire /dist).</p>',
+'message_redac' => 'En cours de r&eacute;daction et pr&ecirc;t &agrave; l\'envoi',
+'message_en_cours' => 'Courrier en cours d\'envoi',
+'message_type' => 'Courrier &eacute;lectronique',
+'membres_liste' => 'Liste des Membres',
+'membres_groupes' => 'Groupes d\'utilisateurs',
+'membres_profil' => 'Profil',
+'membres_messages_deconnecte' => 'Se connecter pour v&eacute;rifier ses messages priv&eacute;s',
+'membres_sans_messages_connecte' => 'Vous n\'avez pas de nouveaux messages',
+'membres_avec_messages_connecte' => 'Vous avez @nombres@ nouveau(x) message(s)',
+'message' => 'Message : ',
+'message_date' => 'Post&eacute; le ',
+'message_sujet' => 'Sujet ',
+'messages' => 'Courriers',
+'Messages_automatiques' => 'Courriers automatiques programm&eacute;s',
+'messages_derniers' => 'Derniers Messages',
+'messages_forum_clos' => 'Forum d&eacute;sactiv&eacute;',
+'messages_nouveaux' => 'Nouveaux messages',
+'messages_pas_nouveaux' => 'Pas de nouveaux messages',
+'messages_non_lus_grand' => 'Pas de nouveaux messages',
+'messages_repondre' => 'Nouvelle R&eacute;ponse',
+'messages_voir_dernier' => 'Voir le dernier message',
+'methode_envoi' => 'M&eacute;thode d\'envoi',
+'mettre_a_jour' => '<h3>SPIP-listes va mettre a jour</h3>',
+'moderateurs' => 'Mod&eacute;rateur(s)',
+'modifier' => 'Modifier',
+'mis_a_jour' => 'Mis &agrave; jour',
+
+//n
+'nb_abonnes_plur' => ' abonn&eacute;s',
+'nb_abonnes_sing' => ' abonn&eacute;',
+'nbre_abonnes' => 'Nombre d\'abonn&eacute;s : ',
+'nom' => 'Nom d\'utilisateur',
+'nombre_lot' => 'Nombre d\'envois par lot',
+'Nouveau_courrier' => 'Nouveau courrier',
+'nouveaute_intro' => 'Bonjour, <br />Voici les nouveaut&eacute;s publi&eacute;es sur le site',
+'nouveaux_messages' => 'Nouveaux messages',
+'Nouvelle_liste_de_diffusion' => 'Nouvelle liste de diffusion',
+'numero' => 'N&nbsp;',
+
+//P
+'par_date' => 'Par date d\'inscription',
+'patron_disponibles' => 'Patrons disponibles',
+'Patrons' => 'Patrons',
+'pas_sur' => '<p>Si vous n\'&ecirc;tes pas s&ucirc;r, choisissez la fonction mail de PHP.</p>',
+'photos' => 'Photos',
+'php_mail' => 'Utiliser la fonction mail() de PHP',
+'poster' => 'Poster un Message',
+'publie' => 'Publi&eacute; le',
+
+//R
+'recherche' => 'Rechercher',
+'regulariser' => 'regulariser les desabonnes avec listes...<br />',
+'revenir_haut' => 'Revenir en haut de la page',
+'reponse' => 'En r&eacute;ponse au message',
+'reponse_plur' => 'r&eacute;ponses',
+'reponse_sing' => 'r&eacute;ponse',
+'retour' => 'Adresse email du gestionnaire de la liste (reply-to)',
+
+//S
+'smtp' => 'Utiliser SMTP',
+'spip_ident' => 'Requiert une identification',
+'smtp_hote' => 'H&ocirc;te',
+'smtp_port' => 'Port',
+'spip_listes' => 'Spip listes',
+'suivi' => 'Suivi des abonnements',
+'Suivi_des_abonnements' => 'Suivi des abonnements',
+'sujet_nouveau' => 'Nouveau sujet',
+'sujet_auteur' => 'Auteur',
+'sujet_courrier' => '<b>Sujet du courrier</b> (obligatoire)<br />',
+'sujet_courrier_auto' => 'Sujet du courrier automatique : ',
+'sujet_visites' => 'Visites',
+'sujets' => 'Sujets',
+'sujets_aucun' => 'Pas de sujet dans ce forum pour l\'instant',
+'site' => 'Site web',
+'sujet_clos_titre' => 'Sujet Clos',
+'sujet_clos_texte' => 'Ce sujet est clos, vous ne pouvez pas y poster.',
+'sur_liste' => 'sur la liste',
+ 
+ //T
+'texte_boite_en_cours' => 'SPIP-Listes envoie un courrier.<p>Cette boite disparaitra une fois l\'envoi achev&eacute;.</p>',
+'texte_courrier' => '<b>Texte du courrier</b> (HTML autoris&eacute;)',
+'texte_contenu_pied' => '<br />(Message ajout&eacute; en bas de chaque email au moment de l\'envoi)<br />',
+'texte_lettre_information' => 'Voici la lettre d\'information de ',
+'texte_pied' => '<p><b>Texte du pied de page</b>',
+'Tous_les' => 'Tous les',
+
+//V
+'version_html' => '<b>Version HTML</b>',
+'version_texte' => '<b>Version texte</b>',
+'voir' => 'voir',
+'vous_pouvez_egalement' => 'Vous pouvez &eacute;galement',
+'vous_inscrire_auteur' => 'vous inscrire en tant qu\'auteur',
+'voir_discussion' => 'Voir la discussion',
+
+// ====================== spip_listes.php3 ======================
+'abon' => 'ABONNES',
+'abon_ajouter' => 'AJOUTER UN ABONNE &nbsp; ',
+'abonees' => 'tous les abonn&eacute;s',
+'abonne_listes' => 'Ce contact est abonn&eacute; aux listes suivantes',
+'abonne_aucune_liste' => 'Abonn&eacute;s &agrave; aucune liste',
+'abonnement_simple' => '<b>Abonnement simple : </b><br /><i>Les abonn&eacute;s re&ccedil;oivent un message de confirmation apr&egrave;s leur abonnement</i>',
+'abonnement_code_acces' => '<b>Abonnement avec codes d\'acc&egrave;s : </b><br /><i>Les abonn&eacute;s re&ccedil;oivent en plus un login et un mot de passe qui leur permettront de s\'identifier sur le site. </i>',
+'abonnement_newsletter' => '<b>Abonnement &agrave; la lettre d\'information</b>',
+'acces_a_la_page' => 'Vous n\'avez pas acc&egrave;s &agrave; cette page.',
+'adresse_deja_inclus' => 'Adresse d&eacute;j&agrave; connue',
+'autorisation_inscription' => 'SPIP-listes vient d\'activer l\'autorisation de s\'inscrire aux visiteurs du site',
+
+'choisir' => 'Choisir',
+'choisir_cette' => 'Choisir cette liste',
+'confirme_envoi' => 'Veuillez confirmer l\'envoi',
+
+'date_act' => 'Donn&eacute;es actualis&eacute;es',
+'date_ref' => 'Date de r&eacute;f&eacute;rence',
+'desabo' => 'd&eacute;sabo',
+'desabonnement' => 'D&eacute;sabonnement&nbsp;',
+'desabonnes' => 'D&eacute;sabonn&eacute;s',
+'desole' => 'D&eacute;sol&eacute;',
+'destinataire' => 'destinataire',
+'destinataires' => 'Destinataires',
+
+'efface' => 'a &eacute;t&eacute; effac&eacute; des listes et de la base',
+'efface_base' => 'a &eacute;t&eacute; effac&eacute; des listes et de la base',
+'email_adresse' => 'Adresse email de test',
+'email_collec' => 'R&eacute;diger un courrier',
+'email_test' => 'Envoyer un email de test',
+'email_test2' => 'l\'email de test : ',
+'email_test_liste' => 'Envoyer vers une liste de diffusion',
+'email_tester' => 'Tester par email',
+'env_esquel' => 'Envoi programm&eacute; du patron',
+'env_maint' => 'Envoyer maintenant',
+'envoyer' => 'envoyer le mail',
+'envoyer_a' => 'Envoi vers ',
+'erreur' => 'Erreur',
+'erreur_import' => 'Le fichier d\'import pr&eacute;sente une erreur &agrave; la ligne ',
+
+'format_date' => 'Y/m/d',
+
+'html' => 'HTML',
+
+'importer' => 'Importer une liste d\'abonn&eacute;s',
+'importer_fichier' => 'Importer un fichier',
+'importer_fichier_txt' => '<p><b>Votre liste d\'abonn&eacute;s doit &ecirc;tre un fichier simple (texte) qui ne comporte qu\'une adresse e-mail par ligne</b></p>',
+'importer_preciser' => '<p>Pr&eacute;cisez les listes et le format correspondant &agrave; votre import d\'abonn&eacute;s</p>',
+'inconnu' => 'n\'est plus abonn&eacute; &agrave; la liste',
+
+'la_liste' => 'la liste :',
+'liste_diff_publiques' => 'Listes de diffusion publiques<br /><i>La page du site public propose l\'inscription &agrave; ces listes.</i>',
+'liste_sans_titre' => 'Liste sans titre',
+'listes_internes' => 'Listes de diffusion internes<br /><i>Au moment de l\'envoi d\'un courrier, ces listes sont propos&eacute;es parmi les destinataires</i>',
+'listes_poubelle' => 'Vos listes de diffusion &agrave; la poubelle',
+'lock' => 'Lock actif : ',
+'liste_numero' => 'LISTE NUM&Eacute;RO',
+
+'mail_a_envoyer' => 'Nombre de mails &agrave; envoyer : ',
+'mail_tache_courante' => 'Mails envoy&eacute;s pour la t&acirc;che courante : ',
+'messages_auto_envoye' => 'Courriers automatiques envoy&eacute;s',
+'message_en_cours' => 'Ce courrier est en cours de r&eacute;daction',
+'message_presque_envoye' =>'Ce courrier est sur le point d\'&ecirc;tre envoy&eacute;',
+'mode_inscription' => 'Param&eacute;trer le mode d\'inscription des visiteurs',
+'modif_envoi' => 'Vous pouvez le modifier ou demander son envoi',
+'modifier_liste' => 'Modifier cette liste :',
+
+'nb_abonnes' => 'Dans les listes : ',
+'nb_inscrits' => 'Dans le site :  ',
+'nb_listes' => 'Incriptions dans toutes les listes : ',
+'non_program' => 'Il n\'y a pas de courrier automatique programm&eacute; pour cette liste.',
+'nouvelle_abonne' => 'L\'abonn&eacute; suivant a &eacute;t&eacute; ajout&eacute; la liste',
+
+'pas_acces' => 'Vous n\'avez pas acc&egrave;s &agrave; cette page.',
+'plus_abonne' => ' n\'est plus abonn&eacute; &agrave; la liste ',
+'prochain_envoi_aujd' => 'Prochain envoi pr&eacute;vu aujourd\'hui',
+'prochain_envoi_prevu' => 'Prochain envoi pr&eacute;vu',
+'prochain_envoi_prevu_dans' => 'Prochain envoi pr&eacute;vu dans ',
+'prog_env' => 'Programmer un envoi automatique',
+'prog_env_non' => 'Ne pas programmer d\'envoi',
+'program' => 'Programmation des courriers automatiques',
+'plein_ecran' => '(Plein &eacute;cran)',
+
+'reinitialiser' => 'reinitialiser',
+'remplir_tout' => 'Tous les champs doivent &ecirc;tre remplis',
+'repartition' => 'R&eacute;partition',
+'retour_link' => 'Retour',
+
+'sans_envoi' => 'Attention, l\'adresse email de test que vous avez fournie ne correspond &agrave; aucun abonn&eacute;, <br />l\'envoi ne peut se faire, veuillez reprendre la proc&eacute;dure<br /><br />',
+'squel' => 'Patron : &nbsp;',
+'statut_interne' => 'Interne',
+'statut_publique' => 'Publique',
+'suivi_envois' => 'Suivi des envois',
+'supprime_contact' => 'Supprimer ce contact d&eacute;finitivement',
+'supprime_contact_base' => 'Supprimer d&eacute;finitivement de la base',
+
+'tableau_bord' => 'Tableau de bord',
+'texte' => 'Texte',
+'toutes' => 'Tous les inscrits',
+'txt_abonnement' => '(Indiquez ici le texte pour l\'abonnement &agrave; cette liste, affich&eacute; sur le site public si la liste est active)',
+'txt_inscription' => 'Texte d\'inscription : ',
+
+'une_inscription' => 'Un abonn&eacute; trouv&eacute;',
+
+'val_texte' => 'Texte',
+'version' => 'version',
+'voir_historique' => 'Voir l\'historique des envois',
+
+
+// ====================== inscription-listes.php3 / abonnement.php3 ======================
+
+'abo_listes' => 'Abonnement',
+'acces_refuse' => 'Vous n\'avez plus acc&egrave;s &agrave; ce site',
+
+'confirmation_format' => ' en format ',
+'confirmation_liste_unique_1' => 'Vous &ecirc;tes abonn&eacute; &agrave la liste d\'information du site',
+'confirmation_liste_unique_2' =>'Vous avez choisi de recevoir les courriers adress&eacute;s &agrave la liste suivante :',
+'confirmation_listes_multiples_1' => 'Vous &ecirc;tes abonn&eacute; aux listes d\'informations du site ',
+'confirmation_listes_multiples_2' => 'Vous avez choisi de recevoir les courriers adress&eacute;s aux listes suivantes :',
+
+'erreur_adresse' => 'Erreur, l\'adresse email que vous avez fournie n\'est pas valide',
+
+'infos_liste' => 'Informations sur cette liste',
+
+
+// ====================== spip-meleuse.php3 ======================
+
+'contacts' => 'Nombre de contacts',
+'contacts_lot' => 'Contacts de ce lot',
+'editeur' => 'Editeur : ',
+'envoi_en_cours' => 'Envoi en cours',
+'envoi_tous' => 'Envoi &agrave; destination de tous les inscrits',
+'envoi_listes' => 'Envoi &agrave; destination des abonn&eacute;s &agrave; la liste : ',
+'envoi_erreur' => 'Erreur : SPIP-listes ne trouve pas de destinataire pour ce courrier',
+'email_reponse' => 'Email de r&eacute;ponse : ',
+'envoi_annule' => 'Envoi annul&eacute;',
+'envoi_fini' => 'Envois termin&eacute;s',
+'erreur_destinataire' => 'Erreur destinataire : pas d\'envoi',
+'erreur_sans_destinataire' => 'Erreur : aucun destinataire ne peut &ecirc;tre trouv&eacute; pour ce courrier',
+'erreur_mail' => 'Erreur : envoi du mail impossible (v&eacute;rifier si mail() de php est disponible)',
+
+'forcer_lot' => 'Provoquer l\'envoi du lot suivant',
+
+'non_courrier' => 'Pas / plus de courrier &agrave; envoyer',
+'non_html' => 'Votre logiciel de messagerie ne peut apparemment pas afficher correctement la version graphique (HTML) de cet e-mail',
+'sans_adresse' => 'Mail non envoy&eacute; -> Veuillez d&eacute;finir une adresse de r&eacute;ponse',
+
+
+
+// ====================== inc_import_patron.php3 ======================
+
+'confirmer' => 'Confirmer',
+
+'lettre_info' => 'La lettre d\'information du site',
+
+'patron_detecte' => '<p><strong>Patron d&eacute;tect&eacute; pour la version texte</strong><p>',
+
+'patron_erreur' => 'Le patron sp&eacute;cifi&eacute; ne donne pas de r&eacute;sulat avec les param&egrave;tres choisis',
+
+
+
+// ====================== listes.html ======================
+
+'abonees_titre' => 'Abonn&eacute;s',
+
+
+// ====================== inc-presentation.php3 ======================
+
+'listes_emails' => 'Lettres d\'information',
+
+
+// ====================== mes-options.php3 ======================
+
+
+'options' => 'radio|brut|Format :|Html,Texte,D&eacute;sabonnement|html,texte,non',
+
+// ====================== mes-options.php3 ======================
+
+'bonjour' => 'Bonjour,',
+
+'inscription_response' => 'Vous &ecirc;tes abonn&eacute; &agrave; la liste d\'information du site ',
+'inscription_responses' => 'Vous &ecirc;tes abonn&eacute; aux listes d\'informations du site ',
+'inscription_liste' => 'Vous avez choisi de recevoir les courriers adress&eacute;s &agrave; la liste suivante : ',
+'inscription_listes' => 'Vous avez choisi de recevoir les courriers adress&eacute;s aux listes suivantes : ',
+'inscription_format' => ' en format ',
+
+'info_1_liste' => '1 liste',
+'info_liste_2' => 'listes'
+
+);
+
+?>
Index: /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/lang/spiplistes_gl.php
===================================================================
--- /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/lang/spiplistes_gl.php	(revision 90)
+++ /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/lang/spiplistes_gl.php	(revision 90)
@@ -0,0 +1,379 @@
+<?php
+
+// Este es un archivo para SPIP -- This is a SPIP module file  --  Ceci est un fichier module de SPIP
+// Traducci&oacute;n ao galego por Berio Molina (berio@alg-a.org | http://www.berio.alg-a.org)
+
+$GLOBALS['i18n_spiplistes_gl'] = array(
+
+//_
+'_aide' => 'SPIP-Listes perm&iacute;teche enviar mansaxes colectivas &aacute;s persoas inscritas. Podes empregar unha gu&iacute;a, escribir unha mensaxe ou preparalo en HTML.
+<br><br> As persoas inscritas poden modificar as s&uacute;as opci&oacute;ns en li&ntilde;a: darse de baixa, listas de novidades que lle interesan e formato no que queren recibir as s&uacute;as mensaxes (HTML/Texto).
+<br><br>As mensaxes ser&aacute; trad
+SPIP-Listes te permite enviar un mensajes colectivos a las personas inscritas. Puedes utilizar una gu&iacute;a, escribir un mensaje o
+prepararlo en HTML. 
+<br><br> Las personas inscritas pueden modificar sus opciones en l&iacute;nea: darse de baja, listas de novidades que les interesan y formato en el que quieren recibir sus mensajes (HTML/texto).
+<br><br>Los mensajes ser&aacute;n traducidos autom&aacute;ticamente al formato texto para las personas que lo soliciten o que tengan configurada la recepci&oacute;n de correos en modo texto.<br><br><b>Nota:</b><br>El env&iacute;o de mensajes puede tardar unos minutos: los env&iacute;os salen cuando se visita la parte p&uacute;blica de la web. Puedes forzar ese env&iacute;o cliqueando en el enlace "Seguimiento de env&iacute;os".',
+
+// A
+'abo_1_lettre' => 'Inscribirse para recibir novidades de ',
+'abonnement_0' => 'Inscripci&oacute;n',
+'abonnement' => 'Inscripci&oacute;n',
+'abonnement_mod'=>'Modificar a t&uacute;a inscripci&oacute;n',
+'abonnement_bouton'=>'Modificar',
+'abonnement_cdt'=>'<a href=\'http://bloog.net\'>SPIP-Listes</a>' ,
+'abonnement_change_format'=>'Podes mudar as listas e o formato no que recibes as novidades e as mensaxes, ou darte de baixa. ',
+'abonnement_mail'=>'Para modificar a t&uacute;a inscripci&oacute;n, fai "clic" nesta ligaz&oacute;n',
+'abonnement_modifie'=>'Os cambios foron gardados',
+'abonnement_nouveau_format'=>'O teu novo formato para recibir as nosas novidades e informaci&oacute;ns: ',
+'abonnement_titre_mail'=>'Modificar a t&uacute;a inscripci&oacute;n',
+'abonnement_texte_mail'=>'Escribe o enderezo de correo electr&oacute;nico co que est&aacute;s inscrito(a). 
+Enviaremosche un correo electr&oacute;nico co enlace &aacute; p&aacute;xina na que poder&aacute;s facer os cambios.',
+'abonnement_mail_passcookie'=>'(esta &eacute; unha mensaxe autom&aacute;tica)
+
+Ola. Na seguinte ligaz&oacute;n:
+
+@adresse_site@/spip.php?page=abonnement&d=@cookie@
+
+poder&aacute;s mudar o formato de recepci&oacute;n das mensaxes e novidades de
+"@nom_site_spip@" (@adresse_site@) ou darte de baixa.
+
+Un sa&uacute;do
+  
+    ',
+
+'abonner' => 'inscribirse',
+'actualiser' => 'Actualizar esta p&aacute;xina',
+'adresse' => 'Enderezo de correo electr&oacute;nico para responder &aacute; mensaxe (por defecto, o enderezo do/a webmestre/webmistress ser&aacute; empregada como enderezo de resposta) :',
+'adresses_importees' => 'Enderezos importados ***FIXME ***',
+'aff_encours' => 'Mensaxes a enviar',
+'aff_envoye' => 'Mensaxes enviadas "manualmente"',
+'aff_lettre_auto' => 'Mensaxes enviadas &aacute;s listas de forma programada',
+'aff_redac' => 'Mensaxes en curso de redacci&oacute;n',
+'alerte_edit' => 'Atenci&oacute;n: esta mensaxe pode ser modificada pol@s administradore(a)s, sendo recibida por todas as persoas inscritas na lista (podes seleccionala no seguinte paso).<br />Non empregues as mensaxes colectivas nada m&aacute;s que para acontecementos importantes da vida do sitio.',
+'alerte_modif' => '<b>Despois de \'visualizar a mensaje\',<br />poder&aacute;s modificar o seu contenido</b>',
+'annuler_envoi' => 'Cancelar o env&iacute;o',
+
+// B
+
+
+//C
+'Cette_liste_est' => 'Lista ',
+'charger_le_patron' => 'Visualizar a mensaxe',
+'charger_patron' => 'Elexir unha gu&iacute;a',
+'Configuration' => 'Configuraci&oacute;n',
+'courriers' => 'Mensaxes',
+
+//D
+'definir_squel' => 'Elexir a gu&iacute;a e o formato a previsualizar',
+'definir_squel_choix' => 'Ao redactar unha nova mensaxe, SPIP-Listes podes seleccionar unha gu&iacute;a. Facendo clic no bot&oacute;n, ver&aacute;s o contido da mensaxe nunha das gu&iacute;as do directorio <b>/patrons</b> (ubicado na ra&iacute;z do teu sitio Spip). <p><b>Podes personalizar estas gu&iacute;as &oacute; teu gusto.</b></p> <UL><li>As gu&iacute;as poden facerse con HTML cl&aacute;sico</li>
+<li>A gu&iacute;a tami&eacute;n pode conter bucles SPIP</li>
+<li>Logo de preparar a mensaxe, podes volver a editalo antes de envialo (para mudar o seu contido)</li>
+</ul><p>A funci&oacute;n "elexir unha gu&iacute;a" permite empregar gu&iacute;as HTML personalizadas para as tuas mensaxes ou crear boletines de informaci&oacute;n tem&aacute;ticos xa que o contido o poden xestionar os bucles de SPIP.</p><p>Atenci&oacuten: este esqueleto non poder ter as etiquetas body, head ou html; tan s&oacute; o HTML e os bucles SPIP necesarios.</p>',
+'definir_squel_texte' => 'Si disp&oacute;s de acceso por FTP, podes engadir esqueletos SPIP (ou otras gu&iacute;as) no directorio /patrons (na ra&iacute;z do voso sitio Spip).',
+'devenir_redac'=>'pasar a redactor(a) deste sitio',
+'devenir_abonne'=>'Bolet&iacute;n de inscripci&oacute;n',
+
+'desabonnement_valid'=>'O seguinte enderezo non est&aacute; inscrito para recibir as nosas novidades e informaci&oacute;' ,
+'pass_recevoir_mail'=>'Enviamos un correo electr&oacute;nico para que poidas cambiar a t&uacute; inscripci&oacute;n.',
+'desabonnement_confirm'=>'Vas a darte de baixa, para non recibir m&aacute; as novidades deste sitio',
+'date_depuis'=>'depuis @delai@', //FIX ME
+
+//E
+'email' => 'Mensaxe',
+'envoi' => 'Env&iacute;o :',
+'envoi_nouv' => 'Env&iacute;o de novidades',
+'envoi_program' => 'Env&iacute;o programado',
+'envoi_texte' => 'Si remataches coa t&uacute;a mensaxe, podes enviala xa cunha destas d&uacute;as opci&oacute;ns:',
+'exporter' => 'Exportar a lista de inscripci&oacute;ns',
+
+//F
+'faq' => 'FAQ',
+'form_forum_identifiant_confirm'=>'A t&uacute;a inscripci&oacute;n est&aacute; gardada, recibir&aacute;s unha mensaje de confirmaci&oacute;n.',
+'forum' => 'Foro',
+'ferme' => 'Este foro pechouse',
+'form_forum_identifiants' => 'Confirmaci&oacute;n',
+'format' => 'Formato',
+
+//H
+'Historique_des_envois' => 'Env&iacute;os',
+
+//I
+'info_auto' => 'SPIP-Listes para SPIP pode enviar peri&oacute;dicamente @s inscrit@s, a \'informaci&oacute;n das &uacute;ltimas novidades do sitio (art&iacute;gos, breves, mensaxes nos foros, sitios sindicados,... recentemente publicados).',
+'info_heberg' => 'Nalg&uacute;ns servidores est&aacute; desactivado o \'env&iacute;o autom&aacute;tico de mensaxes. Nese caso, as seguintes opci&oacute;ns de SPIP-Listes para SPIP non funcionar&aacute;n',
+'info_nouv' => 'Tes activado o env&iacute;o de novidades',
+'info_nouv_texte' => 'Pr&oacute;ximo env&iacute;o de novidades en @proch@ d&iacute;as',
+'inscription_mail_forum' => 'Estos son os teus identificadores para conectarte a @nom_site_spip@ (@adresse_site@)',
+'inscription_mail_redac' => 'Estos son os teus identificadores para conectarte a @nom_site_spip@ (@adresse_site@) et l\'interface de rédaction (@adresse_site@/ecrire)',
+
+'inscription_visiteurs' => 'Inscripci&oacute;n como visitante',
+
+'inscription_redacteurs' =>'Inscripci&oacute;n como redactor(a)',
+'import_export' => 'Import / Export *** FIXME ***',
+
+//J
+'jours' => 'd&iacute;a(s)',
+
+//L
+'lettre_d_information' => 'Informaci&oacute;n',
+'lieu' => 'Localizaci&oacute;n',
+'Listes_de_diffusion' => 'Listas',
+'login' => 'Conexi&oacute;n',
+'logout' => 'Desconexi&oacute;n',
+'lot_suivant' => 'Enviar seguinte lote',
+'liste_numero' => 'LISTA NUMERO***FIX ME***',
+
+
+//M
+'mail_format' => 'Est&aacute;s inscrit@ para recibir as novidades de @nom_site_spip@ en formato',
+'mail_non' => 'Non est&aacute;s inscrit@ para recibir as novidades de @nom_site_spip@',
+'membres_avec_messages_connecte' => 'Tes @nombres@ novo(s) mensaxe(s)',
+'membres_groupes' => 'Grupos de usuari@s',
+'membres_liste' => 'Inscripci&oacute;ns',
+'membres_messages_deconnecte' => 'Con&eacute;ctate para verificar as mensaxes privadas',
+'membres_profil' => 'Perfil',
+'membres_sans_messages_connecte' => 'Non hai novas mensaxes',
+'message' => 'Mensaxe: ',
+'message_arch' => 'Mensaxe gardada','message_date' => 'Envialo ',
+'messages_auto' => 'Mensaxes autom&aacute;ticas',
+'messages_auto_texte' => '<p>Por defecto a gu&iacute;a \'nouveautes.html\' permite \'enviar autom&aacute;ticamente a lista dos art&iacute;gos e breves publicados no sitio dende o &uacute;ltimo env&iacute;o. </p><p>podes personalizar a mensaxe inclu&iacute;ndo unha \'direcci&oacute;n, \'un logo ou \'unha imaxe de fondo para os t&iacute;tulos das secciones editando o arquivo <b>"nouveautes.html"</b> (situado no directorio \'/patrons\' na ra&iacute;z do teu sitio Spip).</p>',
+'message_redac' => 'En curso de redacci&oacute;n e pendente de ser enviado',
+'message_sujet' => 'Mensaxe: ',
+'message_type' => 'Correo electr&oacute;nico',
+'messages_auto_envoye' => 'Novidades enviadas',
+'message_en_cours' => 'Mensaxe para enviar',
+'messages' => 'Mensaxes',
+'Messages_automatiques' => 'Programaci&oacute;n de env&iacute;os &aacute;s listas',
+'messages_derniers' => '&uacute;ltimos mensaxes',
+'messages_forum_clos' => 'Foro desactivado',
+'messages_non_lus_grand' => 'Non hai mensaxes novas',
+'messages_nouveaux' => 'Novos mensaxes',
+'messages_pas_nouveaux' => 'Non hai mensaxes novas',
+'messages_repondre' => 'Responder',
+'messages_voir_dernier' => 'Ver a &uacute;ltima mensaxe',
+'moderateurs' => 'Moderadora(e)(s)',
+'modifier' => 'Cambiar',
+'mis_a_jour' => 'Updated', // FIXME
+
+//N
+'nom' => 'Nome de usuari@',
+'nouveaux_messages' => 'Novas mensaxes',
+'Nouveau_courrier' => 'Nova mensaxe',
+'Nouvelle_liste_de_diffusion' => 'Nova lista',
+
+//P
+'par_date' => 'Por data de inscripci&oacute;n',
+'Patrons' => 'gu&iacute;as',
+'patron_disponibles' => 'gu&iacute;as disponibles',
+'poster' => 'Env&iacute;ar unha mensaxe',
+'prochain_envoi_prevu' => 'Pr&oacute;ximo env&iacute;o hoxe',
+'plein_ecran' => '(Plein &eacute;cran) ****FIX ME***',
+
+
+//R
+'recherche' => 'Procurar',
+'revenir_haut' => 'Ir ao principio da p&aacutexina',
+'reponse' => 'Resposta &aacute; mensaxe',
+'retour' => 'Direcci&oacute;n de correo electr&oacute;nico da lista (para as respostas)',
+
+//S
+'suivi' => 'Seguimento de inscrit@s',
+'Suivi_des_abonnements' => 'Inscripci&oacute;ns',
+'sujet_nouveau' => 'Nova mensaxe',
+'sujet_auteur' => 'Autor(a)',
+'sujet_visites' => 'Visitas',
+'sujets' => 'Temas',
+'sujets_aucun' => 'De momento non hai mensaxes neste foro',
+'site' => 'Sitio web',
+'sujet_clos_titre' => 'Tema fechado',
+'sujet_clos_texte' => 'Este tema est&aacute; fechado, non podes env&iacute;ar mensaxes.',
+ 
+ //T
+'texte_boite_en_cours' => 'SPIP-Listes ten mensaxes para enviar. <p> Podes forzar o seu env&iacute;o entrando en "Revisar tareas pendentes".</p> <p>Este recadro desaparecer&aacute; cando remate o env&iacute;o.</p>',
+'texte_lettre_information' => 'Informaci&oacute;n de ',
+'Tous_les' => 'cada',
+
+//V
+'voir' => 'vista previa',
+
+// ====================== spip_listes.php3 ======================
+
+'abon' => 'INSCRIPCI&Oacute;NS',
+'abon_ajouter' => 'ENGADIR ISNCRIPCI&Oacute;NS &nbsp; ',
+'abonees' => 'Todas as inscripci&oacute;ns',
+'abonne_listes' => 'Este contacto est&aacute; inscrito/a nas seguintes listas',
+'abonne_aucune_liste' => 'Abonn&eacute;s &agrave; aucune liste (FIXME)',
+'abonnement_simple' => '<b>Inscripci&oacute;n simple: </b><br><i>As persoas inscritas s&oacute; recibir&aacute;n unha mensaxe de confirmaci&oacute;n</i>',
+'abonnement_code_acces' => '<b>Inscripci&oacute;n con identificadores: </b><br><i>
+As persoas inscritas recibir&aacute;n un login e un contrasinal que lles permitir&aacute; acceder &aacute; parte privada do sitio</i>',
+'abonnement_newsletter' => '<b>Inscripci&oacute;n nas listas</b>',
+'acces_a_la_page' => 'Non tes acceso a est&aacute; p&aacute;xina.',
+'adresse_deja_inclus' => 'Est&aacute; direcci&oacute;n de correo xa est&aacute; inscrita',
+'autorisation_inscription' => 'La bloOgletter vient d\'activer l\'autorisation de s\'inscrire aux visiteurs du site',
+
+
+'choisir' => 'Seleccionar',
+'choisir_cette' => 'Envialo a esta lista',
+'confirme_envoi' => 'Para confirmar o seu env&iacute;o vai ata o final.',
+
+'date_act' => 'Datos actualizados',
+'date_ref' => 'Data de referencia',
+'desabo' => 'baixa',
+'desabonnes' => 'Sin inscripci&oacute;n en listas',
+'desole' => 'Desolado/a',
+'destinataire' => 'destinatari@',
+'destinataires' => 'Destinatari@s',
+
+'efface' => 'foi borrado/a da base de datos\"',
+'efface_base' => 'Foi borrado/a das listas e da base de datos',
+'email_adresse' => 'Direcci&oacute;n de proba',
+'email_collec' => 'Mensaxe colectiva',
+'email_test' => 'Env&iacute;ar un correo de proba',
+'email_test_liste' => 'Envialo a unha lista',
+'email_tester' => 'Envialo a esta direcci&oacute;n',
+'env_maint' => 'Enviar agora',
+'env_esquel' => 'Env&iacute;o programado coa gu&iacute;a ',
+'envoyer' => 'enviar o correo',
+'envoyer_a' => 'Enviar a',
+'erreur' => 'Erro',
+'erreur_import' => 'O arquivo de importaci&oacute;n ten un erro na li&ntilde;a ',
+
+'format_date' => 'd-m-Y',
+
+'html' => 'HTML',
+
+'importer' => 'Importar inscripci&oacute;ns',
+'importer_fichier' => 'Importar un arquivo',
+'importer_fichier_txt' => '<p><b>
+As isncripci&oacute;ns a importar deben estar nun ficheiro de texto que s&oacute; te&ntilde;a unha direcci&oacute;n por li&ntilde;a</b></p>',
+'importer_preciser' => '<p>Selecciona as listas e o formato para as novas inscripciones</p>',
+'inconnu' => 'non est&aacute; inscrit@ na lista',
+
+'liste_diff_publiques' => 'Listas p&uacute;blicas<br><i>A inscripci&oacute;n a estas listas &eacute; proposta na parte p&uacute;blica do sitio.</i>',
+'liste_sans_titre' => 'Lista sin t&iacute;tulo',
+'listes_internes' => 'Listas de difusi&oacute;n internas<br /><i>No momento do env&iacute;o dunha mensaxe, estas listas prop&oacute;&ntilde;ense entre os destinatarios</i>',
+'listes_poubelle' => 'Listas na papeleira',
+'lock' => 'Bloqueo activo: ',
+
+'mail_a_envoyer' => 'N&uacute;mero de correos a enviar: ',
+'mail_tache_courante' => 'Correos enviados neste lote: ',
+'messages_auto_envoye' => 'Env&iacute;os autom&aacute;ticos &aacute;s listas xa realizados',
+'message_en_cours' => 'Mensaxe NON enviada',
+'message_presque_envoye' =>'Mensaxe preparado para ser enviado.',
+'mode_inscription' => 'Determinar o modo de inscripci&oacute;n dos/as visitantes',
+'modif_envoi' => 'Podes modificalo ou envialo coas opci&oacute;ns do final.',
+'modifier_liste' => 'Modificar esta lista:',
+
+'nb_abonnes' => 'Nas listas: ',
+'nb_inscrits' => 'No sitio:  ',
+'nb_listes' => 'Entre todas as listas: ',
+'non_program' => 'Non hai env&iacute;os programados para esta lista.',
+'nouvelle_abonne' => 'A seguinte inscripci&oacute;n foi engadida &aacute; lista',
+
+'pas_acces' => 'Non tes acceso permitido a esta p&aacute;xina.',
+'plus_abonne' => ' Non est&aacute;s inscrit@ nesta lista ',
+'prochain_envoi_aujd' => 'Pr&oacute;ximo env&iacute;o hoxe',
+'prochain_envoi_prevu' => 'Pr&oacute;ximo env&iacute;o en ',
+'prog_env' => 'Programar un env&iacute;o',
+'prog_env_non' => 'Non programar o env&iacute;o',
+'program' => 'Programaci&oacute;n de env&iacute;os',
+
+'reinitialiser' => 'reinitialiser (FIXME)',
+'remplir_tout' => 'Todos os campos deben estar cubertos',
+'repartition' => 'Distribuci&oacute;n',
+'retour_link' => 'Volver',
+
+'sans_envoi' => 'La direcci&oacute;n de correo que escribiches non corresponde con ningunha inscripci&oacute;n, <br />Non pode facerse o env&iacute;o, int&eacute;ntao otra vez<br /><br />',
+'squel' => 'gu&iacute;a: &nbsp;',
+'statut_interne' => 'Interna',
+'statut_publique' => 'P&uacute;blica',
+'suivi_envois' => 'Revisar tareas pendentes',
+'supprime_contact' => 'Suprimir esta inscripci&oacute;n definitivamente',
+'supprime_contact_base' => 'Borralo definitivamente da base de datos',
+
+'tableau_bord' => 'Cuadro resumen',
+'texte' => 'texto',
+'toutes' => 'Todas as inscripci&oacute;ns deste sitio',
+'txt_inscription' => 'Texto para a inscripci&oacute;n: ',
+'txt_abonnement' => '(Indica aqu&iacute; o texto para a inscripci&oacute;n nesta lista, verase na zona p&ucaute;blica si a lista est&aacute; activa)',
+
+'une_inscription' => 'Atopouse unha inscripci&oacute;n',
+
+'val_texte' => 'Texto',
+'version' => 'versi&oacute;n',
+'voir_historique' => 'Ver todos os env&iacute;os',
+
+
+// ====================== inscription-listes.php3 / abonnement.php3 ======================
+
+'abo_listes' => '<b>Listas de novidades de </b>',
+'acces_refuse' => 'Non tes acceso a este sitio',
+'confirmation_format' => ' en formato ',
+'confirmation_liste_unique_1' => 'Est&aacute;s inscrit@ nas listas deste sitio',
+'confirmation_liste_unique_2' =>'Seleccionaches recibir as mensaxes da lista:',
+'confirmation_listes_multiples_1' => 'Est&aacute;s inscri@ nas listas deste sitio ',
+'confirmation_listes_multiples_2' => 'Seleccionaches recibir as mensaxes das seguintes listas:',
+
+'erreur_adresse' => 'Erro, a direcci&oacute;n que escribiches no &eacute; v&aacute;lida',
+
+'infos_liste' => 'Informaci&oacute;n sobre esta lista',
+
+
+// ====================== spip-meleuse.php3 ======================
+
+'contacts' => 'N&uacute;mero de inscripci&oacute;ns',
+'contacts_lot' => 'Env&iacute;os neste lote',
+'editeur' => 'Enviado por: ',
+'envoi_en_cours' => 'Realiz&aacute;ndose o env&iacute;o',
+'envoi_tous' => 'Env&iacute a todas as inscripci&oacute;ns do sitio',
+'envoi_listes' => 'Env&iacute;o a todas as inscripci&oacute;ns da lista: ',
+'envoi_erreur' => 'Erro : SPIP-listes non atopa destinatari@ para esta mensaxe',
+'email_reponse' => 'Direcci&oacute;n de resposta: ',
+'envoi_annule' => 'Env&iacute;o cancelado',
+'envoi_fini' => 'Env&iacute;os rematados',
+'erreur_destinataire' => 'Erro de destinatari@: non enviado',
+'erreur_sans_destinataire' => 'Erro: non hai destinatari@ para esta mensaxe',
+'erreur_mail' => 'Erro : non &eacute; posible enviar o correo (verificar si mail() de php est&aacute; dispo&ntilde;ible) ***FIXME***',
+
+'forcer_lot' => 'Enviar o seguinte lote',
+
+'non_courrier' => 'Non quedan correos por enviar',
+'non_html' => 'Pode que a t&uacute; aplicaci&oacute;n para correo electr&oacute;nico non poida mostrar a versi&oacute;n gr&aacute;fica (HTML) desta mensaxe',
+
+'sans_adresse' => 'Correo non enviado -> Non hai direcci&oacute;n de resposta',
+
+
+
+// ====================== inc_import_patron.php3 ======================
+
+'confirmer' => 'Confirmar',
+
+'lettre_info' => 'Informaci&oacute;n de ',
+
+'patron_erreur' => 'Puede que a t&uacute;a mensaxe te&ntilde;a menos de dez car&aacute;cteres ou polas opci&oacute;ns que tes seleccionadas haxa alg&uacute;n erro no contido da mensaxe.',
+
+
+// ====================== listes.html ======================
+
+'abonees_titre' => 'Inscripci&oacute;ns',
+
+
+// ====================== inc-presentation.php3 ======================
+
+'listes_emails' => 'Listas de novidades<br />e mensaxes colectivos',
+
+
+// ====================== mes-options.php3 ======================
+
+'bonjour' => 'Ola,',
+
+'inscription_response' => 'Est&aacute;s inscrit@ na lista de ',
+'inscription_responses' => 'Est&aacute;s inscrit@ nas listas de ',
+'inscription_liste' => 'Seleccionaches recibir as mensaxes da lista: ',
+'inscription_listes' => 'Seleccionaches recibir as mensaxes das listas: ',
+'inscription_format' => ' en formato ',
+
+'options' => 'radio|brut|Formato:|Html,Texto,Non recibir novidades|html,texte,non',
+
+);
+
+?>
Index: /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/lang/spiplistes_it.php
===================================================================
--- /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/lang/spiplistes_it.php	(revision 90)
+++ /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/lang/spiplistes_it.php	(revision 90)
@@ -0,0 +1,435 @@
+<?php
+
+// This is a SPIP module file  --  Ceci est un fichier module de SPIP
+
+$GLOBALS['i18n_spiplistes_it'] = array(
+
+
+//_
+'_aide' => 'La funzionalit&agrave; Newsletter permette di inviare una lettera a chi &egrave; abbonato. &Egrave; possibile utilizzare un modello preimpostato, scrivere un testo non formattato o
+comporre il messaggio in HTML. 
+<br /><br /> Gli iscritti definiscono on line il proprio status di abbonamento, le liste alle quali vogliono far parte e il formato 
+col quale desiderano ricevere le comunicazioni (HTML/testo). <br /><br />Ogni messaggio verr&agrave; tradotto automaticamente in formato testo per quegli iscritti che ne hanno fatto richiesta.<br /><br /><b>Nota:</b><br />L\'invio delle e-mail pu&ograve; durare alcuni minuti: i flussi partono a poco a poco mentre gli utenti visitano il sito pubblico. &Egrave; anche possibile provocare manualmente l\'invio dei flussi cliccando sul link "controlla gli invii" durante un invio.',
+
+// A
+'abo_1_lettre' => 'Iscrizione alla newsletter di',
+'abonnement_0' => 'Iscrizione',
+'abonnement'=>'Si desidera modificare la propria iscrizione alla newsletter',
+'abonnement_bouton'=>'Modifica l&#39;iscrizione',
+'abonnement_cdt' => '<a href=\'http://bloog.net\'>SPIP-Listes</a>' ,
+'abonnement_change_format'=>'&Egrave; possibile cambiare il formato del messaggio oppure cancellarsi dalla lista: ',
+'abonnement_mail' => 'Per modificare il proprio abbonamento &egrave; necessario andare all\'indirizzo seguente',
+'abonnement_mail_passcookie' => '(questo &egrave; un messaggio automatico)
+Per modificare la propria iscrizione alla newsletter di questo sito:
+@nom_site_spip@ (@adresse_site@)
+
+Andate all\'indirizzo seguente:
+
+@adresse_site@/spip.php?page=abonnement&d=@cookie@
+
+In seguito potete confermare la variazione del vostro abbonamento.',
+'abonnement_modifie'=>'Le modifiche sono state registrate',
+'abonnement_nouveau_format'=>'Da ora riceverete i messaggi con il seguente formato: ',
+'abonnement_titre_mail'=>'Modifica l\'abbonamento',
+'abonnement_texte_mail'=>'Indicare nello spazio sottostante l\'indirizzo email con il quale vi siete registrati precedentemente. 
+Riceverete una email che vi permetter&agrave; di accedere alla pagina di modifica del vostro abbonamento.',
+'abonner' => 'iscriversi',
+'abonnes_liste_int' => '<br />Abbonati alle liste interne : ',
+'abonnes_liste_pub' => '<p>Abbonati alle liste pubbliche : ',
+'actualiser' => 'Aggiorna',
+'a_destination' => 'a destinazione ',
+'adresse' => 'Indicare qui l\'indirizzo da utilizzare come Reply-To (se vuoto verr&agrave; utilizzato l\'indirizzo del webmaster):',
+'adresse_envoi' => 'Indirizzo di Invio di Default',
+'adresses_importees' => 'Indirizzi importati',
+'adresse_smtp' => 'indirizzo email del <i>mittente</i> SMTP',
+'aff_redac' => 'Messaggi in corso di redazione',
+'aff_encours' => 'Messaggi in corso di spedizione',
+'aff_envoye' => 'Messaggi inviati',
+'aff_lettre_auto' => 'Newsletter inviate',
+'alerte_edit' => 'Attenzione: questo messaggio pu&ograve; essere modificato da tutti gli amministratori del sito e viene spedito a tutti gli iscritti. Non utilizzare la newsletter se non per informare via email di avvenimenti importanti della vita del sito.',
+'alerte_modif' => '<b>Dopo aver visualizzato il messaggio &egrave; possibile modificarne il contenuto</b>',
+'annuler_envoi' => 'Annulla l\'invio',
+'article_entier' => 'Leggi l\'articolo intero',
+
+// B 
+
+'bouton_listes' => 'Newsletter',
+'bouton_modifier' => 'Modifica questo messaggio',
+ 
+//C
+'calcul_patron' => 'Calcola con il Modello della Versione di Testo',
+'calcul_html' => 'Calcola poi la versione HTML del messaggio',
+'Cette_liste_est' => 'Questa lista &egrave;',
+'charger_patron' => 'Scegli un modello',
+'charger_le_patron' => 'Genera il messaggio',
+'choix_defini' => 'Nessuna scelta definita.\n',
+'Configuration' => 'Configurazione',
+'courriers' => 'Messaggi',
+
+//D
+'dans_jours' => 'in',
+'definir_squel' => 'Scegli il modello di messaggio per l\'anteprima',
+'definir_squel_choix' => 'Durante la stesura di un nuovo messaggio, SPIP-Listes permette di caricare un modello preimpostato. Cliccando su un pulsante, nel corpo del messaggio verr&agrave; caricato il contenuto di uno dei modelli di layout della cartella <b>/patrons</b> (situata alla radice del proprio sito SPIP). <p><b>&Egrave; possibile creare e modificare questi modelli a piacimento.</b></p> <ul><li>Questi modelli possono contenere codice HTML classico</li>
+<li>Questo modello pu&ograve; contenere cicli di SPIP</li>
+<li>Dopo aver caricato il modello, &egrave; possibile riscrivere il messaggio prima dell\'invio (per aggiungere del testo)</li>
+</ul><p>La funzione "carica un modello preimpostato" permette di utilizzare delle maschere in HTML personalizzate per i propri messaggi oppure di creare delle newsletter tematiche il cui contenuto viene definito usando i cicli di SPIP.</p><p>Attenzione: questo modello non deve contenere tag BODY, HEAD o HTML ma solo codice HTML o cicli SPIP.</p>',
+'definir_squel_texte' => 'Se si dispone dei codici di accesso FTP &egrave; possibile aggiungere modelli SPIP nella cartella /patrons (alla radice del proprio sito SPIP).',
+'dernier_envoi'=>'Ultimo invio :',
+'devenir_redac'=>'diventare redattore di questo sito',
+'devenir_abonne'=>'Iscriversi su questo sito',
+'desabonnement_valid'=>'L\'indirizzo seguente non &egrave; pi&ugrave; iscritto alla newsletter' ,
+'pass_recevoir_mail'=>'Riceverete una email con le indicazioni per modificare il proprio abbonamento. ',
+'desabonnement_confirm'=>'State per cancellare l\'abbonamento alla newsletter',
+'date_depuis'=>'Negli ultimi @delai@',
+'discussion_intro' => 'Salve, <br />Ecco le discussioni iniziate sul sito',
+
+//E
+'email' => 'E-mail',
+'email_envoi' => 'invio di emails',
+'envoi' => 'Invio:',
+'envoi_charset' => 'Set di Caratteri per l\'invio',
+'envoi_date' => 'Data dell\'invio : ',
+'envoi_debut' => 'Inizio dell\'invio : ',
+'envoi_fin' => 'Fine dell\'invio : ',
+'envoi_nouv' => 'Invio delle novit&agrave;',
+'envoi_patron' => 'invio del modello',
+'envoi_program' => 'Invio programmato',
+'envoi_smtp' => 'Nel caso di un invio via con metodo SMTP questo campo definisce l\'indirizzo del mittente.',
+'envoi_texte' => 'Se questo messaggio &egrave; pronto potete inviarlo',
+'erreur_envoi' => 'Numero di invii in errore : ',
+'erreur_install' => '<h3>errore: spip-listes non è installato correttamente!</h3>',
+'erreur_install2' => '<p>Verificate i passi dell\'installazione, soprattutto se avete rinominatoil file<i>mes_options.txt</i> in <i>mes_options.php</i>.</p>',
+'exporter' => 'Esporta l\'elenco degli abbonati',
+
+//F
+'faq' => 'FAQ',
+'forum' => 'Forum',
+'ferme' => 'Questa discussione &egrave; chiusa',
+'form_forum_identifiants' => 'Conferma',
+'form_forum_identifiant_confirm'=>'L\'iscrizione &egrave; stata registrata. Riceverete una email di conferma.',
+'format' => 'Formato',
+'format2' => 'Formato :',
+'format_html' => 'Formato html : ',
+'format_texte' => 'Formato testo : ',
+
+//H
+'Historique_des_envois' => 'Storico degli invii',
+
+//I
+'info_auto' => 'SPIP-Listes per SPIP pu&ograve; inviare periodicamente agli iscritti, l\'annuncio delle ultime novit&agrave; del sito (articoli e brevi pubblicati di recente).',
+'info_heberg' => 'Alcuni hoster disattivano l\'invio automatico di email dai propri server. In tal caso, le seguenti funzionalit&agrave; di SPIP-Listes per SPIP non potranno funzionare',
+'info_nouv' => 'L\'invio delle novit&agrave; &egrave; stato attivato',
+'info_nouv_texte' => 'Prossimo invio delle novit&agrave; tra @proch@ giorni',
+'inscription_mail_forum' => 'Questi sono i dati di identificazione per connettersi al sito @nom_site_spip@ (@adresse_site@)',
+'inscription_mail_redac' => 'Questi sono i dati di identificazione per connettersi al sito @nom_site_spip@ (@adresse_site@) e all\'interfaccia di redazione (@adresse_site@/ecrire)',
+'inscription_visiteurs' => 'L\'abbonamento permette di accedere alle zone riservate del sito,
+di intervenire nei forum riservati ai visitatori registrati e di ricevere le newsletter.' ,
+
+'inscription_redacteurs' =>'L\'area di redazione di questo sito &egrave; aperta ai visitatori previa iscrizione.
+Dopo essersi registrati &egrave; possibile consultare gli articoli in corso di redazione, proporre articoli 
+e partecipare a tutti i forum.  L\'iscrizione permette di accedere anche alle zone riservate del sito 
+e ricevere le newsletter.',
+'import_export' => 'Importa / Esporta',
+
+//J
+'jours' => 'giorni',
+
+//L
+'langue' => '<strong>Lingua :</strong>&nbsp;',
+'lire' => 'Leggere',
+'Listes_de_diffusion' => 'Newsletter',
+'log' => 'Log',
+'login' => 'Connessione',
+'logout' => 'Disconnessione',
+'lot_suivant' => 'Inizia l\'invio del flusso seguente',
+'lieu' => 'Localizzazione',
+'lettre_d_information' => 'Newsletter',
+'liste_numero' => 'LISTA NUMERO',
+
+
+//M
+'mail_format' => 'Siete iscritti alla newsletter del sito @nom_site_spip@ con il formato',
+'mail_non' => 'Non siete iscritti alla newsletter del sito @nom_site_spip@',
+'message_arch' => 'Messaggio archiviato',
+'messages_auto' => 'Messaggi automatici',
+'messages_auto_texte' => '<p>Di default il modello delle novit&agrave; permette di inviare in maniera automatica l\'elenco degli articoli e delle brevi pubblicati sul sito a partire dalla data dell\'invio automatico precedente. </p><p>&Egrave; possibile personalizzare il messaggio definendo l\'indirizzo di un logo e di un\'immagine di sfondo per i titoli di parti, modificando il file <b>"nouveautes.html"</b> (situato alla radice del proprio sito SPIP).</p>',
+'message_redac' => 'In corso di redazione e pronto all\'invio',
+'message_en_cours' => 'Messaggio in partenza',
+'message_type' => 'Email',
+'membres_liste' => 'Elenco dei Membri',
+'membres_groupes' => 'Gruppi di utenti',
+'membres_profil' => 'Profilo',
+'membres_messages_deconnecte' => 'Disconnettersi per verificare i propri messaggi privati',
+'membres_sans_messages_connecte' => 'Non ci sono nuovi messaggi',
+'membres_avec_messages_connecte' => 'Hai @nombres@ nuovo/i messaggio/i',
+'message' => 'Messaggio: ',
+'message_date' => 'Inviato il ',
+'message_sujet' => 'Oggetto ',
+'messages' => 'Messaggi',
+'Messages_automatiques' => 'Messaggi automatici',
+'messages_derniers' => 'Ultimi messaggi',
+'messages_forum_clos' => 'Forum disattivato',
+'messages_nouveaux' => 'Nuovi messaggi',
+'messages_pas_nouveaux' => 'Nessun nuovo messaggio',
+'messages_non_lus_grand' => 'Nessun nuovo messaggio',
+'messages_repondre' => 'Nuova risposta',
+'messages_voir_dernier' => 'Vedi l\'ultimo messaggio',
+'methode_envoi' => 'Metodo d\'invio',
+'mettre_a_jour' => '<h3>SPIP-listes si sta aggiornando</h3>',
+'moderateurs' => 'Moderatori',
+'modifier' => 'Modifica',
+'mis_a_jour' => 'Aggiornato',
+
+//n
+'nb_abonnes_plur' => ' abbonati',
+'nb_abonnes_sing' => ' abbonato',
+'nbre_abonnes' => 'Numero degli abbonati : ',
+'nom' => 'Nome dell\'utente',
+'nombre_lot' => 'Numero di invio per flusso',
+'Nouveau_courrier' => 'Nuova email',
+'nouveaute_intro' => 'Salve, <br />Queste sono le novitt&eacute; pubblicate sul sito',
+'nouveaux_messages' => 'Nuovi messaggi',
+'Nouvelle_liste_de_diffusion' => 'Nuova Newsletter',
+'numero' => 'N&nbsp;',
+//P
+'par_date' => 'Per data di iscrizione',
+'patron_disponibles' => 'Modelli disponibili',
+'Patrons' => 'Modelli',
+'pas_sur' => '<p>Se non siete sicuri, scegliete il metodo PHP.</p>',
+'photos' => 'Foto',
+'php_mail' => 'Utilizare il metodo PHP Mail',
+'poster' => 'Invia un messaggio',
+'publie' => 'Pubblica',
+
+//R
+'recherche' => 'Cerca',
+'regulariser' => 'regolarizza i non abbonati sulla newsletter...<br />',
+'revenir_haut' => 'Vai a inizio pagina',
+'reponse' => 'In risposta al messaggio',
+'reponse_plur' => 'risposte',
+'reponse_sing' => 'risposta',
+'retour' => 'Indirizzo email del maintainer della lista (Reply-To)',
+
+//S
+'smtp' => 'Utilizza SMTP',
+'spip_ident' => 'Richiede una identificazione',
+'smtp_hote' => 'Host',
+'smtp_port' => 'Porta',
+'spip_listes' => 'Spip listes',
+'suivi' => 'Gestione degli abbonamenti',
+'Suivi_des_abonnements' => 'Gestione degli abbonamenti',
+'sujet_nouveau' => 'Nuovo argomento',
+'sujet_auteur' => 'Autore',
+'sujet_courrier' => '<b>Soggetto del messaggio</b> (obbligatorio)<br />',
+'sujet_courrier_auto' => 'Soggetto del messaggio automatico : ',
+'sujet_visites' => 'Visite',
+'sujets' => 'Argomenti',
+'sujets_aucun' => 'Nessun argomento in questo forum al momento',
+'site' => 'Sito web',
+'sujet_clos_titre' => 'Argomento chiuso',
+'sujet_clos_texte' => 'Questo argomento &egrave; chiuso, non &egrave; possibile scrivere.',
+'sur_liste' => 'sulla newsletter',
+ 
+ //T
+'texte_boite_en_cours' => 'SPIP-Listes sta inviando un messaggio automatico. <p> &Egrave; possibile provocare l\'invio accelerato dei flussi usando il link in basso.</p> <p>Questo box si chiuder&agrave; al termine dell\'invio.</p>',
+'texte_courrier' => '<b>Testo del messaggio</b> (HTML autorizzato)',
+'texte_contenu_pied' => '<br />(Messaggio aggiunto in fondo alle email al momento dell\'invio)<br />',
+'texte_lettre_information' => 'Questa &egrave; la newsletter di ',
+'texte_pied' => '<p><b>Testo di fondo pagina</b>',
+'Tous_les' => 'Ogni',
+
+//V
+'version_html' => '<b>Versione HTML</b>',
+'version_texte' => '<b>Versione solo testo</b>',
+'voir' => 'vedere',
+'vous_pouvez_egalement' => 'Puoi anche',
+'vous_inscrire_auteur' => 'iscriverti come autore',
+'voir_discussion' => 'Vedi la discussione',
+
+// ====================== spip_listes.php3 ======================
+'abon' => 'ABBONATI',
+'abon_ajouter' => 'AGGIUNGI UN ABBONATO &nbsp; ',
+'abonees' => 'Tutti gli abbonati',
+'abonne_listes' => 'Questo contatto &egrave; abbonato alle liste seguenti',
+'abonne_aucune_liste' => 'Iscritti senza Newsletter',
+'abonnement_simple' => '<b>Abbonamento semplice: </b><br><i>Gli abbonati ricevono un messaggio di conferma a seguito della loro iscrizione</i>',
+'abonnement_code_acces' => '<b>Abbonamento con codici di accesso: </b><br><i>Gli abbonati ricevono anche login e password per essere identificati sul sito. </i>',
+'abonnement_newsletter' => '<b>Abbonamento alla newsletter</b>',
+'acces_a_la_page' => 'Non avete i diritti di accesso a questa pagina.',
+'adresse_deja_inclus' => 'L\'indirizzo email risulta gi&agrave; iscritto',
+'autorisation_inscription' => 'SPIP-Listes ha appena attivato l\'autorizzazione di iscriversi ai visitatori del sito',
+'spip_listes_nb_abonnes_liste' => ' Abbonati',
+'choisir' => 'Scegli',
+'choisir_cette' => 'Scegli questa Newsletter',
+'confirme_envoi' => 'Si prega di confermare l\'invio',
+
+'date_act' => 'Dati aggiornati',
+'date_ref' => 'Data di riferimento',
+'desabo' => 'cancella iscrizione',
+'desabonnement' => 'Cancellazione dell\'iscrizione&nbsp;',
+'desabonnes' => 'Non pi&ugrave; iscritti',
+'desole' => 'Spiacente',
+'destinataire' => 'destinatario',
+'destinataires' => 'Destinatari',
+
+'efface' => '&egrave; stato cancellato dalle Newsletter e dal database',
+'efface_base' => '&egrave; stato cancellato dalle Newsletter e dal database',
+'email_adresse' => 'Indirizzo email di prova',
+'email_collec' => 'Email di gruppo',
+'email_test' => 'Invia una email di prova',
+'email_test_liste' => 'Invia ad una lista',
+'email_tester' => 'Testa per email',
+'env_esquel' => 'Invio programmato del modello',
+'env_maint' => 'Invia adesso',
+'envoyer' => 'invia l&#39;email',
+'envoyer_a' => 'Invia a',
+'erreur' => 'Errore',
+'erreur_import' => 'Il file di importazione causa un errore alla linea ',
+
+'format_date' => 'd/m/Y',
+
+'html' => 'HTML',
+
+'importer' => 'Importa un elenco di abbonati',
+'importer_fichier' => 'Importa un file',
+'importer_fichier_txt' => '<p><b>L\'elenco di abbonati deve essere un file di solo testo in cui vi &egrave; un solo indirizzo email per riga</b></p>',
+'importer_preciser' => '<p>Specificare le Newsletter e il formato corrispondente all\'importazione degli abbonati</p>',
+'inconnu' => 'non &egrave; pi&ugrave; abbonato alla lista',
+
+'liste_diff_publiques' => 'Newsletter pubbliche<br><i>La pagina del sito pubblico propone l\'iscrizione a queste liste.</i>',
+'liste_sans_titre' => 'Newsletter senza titolo',
+'listes_internes' => 'Newsletter interne<br /><i>Al momento dell\'invio di un messaggio queste newsletter sono proposte ai destinatari</i>',
+'listes_poubelle' => 'Newsletter nel cestino',
+'lock' => 'Lock attivo: ',
+'liste_numero' => 'LISTA NUMERO',
+
+'mail_a_envoyer' => 'Numero di email da inviare: ',
+'mail_tache_courante' => 'Email inviati per la task corrente: ',
+'messages_auto_envoye' => 'Messaggi automatici inviati',
+'message_en_cours' => 'Si sta inviando un messaggio',
+'message_presque_envoye' =>'Si sta inviando questo messaggio.',
+'mode_inscription' => 'Definire il modo di iscrizione dei visitatori',
+'modif_envoi' => '&Egrave; possibile modificarlo o chiederne l\'invio.',
+'modifier_liste' => 'Modifica questa Newsletter',
+
+'nb_abonnes' => 'Nelle Newsletter: ',
+'nb_inscrits' => 'Nel sito:  ',
+'nb_listes' => 'Iscrizioni in tutte le Newsletter: ',
+'non_program' => 'Non c\'&egrave; alcun messaggio automatico programmato per questa Newsletter.',
+'nouvelle_abonne' => 'L\'abbonato seguente &egrave; stato aggiunto alla Newsletter',
+
+'pas_acces' => 'Non avete i diritti di accesso per questa pagina.',
+'plus_abonne' => ' non &egrave; abbonato alla Newsletter ',
+'prochain_envoi_aujd' => 'Prossimmo invio previsto oggi',
+'prochain_envoi_prevu' => 'Prossimo invio previsto ',
+'prochain_envoi_prevu_dans' => 'Prossimo invio previsto tra',
+'prog_env' => 'Programmare un invio automatico',
+'prog_env_non' => 'non programmare l\'invio',
+'program' => 'Programmazione dei messaggi automatici',
+'plein_ecran' => '(Schermo Intero)',
+
+
+'reinitialiser' => 'Aggiorna',
+'remplir_tout' => '&Egrave; obbligatorio riempire tutti i campi',
+'repartition' => 'Distribuzione',
+'retour_link' => 'Indietro',
+
+'sans_envoi' => 'Attenzione, l\'indirizzo email di prova che avete fornito non corrisponde ad alcun abbonato, <br />non &egrave; possibile effettuare l\'invio, &egrave; necessario ripetere la procedura<br /><br />',
+'squel' => 'Modello: &nbsp;',
+'statut_interne' => 'Interna',
+'statut_publique' => 'Pubblica',
+'suivi_envois' => 'Gestione degli invii',
+'supprime_contact' => 'Eliminare definitivamente questo contatto',
+'supprime_contact_base' => 'Elimina definitivamente dal database',
+
+'tableau_bord' => 'Pannello',
+'texte' => 'testo',
+'toutes' => 'Tutti gli iscritti',
+'txt_abonnement' => '(Scrivi qui il testo per l\'abbonamento a questa Newsletter, visualizzato sul sito pubblico se la Newsletter &egrave; attiva)',
+'txt_inscription' => 'Testo di iscrizione: ',
+
+'une_inscription' => 'Un abbonato trovato',
+
+'val_texte' => 'Testo',
+'version' => 'versione',
+'voir_historique' => 'Vedi lo storico degli invii',
+
+
+// ====================== inscription-listes.php3 / abonnement.php3 ======================
+
+'abo_listes' => '<b>Abbonamento alle Newsletter di </b>',
+'acces_refuse' => 'Non &egrave; pi&ugrave; possibile accedere a questo sito',
+
+'confirmation_format' => ' in formato ',
+'confirmation_liste_unique_1' => 'Siete iscritto alla newsletter del sito',
+'confirmation_liste_unique_2' =>'Avete scelto di ricevere i messaggi indirizzati alla Newsletter seguente:',
+'confirmation_listes_multiples_1' => 'Siete iscritti alle newsletter del sito ',
+'confirmation_listes_multiples_2' => 'Avete scelto di ricevere i messaggi indirizzati alle Newsletter seguenti:',
+
+'erreur_adresse' => 'Errore: l\'indirizzo email fornito non &egrave; valido',
+
+'infos_liste' => 'Informazioni su questa Newsletter',
+
+
+// ====================== spip-meleuse.php3 ======================
+
+'contacts' => 'Numero di contatti',
+'contacts_lot' => 'Contatti di questo flusso',
+'editeur' => 'Editore: ',
+'envoi_en_cours' => 'Invio in corso',
+'envoi_tous' => 'Invio a destinazione di tutti gli iscritti',
+'envoi_listes' => 'Invio a destinazione degli abbonati alla Newsletter: ',
+'envoi_erreur' => 'Errore: SPIP-Listes non trova il destinatario per questo messaggio',
+'email_reponse' => 'Email di risposta: ',
+'envoi_annule' => 'Invio annullato',
+'envoi_fini' => 'Invii terminati',
+'erreur_destinataire' => 'Errore destinatario: invio non effettuato',
+'erreur_sans_destinataire' => 'Errore: nessun destinatario trovato per questo messaggio',
+'erreur_mail' => 'Errore : invio della posta impossibile (verificare che la funzione mail() del php sia disponibile)',
+
+'forcer_lot' => 'Inizia l\'invio del flusso seguente',
+
+'non_courrier' => 'Non ci sono pi&ugrave; email da inviare',
+'non_html' => 'Sembra che il programma di messaggistica non possa visualizzare correttamente la versione grafica (HTML) di questa email',
+'sans_adresse' => 'Email non inviata -> Prego specificare un indirizzo di risposta',
+
+
+
+// ====================== inc_import_patron.php3 ======================
+
+'confirmer' => 'Conferma',
+
+'lettre_info' => 'La newsletter del sito',
+
+'patron_erreur' => 'Il modello specificato non d&agrave; alcun risultato con i parametri selezionati',
+
+
+
+// ====================== listes.html ======================
+
+'abonees_titre' => 'Abbonati',
+
+
+// ====================== inc-presentation.php3 ======================
+
+'listes_emails' => 'Newsletter',
+
+
+// ====================== mes-options.php3 ======================
+
+
+'options' => 'radio|brut|Formato:|HTML,Testo,Cancellazione|html,texte,non',
+
+// ====================== mes-options.php3 ======================
+
+'bonjour' => 'Salve,',
+
+'inscription_response' => 'Siete abbonato alla newsletter del sito ',
+'inscription_responses' => 'Siete abbonati alle newsletter del sito ',
+'inscription_liste' => 'Avete scelto di ricevere i messaggi indirizzati alla Newsletter seguente: ',
+'inscription_listes' => 'Avete scelto di ricevere i messaggi indirizzati alle Newsletter seguenti: ',
+'inscription_format' => ' in formato '
+
+);
+
+?>
Index: /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/modeles/piedmail.html
===================================================================
--- /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/modeles/piedmail.html	(revision 90)
+++ /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/modeles/piedmail.html	(revision 90)
@@ -0,0 +1,4 @@
+<hr style="noshade color:#000;size:1px;" />
+<:spiplistes:editeur:> <a href="#URL_SITE_SPIP">#NOM_SITE_SPIP</a><br />
+<a href="#URL_SITE_SPIP">#URL_SITE_SPIP</a>
+<hr style="noshade color:#000;size:1px;"/>
Index: /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/patron_switch.html
===================================================================
--- /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/patron_switch.html	(revision 90)
+++ /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/patron_switch.html	(revision 90)
@@ -0,0 +1,3 @@
+#CACHE{0}
+#HTTP_HEADER{Content-Type: text/html; charset=#CHARSET}
+<INCLURE{fond=patrons/#ENV{patron}}{date}> 
Index: /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/patrons/nouveautes.html
===================================================================
--- /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/patrons/nouveautes.html	(revision 90)
+++ /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/patrons/nouveautes.html	(revision 90)
@@ -0,0 +1,64 @@
+#CACHE{0}
+#HTTP_HEADER{Content-Type: text/html}
+[(#REM)
+/**********************************************************
+* Ce squelette pour spip-listes    
+* Patron: nouveautes.html liste les dernieres nouveautes
+* Ce squelette affiche les articles et breves publies depuis la date passee en reference
+* Utilise une balise #DATE_MODIF_SITE
+* Precautions:                             
+* - ne pas envoyer des gabarits de plus de 10Ko
+* - ne pas placer de balises html <html><body> ni de fermeture </body></html>
+* ils seront ajoutes automatiquement a l'envoi du mail 
+* - mettre les style  CSS directement dans les balises pour etre sur qu'ils seront interpretes (meme par les webmails)
+* - les urls et liens images seront automatiquement converties en absolues
+*  ex. rubrique5.html -> http://www.monsite.org/rubrique5.html
+*
+* La balise suivante est utile pour generer un message vide (non envoye) si il n'y a pas de nouveautes depuis la date indiquee
+* [ Affichage ici (#DATE_MODIF_SITE|strtotime|>{[(#ENV{date}|strtotime)]}|?{' ',''})  Affichage ici ]
+*
+***********************************************************/
+]
+
+[ 
+  <div class="body" style="background: #fff;color: #ccc;font-family:'Trebuchet MS', Tahoma, Arial, Verdana,sans-serif;font-size: 0.9em;text-align: left;">
+	<div class="conteneur" style="width: 500px;background: #fff;color: #000;text-align: left;margin: 0 auto;padding: 15px;">
+	
+	<h1 style="font-size: 1.2em;border-bottom: 1px solid #666;"><:spiplistes:abo_1_lettre:></h1>  
+	
+	  	
+	<p>
+	<:spiplistes:nouveaute_intro:>  <a href="#URL_SITE_SPIP" style="color: #f60;">#NOM_SITE_SPIP</a> [(#ENV{date}|date_depuis)]
+	</p>
+(#DATE_MODIF_SITE|strtotime|>{[(#ENV{date}|strtotime)]}|?{' ',''})
+]
+
+	 <B_breves>
+	 <h2 class="titre" style="background: #EEE;border: 1px solid #CCC;padding: 0.5em;margin-bottom: 1em;font-weight: bold;text-align: center;"><:info_breves_02:></h2>  
+	 <BOUCLE_breves(BREVES){age_relatif<0}{par date}{inverse}>
+	 [<h3 style="font-size: 1.27em;font-weight: bold;color: #000;">(#TITRE|supprimer_numero)</h3>]
+	 <span style="font-size:.8em">[<:spiplistes:publie:> (#DATE|affdate)]</span>
+	 <div style="margin-top: 5px;margin-bottom: 2em;border: 1px solid #ccc;padding: 0.9em;font-size: 0.82em;line-height: 1.4em;" >
+	 #INTRODUCTION
+	 <div class="extra" style="color: #666;"><a href="#URL_SITE_SPIP/#URL_BREVE"><:spiplistes:lire:></a></div>
+	 </div>
+	 </BOUCLE_breves>
+	
+	
+	 <B_articles>
+	 <h2 class="titre" style="background: #EEE;border: 1px solid #CCC;padding: 0.5em;margin-bottom: 1em;font-weight: bold;text-align: center;"><:info_articles:></h2> 
+	 <BOUCLE_articles(ARTICLES){age_relatif<0}{par date}{inverse}>
+	 [<h3 style="font-size: 1.27em;font-weight: bold;color: #000;">(#TITRE|supprimer_numero)</h3>]
+	 <span style="font-size:.8em">[(#DATE|affdate)], <:par_auteur:>  #LESAUTEURS</span>
+	 <div  style="margin-top: 5px;margin-bottom: 2em;border: 1px solid #ccc;padding: 0.9em;font-size: 0.82em;line-height: 1.4em;" >
+	 #INTRODUCTION
+	 <div class="extra"><a href="#URL_SITE_SPIP/#URL_ARTICLE"><:spiplistes:article_entier:></a></div>
+	 </div>
+	 </BOUCLE_articles>	
+
+
+[
+(#DATE_MODIF_SITE|strtotime|>{[(#ENV{date}|strtotime)]}|?{' ',''})
+	</div>
+  </div>
+]
Index: /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/patrons/nouveautes_forum.html
===================================================================
--- /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/patrons/nouveautes_forum.html	(revision 90)
+++ /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/patrons/nouveautes_forum.html	(revision 90)
@@ -0,0 +1,79 @@
+#CACHE{0}
+#HTTP_HEADER{Content-Type: text/html}
+[(#REM)
+/**********************************************************
+* Ce squelette pour spip-listes    
+* Patron: nouveautes_formum.html, recence les derniers messages de forums
+* Ce squelette affiche les articles et brèves publiés depuis la date passée en référence
+* Utilise une balise #DATE_MODIF_SITE
+* Précautions:                             
+* - ne pas dépasser les gabarits de plus de 10Ko
+* - ne pas placer du header html <html><body> ni de pied </body></html>
+* ils seront ajoutés automatiquement à l'envoi du mail 
+* - les urls et liens images seront automatiquement converties en absolues
+*  ex. rubrique5.html -> http://www.monsite.org/rubrique5.html
+*
+* La balise suivante est utile pour générer un message vide si il n'y a pas de messages depuis la date indiquée
+* [ Affichage ici (#DATE_MODIF_FORUM|strtotime|>{[(#ENV{date}|strtotime)]}|?{' ',''})  Affichage ici ]
+*
+***********************************************************/
+]
+
+
+[ 
+  <div class="body" style="background: #fff;color: #ccc;font-family:'Trebuchet MS', Tahoma, Arial, Verdana,sans-serif;font-size: 0.9em;text-align: left;">
+	<div class="conteneur" style="width: 500px;background: #fff;color: #000;text-align: left;margin: 0 auto;padding: 15px;">
+	
+	<h1 style="font-size: 1.2em;border-bottom: 1px solid #666;"><:spiplistes:abo_1_lettre:></h1>  
+	
+	  	
+	<p><:spiplistes:discussion_intro:>  <a href="#URL_SITE_SPIP">#NOM_SITE_SPIP</a> [(#DATE|date_depuis)]</p>
+(#DATE_MODIF_FORUM|strtotime|>{[(#ENV{date}|strtotime)]}|?{' ',''})
+]
+
+	 	
+	 <B_fils>
+	 
+	 <h2 class="titre" style="background: #EEE;border: 1px solid #CCC;padding: 0.5em;margin-bottom: 1em;font-weight: bold;text-align: center;"><:spiplistes:messages:></h2> 
+	 
+	 <BOUCLE_fils(FORUMS){age_relatif < 0 }{par date}{inverse}>
+	
+	
+	 [<h3 style="font-size: 1.27em;font-weight: bold;color: #000;">(#TITRE|supprimer_numero)</h3>]
+	 <small>[(#DATE|affdate)] par [(#NOM|sinon{"anonyme"})] - <BOUCLE_rep(FORUMS){id_thread}{plat}> </BOUCLE_rep> #TOTAL_BOUCLE [(#TOTAL_BOUCLE|>{1}|?{'<:spiplistes:reponse_plur:>' , '<:spiplistes:reponse_sing:>'})] </B_rep></small>
+	 <div  style="margin-top: 5px;margin-bottom: 2em;border: 1px solid #ccc;padding: 0.9em;font-size: 0.82em;line-height: 1.4em;" >
+	 <p>#INTRODUCTION</p>
+	 
+		<div class="extra">
+		<BOUCLE_ArticleForum(ARTICLES){id_article}>
+		<a href='[(#URL_SITE_SPIP)]/[(#URL_ARTICLE)]#forum[(#ID_FORUM)]' title='[(#TITRE)]'> 
+		</BOUCLE_ArticleForum>
+		<BOUCLE_BreveForum(BREVES){id_breve}>
+		<a href="#URL_SITE_SPIP/#URL_BREVE#forum#ID_FORUM" title="#TITRE"> 
+		</BOUCLE_BreveForum>
+		<BOUCLE_RubriqueForum(RUBRIQUES){id_rubrique}>
+		<a href="#URL_SITE_SPIP/#URL_RUBRIQUE#forum#ID_FORUM" title="#TITRE"> 
+		</BOUCLE_RubriqueForum>
+		<BOUCLE_SiteForum(SITES){id_syndic}>
+		<a href="#URL_SITE_SPIP/#URL_SITE#forum#ID_FORUM" title="#TITRE"> 
+		</BOUCLE_SiteForum>
+		<//B_SiteForum>
+		<//B_RubriqueForum>
+		<//B_BreveForum>
+		<//B_ArticleForum>
+		<:spiplistes:voir_discussion:></a>
+		</div>
+	 </div>  
+	 
+	 
+</BOUCLE_fils>	
+
+
+[
+(#DATE_MODIF_FORUM|strtotime|>{[(#ENV{date}|strtotime)]}|?{' ',''})
+	</div>
+	
+	
+	
+  </div>
+]
Index: /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/patrons/patron_simple.html
===================================================================
--- /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/patrons/patron_simple.html	(revision 90)
+++ /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/patrons/patron_simple.html	(revision 90)
@@ -0,0 +1,52 @@
+#CACHE{0}
+[(#REM)
+/**********************************************************
+* Ce squelette pour spip-listes    
+* Patron: patron_simple.html : gabarit pour rdiger un mail html dont le texte sera ajout dans l'espace de redaction de spip-listes
+* Precautions:                             
+* - ne pas envoyer des gabarits de plus de 10Ko
+* - ne pas placer de balises html <html><body> ni de fermeture </body></html>
+* ils seront ajoutes automatiquement a l'envoi du mail 
+* - mettre les style  CSS directement dans les balises pour etre sur qu'ils seront interpretes (meme par les webmails)
+* - les urls et liens images seront automatiquement converties en absolues
+*  ex. rubrique5.html -> http://www.monsite.org/rubrique5.html
+*
+***********************************************************/
+]
+
+  <div class="body" style="background: #fff;color: #ccc;font-family:'Trebuchet MS', Tahoma, Arial, Verdana,sans-serif;font-size: 0.9em;text-align: left;">
+	<div class="conteneur" style="width: 500px;background: #fff;color: #000;text-align: left;margin: 0 auto;padding: 15px;">
+	
+	<h1 style="font-size: 1.2em;border-bottom: 1px solid #666;"><:spiplistes:abo_1_lettre:></h1>  
+	
+	  	
+	<p>
+	<:bonjour|texte_script:>, <br /> <:spiplistes:texte_lettre_information:> '[(#NOM_SITE_SPIP|textebrut)]' (#URL_SITE_SPIP).
+	</p>
+
+
+	 
+	 <h2 class="titre" style="background: #EEE;border: 1px solid #CCC;padding: 0.5em;margin-bottom: 1em;font-weight: bold;text-align: center;"><:nouveautes:></h2>  
+	 
+	 <h3 style="font-size: 1.27em;font-weight: bold;color: #000;">Lorem IPSUM</h3>
+	 <span style="font-size:.8em">[(#ENV{date}|affdate)]</span>
+	 
+	 
+	 <div style="margin-top: 5px;margin-bottom: 2em;border: 1px solid #ccc;padding: 0.9em;font-size: 0.82em;line-height: 1.4em;" >
+	 
+	 Lorem Ipsum Lorem Ipsum Lorem Ipsum Lorem Ipsum Lorem Ipsum Lorem Ipsum Lorem Ipsum 
+Lorem Ipsum Lorem Ipsum Lorem Ipsum Lorem Ipsum Lorem Ipsum Lorem Ipsum Lorem Ipsum Lorem Ipsum 
+
+Lorem Ipsum Lorem Ipsum Lorem Ipsum Lorem Ipsum Lorem Ipsum 
+Lorem Ipsum Lorem Ipsum Lorem Ipsum Lorem Ipsum Lorem Ipsum Lorem Ipsum Lorem Ipsum Lorem Ipsum 
+
+Lorem Ipsum Lorem Ipsum Lorem Ipsum Lorem Ipsum Lorem Ipsum Lorem Ipsum Lorem Ipsum Lorem Ipsum 
+Lorem Ipsum Lorem Ipsum Lorem Ipsum Lorem Ipsum Lorem Ipsum Lorem Ipsum Lorem Ipsum Lorem Ipsum Lorem Ipsum Lorem Ipsum
+	 
+	 <div class="extra" style="color: #666;"><a href="#URL_PAGE{sommaire}"><:suite:></a></div>
+	 
+	 </div>
+
+
+	</div>
+  </div>
Index: /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/patrons/portfolio.html
===================================================================
--- /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/patrons/portfolio.html	(revision 90)
+++ /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/patrons/portfolio.html	(revision 90)
@@ -0,0 +1,55 @@
+#CACHE{0}
+[(#REM)
+/**********************************************************
+* Squelette pour spip-listes    
+* Portefolio: ce patron portefolio.html est un exemple pour envoyer des images dans un message HTML
+* Il fonctionne avec un patron portefolio_texte.html alternatif pour la version texte
+*
+* Precautions:                             
+* - ne pas envoyer des gabarits de plus de 10Ko
+* - ne pas placer de balises html <html><body> ni de fermeture </body></html>
+* ils seront ajoutes automatiquement a l'envoi du mail 
+* - mettre les style  CSS directement dans les balises pour etre sur qu'ils seront interpretes (meme par les webmails)
+* - les urls et liens images seront automatiquement converties en absolues
+*  ex. rubrique5.html -> http://www.monsite.org/rubrique5.html
+*
+***********************************************************/
+]
+
+  <div class="body" style="background: #fff;color: #ccc;font-family:'Trebuchet MS', Tahoma, Arial, Verdana,sans-serif;font-size: 0.9em;text-align: left;">
+	<div class="conteneur" style="width: 500px;background: #fff;color: #000;text-align: left;margin: 0 auto;padding: 15px;">
+	
+	<h1 style="font-size: 1.2em;border-bottom: 1px solid #666;"><:spiplistes:abo_1_lettre:></h1>  
+	
+	  	
+	<p>
+	<:bonjour|texte_script:>, <br /> <:spiplistes:texte_lettre_information:> '[(#NOM_SITE_SPIP|textebrut)]' (#URL_SITE_SPIP).
+	</p>
+
+
+	 
+	 <h2 class="titre" style="background: #EEE;border: 1px solid #CCC;padding: 0.5em;margin-bottom: 1em;font-weight: bold;text-align: center;"><:nouveautes:></h2>  
+	 
+	 <h3 style="font-size: 1.27em;font-weight: bold;color: #000;"><:spiplistes:photos:></h3>
+	 <span style="font-size:.8em">[(#ENV{date}|affdate)]</span>
+	 
+	 
+	 
+	 <div style="margin-top: 5px;margin-bottom: 2em;border: 1px solid #ccc;padding: 0.9em;font-size: 0.82em;line-height: 1.4em;" >
+	 
+	[(#REM) Portfolio : album d'images ]
+			<B_documents_portfolio>
+			<div id="documents_portfolio">
+				<h2><:info_portfolio:></h2>
+				<BOUCLE_documents_portfolio(DOCUMENTS) {mode=document} {extension IN png,jpg,gif} {!par date} {0,12}>
+				[<a href="[(#URL_DOCUMENT|url_absolue|replace{ecrire/,''})]" type="#MIME_TYPE" [ title="(#TITRE|couper{80}|texte_backend)"]><img src="(#FICHIER|url_absolue|replace{ecrire/,''})" width ="110" height="110" border="0"/></a>]
+				</BOUCLE_documents_portfolio>
+			</div>
+			</B_documents_portfolio>	 
+	 <div class="extra" style="color: #666;"><a href="#URL_PAGE{sommaire}"><:suite:></a></div>
+	 
+	 </div>
+
+
+	</div>
+  </div>
Index: /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/patrons/portfolio_texte.html
===================================================================
--- /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/patrons/portfolio_texte.html	(revision 90)
+++ /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/patrons/portfolio_texte.html	(revision 90)
@@ -0,0 +1,20 @@
+
+--------------------------------------------------------
+Lettre d'information
+
+--------------------------------------------------------
+
+  
+
+Bonjour,  Voici la lettre d'information de  #NOM_SITE_SPIP (#URL_SITE_SPIP).
+
+
+
+............... Photos ...............
+
+  
+
+* Bonjour*
+
+
+Des photos sont disponibles sur le site, allez voir #URL_SITE_SPIP
Index: /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/patrons/portfolio_texte_en.html
===================================================================
--- /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/patrons/portfolio_texte_en.html	(revision 90)
+++ /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/patrons/portfolio_texte_en.html	(revision 90)
@@ -0,0 +1,20 @@
+
+--------------------------------------------------------
+Newsletter
+
+--------------------------------------------------------
+
+  
+
+Hello,  This is the newsletter of  #NOM_SITE_SPIP (#URL_SITE_SPIP).
+
+
+
+............... Photos ...............
+
+  
+
+* Hello*
+
+
+Photos are available on the site, please visit #URL_SITE_SPIP
Index: /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/phpmailer/class.phpmailer.php
===================================================================
--- /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/phpmailer/class.phpmailer.php	(revision 90)
+++ /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/phpmailer/class.phpmailer.php	(revision 90)
@@ -0,0 +1,1499 @@
+<?php
+////////////////////////////////////////////////////
+// PHPMailer - PHP email class
+//
+// Class for sending email using either
+// sendmail, PHP mail(), or SMTP.  Methods are
+// based upon the standard AspEmail(tm) classes.
+//
+// Copyright (C) 2001 - 2003  Brent R. Matzelle
+//
+// License: LGPL, see LICENSE
+////////////////////////////////////////////////////
+
+/**
+ * PHPMailer - PHP email transport class
+ * @package PHPMailer
+ * @author Brent R. Matzelle
+ * @copyright 2001 - 2003 Brent R. Matzelle
+ */
+class PHPMailer
+{
+    /////////////////////////////////////////////////
+    // PUBLIC VARIABLES
+    /////////////////////////////////////////////////
+
+    /**
+     * Email priority (1 = High, 3 = Normal, 5 = low).
+     * @var int
+     */
+    var $Priority          = 3;
+
+    /**
+     * Sets the CharSet of the message.
+     * @var string
+     */
+    var $CharSet           = "iso-8859-1";
+
+    /**
+     * Sets the Content-type of the message.
+     * @var string
+     */
+    var $ContentType        = "text/plain";
+
+    /**
+     * Sets the Encoding of the message. Options for this are "8bit",
+     * "7bit", "binary", "base64", and "quoted-printable".
+     * @var string
+     */
+    var $Encoding          = "8bit";
+
+    /**
+     * Holds the most recent mailer error message.
+     * @var string
+     */
+    var $ErrorInfo         = "";
+
+    /**
+     * Sets the From email address for the message.
+     * @var string
+     */
+    var $From               = "root@localhost";
+
+    /**
+     * Sets the From name of the message.
+     * @var string
+     */
+    var $FromName           = "Root User";
+
+    /**
+     * Sets the Sender email (Return-Path) of the message.  If not empty,
+     * will be sent via -f to sendmail or as 'MAIL FROM' in smtp mode.
+     * @var string
+     */
+    var $Sender            = "";
+
+    /**
+     * Sets the Subject of the message.
+     * @var string
+     */
+    var $Subject           = "";
+
+    /**
+     * Sets the Body of the message.  This can be either an HTML or text body.
+     * If HTML then run IsHTML(true).
+     * @var string
+     */
+    var $Body               = "";
+
+    /**
+     * Sets the text-only body of the message.  This automatically sets the
+     * email to multipart/alternative.  This body can be read by mail
+     * clients that do not have HTML email capability such as mutt. Clients
+     * that can read HTML will view the normal Body.
+     * @var string
+     */
+    var $AltBody           = "";
+
+    /**
+     * Sets word wrapping on the body of the message to a given number of 
+     * characters.
+     * @var int
+     */
+    var $WordWrap          = 0;
+
+    /**
+     * Method to send mail: ("mail", "sendmail", or "smtp").
+     * @var string
+     */
+    var $Mailer            = "mail";
+
+    /**
+     * Sets the path of the sendmail program.
+     * @var string
+     */
+    var $Sendmail          = "/usr/sbin/sendmail";
+    
+    /**
+     * Path to PHPMailer plugins.  This is now only useful if the SMTP class 
+     * is in a different directory than the PHP include path.  
+     * @var string
+     */
+    var $PluginDir         = "";
+
+    /**
+     *  Holds PHPMailer version.
+     *  @var string
+     */
+    var $Version           = "1.73";
+
+    /**
+     * Sets the email address that a reading confirmation will be sent.
+     * @var string
+     */
+    var $ConfirmReadingTo  = "";
+
+    /**
+     *  Sets the hostname to use in Message-Id and Received headers
+     *  and as default HELO string. If empty, the value returned
+     *  by SERVER_NAME is used or 'localhost.localdomain'.
+     *  @var string
+     */
+    var $Hostname          = "";
+
+    /////////////////////////////////////////////////
+    // SMTP VARIABLES
+    /////////////////////////////////////////////////
+
+    /**
+     *  Sets the SMTP hosts.  All hosts must be separated by a
+     *  semicolon.  You can also specify a different port
+     *  for each host by using this format: [hostname:port]
+     *  (e.g. "smtp1.example.com:25;smtp2.example.com").
+     *  Hosts will be tried in order.
+     *  @var string
+     */
+    var $Host        = "localhost";
+
+    /**
+     *  Sets the default SMTP server port.
+     *  @var int
+     */
+    var $Port        = 25;
+
+    /**
+     *  Sets the SMTP HELO of the message (Default is $Hostname).
+     *  @var string
+     */
+    var $Helo        = "";
+
+    /**
+     *  Sets SMTP authentication. Utilizes the Username and Password variables.
+     *  @var bool
+     */
+    var $SMTPAuth     = false;
+
+    /**
+     *  Sets SMTP username.
+     *  @var string
+     */
+    var $Username     = "";
+
+    /**
+     *  Sets SMTP password.
+     *  @var string
+     */
+    var $Password     = "";
+
+    /**
+     *  Sets the SMTP server timeout in seconds. This function will not 
+     *  work with the win32 version.
+     *  @var int
+     */
+    var $Timeout      = 10;
+
+    /**
+     *  Sets SMTP class debugging on or off.
+     *  @var bool
+     */
+    var $SMTPDebug    = false;
+
+    /**
+     * Prevents the SMTP connection from being closed after each mail 
+     * sending.  If this is set to true then to close the connection 
+     * requires an explicit call to SmtpClose(). 
+     * @var bool
+     */
+    var $SMTPKeepAlive = false;
+
+    /**#@+
+     * @access private
+     */
+    var $smtp            = NULL;
+    var $to              = array();
+    var $cc              = array();
+    var $bcc             = array();
+    var $ReplyTo         = array();
+    var $attachment      = array();
+    var $CustomHeader    = array();
+    var $message_type    = "";
+    var $boundary        = array();
+    var $language        = array();
+    var $error_count     = 0;
+    var $LE              = "\n";
+    /**#@-*/
+    
+    /////////////////////////////////////////////////
+    // VARIABLE METHODS
+    /////////////////////////////////////////////////
+
+    /**
+     * Sets message type to HTML.  
+     * @param bool $bool
+     * @return void
+     */
+    function IsHTML($bool) {
+        if($bool == true)
+            $this->ContentType = "text/html";
+        else
+            $this->ContentType = "text/plain";
+    }
+
+    /**
+     * Sets Mailer to send message using SMTP.
+     * @return void
+     */
+    function IsSMTP() {
+        $this->Mailer = "smtp";
+    }
+
+    /**
+     * Sets Mailer to send message using PHP mail() function.
+     * @return void
+     */
+    function IsMail() {
+        $this->Mailer = "mail";
+    }
+
+    /**
+     * Sets Mailer to send message using the $Sendmail program.
+     * @return void
+     */
+    function IsSendmail() {
+        $this->Mailer = "sendmail";
+    }
+
+    /**
+     * Sets Mailer to send message using the qmail MTA. 
+     * @return void
+     */
+    function IsQmail() {
+        $this->Sendmail = "/var/qmail/bin/sendmail";
+        $this->Mailer = "sendmail";
+    }
+
+
+    /////////////////////////////////////////////////
+    // RECIPIENT METHODS
+    /////////////////////////////////////////////////
+
+    /**
+     * Adds a "To" address.  
+     * @param string $address
+     * @param string $name
+     * @return void
+     */
+    function AddAddress($address, $name = "") {
+        $cur = count($this->to);
+        $this->to[$cur][0] = trim($address);
+        $this->to[$cur][1] = $name;
+    }
+
+    /**
+     * Adds a "Cc" address. Note: this function works
+     * with the SMTP mailer on win32, not with the "mail"
+     * mailer.  
+     * @param string $address
+     * @param string $name
+     * @return void
+    */
+    function AddCC($address, $name = "") {
+        $cur = count($this->cc);
+        $this->cc[$cur][0] = trim($address);
+        $this->cc[$cur][1] = $name;
+    }
+
+    /**
+     * Adds a "Bcc" address. Note: this function works
+     * with the SMTP mailer on win32, not with the "mail"
+     * mailer.  
+     * @param string $address
+     * @param string $name
+     * @return void
+     */
+    function AddBCC($address, $name = "") {
+        $cur = count($this->bcc);
+        $this->bcc[$cur][0] = trim($address);
+        $this->bcc[$cur][1] = $name;
+    }
+
+    /**
+     * Adds a "Reply-to" address.  
+     * @param string $address
+     * @param string $name
+     * @return void
+     */
+    function AddReplyTo($address, $name = "") {
+        $cur = count($this->ReplyTo);
+        $this->ReplyTo[$cur][0] = trim($address);
+        $this->ReplyTo[$cur][1] = $name;
+    }
+
+
+    /////////////////////////////////////////////////
+    // MAIL SENDING METHODS
+    /////////////////////////////////////////////////
+
+    /**
+     * Creates message and assigns Mailer. If the message is
+     * not sent successfully then it returns false.  Use the ErrorInfo
+     * variable to view description of the error.  
+     * @return bool
+     */
+    function Send() {
+        $header = "";
+        $body = "";
+        $result = true;
+
+        if((count($this->to) + count($this->cc) + count($this->bcc)) < 1)
+        {
+            $this->SetError($this->Lang("provide_address"));
+            return false;
+        }
+
+        // Set whether the message is multipart/alternative
+        if(!empty($this->AltBody))
+            $this->ContentType = "multipart/alternative";
+
+        $this->error_count = 0; // reset errors
+        $this->SetMessageType();
+        $header .= $this->CreateHeader();
+        $body = $this->CreateBody();
+
+        if($body == "") { return false; }
+
+        // Choose the mailer
+        switch($this->Mailer)
+        {
+            case "sendmail":
+                $result = $this->SendmailSend($header, $body);
+                break;
+            case "mail":
+                $result = $this->MailSend($header, $body);
+                break;
+            case "smtp":
+                $result = $this->SmtpSend($header, $body);
+                break;
+            default:
+            $this->SetError($this->Mailer . $this->Lang("mailer_not_supported"));
+                $result = false;
+                break;
+        }
+
+        return $result;
+    }
+    
+    /**
+     * Sends mail using the $Sendmail program.  
+     * @access private
+     * @return bool
+     */
+    function SendmailSend($header, $body) {
+        if ($this->Sender != "")
+            $sendmail = sprintf("%s -oi -f %s -t", $this->Sendmail, $this->Sender);
+        else
+            $sendmail = sprintf("%s -oi -t", $this->Sendmail);
+
+        if(!@$mail = popen($sendmail, "w"))
+        {
+            $this->SetError($this->Lang("execute") . $this->Sendmail);
+            return false;
+        }
+
+        fputs($mail, $header);
+        fputs($mail, $body);
+        
+        $result = pclose($mail) >> 8 & 0xFF;
+        if($result != 0)
+        {
+            $this->SetError($this->Lang("execute") . $this->Sendmail);
+            return false;
+        }
+
+        return true;
+    }
+
+    /**
+     * Sends mail using the PHP mail() function.  
+     * @access private
+     * @return bool
+     */
+    function MailSend($header, $body) {
+        $to = "";
+        for($i = 0; $i < count($this->to); $i++)
+        {
+            if($i != 0) { $to .= ", "; }
+            $to .= $this->to[$i][0];
+        }
+
+        if ($this->Sender != "" && strlen(ini_get("safe_mode"))< 1)
+        {
+            $old_from = ini_get("sendmail_from");
+            ini_set("sendmail_from", $this->Sender);
+            $params = sprintf("-oi -f %s", $this->Sender);
+            $rt = @mail($to, $this->EncodeHeader($this->Subject), $body, 
+                        $header, $params);
+        }
+        else
+            $rt = @mail($to, $this->EncodeHeader($this->Subject), $body, $header);
+
+        if (isset($old_from))
+            ini_set("sendmail_from", $old_from);
+
+        if(!$rt)
+        {
+            $this->SetError($this->Lang("instantiate"));
+            return false;
+        }
+
+        return true;
+    }
+
+    /**
+     * Sends mail via SMTP using PhpSMTP (Author:
+     * Chris Ryan).  Returns bool.  Returns false if there is a
+     * bad MAIL FROM, RCPT, or DATA input.
+     * @access private
+     * @return bool
+     */
+    function SmtpSend($header, $body) {
+        include_once($this->PluginDir . "class.smtp.php");
+        $error = "";
+        $bad_rcpt = array();
+
+        if(!$this->SmtpConnect())
+            return false;
+
+        $smtp_from = ($this->Sender == "") ? $this->From : $this->Sender;
+        if(!$this->smtp->Mail($smtp_from))
+        {
+            $error = $this->Lang("from_failed") . $smtp_from;
+            $this->SetError($error);
+            $this->smtp->Reset();
+            return false;
+        }
+
+        // Attempt to send attach all recipients
+        for($i = 0; $i < count($this->to); $i++)
+        {
+            if(!$this->smtp->Recipient($this->to[$i][0]))
+                $bad_rcpt[] = $this->to[$i][0];
+        }
+        for($i = 0; $i < count($this->cc); $i++)
+        {
+            if(!$this->smtp->Recipient($this->cc[$i][0]))
+                $bad_rcpt[] = $this->cc[$i][0];
+        }
+        for($i = 0; $i < count($this->bcc); $i++)
+        {
+            if(!$this->smtp->Recipient($this->bcc[$i][0]))
+                $bad_rcpt[] = $this->bcc[$i][0];
+        }
+
+        if(count($bad_rcpt) > 0) // Create error message
+        {
+            for($i = 0; $i < count($bad_rcpt); $i++)
+            {
+                if($i != 0) { $error .= ", "; }
+                $error .= $bad_rcpt[$i];
+            }
+            $error = $this->Lang("recipients_failed") . $error;
+            $this->SetError($error);
+            $this->smtp->Reset();
+            return false;
+        }
+
+        if(!$this->smtp->Data($header . $body))
+        {
+            $this->SetError($this->Lang("data_not_accepted"));
+            $this->smtp->Reset();
+            return false;
+        }
+        if($this->SMTPKeepAlive == true)
+            $this->smtp->Reset();
+        else
+            $this->SmtpClose();
+
+        return true;
+    }
+
+    /**
+     * Initiates a connection to an SMTP server.  Returns false if the 
+     * operation failed.
+     * @access private
+     * @return bool
+     */
+    function SmtpConnect() {
+        if($this->smtp == NULL) { $this->smtp = new SMTP(); }
+
+        $this->smtp->do_debug = $this->SMTPDebug;
+        $hosts = explode(";", $this->Host);
+        $index = 0;
+        $connection = ($this->smtp->Connected()); 
+
+        // Retry while there is no connection
+        while($index < count($hosts) && $connection == false)
+        {
+            if(strstr($hosts[$index], ":"))
+                list($host, $port) = explode(":", $hosts[$index]);
+            else
+            {
+                $host = $hosts[$index];
+                $port = $this->Port;
+            }
+
+            if($this->smtp->Connect($host, $port, $this->Timeout))
+            {
+                if ($this->Helo != '')
+                    $this->smtp->Hello($this->Helo);
+                else
+                    $this->smtp->Hello($this->ServerHostname());
+        
+                if($this->SMTPAuth)
+                {
+                    if(!$this->smtp->Authenticate($this->Username, 
+                                                  $this->Password))
+                    {
+                        $this->SetError($this->Lang("authenticate"));
+                        $this->smtp->Reset();
+                        $connection = false;
+                    }
+                }
+                $connection = true;
+            }
+            $index++;
+        }
+        if(!$connection)
+            $this->SetError($this->Lang("connect_host"));
+
+        return $connection;
+    }
+
+    /**
+     * Closes the active SMTP session if one exists.
+     * @return void
+     */
+    function SmtpClose() {
+        if($this->smtp != NULL)
+        {
+            if($this->smtp->Connected())
+            {
+                $this->smtp->Quit();
+                $this->smtp->Close();
+            }
+        }
+    }
+
+    /**
+     * Sets the language for all class error messages.  Returns false 
+     * if it cannot load the language file.  The default language type
+     * is English.
+     * @param string $lang_type Type of language (e.g. Portuguese: "br")
+     * @param string $lang_path Path to the language file directory
+     * @access public
+     * @return bool
+     */
+    function SetLanguage($lang_type, $lang_path = "language/") {
+        if(file_exists($lang_path.'phpmailer.lang-'.$lang_type.'.php'))
+            include($lang_path.'phpmailer.lang-'.$lang_type.'.php');
+        else if(file_exists($lang_path.'phpmailer.lang-en.php'))
+            include($lang_path.'phpmailer.lang-en.php');
+        else
+        {
+            $this->SetError("Could not load language file");
+            return false;
+        }
+        $this->language = $PHPMAILER_LANG;
+    
+        return true;
+    }
+
+    /////////////////////////////////////////////////
+    // MESSAGE CREATION METHODS
+    /////////////////////////////////////////////////
+
+    /**
+     * Creates recipient headers.  
+     * @access private
+     * @return string
+     */
+    function AddrAppend($type, $addr) {
+        $addr_str = $type . ": ";
+        $addr_str .= $this->AddrFormat($addr[0]);
+        if(count($addr) > 1)
+        {
+            for($i = 1; $i < count($addr); $i++)
+                $addr_str .= ", " . $this->AddrFormat($addr[$i]);
+        }
+        $addr_str .= $this->LE;
+
+        return $addr_str;
+    }
+    
+    /**
+     * Formats an address correctly. 
+     * @access private
+     * @return string
+     */
+    function AddrFormat($addr) {
+        if(empty($addr[1]))
+            $formatted = $addr[0];
+        else
+        {
+            $formatted = $this->EncodeHeader($addr[1], 'phrase') . " <" . 
+                         $addr[0] . ">";
+        }
+
+        return $formatted;
+    }
+
+    /**
+     * Wraps message for use with mailers that do not
+     * automatically perform wrapping and for quoted-printable.
+     * Original written by philippe.  
+     * @access private
+     * @return string
+     */
+    function WrapText($message, $length, $qp_mode = false) {
+        $soft_break = ($qp_mode) ? sprintf(" =%s", $this->LE) : $this->LE;
+
+        $message = $this->FixEOL($message);
+        if (substr($message, -1) == $this->LE)
+            $message = substr($message, 0, -1);
+
+        $line = explode($this->LE, $message);
+        $message = "";
+        for ($i=0 ;$i < count($line); $i++)
+        {
+          $line_part = explode(" ", $line[$i]);
+          $buf = "";
+          for ($e = 0; $e<count($line_part); $e++)
+          {
+              $word = $line_part[$e];
+              if ($qp_mode and (strlen($word) > $length))
+              {
+                $space_left = $length - strlen($buf) - 1;
+                if ($e != 0)
+                {
+                    if ($space_left > 20)
+                    {
+                        $len = $space_left;
+                        if (substr($word, $len - 1, 1) == "=")
+                          $len--;
+                        elseif (substr($word, $len - 2, 1) == "=")
+                          $len -= 2;
+                        $part = substr($word, 0, $len);
+                        $word = substr($word, $len);
+                        $buf .= " " . $part;
+                        $message .= $buf . sprintf("=%s", $this->LE);
+                    }
+                    else
+                    {
+                        $message .= $buf . $soft_break;
+                    }
+                    $buf = "";
+                }
+                while (strlen($word) > 0)
+                {
+                    $len = $length;
+                    if (substr($word, $len - 1, 1) == "=")
+                        $len--;
+                    elseif (substr($word, $len - 2, 1) == "=")
+                        $len -= 2;
+                    $part = substr($word, 0, $len);
+                    $word = substr($word, $len);
+
+                    if (strlen($word) > 0)
+                        $message .= $part . sprintf("=%s", $this->LE);
+                    else
+                        $buf = $part;
+                }
+              }
+              else
+              {
+                $buf_o = $buf;
+                $buf .= ($e == 0) ? $word : (" " . $word); 
+
+                if (strlen($buf) > $length and $buf_o != "")
+                {
+                    $message .= $buf_o . $soft_break;
+                    $buf = $word;
+                }
+              }
+          }
+          $message .= $buf . $this->LE;
+        }
+
+        return $message;
+    }
+    
+    /**
+     * Set the body wrapping.
+     * @access private
+     * @return void
+     */
+    function SetWordWrap() {
+        if($this->WordWrap < 1)
+            return;
+            
+        switch($this->message_type)
+        {
+           case "alt":
+              // fall through
+           case "alt_attachments":
+              $this->AltBody = $this->WrapText($this->AltBody, $this->WordWrap);
+              break;
+           default:
+              $this->Body = $this->WrapText($this->Body, $this->WordWrap);
+              break;
+        }
+    }
+
+    /**
+     * Assembles message header.  
+     * @access private
+     * @return string
+     */
+    function CreateHeader() {
+        $result = "";
+        
+        // Set the boundaries
+        $uniq_id = md5(uniqid(time()));
+        $this->boundary[1] = "b1_" . $uniq_id;
+        $this->boundary[2] = "b2_" . $uniq_id;
+
+        $result .= $this->HeaderLine("Date", $this->RFCDate());
+        if($this->Sender == "")
+            $result .= $this->HeaderLine("Return-Path", trim($this->From));
+        else
+            $result .= $this->HeaderLine("Return-Path", trim($this->Sender));
+        
+        // To be created automatically by mail()
+        if($this->Mailer != "mail")
+        {
+            if(count($this->to) > 0)
+                $result .= $this->AddrAppend("To", $this->to);
+            else if (count($this->cc) == 0)
+                $result .= $this->HeaderLine("To", "undisclosed-recipients:;");
+            if(count($this->cc) > 0)
+                $result .= $this->AddrAppend("Cc", $this->cc);
+        }
+
+        $from = array();
+        $from[0][0] = trim($this->From);
+        $from[0][1] = $this->FromName;
+        $result .= $this->AddrAppend("From", $from); 
+
+        // sendmail and mail() extract Bcc from the header before sending
+        if((($this->Mailer == "sendmail") || ($this->Mailer == "mail")) && (count($this->bcc) > 0))
+            $result .= $this->AddrAppend("Bcc", $this->bcc);
+
+        if(count($this->ReplyTo) > 0)
+            $result .= $this->AddrAppend("Reply-to", $this->ReplyTo);
+
+        // mail() sets the subject itself
+        if($this->Mailer != "mail")
+            $result .= $this->HeaderLine("Subject", $this->EncodeHeader(trim($this->Subject)));
+
+        $result .= sprintf("Message-ID: <%s@%s>%s", $uniq_id, $this->ServerHostname(), $this->LE);
+        $result .= $this->HeaderLine("X-Priority", $this->Priority);
+        $result .= $this->HeaderLine("X-Mailer", "PHPMailer [version " . $this->Version . "]");
+        
+        if($this->ConfirmReadingTo != "")
+        {
+            $result .= $this->HeaderLine("Disposition-Notification-To", 
+                       "<" . trim($this->ConfirmReadingTo) . ">");
+        }
+
+        // Add custom headers
+        for($index = 0; $index < count($this->CustomHeader); $index++)
+        {
+            $result .= $this->HeaderLine(trim($this->CustomHeader[$index][0]), 
+                       $this->EncodeHeader(trim($this->CustomHeader[$index][1])));
+        }
+        $result .= $this->HeaderLine("MIME-Version", "1.0");
+
+        switch($this->message_type)
+        {
+            case "plain":
+                $result .= $this->HeaderLine("Content-Transfer-Encoding", $this->Encoding);
+                $result .= sprintf("Content-Type: %s; charset=\"%s\"",
+                                    $this->ContentType, $this->CharSet);
+                break;
+            case "attachments":
+                // fall through
+            case "alt_attachments":
+                if($this->InlineImageExists())
+                {
+                    $result .= sprintf("Content-Type: %s;%s\ttype=\"text/html\";%s\tboundary=\"%s\"%s", 
+                                    "multipart/related", $this->LE, $this->LE, 
+                                    $this->boundary[1], $this->LE);
+                }
+                else
+                {
+                    $result .= $this->HeaderLine("Content-Type", "multipart/mixed;");
+                    $result .= $this->TextLine("\tboundary=\"" . $this->boundary[1] . '"');
+                }
+                break;
+            case "alt":
+                $result .= $this->HeaderLine("Content-Type", "multipart/alternative;");
+                $result .= $this->TextLine("\tboundary=\"" . $this->boundary[1] . '"');
+                break;
+        }
+
+        if($this->Mailer != "mail")
+            $result .= $this->LE.$this->LE;
+
+        return $result;
+    }
+
+    /**
+     * Assembles the message body.  Returns an empty string on failure.
+     * @access private
+     * @return string
+     */
+    function CreateBody() {
+        $result = "";
+
+        $this->SetWordWrap();
+
+        switch($this->message_type)
+        {
+            case "alt":
+                $result .= $this->GetBoundary($this->boundary[1], "", 
+                                              "text/plain", "");
+                $result .= $this->EncodeString($this->AltBody, $this->Encoding);
+                $result .= $this->LE.$this->LE;
+                $result .= $this->GetBoundary($this->boundary[1], "", 
+                                              "text/html", "");
+                
+                $result .= $this->EncodeString($this->Body, $this->Encoding);
+                $result .= $this->LE.$this->LE;
+    
+                $result .= $this->EndBoundary($this->boundary[1]);
+                break;
+            case "plain":
+                $result .= $this->EncodeString($this->Body, $this->Encoding);
+                break;
+            case "attachments":
+                $result .= $this->GetBoundary($this->boundary[1], "", "", "");
+                $result .= $this->EncodeString($this->Body, $this->Encoding);
+                $result .= $this->LE;
+     
+                $result .= $this->AttachAll();
+                break;
+            case "alt_attachments":
+                $result .= sprintf("--%s%s", $this->boundary[1], $this->LE);
+                $result .= sprintf("Content-Type: %s;%s" .
+                                   "\tboundary=\"%s\"%s",
+                                   "multipart/alternative", $this->LE, 
+                                   $this->boundary[2], $this->LE.$this->LE);
+    
+                // Create text body
+                $result .= $this->GetBoundary($this->boundary[2], "", 
+                                              "text/plain", "") . $this->LE;
+
+                $result .= $this->EncodeString($this->AltBody, $this->Encoding);
+                $result .= $this->LE.$this->LE;
+    
+                // Create the HTML body
+                $result .= $this->GetBoundary($this->boundary[2], "", 
+                                              "text/html", "") . $this->LE;
+    
+                $result .= $this->EncodeString($this->Body, $this->Encoding);
+                $result .= $this->LE.$this->LE;
+
+                $result .= $this->EndBoundary($this->boundary[2]);
+                
+                $result .= $this->AttachAll();
+                break;
+        }
+        if($this->IsError())
+            $result = "";
+
+        return $result;
+    }
+
+    /**
+     * Returns the start of a message boundary.
+     * @access private
+     */
+    function GetBoundary($boundary, $charSet, $contentType, $encoding) {
+        $result = "";
+        if($charSet == "") { $charSet = $this->CharSet; }
+        if($contentType == "") { $contentType = $this->ContentType; }
+        if($encoding == "") { $encoding = $this->Encoding; }
+
+        $result .= $this->TextLine("--" . $boundary);
+        $result .= sprintf("Content-Type: %s; charset = \"%s\"", 
+                            $contentType, $charSet);
+        $result .= $this->LE;
+        $result .= $this->HeaderLine("Content-Transfer-Encoding", $encoding);
+        $result .= $this->LE;
+       
+        return $result;
+    }
+    
+    /**
+     * Returns the end of a message boundary.
+     * @access private
+     */
+    function EndBoundary($boundary) {
+        return $this->LE . "--" . $boundary . "--" . $this->LE; 
+    }
+    
+    /**
+     * Sets the message type.
+     * @access private
+     * @return void
+     */
+    function SetMessageType() {
+        if(count($this->attachment) < 1 && strlen($this->AltBody) < 1)
+            $this->message_type = "plain";
+        else
+        {
+            if(count($this->attachment) > 0)
+                $this->message_type = "attachments";
+            if(strlen($this->AltBody) > 0 && count($this->attachment) < 1)
+                $this->message_type = "alt";
+            if(strlen($this->AltBody) > 0 && count($this->attachment) > 0)
+                $this->message_type = "alt_attachments";
+        }
+    }
+
+    /**
+     * Returns a formatted header line.
+     * @access private
+     * @return string
+     */
+    function HeaderLine($name, $value) {
+        return $name . ": " . $value . $this->LE;
+    }
+
+    /**
+     * Returns a formatted mail line.
+     * @access private
+     * @return string
+     */
+    function TextLine($value) {
+        return $value . $this->LE;
+    }
+
+    /////////////////////////////////////////////////
+    // ATTACHMENT METHODS
+    /////////////////////////////////////////////////
+
+    /**
+     * Adds an attachment from a path on the filesystem.
+     * Returns false if the file could not be found
+     * or accessed.
+     * @param string $path Path to the attachment.
+     * @param string $name Overrides the attachment name.
+     * @param string $encoding File encoding (see $Encoding).
+     * @param string $type File extension (MIME) type.
+     * @return bool
+     */
+    function AddAttachment($path, $name = "", $encoding = "base64", 
+                           $type = "application/octet-stream") {
+        if(!@is_file($path))
+        {
+            $this->SetError($this->Lang("file_access") . $path);
+            return false;
+        }
+
+        $filename = basename($path);
+        if($name == "")
+            $name = $filename;
+
+        $cur = count($this->attachment);
+        $this->attachment[$cur][0] = $path;
+        $this->attachment[$cur][1] = $filename;
+        $this->attachment[$cur][2] = $name;
+        $this->attachment[$cur][3] = $encoding;
+        $this->attachment[$cur][4] = $type;
+        $this->attachment[$cur][5] = false; // isStringAttachment
+        $this->attachment[$cur][6] = "attachment";
+        $this->attachment[$cur][7] = 0;
+
+        return true;
+    }
+
+    /**
+     * Attaches all fs, string, and binary attachments to the message.
+     * Returns an empty string on failure.
+     * @access private
+     * @return string
+     */
+    function AttachAll() {
+        // Return text of body
+        $mime = array();
+
+        // Add all attachments
+        for($i = 0; $i < count($this->attachment); $i++)
+        {
+            // Check for string attachment
+            $bString = $this->attachment[$i][5];
+            if ($bString)
+                $string = $this->attachment[$i][0];
+            else
+                $path = $this->attachment[$i][0];
+
+            $filename    = $this->attachment[$i][1];
+            $name        = $this->attachment[$i][2];
+            $encoding    = $this->attachment[$i][3];
+            $type        = $this->attachment[$i][4];
+            $disposition = $this->attachment[$i][6];
+            $cid         = $this->attachment[$i][7];
+            
+            $mime[] = sprintf("--%s%s", $this->boundary[1], $this->LE);
+            $mime[] = sprintf("Content-Type: %s; name=\"%s\"%s", $type, $name, $this->LE);
+            $mime[] = sprintf("Content-Transfer-Encoding: %s%s", $encoding, $this->LE);
+
+            if($disposition == "inline")
+                $mime[] = sprintf("Content-ID: <%s>%s", $cid, $this->LE);
+
+            $mime[] = sprintf("Content-Disposition: %s; filename=\"%s\"%s", 
+                              $disposition, $name, $this->LE.$this->LE);
+
+            // Encode as string attachment
+            if($bString)
+            {
+                $mime[] = $this->EncodeString($string, $encoding);
+                if($this->IsError()) { return ""; }
+                $mime[] = $this->LE.$this->LE;
+            }
+            else
+            {
+                $mime[] = $this->EncodeFile($path, $encoding);                
+                if($this->IsError()) { return ""; }
+                $mime[] = $this->LE.$this->LE;
+            }
+        }
+
+        $mime[] = sprintf("--%s--%s", $this->boundary[1], $this->LE);
+
+        return join("", $mime);
+    }
+    
+    /**
+     * Encodes attachment in requested format.  Returns an
+     * empty string on failure.
+     * @access private
+     * @return string
+     */
+    function EncodeFile ($path, $encoding = "base64") {
+        if(!@$fd = fopen($path, "rb"))
+        {
+            $this->SetError($this->Lang("file_open") . $path);
+            return "";
+        }
+        $magic_quotes = get_magic_quotes_runtime();
+        set_magic_quotes_runtime(0);
+        $file_buffer = fread($fd, filesize($path));
+        $file_buffer = $this->EncodeString($file_buffer, $encoding);
+        fclose($fd);
+        set_magic_quotes_runtime($magic_quotes);
+
+        return $file_buffer;
+    }
+
+    /**
+     * Encodes string to requested format. Returns an
+     * empty string on failure.
+     * @access private
+     * @return string
+     */
+    function EncodeString ($str, $encoding = "base64") {
+        $encoded = "";
+        switch(strtolower($encoding)) {
+          case "base64":
+              // chunk_split is found in PHP >= 3.0.6
+              $encoded = chunk_split(base64_encode($str), 76, $this->LE);
+              break;
+          case "7bit":
+          case "8bit":
+              $encoded = $this->FixEOL($str);
+              if (substr($encoded, -(strlen($this->LE))) != $this->LE)
+                $encoded .= $this->LE;
+              break;
+          case "binary":
+              $encoded = $str;
+              break;
+          case "quoted-printable":
+              $encoded = $this->EncodeQP($str);
+              break;
+          default:
+              $this->SetError($this->Lang("encoding") . $encoding);
+              break;
+        }
+        return $encoded;
+    }
+
+    /**
+     * Encode a header string to best of Q, B, quoted or none.  
+     * @access private
+     * @return string
+     */
+    function EncodeHeader ($str, $position = 'text') {
+      $x = 0;
+      
+      switch (strtolower($position)) {
+        case 'phrase':
+          if (!preg_match('/[\200-\377]/', $str)) {
+            // Can't use addslashes as we don't know what value has magic_quotes_sybase.
+            $encoded = addcslashes($str, "\0..\37\177\\\"");
+
+            if (($str == $encoded) && !preg_match('/[^A-Za-z0-9!#$%&\'*+\/=?^_`{|}~ -]/', $str))
+              return ($encoded);
+            else
+              return ("\"$encoded\"");
+          }
+          $x = preg_match_all('/[^\040\041\043-\133\135-\176]/', $str, $matches);
+          break;
+        case 'comment':
+          $x = preg_match_all('/[()"]/', $str, $matches);
+          // Fall-through
+        case 'text':
+        default:
+          $x += preg_match_all('/[\000-\010\013\014\016-\037\177-\377]/', $str, $matches);
+          break;
+      }
+
+      if ($x == 0)
+        return ($str);
+
+      $maxlen = 75 - 7 - strlen($this->CharSet);
+      // Try to select the encoding which should produce the shortest output
+      if (strlen($str)/3 < $x) {
+        $encoding = 'B';
+        $encoded = base64_encode($str);
+        $maxlen -= $maxlen % 4;
+        $encoded = trim(chunk_split($encoded, $maxlen, "\n"));
+      } else {
+        $encoding = 'Q';
+        $encoded = $this->EncodeQ($str, $position);
+        $encoded = $this->WrapText($encoded, $maxlen, true);
+        $encoded = str_replace("=".$this->LE, "\n", trim($encoded));
+      }
+
+      $encoded = preg_replace('/^(.*)$/m', " =?".$this->CharSet."?$encoding?\\1?=", $encoded);
+      $encoded = trim(str_replace("\n", $this->LE, $encoded));
+      
+      return $encoded;
+    }
+    
+    /**
+     * Encode string to quoted-printable.  
+     * @access private
+     * @return string
+     */
+    function EncodeQP ($str) {
+        $encoded = $this->FixEOL($str);
+        if (substr($encoded, -(strlen($this->LE))) != $this->LE)
+            $encoded .= $this->LE;
+
+        // Replace every high ascii, control and = characters
+        $encoded = preg_replace('/([\000-\010\013\014\016-\037\075\177-\377])/e',
+                  "'='.sprintf('%02X', ord('\\1'))", $encoded);
+        // Replace every spaces and tabs when it's the last character on a line
+        $encoded = preg_replace("/([\011\040])".$this->LE."/e",
+                  "'='.sprintf('%02X', ord('\\1')).'".$this->LE."'", $encoded);
+
+        // Maximum line length of 76 characters before CRLF (74 + space + '=')
+        $encoded = $this->WrapText($encoded, 74, true);
+
+        return $encoded;
+    }
+
+    /**
+     * Encode string to q encoding.  
+     * @access private
+     * @return string
+     */
+    function EncodeQ ($str, $position = "text") {
+        // There should not be any EOL in the string
+        $encoded = preg_replace("[\r\n]", "", $str);
+
+        switch (strtolower($position)) {
+          case "phrase":
+            $encoded = preg_replace("/([^A-Za-z0-9!*+\/ -])/e", "'='.sprintf('%02X', ord('\\1'))", $encoded);
+            break;
+          case "comment":
+            $encoded = preg_replace("/([\(\)\"])/e", "'='.sprintf('%02X', ord('\\1'))", $encoded);
+          case "text":
+          default:
+            // Replace every high ascii, control =, ? and _ characters
+            $encoded = preg_replace('/([\000-\011\013\014\016-\037\075\077\137\177-\377])/e',
+                  "'='.sprintf('%02X', ord('\\1'))", $encoded);
+            break;
+        }
+        
+        // Replace every spaces to _ (more readable than =20)
+        $encoded = str_replace(" ", "_", $encoded);
+
+        return $encoded;
+    }
+
+    /**
+     * Adds a string or binary attachment (non-filesystem) to the list.
+     * This method can be used to attach ascii or binary data,
+     * such as a BLOB record from a database.
+     * @param string $string String attachment data.
+     * @param string $filename Name of the attachment.
+     * @param string $encoding File encoding (see $Encoding).
+     * @param string $type File extension (MIME) type.
+     * @return void
+     */
+    function AddStringAttachment($string, $filename, $encoding = "base64", 
+                                 $type = "application/octet-stream") {
+        // Append to $attachment array
+        $cur = count($this->attachment);
+        $this->attachment[$cur][0] = $string;
+        $this->attachment[$cur][1] = $filename;
+        $this->attachment[$cur][2] = $filename;
+        $this->attachment[$cur][3] = $encoding;
+        $this->attachment[$cur][4] = $type;
+        $this->attachment[$cur][5] = true; // isString
+        $this->attachment[$cur][6] = "attachment";
+        $this->attachment[$cur][7] = 0;
+    }
+    
+    /**
+     * Adds an embedded attachment.  This can include images, sounds, and 
+     * just about any other document.  Make sure to set the $type to an 
+     * image type.  For JPEG images use "image/jpeg" and for GIF images 
+     * use "image/gif".
+     * @param string $path Path to the attachment.
+     * @param string $cid Content ID of the attachment.  Use this to identify 
+     *        the Id for accessing the image in an HTML form.
+     * @param string $name Overrides the attachment name.
+     * @param string $encoding File encoding (see $Encoding).
+     * @param string $type File extension (MIME) type.  
+     * @return bool
+     */
+    function AddEmbeddedImage($path, $cid, $name = "", $encoding = "base64", 
+                              $type = "application/octet-stream") {
+    
+        if(!@is_file($path))
+        {
+            $this->SetError($this->Lang("file_access") . $path);
+            return false;
+        }
+
+        $filename = basename($path);
+        if($name == "")
+            $name = $filename;
+
+        // Append to $attachment array
+        $cur = count($this->attachment);
+        $this->attachment[$cur][0] = $path;
+        $this->attachment[$cur][1] = $filename;
+        $this->attachment[$cur][2] = $name;
+        $this->attachment[$cur][3] = $encoding;
+        $this->attachment[$cur][4] = $type;
+        $this->attachment[$cur][5] = false; // isStringAttachment
+        $this->attachment[$cur][6] = "inline";
+        $this->attachment[$cur][7] = $cid;
+    
+        return true;
+    }
+    
+    /**
+     * Returns true if an inline attachment is present.
+     * @access private
+     * @return bool
+     */
+    function InlineImageExists() {
+        $result = false;
+        for($i = 0; $i < count($this->attachment); $i++)
+        {
+            if($this->attachment[$i][6] == "inline")
+            {
+                $result = true;
+                break;
+            }
+        }
+        
+        return $result;
+    }
+
+    /////////////////////////////////////////////////
+    // MESSAGE RESET METHODS
+    /////////////////////////////////////////////////
+
+    /**
+     * Clears all recipients assigned in the TO array.  Returns void.
+     * @return void
+     */
+    function ClearAddresses() {
+        $this->to = array();
+    }
+
+    /**
+     * Clears all recipients assigned in the CC array.  Returns void.
+     * @return void
+     */
+    function ClearCCs() {
+        $this->cc = array();
+    }
+
+    /**
+     * Clears all recipients assigned in the BCC array.  Returns void.
+     * @return void
+     */
+    function ClearBCCs() {
+        $this->bcc = array();
+    }
+
+    /**
+     * Clears all recipients assigned in the ReplyTo array.  Returns void.
+     * @return void
+     */
+    function ClearReplyTos() {
+        $this->ReplyTo = array();
+    }
+
+    /**
+     * Clears all recipients assigned in the TO, CC and BCC
+     * array.  Returns void.
+     * @return void
+     */
+    function ClearAllRecipients() {
+        $this->to = array();
+        $this->cc = array();
+        $this->bcc = array();
+    }
+
+    /**
+     * Clears all previously set filesystem, string, and binary
+     * attachments.  Returns void.
+     * @return void
+     */
+    function ClearAttachments() {
+        $this->attachment = array();
+    }
+
+    /**
+     * Clears all custom headers.  Returns void.
+     * @return void
+     */
+    function ClearCustomHeaders() {
+        $this->CustomHeader = array();
+    }
+
+
+    /////////////////////////////////////////////////
+    // MISCELLANEOUS METHODS
+    /////////////////////////////////////////////////
+
+    /**
+     * Adds the error message to the error container.
+     * Returns void.
+     * @access private
+     * @return void
+     */
+    function SetError($msg) {
+        $this->error_count++;
+        $this->ErrorInfo = $msg;
+    }
+
+    /**
+     * Returns the proper RFC 822 formatted date. 
+     * @access private
+     * @return string
+     */
+    function RFCDate() {
+        $tz = date("Z");
+        $tzs = ($tz < 0) ? "-" : "+";
+        $tz = abs($tz);
+        $tz = ($tz/3600)*100 + ($tz%3600)/60;
+        $result = sprintf("%s %s%04d", date("D, j M Y H:i:s"), $tzs, $tz);
+
+        return $result;
+    }
+    
+    /**
+     * Returns the appropriate server variable.  Should work with both 
+     * PHP 4.1.0+ as well as older versions.  Returns an empty string 
+     * if nothing is found.
+     * @access private
+     * @return mixed
+     */
+    function ServerVar($varName) {
+        global $HTTP_SERVER_VARS;
+        global $HTTP_ENV_VARS;
+
+        if(!isset($_SERVER))
+        {
+            $_SERVER = $HTTP_SERVER_VARS;
+            if(!isset($_SERVER["REMOTE_ADDR"]))
+                $_SERVER = $HTTP_ENV_VARS; // must be Apache
+        }
+        
+        if(isset($_SERVER[$varName]))
+            return $_SERVER[$varName];
+        else
+            return "";
+    }
+
+    /**
+     * Returns the server hostname or 'localhost.localdomain' if unknown.
+     * @access private
+     * @return string
+     */
+    function ServerHostname() {
+        if ($this->Hostname != "")
+            $result = $this->Hostname;
+        elseif ($this->ServerVar('SERVER_NAME') != "")
+            $result = $this->ServerVar('SERVER_NAME');
+        else
+            $result = "localhost.localdomain";
+
+        return $result;
+    }
+
+    /**
+     * Returns a message in the appropriate language.
+     * @access private
+     * @return string
+     */
+    function Lang($key) {
+        if(count($this->language) < 1)
+            $this->SetLanguage("en"); // set the default language
+    
+        if(isset($this->language[$key]))
+            return $this->language[$key];
+        else
+            return "Language string failed to load: " . $key;
+    }
+    
+    /**
+     * Returns true if an error occurred.
+     * @return bool
+     */
+    function IsError() {
+        return ($this->error_count > 0);
+    }
+
+    /**
+     * Changes every end of line from CR or LF to CRLF.  
+     * @access private
+     * @return string
+     */
+    function FixEOL($str) {
+        $str = str_replace("\r\n", "\n", $str);
+        $str = str_replace("\r", "\n", $str);
+        $str = str_replace("\n", $this->LE, $str);
+        return $str;
+    }
+
+    /**
+     * Adds a custom header. 
+     * @return void
+     */
+    function AddCustomHeader($custom_header) {
+        $this->CustomHeader[] = explode(":", $custom_header, 2);
+    }
+}
+
+?>
Index: /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/phpmailer/class.smtp.php
===================================================================
--- /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/phpmailer/class.smtp.php	(revision 90)
+++ /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/phpmailer/class.smtp.php	(revision 90)
@@ -0,0 +1,1045 @@
+<?php
+////////////////////////////////////////////////////
+// SMTP - PHP SMTP class
+//
+// Version 1.02
+//
+// Define an SMTP class that can be used to connect
+// and communicate with any SMTP server. It implements
+// all the SMTP functions defined in RFC821 except TURN.
+//
+// Author: Chris Ryan
+//
+// License: LGPL, see LICENSE
+////////////////////////////////////////////////////
+
+/**
+ * SMTP is rfc 821 compliant and implements all the rfc 821 SMTP
+ * commands except TURN which will always return a not implemented
+ * error. SMTP also provides some utility methods for sending mail
+ * to an SMTP server.
+ * @package PHPMailer
+ * @author Chris Ryan
+ */
+class SMTP
+{
+    /**
+     *  SMTP server port
+     *  @var int
+     */
+    var $SMTP_PORT = 25;
+    
+    /**
+     *  SMTP reply line ending
+     *  @var string
+     */
+    var $CRLF = "\r\n";
+    
+    /**
+     *  Sets whether debugging is turned on
+     *  @var bool
+     */
+    var $do_debug;       # the level of debug to perform
+
+    /**#@+
+     * @access private
+     */
+    var $smtp_conn;      # the socket to the server
+    var $error;          # error if any on the last call
+    var $helo_rply;      # the reply the server sent to us for HELO
+    /**#@-*/
+
+    /**
+     * Initialize the class so that the data is in a known state.
+     * @access public
+     * @return void
+     */
+    function SMTP() {
+        $this->smtp_conn = 0;
+        $this->error = null;
+        $this->helo_rply = null;
+
+        $this->do_debug = 0;
+    }
+
+    /*************************************************************
+     *                    CONNECTION FUNCTIONS                  *
+     ***********************************************************/
+
+    /**
+     * Connect to the server specified on the port specified.
+     * If the port is not specified use the default SMTP_PORT.
+     * If tval is specified then a connection will try and be
+     * established with the server for that number of seconds.
+     * If tval is not specified the default is 30 seconds to
+     * try on the connection.
+     *
+     * SMTP CODE SUCCESS: 220
+     * SMTP CODE FAILURE: 421
+     * @access public
+     * @return bool
+     */
+    function Connect($host,$port=0,$tval=30) {
+        # set the error val to null so there is no confusion
+        $this->error = null;
+
+        # make sure we are __not__ connected
+        if($this->connected()) {
+            # ok we are connected! what should we do?
+            # for now we will just give an error saying we
+            # are already connected
+            $this->error =
+                array("error" => "Already connected to a server");
+            return false;
+        }
+
+        if(empty($port)) {
+            $port = $this->SMTP_PORT;
+        }
+
+        #connect to the smtp server
+        $this->smtp_conn = fsockopen($host,    # the host of the server
+                                     $port,    # the port to use
+                                     $errno,   # error number if any
+                                     $errstr,  # error message if any
+                                     $tval);   # give up after ? secs
+        # verify we connected properly
+        if(empty($this->smtp_conn)) {
+            $this->error = array("error" => "Failed to connect to server",
+                                 "errno" => $errno,
+                                 "errstr" => $errstr);
+            if($this->do_debug >= 1) {
+                echo "SMTP -> ERROR: " . $this->error["error"] .
+                         ": $errstr ($errno)" . $this->CRLF;
+            }
+            return false;
+        }
+
+        # sometimes the SMTP server takes a little longer to respond
+        # so we will give it a longer timeout for the first read
+        // Windows still does not have support for this timeout function
+        if(substr(PHP_OS, 0, 3) != "WIN")
+           socket_set_timeout($this->smtp_conn, $tval, 0);
+
+        # get any announcement stuff
+        $announce = $this->get_lines();
+
+        # set the timeout  of any socket functions at 1/10 of a second
+        //if(function_exists("socket_set_timeout"))
+        //   socket_set_timeout($this->smtp_conn, 0, 100000);
+
+        if($this->do_debug >= 2) {
+            echo "SMTP -> FROM SERVER:" . $this->CRLF . $announce;
+        }
+
+        return true;
+    }
+
+    /**
+     * Performs SMTP authentication.  Must be run after running the
+     * Hello() method.  Returns true if successfully authenticated.
+     * @access public
+     * @return bool
+     */
+    function Authenticate($username, $password) {
+        // Start authentication
+        fputs($this->smtp_conn,"AUTH LOGIN" . $this->CRLF);
+
+        $rply = $this->get_lines();
+        $code = substr($rply,0,3);
+
+        if($code != 334) {
+            $this->error =
+                array("error" => "AUTH not accepted from server",
+                      "smtp_code" => $code,
+                      "smtp_msg" => substr($rply,4));
+            if($this->do_debug >= 1) {
+                echo "SMTP -> ERROR: " . $this->error["error"] .
+                         ": " . $rply . $this->CRLF;
+            }
+            return false;
+        }
+
+        // Send encoded username
+        fputs($this->smtp_conn, base64_encode($username) . $this->CRLF);
+
+        $rply = $this->get_lines();
+        $code = substr($rply,0,3);
+
+        if($code != 334) {
+            $this->error =
+                array("error" => "Username not accepted from server",
+                      "smtp_code" => $code,
+                      "smtp_msg" => substr($rply,4));
+            if($this->do_debug >= 1) {
+                echo "SMTP -> ERROR: " . $this->error["error"] .
+                         ": " . $rply . $this->CRLF;
+            }
+            return false;
+        }
+
+        // Send encoded password
+        fputs($this->smtp_conn, base64_encode($password) . $this->CRLF);
+
+        $rply = $this->get_lines();
+        $code = substr($rply,0,3);
+
+        if($code != 235) {
+            $this->error =
+                array("error" => "Password not accepted from server",
+                      "smtp_code" => $code,
+                      "smtp_msg" => substr($rply,4));
+            if($this->do_debug >= 1) {
+                echo "SMTP -> ERROR: " . $this->error["error"] .
+                         ": " . $rply . $this->CRLF;
+            }
+            return false;
+        }
+
+        return true;
+    }
+
+    /**
+     * Returns true if connected to a server otherwise false
+     * @access private
+     * @return bool
+     */
+    function Connected() {
+        if(!empty($this->smtp_conn)) {
+            $sock_status = socket_get_status($this->smtp_conn);
+            if($sock_status["eof"]) {
+                # hmm this is an odd situation... the socket is
+                # valid but we aren't connected anymore
+                if($this->do_debug >= 1) {
+                    echo "SMTP -> NOTICE:" . $this->CRLF .
+                         "EOF caught while checking if connected";
+                }
+                $this->Close();
+                return false;
+            }
+            return true; # everything looks good
+        }
+        return false;
+    }
+
+    /**
+     * Closes the socket and cleans up the state of the class.
+     * It is not considered good to use this function without
+     * first trying to use QUIT.
+     * @access public
+     * @return void
+     */
+    function Close() {
+        $this->error = null; # so there is no confusion
+        $this->helo_rply = null;
+        if(!empty($this->smtp_conn)) {
+            # close the connection and cleanup
+            fclose($this->smtp_conn);
+            $this->smtp_conn = 0;
+        }
+    }
+
+
+    /***************************************************************
+     *                        SMTP COMMANDS                       *
+     *************************************************************/
+
+    /**
+     * Issues a data command and sends the msg_data to the server
+     * finializing the mail transaction. $msg_data is the message
+     * that is to be send with the headers. Each header needs to be
+     * on a single line followed by a <CRLF> with the message headers
+     * and the message body being seperated by and additional <CRLF>.
+     *
+     * Implements rfc 821: DATA <CRLF>
+     *
+     * SMTP CODE INTERMEDIATE: 354
+     *     [data]
+     *     <CRLF>.<CRLF>
+     *     SMTP CODE SUCCESS: 250
+     *     SMTP CODE FAILURE: 552,554,451,452
+     * SMTP CODE FAILURE: 451,554
+     * SMTP CODE ERROR  : 500,501,503,421
+     * @access public
+     * @return bool
+     */
+    function Data($msg_data) {
+        $this->error = null; # so no confusion is caused
+
+        if(!$this->connected()) {
+            $this->error = array(
+                    "error" => "Called Data() without being connected");
+            return false;
+        }
+
+        fputs($this->smtp_conn,"DATA" . $this->CRLF);
+
+        $rply = $this->get_lines();
+        $code = substr($rply,0,3);
+
+        if($this->do_debug >= 2) {
+            echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply;
+        }
+
+        if($code != 354) {
+            $this->error =
+                array("error" => "DATA command not accepted from server",
+                      "smtp_code" => $code,
+                      "smtp_msg" => substr($rply,4));
+            if($this->do_debug >= 1) {
+                echo "SMTP -> ERROR: " . $this->error["error"] .
+                         ": " . $rply . $this->CRLF;
+            }
+            return false;
+        }
+
+        # the server is ready to accept data!
+        # according to rfc 821 we should not send more than 1000
+        # including the CRLF
+        # characters on a single line so we will break the data up
+        # into lines by \r and/or \n then if needed we will break
+        # each of those into smaller lines to fit within the limit.
+        # in addition we will be looking for lines that start with
+        # a period '.' and append and additional period '.' to that
+        # line. NOTE: this does not count towards are limit.
+
+        # normalize the line breaks so we know the explode works
+        $msg_data = str_replace("\r\n","\n",$msg_data);
+        $msg_data = str_replace("\r","\n",$msg_data);
+        $lines = explode("\n",$msg_data);
+
+        # we need to find a good way to determine is headers are
+        # in the msg_data or if it is a straight msg body
+        # currently I'm assuming rfc 822 definitions of msg headers
+        # and if the first field of the first line (':' sperated)
+        # does not contain a space then it _should_ be a header
+        # and we can process all lines before a blank "" line as
+        # headers.
+        $field = substr($lines[0],0,strpos($lines[0],":"));
+        $in_headers = false;
+        if(!empty($field) && !strstr($field," ")) {
+            $in_headers = true;
+        }
+
+        $max_line_length = 998; # used below; set here for ease in change
+
+        while(list(,$line) = @each($lines)) {
+            $lines_out = null;
+            if($line == "" && $in_headers) {
+                $in_headers = false;
+            }
+            # ok we need to break this line up into several
+            # smaller lines
+            while(strlen($line) > $max_line_length) {
+                $pos = strrpos(substr($line,0,$max_line_length)," ");
+
+                # Patch to fix DOS attack
+                if(!$pos) {
+                    $pos = $max_line_length - 1;
+                }
+
+                $lines_out[] = substr($line,0,$pos);
+                $line = substr($line,$pos + 1);
+                # if we are processing headers we need to
+                # add a LWSP-char to the front of the new line
+                # rfc 822 on long msg headers
+                if($in_headers) {
+                    $line = "\t" . $line;
+                }
+            }
+            $lines_out[] = $line;
+
+            # now send the lines to the server
+            while(list(,$line_out) = @each($lines_out)) {
+                if(strlen($line_out) > 0)
+                {
+                    if(substr($line_out, 0, 1) == ".") {
+                        $line_out = "." . $line_out;
+                    }
+                }
+                fputs($this->smtp_conn,$line_out . $this->CRLF);
+            }
+        }
+
+        # ok all the message data has been sent so lets get this
+        # over with aleady
+        fputs($this->smtp_conn, $this->CRLF . "." . $this->CRLF);
+
+        $rply = $this->get_lines();
+        $code = substr($rply,0,3);
+
+        if($this->do_debug >= 2) {
+            echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply;
+        }
+
+        if($code != 250) {
+            $this->error =
+                array("error" => "DATA not accepted from server",
+                      "smtp_code" => $code,
+                      "smtp_msg" => substr($rply,4));
+            if($this->do_debug >= 1) {
+                echo "SMTP -> ERROR: " . $this->error["error"] .
+                         ": " . $rply . $this->CRLF;
+            }
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * Expand takes the name and asks the server to list all the
+     * people who are members of the _list_. Expand will return
+     * back and array of the result or false if an error occurs.
+     * Each value in the array returned has the format of:
+     *     [ <full-name> <sp> ] <path>
+     * The definition of <path> is defined in rfc 821
+     *
+     * Implements rfc 821: EXPN <SP> <string> <CRLF>
+     *
+     * SMTP CODE SUCCESS: 250
+     * SMTP CODE FAILURE: 550
+     * SMTP CODE ERROR  : 500,501,502,504,421
+     * @access public
+     * @return string array
+     */
+    function Expand($name) {
+        $this->error = null; # so no confusion is caused
+
+        if(!$this->connected()) {
+            $this->error = array(
+                    "error" => "Called Expand() without being connected");
+            return false;
+        }
+
+        fputs($this->smtp_conn,"EXPN " . $name . $this->CRLF);
+
+        $rply = $this->get_lines();
+        $code = substr($rply,0,3);
+
+        if($this->do_debug >= 2) {
+            echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply;
+        }
+
+        if($code != 250) {
+            $this->error =
+                array("error" => "EXPN not accepted from server",
+                      "smtp_code" => $code,
+                      "smtp_msg" => substr($rply,4));
+            if($this->do_debug >= 1) {
+                echo "SMTP -> ERROR: " . $this->error["error"] .
+                         ": " . $rply . $this->CRLF;
+            }
+            return false;
+        }
+
+        # parse the reply and place in our array to return to user
+        $entries = explode($this->CRLF,$rply);
+        while(list(,$l) = @each($entries)) {
+            $list[] = substr($l,4);
+        }
+
+        return $list;
+    }
+
+    /**
+     * Sends the HELO command to the smtp server.
+     * This makes sure that we and the server are in
+     * the same known state.
+     *
+     * Implements from rfc 821: HELO <SP> <domain> <CRLF>
+     *
+     * SMTP CODE SUCCESS: 250
+     * SMTP CODE ERROR  : 500, 501, 504, 421
+     * @access public
+     * @return bool
+     */
+    function Hello($host="") {
+        $this->error = null; # so no confusion is caused
+
+        if(!$this->connected()) {
+            $this->error = array(
+                    "error" => "Called Hello() without being connected");
+            return false;
+        }
+
+        # if a hostname for the HELO wasn't specified determine
+        # a suitable one to send
+        if(empty($host)) {
+            # we need to determine some sort of appopiate default
+            # to send to the server
+            $host = "localhost";
+        }
+
+        // Send extended hello first (RFC 2821)
+        if(!$this->SendHello("EHLO", $host))
+        {
+            if(!$this->SendHello("HELO", $host))
+                return false;
+        }
+
+        return true;
+    }
+
+    /**
+     * Sends a HELO/EHLO command.
+     * @access private
+     * @return bool
+     */
+    function SendHello($hello, $host) {
+        fputs($this->smtp_conn, $hello . " " . $host . $this->CRLF);
+
+        $rply = $this->get_lines();
+        $code = substr($rply,0,3);
+
+        if($this->do_debug >= 2) {
+            echo "SMTP -> FROM SERVER: " . $this->CRLF . $rply;
+        }
+
+        if($code != 250) {
+            $this->error =
+                array("error" => $hello . " not accepted from server",
+                      "smtp_code" => $code,
+                      "smtp_msg" => substr($rply,4));
+            if($this->do_debug >= 1) {
+                echo "SMTP -> ERROR: " . $this->error["error"] .
+                         ": " . $rply . $this->CRLF;
+            }
+            return false;
+        }
+
+        $this->helo_rply = $rply;
+        
+        return true;
+    }
+
+    /**
+     * Gets help information on the keyword specified. If the keyword
+     * is not specified then returns generic help, ussually contianing
+     * A list of keywords that help is available on. This function
+     * returns the results back to the user. It is up to the user to
+     * handle the returned data. If an error occurs then false is
+     * returned with $this->error set appropiately.
+     *
+     * Implements rfc 821: HELP [ <SP> <string> ] <CRLF>
+     *
+     * SMTP CODE SUCCESS: 211,214
+     * SMTP CODE ERROR  : 500,501,502,504,421
+     * @access public
+     * @return string
+     */
+    function Help($keyword="") {
+        $this->error = null; # to avoid confusion
+
+        if(!$this->connected()) {
+            $this->error = array(
+                    "error" => "Called Help() without being connected");
+            return false;
+        }
+
+        $extra = "";
+        if(!empty($keyword)) {
+            $extra = " " . $keyword;
+        }
+
+        fputs($this->smtp_conn,"HELP" . $extra . $this->CRLF);
+
+        $rply = $this->get_lines();
+        $code = substr($rply,0,3);
+
+        if($this->do_debug >= 2) {
+            echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply;
+        }
+
+        if($code != 211 && $code != 214) {
+            $this->error =
+                array("error" => "HELP not accepted from server",
+                      "smtp_code" => $code,
+                      "smtp_msg" => substr($rply,4));
+            if($this->do_debug >= 1) {
+                echo "SMTP -> ERROR: " . $this->error["error"] .
+                         ": " . $rply . $this->CRLF;
+            }
+            return false;
+        }
+
+        return $rply;
+    }
+
+    /**
+     * Starts a mail transaction from the email address specified in
+     * $from. Returns true if successful or false otherwise. If True
+     * the mail transaction is started and then one or more Recipient
+     * commands may be called followed by a Data command.
+     *
+     * Implements rfc 821: MAIL <SP> FROM:<reverse-path> <CRLF>
+     *
+     * SMTP CODE SUCCESS: 250
+     * SMTP CODE SUCCESS: 552,451,452
+     * SMTP CODE SUCCESS: 500,501,421
+     * @access public
+     * @return bool
+     */
+    function Mail($from) {
+        $this->error = null; # so no confusion is caused
+
+        if(!$this->connected()) {
+            $this->error = array(
+                    "error" => "Called Mail() without being connected");
+            return false;
+        }
+
+        fputs($this->smtp_conn,"MAIL FROM:<" . $from . ">" . $this->CRLF);
+
+        $rply = $this->get_lines();
+        $code = substr($rply,0,3);
+
+        if($this->do_debug >= 2) {
+            echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply;
+        }
+
+        if($code != 250) {
+            $this->error =
+                array("error" => "MAIL not accepted from server",
+                      "smtp_code" => $code,
+                      "smtp_msg" => substr($rply,4));
+            if($this->do_debug >= 1) {
+                echo "SMTP -> ERROR: " . $this->error["error"] .
+                         ": " . $rply . $this->CRLF;
+            }
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * Sends the command NOOP to the SMTP server.
+     *
+     * Implements from rfc 821: NOOP <CRLF>
+     *
+     * SMTP CODE SUCCESS: 250
+     * SMTP CODE ERROR  : 500, 421
+     * @access public
+     * @return bool
+     */
+    function Noop() {
+        $this->error = null; # so no confusion is caused
+
+        if(!$this->connected()) {
+            $this->error = array(
+                    "error" => "Called Noop() without being connected");
+            return false;
+        }
+
+        fputs($this->smtp_conn,"NOOP" . $this->CRLF);
+
+        $rply = $this->get_lines();
+        $code = substr($rply,0,3);
+
+        if($this->do_debug >= 2) {
+            echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply;
+        }
+
+        if($code != 250) {
+            $this->error =
+                array("error" => "NOOP not accepted from server",
+                      "smtp_code" => $code,
+                      "smtp_msg" => substr($rply,4));
+            if($this->do_debug >= 1) {
+                echo "SMTP -> ERROR: " . $this->error["error"] .
+                         ": " . $rply . $this->CRLF;
+            }
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * Sends the quit command to the server and then closes the socket
+     * if there is no error or the $close_on_error argument is true.
+     *
+     * Implements from rfc 821: QUIT <CRLF>
+     *
+     * SMTP CODE SUCCESS: 221
+     * SMTP CODE ERROR  : 500
+     * @access public
+     * @return bool
+     */
+    function Quit($close_on_error=true) {
+        $this->error = null; # so there is no confusion
+
+        if(!$this->connected()) {
+            $this->error = array(
+                    "error" => "Called Quit() without being connected");
+            return false;
+        }
+
+        # send the quit command to the server
+        fputs($this->smtp_conn,"quit" . $this->CRLF);
+
+        # get any good-bye messages
+        $byemsg = $this->get_lines();
+
+        if($this->do_debug >= 2) {
+            echo "SMTP -> FROM SERVER:" . $this->CRLF . $byemsg;
+        }
+
+        $rval = true;
+        $e = null;
+
+        $code = substr($byemsg,0,3);
+        if($code != 221) {
+            # use e as a tmp var cause Close will overwrite $this->error
+            $e = array("error" => "SMTP server rejected quit command",
+                       "smtp_code" => $code,
+                       "smtp_rply" => substr($byemsg,4));
+            $rval = false;
+            if($this->do_debug >= 1) {
+                echo "SMTP -> ERROR: " . $e["error"] . ": " .
+                         $byemsg . $this->CRLF;
+            }
+        }
+
+        if(empty($e) || $close_on_error) {
+            $this->Close();
+        }
+
+        return $rval;
+    }
+
+    /**
+     * Sends the command RCPT to the SMTP server with the TO: argument of $to.
+     * Returns true if the recipient was accepted false if it was rejected.
+     *
+     * Implements from rfc 821: RCPT <SP> TO:<forward-path> <CRLF>
+     *
+     * SMTP CODE SUCCESS: 250,251
+     * SMTP CODE FAILURE: 550,551,552,553,450,451,452
+     * SMTP CODE ERROR  : 500,501,503,421
+     * @access public
+     * @return bool
+     */
+    function Recipient($to) {
+        $this->error = null; # so no confusion is caused
+
+        if(!$this->connected()) {
+            $this->error = array(
+                    "error" => "Called Recipient() without being connected");
+            return false;
+        }
+
+        fputs($this->smtp_conn,"RCPT TO:<" . $to . ">" . $this->CRLF);
+
+        $rply = $this->get_lines();
+        $code = substr($rply,0,3);
+
+        if($this->do_debug >= 2) {
+            echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply;
+        }
+
+        if($code != 250 && $code != 251) {
+            $this->error =
+                array("error" => "RCPT not accepted from server",
+                      "smtp_code" => $code,
+                      "smtp_msg" => substr($rply,4));
+            if($this->do_debug >= 1) {
+                echo "SMTP -> ERROR: " . $this->error["error"] .
+                         ": " . $rply . $this->CRLF;
+            }
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * Sends the RSET command to abort and transaction that is
+     * currently in progress. Returns true if successful false
+     * otherwise.
+     *
+     * Implements rfc 821: RSET <CRLF>
+     *
+     * SMTP CODE SUCCESS: 250
+     * SMTP CODE ERROR  : 500,501,504,421
+     * @access public
+     * @return bool
+     */
+    function Reset() {
+        $this->error = null; # so no confusion is caused
+
+        if(!$this->connected()) {
+            $this->error = array(
+                    "error" => "Called Reset() without being connected");
+            return false;
+        }
+
+        fputs($this->smtp_conn,"RSET" . $this->CRLF);
+
+        $rply = $this->get_lines();
+        $code = substr($rply,0,3);
+
+        if($this->do_debug >= 2) {
+            echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply;
+        }
+
+        if($code != 250) {
+            $this->error =
+                array("error" => "RSET failed",
+                      "smtp_code" => $code,
+                      "smtp_msg" => substr($rply,4));
+            if($this->do_debug >= 1) {
+                echo "SMTP -> ERROR: " . $this->error["error"] .
+                         ": " . $rply . $this->CRLF;
+            }
+            return false;
+        }
+
+        return true;
+    }
+
+    /**
+     * Starts a mail transaction from the email address specified in
+     * $from. Returns true if successful or false otherwise. If True
+     * the mail transaction is started and then one or more Recipient
+     * commands may be called followed by a Data command. This command
+     * will send the message to the users terminal if they are logged
+     * in.
+     *
+     * Implements rfc 821: SEND <SP> FROM:<reverse-path> <CRLF>
+     *
+     * SMTP CODE SUCCESS: 250
+     * SMTP CODE SUCCESS: 552,451,452
+     * SMTP CODE SUCCESS: 500,501,502,421
+     * @access public
+     * @return bool
+     */
+    function Send($from) {
+        $this->error = null; # so no confusion is caused
+
+        if(!$this->connected()) {
+            $this->error = array(
+                    "error" => "Called Send() without being connected");
+            return false;
+        }
+
+        fputs($this->smtp_conn,"SEND FROM:" . $from . $this->CRLF);
+
+        $rply = $this->get_lines();
+        $code = substr($rply,0,3);
+
+        if($this->do_debug >= 2) {
+            echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply;
+        }
+
+        if($code != 250) {
+            $this->error =
+                array("error" => "SEND not accepted from server",
+                      "smtp_code" => $code,
+                      "smtp_msg" => substr($rply,4));
+            if($this->do_debug >= 1) {
+                echo "SMTP -> ERROR: " . $this->error["error"] .
+                         ": " . $rply . $this->CRLF;
+            }
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * Starts a mail transaction from the email address specified in
+     * $from. Returns true if successful or false otherwise. If True
+     * the mail transaction is started and then one or more Recipient
+     * commands may be called followed by a Data command. This command
+     * will send the message to the users terminal if they are logged
+     * in and send them an email.
+     *
+     * Implements rfc 821: SAML <SP> FROM:<reverse-path> <CRLF>
+     *
+     * SMTP CODE SUCCESS: 250
+     * SMTP CODE SUCCESS: 552,451,452
+     * SMTP CODE SUCCESS: 500,501,502,421
+     * @access public
+     * @return bool
+     */
+    function SendAndMail($from) {
+        $this->error = null; # so no confusion is caused
+
+        if(!$this->connected()) {
+            $this->error = array(
+                "error" => "Called SendAndMail() without being connected");
+            return false;
+        }
+
+        fputs($this->smtp_conn,"SAML FROM:" . $from . $this->CRLF);
+
+        $rply = $this->get_lines();
+        $code = substr($rply,0,3);
+
+        if($this->do_debug >= 2) {
+            echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply;
+        }
+
+        if($code != 250) {
+            $this->error =
+                array("error" => "SAML not accepted from server",
+                      "smtp_code" => $code,
+                      "smtp_msg" => substr($rply,4));
+            if($this->do_debug >= 1) {
+                echo "SMTP -> ERROR: " . $this->error["error"] .
+                         ": " . $rply . $this->CRLF;
+            }
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * Starts a mail transaction from the email address specified in
+     * $from. Returns true if successful or false otherwise. If True
+     * the mail transaction is started and then one or more Recipient
+     * commands may be called followed by a Data command. This command
+     * will send the message to the users terminal if they are logged
+     * in or mail it to them if they are not.
+     *
+     * Implements rfc 821: SOML <SP> FROM:<reverse-path> <CRLF>
+     *
+     * SMTP CODE SUCCESS: 250
+     * SMTP CODE SUCCESS: 552,451,452
+     * SMTP CODE SUCCESS: 500,501,502,421
+     * @access public
+     * @return bool
+     */
+    function SendOrMail($from) {
+        $this->error = null; # so no confusion is caused
+
+        if(!$this->connected()) {
+            $this->error = array(
+                "error" => "Called SendOrMail() without being connected");
+            return false;
+        }
+
+        fputs($this->smtp_conn,"SOML FROM:" . $from . $this->CRLF);
+
+        $rply = $this->get_lines();
+        $code = substr($rply,0,3);
+
+        if($this->do_debug >= 2) {
+            echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply;
+        }
+
+        if($code != 250) {
+            $this->error =
+                array("error" => "SOML not accepted from server",
+                      "smtp_code" => $code,
+                      "smtp_msg" => substr($rply,4));
+            if($this->do_debug >= 1) {
+                echo "SMTP -> ERROR: " . $this->error["error"] .
+                         ": " . $rply . $this->CRLF;
+            }
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * This is an optional command for SMTP that this class does not
+     * support. This method is here to make the RFC821 Definition
+     * complete for this class and __may__ be implimented in the future
+     *
+     * Implements from rfc 821: TURN <CRLF>
+     *
+     * SMTP CODE SUCCESS: 250
+     * SMTP CODE FAILURE: 502
+     * SMTP CODE ERROR  : 500, 503
+     * @access public
+     * @return bool
+     */
+    function Turn() {
+        $this->error = array("error" => "This method, TURN, of the SMTP ".
+                                        "is not implemented");
+        if($this->do_debug >= 1) {
+            echo "SMTP -> NOTICE: " . $this->error["error"] . $this->CRLF;
+        }
+        return false;
+    }
+
+    /**
+     * Verifies that the name is recognized by the server.
+     * Returns false if the name could not be verified otherwise
+     * the response from the server is returned.
+     *
+     * Implements rfc 821: VRFY <SP> <string> <CRLF>
+     *
+     * SMTP CODE SUCCESS: 250,251
+     * SMTP CODE FAILURE: 550,551,553
+     * SMTP CODE ERROR  : 500,501,502,421
+     * @access public
+     * @return int
+     */
+    function Verify($name) {
+        $this->error = null; # so no confusion is caused
+
+        if(!$this->connected()) {
+            $this->error = array(
+                    "error" => "Called Verify() without being connected");
+            return false;
+        }
+
+        fputs($this->smtp_conn,"VRFY " . $name . $this->CRLF);
+
+        $rply = $this->get_lines();
+        $code = substr($rply,0,3);
+
+        if($this->do_debug >= 2) {
+            echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply;
+        }
+
+        if($code != 250 && $code != 251) {
+            $this->error =
+                array("error" => "VRFY failed on name '$name'",
+                      "smtp_code" => $code,
+                      "smtp_msg" => substr($rply,4));
+            if($this->do_debug >= 1) {
+                echo "SMTP -> ERROR: " . $this->error["error"] .
+                         ": " . $rply . $this->CRLF;
+            }
+            return false;
+        }
+        return $rply;
+    }
+
+    /*******************************************************************
+     *                       INTERNAL FUNCTIONS                       *
+     ******************************************************************/
+
+    /**
+     * Read in as many lines as possible
+     * either before eof or socket timeout occurs on the operation.
+     * With SMTP we can tell if we have more lines to read if the
+     * 4th character is '-' symbol. If it is a space then we don't
+     * need to read anything else.
+     * @access private
+     * @return string
+     */
+    function get_lines() {
+        $data = "";
+        while($str = fgets($this->smtp_conn,515)) {
+            if($this->do_debug >= 4) {
+                echo "SMTP -> get_lines(): \$data was \"$data\"" .
+                         $this->CRLF;
+                echo "SMTP -> get_lines(): \$str is \"$str\"" .
+                         $this->CRLF;
+            }
+            $data .= $str;
+            if($this->do_debug >= 4) {
+                echo "SMTP -> get_lines(): \$data is \"$data\"" . $this->CRLF;
+            }
+            # if the 4th character is a space then we are done reading
+            # so just break the loop
+            if(substr($str,3,1) == " ") { break; }
+        }
+        return $data;
+    }
+
+}
+
+
+ ?>
Index: /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/plugin.xml
===================================================================
--- /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/plugin.xml	(revision 90)
+++ /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/plugin.xml	(revision 90)
@@ -0,0 +1,22 @@
+<plugin>
+	<nom><multi>[fr]SPIP-Listes[en]SPIP-Lists[ar]&#1604;&#1608;&#1575;&#1574;&#1581; SPIP</multi></nom>
+	<auteur>BoOz@rezo.net</auteur>
+	<version>1.97</version>
+	<etat>test</etat>
+	<icon>spip-listes.png</icon>
+	<description><multi>[fr]Listes d'informations par email[en]Newsletter by e-mail[ar]&#1606;&#1588;&#1585;&#1577; &#1576;&#1585;&#1610;&#1583;&#1610;&#1577;</multi></description>
+	<options>spiplistes_mes_options.php</options>
+	<fonctions>spiplistes_mes_fonctions.php</fonctions>
+	<prefix>spiplistes</prefix>
+	<install>base/spiplistes_upgrade.php</install>
+	<lien>[Documentation->../plugins/spip-listes_1_9_2/docs/__installation_fr.txt]</lien>
+	<pipeline>
+		<nom>ajouter_boutons</nom>
+		<action>ajouterBoutons</action>
+		<inclure>spiplistes_boutons.php</inclure>
+	</pipeline>
+	<pipeline>
+		<nom>taches_generales_cron</nom>
+	</pipeline>
+	<chemin dir='' />
+</plugin>
Index: /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/spiplistes_boutons.php
===================================================================
--- /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/spiplistes_boutons.php	(revision 90)
+++ /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/spiplistes_boutons.php	(revision 90)
@@ -0,0 +1,26 @@
+<?php
+
+/**
+ * definition du plugin "spiplistes" version "classe statique"
+ * utilisee comme espace de nommage
+ */
+
+	if (!defined('_DIR_PLUGIN_SPIPLISTES')){
+		$p=explode(basename(_DIR_PLUGINS)."/",str_replace('\\','/',realpath(dirname(__FILE__))));
+		define('_DIR_PLUGIN_SPIPLISTES',(_DIR_PLUGINS.end($p)).'/');
+	} 
+
+	function spiplistes_ajouterBoutons($boutons_admin) {
+		// si on est admin
+		if ($GLOBALS['connect_statut'] == "0minirezo" && $GLOBALS["connect_toutes_rubriques"]) {
+		  // on voit le bouton dans la barre "naviguer"
+		  $boutons_admin['naviguer']->sousmenu["spip_listes"]= new Bouton(
+			_DIR_PLUGIN_SPIPLISTES."img_pack/stock_mail.gif",  // icone
+			_T('spiplistes:bouton_listes')	// titre
+			);
+		}
+		return $boutons_admin;
+	}
+
+
+?>
Index: /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/spiplistes_mes_fonctions.php
===================================================================
--- /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/spiplistes_mes_fonctions.php	(revision 90)
+++ /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/spiplistes_mes_fonctions.php	(revision 90)
@@ -0,0 +1,107 @@
+<?php
+
+// Boucles SPIP-listes
+global $tables_principales,$exceptions_des_tables,$table_date;
+
+
+//
+// <BOUCLE(LISTES)>
+//
+function boucle_LISTES($id_boucle, &$boucles) {
+        $boucle = &$boucles[$id_boucle];
+        $id_table = $boucle->id_table;
+        $boucle->from[$id_table] =  "spip_listes";  
+        return calculer_boucle($id_boucle, $boucles);
+}
+
+
+
+//
+// <BOUCLE(COURRIERS)>
+//
+function boucle_COURRIERS($id_boucle, &$boucles) {
+        $boucle = &$boucles[$id_boucle];
+        $id_table = $boucle->id_table;
+        $boucle->from[] =  "spip_courriers AS $id_table";
+        //$boucle->where[] = "type='nl'";
+        $boucle->where[] = array("'='","'type'","'\"nl\"'"); 
+        return calculer_boucle($id_boucle, $boucles);
+}
+
+// Filtres SPIP-listes
+function supprimer_destinataires($texte) {
+ return eregi_replace("__bLg__[0-9@\.A-Z_-]+__bLg__","",$texte);
+}
+
+
+function date_depuis($date) {
+	    
+	    if (!$date) return;
+ 	    $decal = date("U") - date("U", strtotime($date));
+ 	    
+	    if ($decal < 0) {
+ 	        $il_y_a = "date_dans";
+ 	        $decal = -1 * $decal;
+	    } else {
+ 	        $il_y_a = "spiplistes:date_depuis";
+	    }
+	    
+	    if ($decal < 3600) {
+ 	        $minutes = ceil($decal / 60);
+	        $retour = _T($il_y_a, array("delai"=>"$minutes "._T("date_minutes")));
+	    }
+	    else if ($decal < (3600 * 24) ) {
+	        $heures = ceil ($decal / 3600);
+ 	        $retour = _T($il_y_a, array("delai"=>"$heures "._T("date_heures")));
+ 	    }
+    else if ($decal < (3600 * 24 * 7)) {
+ 	        $jours = ceil ($decal / (3600 * 24));
+ 	        $retour = _T($il_y_a, array("delai"=>"$jours "._T("date_jours")));
+	    }
+	    else if ($decal < (3600 * 24 * 7 * 4)) {
+	        $semaines = ceil ($decal / (3600 * 24 * 7));
+ 	        $retour = _T($il_y_a, array("delai"=>"$semaines "._T("date_semaines")));
+	    }
+	    else if ($decal < (3600 * 24 * 30 * 6)) {
+ 	        $mois = ceil ($decal / (3600 * 24 * 30));
+ 	        $retour = _T($il_y_a, array("delai"=>"$mois "._T("date_mois")));
+ 	    }
+	    else {
+ 	        $retour = _T($il_y_a, array("delai"=>" ")).affdate_court($date);
+ 	    }
+ 	
+ 	
+ 	
+ 	    return $retour;
+}
+
+// http://doc.spip.org/@inc_editer_auteurs_dist
+function inc_editer_auteurs($type, $id, $flag, $cherche_auteur, $ids, $titre_boite = NULL, $script_edit_objet = NULL) {
+	global $options;
+	$arg_ajax = "&id_{$type}=$id";
+	//ligne rajouté au fork
+	$arg_ajax .= "&type=".$type;
+	//fin du fork du fichier
+	
+	if ($script_edit_objet===NULL)
+	 $script_edit_objet = $type.'s';
+
+	if ($titre_boite===NULL)
+		$titre_boite = _T('texte_auteurs'). aide("artauteurs");
+	else
+		$arg_ajax.= "&titre=".urlencode($titre_boite);
+
+	$cond_les_auteurs = "";
+	$aff_les_auteurs = afficher_auteurs_objet($type, $id, $flag, $cond_les_auteurs, $script_edit_objet, $arg_ajax);
+
+	if ($flag AND $options == 'avancees') {
+		$futurs = ajouter_auteurs_objet($type, $id, $cond_les_auteurs,$script_edit_objet, $arg_ajax);
+	} else $futurs = '';
+
+	$ldap = isset($GLOBALS['meta']['ldap_statut_import']) ?
+	  $GLOBALS['meta']['ldap_statut_import'] : '';
+
+	return editer_auteurs_objet($type, $id, $flag, $cherche_auteur, $ids, $aff_les_auteurs, $futurs, $ldap,$titre_boite,$script_edit_objet, $arg_ajax);
+}
+
+?>
Index: /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/spiplistes_mes_options.php
===================================================================
--- /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/spiplistes_mes_options.php	(revision 90)
+++ /trunk/spip/esqueleto-redcta/plugins/spip-listes_1_9_2/spiplistes_mes_options.php	(revision 90)
@@ -0,0 +1,71 @@
+<?php
+
+include_spip ('base/spip-listes');
+
+//nombre de processus d'envoi simultanes
+@define('_SPIP_LISTE_SEND_THREADS',1);
+
+function spiplistes_log($texte){
+	spip_log($texte,'spiplistes');
+}
+
+//Balises Spip-listes
+
+function balise_MELEUSE_CRON($p) {
+   $p->code = "''";
+   $p->statut = 'php';
+   return $p;
+}
+
+
+function calcul_DATE_MODIF_SITE() {
+   $date_art=spip_query("SELECT date,titre FROM spip_articles WHERE statut='publie' ORDER BY date DESC LIMIT 0,1");
+   $date_art=spip_fetch_array($date_art);
+   $date_art= $date_art['date'];
+   
+   $date_bre=spip_query("SELECT date_heure,titre FROM spip_breves WHERE statut='publie' ORDER BY date_heure DESC LIMIT 0,1");
+   $date_bre=spip_fetch_array($date_bre);
+   $date_bre= $date_bre['date_heure'];
+   
+   $date_modif= ($date_bre>$date_art)? $date_bre : $date_art ;   
+   return  $date_modif;
+}
+
+function balise_DATE_MODIF_SITE($p) {
+   $p->code = "calcul_DATE_MODIF_SITE()";
+   $p->statut = 'php';
+   return $p;
+}
+
+
+function calcul_DATE_MODIF_FORUM() {
+   $date_f=spip_query("SELECT date_heure,titre FROM spip_forum WHERE statut='publie' ORDER BY date_heure DESC LIMIT 0,1");
+   $date_f=spip_fetch_array($date_f);
+   $date_f= $date_f['date_heure'];
+   
+   return  $date_f;
+}
+
+function balise_DATE_MODIF_FORUM($p) {
+   $p->code = "calcul_DATE_MODIF_FORUM()";
+   $p->statut = 'php';
+   return $p;
+}
+
+//utiliser le cron pour envoyer les messages en attente
+function spiplistes_taches_generales_cron($taches_generales){
+	$taches_generales['spiplistes_cron'] = 10 ;
+	return $taches_generales;
+}
+
+$spiplistes_v = $GLOBALS['meta']['spiplistes_version'] ;
+
+//afficher la version de spip_listes dans le pied de page
+if($spiplistes_v == 1.91)
+$GLOBALS['spiplistes_version'] = "SPIP-listes 1.9.1";
+if($spiplistes_v >= 1.92)
+$GLOBALS['spiplistes_version'] = "SPIP-listes $spiplistes_v";
+
+
+include_spip('inc/options_spip_listes');
+?>
