[SPIP] ~v3.0.20-->v3.0.25
[lhc/web/clavette_www.git] / www / plugins-dist / organiseur / formulaires / editer_message.php
1 <?php
2
3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
5 * *
6 * Copyright (c) 2001-2016 *
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('inc/editer');
16
17
18 function formulaires_editer_message_charger_dist($id_message='new',$type='message',$retour='',$accepter_email='oui',$destinataires='',$titre='',$texte=''){
19 include_spip('inc/autoriser');
20 if (
21 (!intval($id_message) AND !autoriser('envoyermessage',$type))
22 OR
23 (intval($id_message) AND !autoriser('modifier','message',$id_message))
24 )
25 return false;
26
27 $valeurs = formulaires_editer_objet_charger('message',$id_message,0,0,$retour,'');
28
29 // les destinataires sont stockes en chaine separe par une virgule dans la base
30 if (strlen($valeurs['destinataires']))
31 $valeurs['destinataires'] = explode(",",$valeurs['destinataires']);
32
33 if (!intval($id_message)){
34 $valeurs['type'] = $type;
35 $valeurs['destinataires'] = ($destinataires ? explode(",",$destinataires):array());
36 $valeurs['titre'] = $titre;
37 $valeurs['texte'] = $texte;
38 $t=time();
39 $valeurs["date_heure"] = date('Y-m-d H:i:00',$t);
40 $valeurs["date_fin"] = date('Y-m-d H:i:00',$t+3600);
41 $valeurs["rv"] = "";
42 }
43
44 // dispatcher date et heure
45 list($valeurs["date_debut"],$valeurs["heure_debut"]) = explode(' ',date('d/m/Y H:i',strtotime($valeurs["date_heure"])));
46 list($valeurs["date_fin"],$valeurs["heure_fin"]) = explode(' ',date('d/m/Y H:i',strtotime($valeurs["date_fin"])));
47
48 if (in_array($valeurs['type'],array('pb','affich')))
49 $valeurs['_destiner'] = '';
50 else
51 $valeurs['_destiner'] = ' ';
52
53 return $valeurs;
54 }
55
56
57 function formulaires_editer_message_verifier_dist($id_message='new',$type='message',$retour='',$accepter_email='oui',$destinataires='',$titre='',$texte=''){
58
59 $oblis = array('titre');
60 if (!_request('draft'))
61 $oblis[] = 'texte';
62 if (intval($id_message) AND $t=sql_getfetsel('type','spip_messages','id_message='.intval($id_message)))
63 $type = $t;
64 if (!in_array($type,array('pb','affich'))
65 // pas de destinataire obligatoire pour un brouillon
66 AND !_request('draft'))
67 $oblis['destinataires'] = 'destinataires';
68
69 if ($d=_request('destinataires'))
70 set_request('destinataires',implode(',',$d));
71 $erreurs = formulaires_editer_objet_verifier('message',$id_message,$oblis);
72 if ($d)
73 set_request('destinataires',$d);
74 include_spip('inc/messages');
75 if (!$erreurs['destinataires']
76 AND isset($oblis['destinataires'])
77 AND $e = messagerie_verifier_destinataires(_request('destinataires'),array('accepter_email'=>($accepter_email=='oui'))))
78 $erreurs['destinataires'] = implode(', ',$e);
79
80 if (_request('rv')=='oui'){
81 include_spip('inc/date_gestion');
82 $date_debut = verifier_corriger_date_saisie('debut',true,$erreurs);
83 $date_fin = verifier_corriger_date_saisie('fin',true,$erreurs);
84
85 if ($date_debut AND $date_fin AND $date_fin<$date_debut)
86 $erreurs['date_fin'] = _T('organiseur:erreur_date_avant_apres');
87 }
88 else
89 set_request('rv','');
90
91 return $erreurs;
92 }
93
94 function formulaires_editer_message_traiter_dist($id_message='new',$type='message',$retour='',$accepter_email='oui',$destinataires='',$titre='',$texte=''){
95 // preformater le post
96 // fixer le type de message
97 // sans modifier le type d'un message existant
98 if (intval($id_message) AND $t=sql_getfetsel('type','spip_messages','id_message='.intval($id_message)))
99 $type = $t;
100 set_request('type',$type);
101
102 // formater les destinataires
103 $d = _request('destinataires');
104 if (!$d)
105 $d = array();
106 include_spip('inc/messages');
107 $d = messagerie_nettoyer_destinataires($d);
108 // si email non acceptes, extraire les seuls id_auteur de la liste proposee
109 if ($accepter_email!=='oui'){
110 // separer id_auteur et email
111 $d = messagerie_destiner($d);
112 // ne conserver que les id_auteur
113 $d = reset($d);
114 }
115 // reinjecter sous forme de chaine
116 set_request('destinataires',implode(',',$d));
117
118 // fixer l'auteur !
119 set_request('id_auteur',$GLOBALS['visiteur_session']['id_auteur']);
120
121 if (_request('rv')=='oui'){
122 include_spip('inc/date_gestion');
123 $erreurs = array();
124 $date_debut = verifier_corriger_date_saisie('debut',true,$erreurs);
125 $date_fin = verifier_corriger_date_saisie('fin',true,$erreurs);
126 set_request('date_heure',date('Y-m-d H:i:s',$date_debut));
127 set_request('date_fin',date('Y-m-d H:i:s',$date_fin));
128 }
129 else {
130 set_request('date_heure');
131 set_request('date_fin');
132 }
133
134 // on gere par les traitements standard
135 // la diffusion du message se fait par pipeline post_edition sur instituer
136 // et notification
137 $res = formulaires_editer_objet_traiter('message',$id_message,0,0,$retour,'');
138 if ($id_message = $res['id_message']
139 AND !_request('draft')){
140 include_spip('action/editer_objet');
141 objet_modifier('message',$id_message,array('statut'=>'publie'));
142 // apres en message envoyes, retourner sur la boite d'envoi plutot que sur le message
143 if ($res['redirect']==generer_url_ecrire('message','id_message='.$id_message))
144 $res['redirect'] = generer_url_ecrire('messages','quoi=envoi');
145 }
146
147 set_request('destinataires',explode(',',_request('destinataires')));
148 return $res;
149 }
150