Mise en route du suivi.
[aidenligne_francais_universite.git] / ecrire / balise / formulaire_ecrire_auteur.php
CommitLineData
c495c100
P
1<?php
2
3/***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
5 * *
6 * Copyright (c) 2001-2007 *
7 * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
8 * *
9 * Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
10 * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
11\***************************************************************************/
12
13if (!defined("_ECRIRE_INC_VERSION")) return; #securite
14
15include_spip('base/abstract_sql');
16
17// On prend l'email dans le contexte de maniere a ne pas avoir a le
18// verifier dans la base ni a le devoiler au visiteur
19
20
21// http://doc.spip.org/@balise_FORMULAIRE_ECRIRE_AUTEUR
22function balise_FORMULAIRE_ECRIRE_AUTEUR ($p) {
23 return calculer_balise_dynamique($p,'FORMULAIRE_ECRIRE_AUTEUR', array('id_auteur', 'id_article', 'email'));
24}
25
26// http://doc.spip.org/@balise_FORMULAIRE_ECRIRE_AUTEUR_stat
27function balise_FORMULAIRE_ECRIRE_AUTEUR_stat($args, $filtres) {
28 include_spip('inc/filtres');
29
30 // Pas d'id_auteur ni d'id_article ? Erreur de squelette
31 if (!$args[0] AND !$args[1])
32 return erreur_squelette(
33 _T('zbug_champ_hors_motif',
34 array ('champ' => '#FORMULAIRE_ECRIRE_AUTEUR',
35 'motif' => 'AUTEURS/ARTICLES')), '');
36
37 // Si on est dans un contexte article, sortir tous les mails des auteurs
38 // de l'article
39 if (!$args[0] AND $args[1]) {
40 unset ($args[2]);
41 $s = spip_abstract_select('email',
42 array('auteurs' => 'spip_auteurs',
43 'L' => 'spip_auteurs_articles'),
44 array('auteurs.id_auteur=L.id_auteur',
45 'L.id_article='.intval($args[1])));
46 while ($row = spip_fetch_array($s)) {
47 if ($row['email'] AND email_valide($row['email']))
48 $args[2].= ','.$row['email'];
49 }
50 $args[2] = substr($args[2], 1);
51 }
52
53 // On ne peut pas ecrire a un auteur dont le mail n'est pas valide
54 if (!$args[2] OR !email_valide($args[2]))
55 return '';
56
57 // OK
58 return $args;
59}
60
61// http://doc.spip.org/@balise_FORMULAIRE_ECRIRE_AUTEUR_dyn
62function balise_FORMULAIRE_ECRIRE_AUTEUR_dyn($id_auteur, $id_article, $mail) {
63 include_spip('inc/texte');
64 $puce = definir_puce();
65
66 // id du formulaire (pour en avoir plusieurs sur une meme page)
67 $id = ($id_auteur ? '_'.$id_auteur : '_ar'.$id_article);
68 #spip_log("id formulaire = $id, "._request("valide".$id));
69 $sujet = _request('sujet_message_auteur'.$id);
70 $texte = _request('texte_message_auteur'.$id);
71 $adres = _request('email_message_auteur'.$id);
72
73 if (_request('valide')) {
74 $mailko = !email_valide($adres);
75 $sujetko = !(strlen($sujet)>3);
76 $texteko = !(strlen($texte)>10);
77 }
78
79 $validable = $texte && $sujet && (!$mailko);
80
81 // doit-on envoyer le mail ?
82 if ($validable
83 AND $id == _request('num_formulaire_ecrire_auteur')
84 AND _request('confirmer'.$id)) {
85 $texte .= "\n\n-- "._T('envoi_via_le_site')." ".supprimer_tags(extraire_multi($GLOBALS['meta']['nom_site']))." (".$GLOBALS['meta']['adresse_site']."/) --\n";
86 include_spip('inc/mail');
87 envoyer_mail($mail, $sujet, $texte, $adres,
88 "X-Originating-IP: ".$GLOBALS['ip']);
89 $mailenvoye = _T('form_prop_message_envoye');
90 }
91
92 return
93 array('formulaires/ecrire_auteur', 0,
94 array(
95 'id' => $id,
96 'mailko' => $mailko ? _T('form_prop_indiquer_email') : '',
97 'mail' => $adres,
98 'sujetko' => $sujetko ? _T('forum_attention_trois_caracteres') : '',
99 'mailenvoye' => $mailenvoye,
100 'sujet' => $sujet,
101 'texteko' => $texteko ? _T('forum_attention_dix_caracteres') : '',
102 'texte' => $texte,
103 'valide' => $validable ? $id : '',
104 'bouton' => _T('form_prop_envoyer'),
105 'boutonconfirmation' => $validable ? _T('form_prop_confirmer_envoi') : ''
106 )
107 );
108}
109?>