From dc2f1b210eb0be014c6e185c2df1bfe67bdd0493 Mon Sep 17 00:00:00 2001
From: Cerdic <cedric@yterium.com>
Date: Sun, 26 Sep 2010 23:02:29 +0000
Subject: [PATCH] #FORMULAIRE_CONFIGURER_ANNONCES remplace
 configuration/annonce

---
 .gitattributes                                |   3 +-
 ecrire/configuration/annonces.php             | 125 ------------------
 prive/formulaires/configurer_annonces.html    | 101 ++++++++++++++
 prive/formulaires/configurer_annonces.php     |  82 ++++++++++++
 .../contenu/page-configurer_interactions.html |  10 +-
 5 files changed, 188 insertions(+), 133 deletions(-)
 delete mode 100644 ecrire/configuration/annonces.php
 create mode 100644 prive/formulaires/configurer_annonces.html
 create mode 100644 prive/formulaires/configurer_annonces.php

diff --git a/.gitattributes b/.gitattributes
index d129741713..53cd8688ea 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -74,7 +74,6 @@ ecrire/charsets/iso-8859-9.php -text
 ecrire/charsets/mathml.php -text
 ecrire/charsets/translit.php -text
 ecrire/charsets/translitcomplexe.php -text
-ecrire/configuration/annonces.php -text
 ecrire/configuration/avertisseur.php -text
 ecrire/configuration/index.php -text
 ecrire/configuration/moderniseur_html.php -text
@@ -356,6 +355,8 @@ prive/editer/auteur.html -text
 prive/editer/breve.html -text
 prive/editer/logo.html -text
 prive/editer/rubrique.html -text
+prive/formulaires/configurer_annonces.html -text
+prive/formulaires/configurer_annonces.php -text
 prive/formulaires/configurer_articles.html -text
 prive/formulaires/configurer_articles.php -text
 prive/formulaires/configurer_breves.html -text
diff --git a/ecrire/configuration/annonces.php b/ecrire/configuration/annonces.php
deleted file mode 100644
index 42c75c59ad..0000000000
--- a/ecrire/configuration/annonces.php
+++ /dev/null
@@ -1,125 +0,0 @@
-<?php
-
-/***************************************************************************\
- *  SPIP, Systeme de publication pour l'internet                           *
- *                                                                         *
- *  Copyright (c) 2001-2010                                                *
- *  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;
-
-include_spip('inc/presentation');
-include_spip('inc/config');
-
-function configuration_annonces_dist()
-{
-	global $spip_lang_left;
-
-	$res = "<table border='0' cellspacing='1' cellpadding='3' width=\"100%\">"
-	. "\n<tr><td class='verdana2'>"
-	. "<blockquote><p><i>"._T('info_hebergeur_desactiver_envoi_email')."</i></p></blockquote>"
-	. "</td></tr></table>";
-
-	//
-	// Suivi editorial (articles proposes & publies)
-	//
-
-	$suivi_edito=$GLOBALS['meta']["suivi_edito"];
-	$adresse_suivi=$GLOBALS['meta']["adresse_suivi"];
-	$adresse_suivi_inscription=$GLOBALS['meta']["adresse_suivi_inscription"];
-
-	$res .= "<br />\n"
-	. debut_cadre_relief("", true, "", _T('info_suivi_activite'))
-	. "<table border='0' cellspacing='1' cellpadding='3' width=\"100%\">";
-
-	$res .= "\n<tr><td class='verdana2'>"
-	. _T('info_facilite_suivi_activite')
-	. "</td></tr></table>";
-
-
-	$res .= "<table border='0' cellspacing='1' cellpadding='3' width=\"100%\">"
-	. "\n<tr><td style='text-align: $spip_lang_left' class='verdana2'>";
-
-	$res .= bouton_radio("suivi_edito", "oui", _T('bouton_radio_envoi_annonces_adresse'), $suivi_edito == "oui", "changeVisible(this.checked, 'config-edito', 'block', 'none');");
-
-
-	if ($suivi_edito == "oui") $style = "display: block;";
-	else $style = "display: none;";			
-
-	$res .= "<div id='config-edito' style='$style'>"
-	. "\n<div style='text-align: center;'><input type='text' name='adresse_suivi' id='adresse_suivi' value='$adresse_suivi' size='30' class='fondl' /></div>"
-	. "\n<blockquote class='spip'><p>";
-
-	if (!$adresse_suivi) $adresse_suivi = "mailing@monsite.net";
-
-	$res .= "<label for='adresse_suivi_inscription'>"._T('info_config_suivi', array('adresse_suivi' => $adresse_suivi))."</label>"
-	. "<br />\n<input type='text' name='adresse_suivi_inscription' id='adresse_suivi_inscription' value='$adresse_suivi_inscription' size='50' class='fondl' />"
-	. "</p></blockquote>"
-	. "</div>"
-	. "<br />\n"
-	. bouton_radio("suivi_edito", "non", _T('bouton_radio_non_envoi_annonces_editoriales'), $suivi_edito == "non", "changeVisible(this.checked, 'config-edito', 'none', 'block');")
-	. "</td></tr></table>\n"
-	. fin_cadre_relief(true);
-
-	//
-	// Annonce des nouveautes
-	//
-	$quoi_de_neuf=$GLOBALS['meta']["quoi_de_neuf"];
-	$adresse_neuf=$GLOBALS['meta']["adresse_neuf"];
-	$jours_neuf=$GLOBALS['meta']["jours_neuf"];
-
-	$res .= "<br />\n"
-	. debut_cadre_relief("", true, "", _T('info_annonce_nouveautes'))
-	. "<table border='0' cellspacing='1' cellpadding='3' width=\"100%\">"
-	. "\n<tr><td class='verdana2'>"
-	. _T('info_non_envoi_annonce_dernieres_nouveautes')
-	. "</td></tr>"
-	. "\n<tr><td style='text-align: $spip_lang_left' class='verdana2'>"
-	. bouton_radio("quoi_de_neuf", "oui", _T('bouton_radio_envoi_liste_nouveautes'), $quoi_de_neuf == "oui", "changeVisible(this.checked, 'config-neuf', 'block', 'none');");
-
-	if ($quoi_de_neuf == "oui") $style = "display: block;";
-	else $style = "display: none;";			
-
-	$res .= "<div id='config-neuf' style='$style'>"
-	. "<ul>"
-	. "<li><label for='adresse_neuf'>"._T('info_adresse')."</label>"
-	. "\n<input type='text' name='adresse_neuf' id='adresse_neuf' value='$adresse_neuf' size='30' class='fondl' />"
-	. "</li><li><label for='jours_neuf'>"._T('info_tous_les')."</label>"
-	. "\n<input type='text' name='jours_neuf' id='jours_neuf' value='$jours_neuf' size='4' class='fondl' />\n"
-	. _T('info_jours')
-	. " &nbsp;  &nbsp;  &nbsp;\n<input type='submit' name='envoi_now' id='envoi_now' value='"
-	. _T('info_envoyer_maintenant')
-	. "' class='fondl' onclick='AjaxNamedSubmit(this)' />"
-	. "</li></ul>"
-	. "</div>";
-
-	$res .= "<br />\n"
-	. bouton_radio("quoi_de_neuf", "non", _T('info_non_envoi_liste_nouveautes'), $quoi_de_neuf == "non", "changeVisible(this.checked, 'config-neuf', 'none', 'block');");
-	
-	$res .= "</td></tr></table>\n"
-	. fin_cadre_relief(true);
-
-	$email_envoi = entites_html($GLOBALS['meta']["email_envoi"]);
-	$titre =  _T('info_email_envoi');
-	if ($email_envoi) $titre .= "&nbsp;:&nbsp;" . $email_envoi;
-	$res .= "<br />\n"
-	. debut_cadre_relief("", true, "", $titre)
-	. "<table border='0' cellspacing='1' cellpadding='3' width=\"100%\">"
-	. "\n<tr><td class='verdana2'>"
-	. "<label for='email_envoi'>"._T('info_email_envoi_txt')."</label>"
-	. " <input type='text' name='email_envoi' id='email_envoi' value=\"$email_envoi\" size='20' class='fondl' />"
-	. "</td></tr>"
-	. "\n<tr><td>&nbsp;</td></tr></table>"
-	. fin_cadre_relief(true);
-
-	$res = debut_cadre_trait_couleur("annonce-24.png", true, "", _T('info_envoi_email_automatique').aide ("confmails"))
-	. ajax_action_post('configuration', 'annonces', 'config_contenu','#configurer-annonces',$res)
-	. fin_cadre_trait_couleur(true);
-
-	return ajax_action_greffe('configurer-annonces', '', $res);
-}
-?>
diff --git a/prive/formulaires/configurer_annonces.html b/prive/formulaires/configurer_annonces.html
new file mode 100644
index 0000000000..0975f95c66
--- /dev/null
+++ b/prive/formulaires/configurer_annonces.html
@@ -0,0 +1,101 @@
+<div class="formulaire_spip formulaire_configurer formulaire_#FORM formulaire_#FORM-#ENV{id,nouveau}">
+<h3 class='titrem'><img src="#CHEMIN_IMAGE{annonce-24.png}" class="cadre-icone" /><:info_envoi_email_automatique:>#AIDER{confmails}</h3>
+	[<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>]
+	[<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
+	[(#ENV{editable})
+	<p class="notice"><:info_hebergeur_desactiver_envoi_email:></p>
+	<form method='post' action='#ENV{action}' enctype='multipart/form-data'><div>
+		[(#REM) declarer les hidden qui declencheront le service du formulaire
+		parametre : url d'action ]
+		#ACTION_FORMULAIRE{#ENV{action}}
+		<ul>
+			#SET{name,suivi_edito}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
+			<li class="editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
+				<label><:info_suivi_activite:></label>[
+				<span class='erreur_message'>(#GET{erreurs})</span>
+				]<p class="explication"><:info_facilite_suivi_activite:></p>
+				<div class="choix">
+					<input type="radio" name="#GET{name}" id="#GET{name}_non" value="non"
+					[(#ENV{#GET{name}}|=={oui}|non)checked="checked"] 
+					onchange="if ($(this).attr('checked')) $('#suivi_complements').hide('fast');"
+					/><label for="#GET{name}_non"><:bouton_radio_non_envoi_annonces_editoriales:></label>
+				</div>
+				<div class="choix">
+					<input type="radio" name="#GET{name}" id="#GET{name}_oui" value="oui"
+					[(#ENV{#GET{name}}|=={oui}|oui)checked="checked"]
+					onchange="if ($(this).attr('checked')) $('#suivi_complements').show('fast');"
+					/><label for="#GET{name}_oui"><:bouton_radio_envoi_annonces_adresse:></label>
+				</div>
+				<fieldset id="suivi_complements"[(#ENV{#GET{name}}|=={oui}|non)style='display:none;']>
+					<ul>
+						#SET{name,adresse_suivi}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
+						<li class="editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
+							<label for="#GET{name}"><:info_adresse:></label>[
+							<span class='erreur_message'>(#GET{erreurs})</span>
+							]<input type="text" class="text" name="#GET{name}" id="#GET{name}" value="#ENV*{#GET{name}}" />
+						</li>
+						#SET{name,adresse_suivi_inscription}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
+						<li class="editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
+							#SET{adresse_suivi,#ENV{adresse_suivi}|sinon{mailing@monsite.net}}
+							<label for="#GET{name}">Adresse de desincription</label>[
+							<span class='erreur_message'>(#GET{erreurs})</span>
+							]<p class="explication"><:info_config_suivi{adresse_suivi=#GET{adresse_suivi}}:></p>
+							<input type="text" class="text" name="#GET{name}" id="#GET{name}" value="#ENV*{#GET{name}}" />
+						</li>
+					</ul>
+				</fieldset>
+			</li>
+
+			#SET{name,quoi_de_neuf}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
+			<li class="editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
+				<label><:info_annonce_nouveautes:></label>[
+				<span class='erreur_message'>(#GET{erreurs})</span>
+				]<p class="explication"><:info_non_envoi_annonce_dernieres_nouveautes:></p>
+				<div class="choix">
+					<input type="radio" name="#GET{name}" id="#GET{name}_non" value="non"
+					[(#ENV{#GET{name}}|=={oui}|non)checked="checked"]
+					onchange="if ($(this).attr('checked')) $('#neuf_complements').hide('fast');"
+					/><label for="#GET{name}_non"><:info_non_envoi_liste_nouveautes:></label>
+				</div>
+				<div class="choix">
+					<input type="radio" name="#GET{name}" id="#GET{name}_oui" value="oui"
+					[(#ENV{#GET{name}}|=={oui}|oui)checked="checked"]
+					onchange="if ($(this).attr('checked')) $('#neuf_complements').show('fast');"
+					/><label for="#GET{name}_oui"><:bouton_radio_envoi_liste_nouveautes:></label>
+				</div>
+				<fieldset id="neuf_complements"[(#ENV{#GET{name}}|=={oui}|non)style='display:none;']>
+					<ul>
+						#SET{name,adresse_neuf}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
+						<li class="editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
+							<label for="#GET{name}"><:info_adresse:></label>[
+							<span class='erreur_message'>(#GET{erreurs})</span>
+							]<input type="text" class="text" name="#GET{name}" id="#GET{name}" value="#ENV*{#GET{name}}" />
+						</li>
+						#SET{name,jours_neuf}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
+						<li class="editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
+							#SET{adresse_suivi,#ENV{adresse_suivi}|sinon{mailing@monsite.net}}
+							<label for="#GET{name}"><:info_tous_les:></label>[
+							<span class='erreur_message'>(#GET{erreurs})</span>
+							]<input type="text" name="#GET{name}" id="#GET{name}" value="#ENV*{#GET{name}}" />
+							<:info_jours:>
+							<input type='submit' class="submit" name='envoi_now' id='envoi_now' value='<:info_envoyer_maintenant:>' />
+						</li>
+					</ul>
+				</fieldset>
+			</li>
+
+			#SET{name,email_envoi}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
+			<li class="editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
+				<label for="#GET{name}"><:info_email_envoi:></label>[
+				<span class='erreur_message'>(#GET{erreurs})</span>
+				]<p class="explication"><:info_email_envoi_txt:></p>
+				<input type="text" class="text" name="#GET{name}" id="#GET{name}" value="#ENV*{#GET{name}}" />
+			</li>
+
+		</ul>
+	  [(#REM) ajouter les saisies supplementaires : extra et autre, a cet endroit ]
+	  <!--extra-->
+	  <p class='boutons'><span class='image_loading'>&nbsp;</span><input type='submit' class='submit' value='<:bouton_enregistrer:>' /></p>
+	</div></form>
+	]
+</div>
\ No newline at end of file
diff --git a/prive/formulaires/configurer_annonces.php b/prive/formulaires/configurer_annonces.php
new file mode 100644
index 0000000000..600b4e9881
--- /dev/null
+++ b/prive/formulaires/configurer_annonces.php
@@ -0,0 +1,82 @@
+<?php
+
+/***************************************************************************\
+ *  SPIP, Systeme de publication pour l'internet                           *
+ *                                                                         *
+ *  Copyright (c) 2001-2010                                                *
+ *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
+ *                                                                         *
+ *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
+ *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
+\***************************************************************************/
+
+if (!defined("_ECRIRE_INC_VERSION")) return;
+
+function formulaires_configurer_annonces_charger_dist(){
+	foreach(array(
+		"suivi_edito",
+		"adresse_suivi",
+		"adresse_suivi_inscription",
+		"quoi_de_neuf",
+		"adresse_neuf",
+		"jours_neuf",
+		"email_envoi",
+		) as $m)
+		$valeurs[$m] = $GLOBALS['meta'][$m];
+
+	return $valeurs;
+}
+
+function formulaires_configurer_annonces_verifier_dist(){
+	$erreurs = array();
+	if (_request('suivi_edito')=='oui') {
+		if (!$email=_request('adresse_suivi'))
+			$erreurs['adresse_suivi'] = _T('info_obligatoire');
+		else {
+			include_spip('inc/filtres');
+			if (!email_valide($email))
+				$erreurs['adresse_suivi'] = _T('form_prop_indiquer_email');
+		}
+	}
+	if (_request('quoi_de_neuf')=='oui') {
+		if (!$email=_request('adresse_neuf'))
+			$erreurs['adresse_neuf'] = _T('info_obligatoire');
+		else {
+			include_spip('inc/filtres');
+			if (!email_valide($email))
+				$erreurs['adresse_neuf'] = _T('form_prop_indiquer_email');
+		}
+		if (!$email=_request('jours_neuf'))
+			$erreurs['jours_neuf'] = _T('info_obligatoire');
+	}
+	return $erreurs;
+}
+
+function formulaires_configurer_annonces_traiter_dist(){
+	$res = array('editable'=>true);
+	foreach(array(
+		"suivi_edito",
+		"quoi_de_neuf",
+		) as $m)
+		if (!is_null($v=_request($m)))
+			ecrire_meta($m, $v=='oui'?'oui':'non');
+
+	foreach(array(
+		"adresse_suivi",
+		"adresse_suivi_inscription",
+		"adresse_neuf",
+		"jours_neuf",
+		"email_envoi",
+		) as $m)
+		if (!is_null($v=_request($m)))
+			ecrire_meta($m, $v);
+
+	// provoquer l'envoi des nouveautes en supprimant le fichier lock
+	if (_request('envoi_now')) {
+		spip_unlink(_DIR_TMP . 'mail.lock');
+	}
+
+	$res['message_ok'] = _T('config_info_enregistree');
+	return $res;
+}
+
diff --git a/prive/squelettes/contenu/page-configurer_interactions.html b/prive/squelettes/contenu/page-configurer_interactions.html
index 107d86eb87..b54f860bcb 100644
--- a/prive/squelettes/contenu/page-configurer_interactions.html
+++ b/prive/squelettes/contenu/page-configurer_interactions.html
@@ -24,13 +24,9 @@
 
 <div class='contenu_notifications'>
 	<h3><:titre_config_contenu_notifications:></h3>
-<?php
-	include_spip('inc/presentation');
 
-	$annonces = charger_fonction('annonces', 'configuration');
-	$res.= "";
-	$res.=  $annonces();
+	<div class="ajax">
+		#FORMULAIRE_CONFIGURER_ANNONCES
+	</div>
 
-	echo $res;
-?>
 </div>
-- 
GitLab