Accéder au contenu.
Menu Sympa

devel - [Devel] r422 - trunk

Objet : devel-adl

Archives de la liste

[Devel] r422 - trunk


Chronologique Discussions 
  • From: svn AT agendadulibre.org
  • To: devel AT agendadulibre.org
  • Subject: [Devel] r422 - trunk
  • Date: Thu, 19 Feb 2009 21:39:05 +0100 (CET)
  • List-archive: <http://agendadulibre.org/pipermail/devel>
  • List-id: Developpement de l'Agenda du Libre <devel.agendadulibre.org>

Author: thomas
Date: Thu Feb 19 21:39:02 2009
New Revision: 422

Log:
Nouvelle fonctionnalité: utilisation des champs Message-Id: et
References: dans les entêtes des messages envoyés pour construire des
fils de discussion. Ainsi, aussi bien pour les modérateurs que pour le
soumetteur d'un évènement, tous les mails liés à un évènement donné se
retrouvent dans un même fil de discussion.

* funcs.inc.php :

- Suppression de l'argument $cc, qui n'est plus utile: l'ID du mail
envoyé au soumetteur et à la liste de modération est différent,
donc il faut envoyer un mail séparé.

- Nouveaux arguments optionels $id et $ref.

Si $id est positionné, alors "<$id AT agendadulibre.org>" est utilisé
comme valeur du champ Message-Id. Sinon, le Message-Id n'est pas
positionné et sera généré par la fonction mail() de PHP, comme
avant.

Si $ref est positionné, alors "<$id AT agendadulibre.org>" est
utilisé comme valeur du champ References. Sinon, le champ
References n'est pas créé.

- Ajout du word-wrapping de la description d'un évènement lors du
formatage ASCII d'un évènement. Ça évite les lignes trop longues
dans les courriers électroniques.

* submit.php :

- Génération de deux IDs pour chaque évènement, un pour le mail aux
modérateurs, un pour le mail au soumetteur. Ils sont générés de la
même façon que la clé secrète. Ces deux nouveaux IDs sont stockés
dans la table events de la base.

- Dans alert_moderators() et notify_submitter(), envoi du mail avec
l'ID passé en paramètre.

* UPGRADE

- Documentation des étapes de mise à jour nécessaires.

* calendar.css

- Élargissement de la zone pour les <pre> et ajout d'un petit
padding pour rendre la chose plus joli.

* rejectevent.php,
requestinfosevent.php,
validateevent.php

- Envoi d'un mail séparé aux modérateurs et au soumetteur de
l'évènement, avec la bonne référence.

* editevent.php

- Modification de l'appel à calendar_mail() pour utiliser une
référence.

- Utilisation de user->get_name() au lieu de user->get_login(),
c'est plus sympa dans les mails.

* cancelevent.php

- Modification de l'appel à calendar_mail() pour utiliser une
référence.

- On affiche l'avertissement qu'on est en train d'annuler un
évènement modéré seulement si l'évènement est effectivement
modéré.

Modified:
trunk/UPGRADE
trunk/calendar.css
trunk/cancelevent.php
trunk/editevent.php
trunk/funcs.inc.php
trunk/rejectevent.php
trunk/requestinfosevent.php
trunk/submit.php
trunk/validateevent.php

Modified: trunk/UPGRADE
==============================================================================
--- trunk/UPGRADE Wed Feb 18 22:46:52 2009 (r421)
+++ trunk/UPGRADE Thu Feb 19 21:39:02 2009 (r422)
@@ -108,3 +108,13 @@
`author_id` int(11) default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;
+
+Revisions lower than 421
+========================
+
+At revision 421, two new fields were added to the events table. They
+are used to store the Message-ID values of the mails sent to the
+moderator list and the event submitter.
+
+alter table events add moderator_mail_id varchar(32);
+alter table events add submitter_mail_id varchar(32);
\ No newline at end of file

Modified: trunk/calendar.css
==============================================================================
--- trunk/calendar.css Wed Feb 18 22:46:52 2009 (r421)
+++ trunk/calendar.css Thu Feb 19 21:39:02 2009 (r422)
@@ -115,7 +115,14 @@

.main p { margin: 15px 0px; line-height: 1.3em;}

-.main pre { text-align: left; background: #eeeeee; overflow: auto; width:
60%; margin: auto; }
+.main pre {
+ text-align: left;
+ background: #eeeeee;
+ overflow: auto;
+ width: 70%;
+ padding: 5px;
+ margin: auto;
+}

.toggleeditor_link {
margin-top: 0;

Modified: trunk/cancelevent.php
==============================================================================
--- trunk/cancelevent.php Wed Feb 18 22:46:52 2009 (r421)
+++ trunk/cancelevent.php Thu Feb 19 21:39:02 2009 (r422)
@@ -52,16 +52,21 @@
else
$modifier = "le soumetteur de l'évènement";

- calendar_mail ($moderatorlist, "",
- "Annulation de l'évènement '" .
stripslashes($oldevent->title) . "'",
- "Bonjour,\n\n" .
- wordwrap("L'évènement '" . stripslashes($oldevent->title) .
"' a été annulé par " . $modifier . ".\n") .
- "Détail de l'évènement annulé:\n\n" .
- "=======================================================\n" .
- $oldevent_str . "\n".
-
"=======================================================\n\n" .
- "Bonne journée,\n\n".
- "-- L'équipe de modération");
+ $title =
+ "Annulation de l'évènement '" . stripslashes($oldevent->title) . "'";
+
+ $contents =
+ "Bonjour,\n\n" .
+ wordwrap("L'évènement '" . stripslashes($oldevent->title) . "' a été
annulé par " . $modifier . ".\n") .
+ "Détail de l'évènement annulé:\n\n" .
+ "=======================================================\n" .
+ $oldevent_str . "\n".
+ "=======================================================\n\n" .
+ "Bonne journée,\n\n".
+ "-- L'équipe de modération";
+
+ calendar_mail ($moderatorlist, $title, $contents, /* id */ "",
+ $oldevent->moderator_mail_id);
}

$db = new db();
@@ -144,7 +149,8 @@
$posturl = "?id=" . $id . "&secret=" . $secret;

echo '<div class="moderationbox">';
-echo '<p style="font-weight: bold;">Attention, cet évènement est déjà
modéré. Cette annulation le fera disparaître de l\'Agenda du Libre.</p>';
+if ($event->moderated)
+ echo '<p style="font-weight: bold;">Attention, cet évènement est déjà
modéré. Cette annulation le fera disparaître de l\'Agenda du Libre.</p>';
echo '<form action="' . $posturl . '" method="post">';
echo '<p style="text-align: center;">Confirmez-vous l\'annulation de cet
évènement&nbsp;?</p>';
echo '<input name="__event_cancelation_confirm" type="submit"
value="Oui"/>&nbsp;';

Modified: trunk/editevent.php
==============================================================================
--- trunk/editevent.php Wed Feb 18 22:46:52 2009 (r421)
+++ trunk/editevent.php Thu Feb 19 21:39:02 2009 (r422)
@@ -69,33 +69,35 @@
$diff = arr_diff (split ("\n", $oldevent_str), split ("\n",
$newevent_str), 1);

if ($user)
- $modifier = $user->get_login();
+ $modifier = $user->get_name();
else
$modifier = "le soumetteur de l'évènement";

if ($oldevent->moderated)
{
- calendar_mail ($moderatorlist, "",
+ calendar_mail ($moderatorlist,
"Édition de l'évènement validé '" . $title . "'",
"Bonjour,\n\n" .
wordwrap("L'évènement validé '" . stripslashes($title) .
"' a été modifié par " . $modifier . ".\n") .
"Modifications apportées:\n\n" .
$diff . "\n\n".
"Bonne journée\n\n".
- "-- L'équipe de modération");
+ "-- L'équipe de modération",
+ /* id */ "", $oldevent->moderator_mail_id);

return "showevent.php?id=" . $oldevent->id;
}
else
{
- calendar_mail ($moderatorlist, "",
+ calendar_mail ($moderatorlist,
"Édition de l'évènement '" . $title . "'",
"Bonjour,\n\n" .
wordwrap("L'évènement '" . stripslashes($title) . "' a
été modifié par " . $modifier . ".\n") .
"Modifications apportées:\n\n" .
$diff . "\n\n".
"Bonne journée\n\n".
- "-- L'équipe de modération");
+ "-- L'équipe de modération",
+ /* id */ "", $oldevent->moderator_mail_id);

if ($user)
return "moderation.php";

Modified: trunk/funcs.inc.php
==============================================================================
--- trunk/funcs.inc.php Wed Feb 18 22:46:52 2009 (r421)
+++ trunk/funcs.inc.php Thu Feb 19 21:39:02 2009 (r422)
@@ -219,7 +219,8 @@
return strftime("%B", mktime(0,0,0,$month,1));
}

-function calendar_mail ($to, $cc, $title, $contents)
+function calendar_mail ($to, $title, $contents,
+ $id = "", $ref = "")
{
global $debugaddress;

@@ -234,7 +235,8 @@
"Reply-To: moderateurs AT agendadulibre.org\n" .
"Content-Type: text/plain; charset=UTF-8\n" .
"Content-Transfert-Encoding: 8bit\n" .
- ($cc ? "CC: " . $cc . "\n" : "") .
+ (($id != "") ? ("Message-ID: <" . $id .
"@agendadulibre.org>\n") : "") .
+ (($ref != "") ? ("References: <" . $ref .
"@agendadulibre.org>\n") : "") .
"X-Mailer: Agenda du Libre\n");
}

@@ -730,7 +732,7 @@
"Contact : " . $contact . "\n" .
"Soumetteur : " . $submitter . "\n" .
"Tags : " . $tags . "\n" .
- "Description : \n " . preg_replace ("/\n/", "\n ", $description);
+ "Description : \n " . wordwrap(preg_replace ("/\n/", "\n ",
$description));

return $str;
}

Modified: trunk/rejectevent.php
==============================================================================
--- trunk/rejectevent.php Wed Feb 18 22:46:52 2009 (r421)
+++ trunk/rejectevent.php Thu Feb 19 21:39:02 2009 (r422)
@@ -61,7 +61,7 @@
}

/* Send email */
- calendar_mail ($row->submitter, $moderatorlist, "Évènement '" .
stripslashes($row->title) . "' refusé",
+ calendar_mail ($row->submitter, "Évènement '" . stripslashes($row->title)
. "' refusé",
"Bonjour,\n\n" .
"Vous avez soumis l'évènement suivant dans l'Agenda du
Libre, et nous\n" .
"vous remercions de cette contribution.\n\n" .
@@ -76,7 +76,23 @@
$row->url, $row->contact,
$row->submitter, $row->tags) . "\n" .
"=====================================================\n\n" .
"Avec tous nos remerciements pour votre contribution,\n\n" .
- "-- \nL'équipe des modérateurs de l'Agenda du Libre");
+ "-- \nL'équipe des modérateurs de l'Agenda du Libre",
+ /* id */ "", $row->submitter_mail_id);
+
+ calendar_mail($moderatorlist, "Évènement '" . stripslashes($row->title) .
"' refusé",
+ "Bonjour,\n\n" .
+ wordwrap("L'évènement '" . stripslashes($row->title) . "' a
été rejeté par " .
+ $user->get_name() . " pour la raison suivante
:\n\n") .
+ $reason . "\n\n" .
+ "Pour rappel, l'évènement:\n" .
+ "=====================================================\n" .
+ format_ascii_event ($db, $row->title,
date_mysql2timestamp($row->start_time),
+ date_mysql2timestamp($row->end_time),
+ $row->description, $row->city,
$row->region, $row->locality,
+ $row->url, $row->contact,
$row->submitter, $row->tags) . "\n" .
+ "=====================================================\n\n" .
+ "-- \nL'équipe des modérateurs de l'Agenda du Libre",
+ /* id */ "", $row->moderator_mail_id);

header("Location: moderation.php");
exit;

Modified: trunk/requestinfosevent.php
==============================================================================
--- trunk/requestinfosevent.php Wed Feb 18 22:46:52 2009 (r421)
+++ trunk/requestinfosevent.php Thu Feb 19 21:39:02 2009 (r422)
@@ -64,13 +64,19 @@
$text = wordwrap($text);


- calendar_mail($event->submitter, $moderatorlist,
+ calendar_mail($event->submitter,
"Demande d'informations sur l'évènement '" .
- stripslashes($event->title) . "'", $text);
+ stripslashes($event->title) . "'", $text,
+ /* id */ "", $event->submitter_mail_id);
+
+ calendar_mail($moderator_list,
+ "Demande d'informations sur l'évènement '" .
+ stripslashes($event->title) . "'", $text,
+ /* id */ "", $event->moderator_mail_id);

$note =
"<p>Demande d'informations complémentaires&nbsp;:</p>" .
- "<pre>" . stripslashes($_POST["__text"]) . "</pre>";
+ "<pre>" . wordwrap(stripslashes($_POST["__text"])) . "</pre>";

$sql = "insert into notes (contents, date, event_id, author_id) values (" .
$db->quote_smart($note) . "," .

Modified: trunk/submit.php
==============================================================================
--- trunk/submit.php Wed Feb 18 22:46:52 2009 (r421)
+++ trunk/submit.php Thu Feb 19 21:39:02 2009 (r422)
@@ -26,7 +26,8 @@
$db = new db();

function alert_moderators ($db, $id, $title, $start, $end, $description,
$city,
- $region, $locality, $url, $contact, $submitter,
$tags)
+ $region, $locality, $url, $contact, $submitter,
$tags,
+ $moderator_mail_id)
{
global $moderatorlist;

@@ -39,14 +40,14 @@
"Merci !\n" .
"-- Agenda du Libre";

- calendar_mail ($moderatorlist, "", $mail_title, $mail_body);
+ calendar_mail ($moderatorlist, $mail_title, $mail_body,
$moderator_mail_id);

return 0;
}

function notify_submitter ($db, $id, $title, $start, $end, $description,
$city,
$region, $locality, $url, $contact, $submitter,
$tags,
- $secret)
+ $secret, $submitter_mail_id)
{
$mail_title = "Votre évènement : '" . $title . "' est en attente de
modération";

@@ -63,7 +64,7 @@
"Merci de votre participation !\n" .
"-- Agenda du Libre";

- calendar_mail($submitter, "", $mail_title, $mail_body);
+ calendar_mail($submitter, $mail_title, $mail_body, $submitter_mail_id);
}

function add_event ($db, $title, $start, $end, $description, $city, $region,
$locality, $url, $contact, $submitter, $tags)
@@ -171,9 +172,11 @@
$submitter = $contact;

$secret = md5(uniqid(rand(), true));
+ $moderator_mail_id = md5(uniqid(rand(), true));
+ $submitter_mail_id = md5(uniqid(rand(), true));

/* Checks are done, add to database */
- $sql = "INSERT INTO events
(title,description,start_time,end_time,city,region,locality,url,contact,submitter,tags,moderated,secret,submission_time)
values (" .
+ $sql = "INSERT INTO events
(title,description,start_time,end_time,city,region,locality,url,contact,submitter,tags,moderated,secret,submission_time,moderator_mail_id,submitter_mail_id)
values (" .
$db->quote_smart($title) . "," .
$db->quote_smart($description) . "," .
$db->quote_smart(date_timestamp2mysql ($start)) . "," .
@@ -187,7 +190,9 @@
$db->quote_smart($tags) . "," .
"'0'" . "," .
"'" . $secret . "'" . "," .
- "NOW()" .
+ "NOW()" . "," .
+ "'" . $moderator_mail_id . "'" . "," .
+ "'" . $submitter_mail_id . "'" .
")";

$ret = $db->query ($sql);
@@ -199,9 +204,11 @@
}

alert_moderators ($db, $db->insertid(), $title, $start, $end,
$description, $city,
- $region, $locality, $url, $contact, $submitter, $tags);
+ $region, $locality, $url, $contact, $submitter, $tags,
+ $moderator_mail_id);
notify_submitter ($db, $db->insertid(), $title, $start, $end,
$description, $city,
- $region, $locality, $url, $contact, $submitter, $tags,
$secret);
+ $region, $locality, $url, $contact, $submitter, $tags,
$secret,
+ $submitter_mail_id);

echo "<p><b>Votre évènement a bien été ajouté à la liste des évènements en
attente de modération." .
"Il apparaîtra en ligne dès qu'un modérateur l'aura validé.</b></p>";

Modified: trunk/validateevent.php
==============================================================================
--- trunk/validateevent.php Wed Feb 18 22:46:52 2009 (r421)
+++ trunk/validateevent.php Thu Feb 19 21:39:02 2009 (r422)
@@ -59,7 +59,7 @@
}

/* Send email */
- calendar_mail ($row->submitter, $moderatorlist,
+ calendar_mail ($row->submitter,
"Évènement '" . $row->title . "' modéré",
"Bonjour,\n\n" .
wordwrap("L'évènement que vous avez soumis a été modéré par
" . $user->get_name() . ". Il est maintenant visible dans l'Agenda à
l'adresse : \n") .
@@ -75,7 +75,21 @@
$row->url, $row->contact,
$row->submitter, $row->tags) . "\n" .
"=====================================================\n\n" .
"Merci de votre contribution à l'Agenda du Libre et à
bientôt !\n\n".
- "-- \nL'équipe de modération");
+ "-- \nL'équipe de modération",
+ /* id */ "", $row->submitter_mail_id);
+
+ calendar_mail ($moderatorlist,
+ "Évènement '" . $row->title . "' modéré",
+ "Bonjour,\n\n" .
+ wordwrap("L'évènement a été modéré par " . $user->get_name()
. ".") . "\n\n" .
+ "=====================================================\n" .
+ format_ascii_event ($db, $row->title,
date_mysql2timestamp($row->start_time),
+ date_mysql2timestamp($row->end_time),
+ $row->description, $row->city,
$row->region, $row->locality,
+ $row->url, $row->contact,
$row->submitter, $row->tags) . "\n" .
+ "=====================================================\n\n" .
+ "-- \nL'équipe de modération",
+ /* id */ "", $row->moderator_mail_id);

header("Location: moderation.php");
exit;





Archives gérées par MHonArc 2.6.16.

Haut de le page