[SPIP] +2.1.12
[velocampus/web/www.git] / www / ecrire / balise / formulaire_ecrire_auteur.php
1 <?php
2
3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
5 * *
6 * Copyright (c) 2001-2011 *
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
13 if (!defined('_ECRIRE_INC_VERSION')) return;
14
15 include_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
22 function 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
27 function balise_FORMULAIRE_ECRIRE_AUTEUR_stat($args, $context_compil) {
28 include_spip('inc/filtres');
29 // Pas d'id_auteur ni d'id_article ? Erreur de contexte
30 $id = intval($args[1]);
31 if (!$args[0] AND !$id) {
32 $msg = array('zbug_champ_hors_motif',
33 array ('champ' => 'FORMULAIRE_ECRIRE_AUTEUR',
34 'motif' => 'AUTEURS/ARTICLES'));
35
36 erreur_squelette($msg, $context_compil);
37 return '';
38 }
39 // Si on est dans un contexte article,
40 // sortir tous les mails des auteurs de l'article
41 if (!$args[0] AND $id) {
42 $r = '';
43 $s = sql_allfetsel('email',
44 'spip_auteurs AS A LEFT JOIN spip_auteurs_articles AS L ON A.id_auteur=L.id_auteur',
45 "A.email != '' AND L.id_article=$id");
46 foreach($s as $row) {
47 if (email_valide($row['email']))
48 $r .= ', '.$row['email'];
49 }
50 $args[2] = substr($r, 2);
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 ?>