cbf475b4e62b6aa63d7b692301e69ea4048bd142
3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
6 * Copyright (c) 2001-2016 *
7 * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
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 \***************************************************************************/
13 if (!defined('_ECRIRE_INC_VERSION')) {
17 include_spip('inc/editer');
20 function formulaires_editer_message_charger_dist(
24 $accepter_email = 'oui',
29 include_spip('inc/autoriser');
31 (!intval($id_message) and !autoriser('envoyermessage', $type))
33 (intval($id_message) and !autoriser('modifier', 'message', $id_message))
38 $valeurs = formulaires_editer_objet_charger('message', $id_message, 0, 0, $retour, '');
40 // les destinataires sont stockes en chaine separe par une virgule dans la base
41 if (strlen($valeurs['destinataires'])) {
42 $valeurs['destinataires'] = explode(',', $valeurs['destinataires']);
45 if (!intval($id_message)) {
46 $valeurs['type'] = $type;
47 $valeurs['destinataires'] = ($destinataires ?
explode(',', $destinataires) : array());
48 $valeurs['titre'] = $titre;
49 $valeurs['texte'] = $texte;
51 $valeurs['date_heure'] = date('Y-m-d H:i:00', $t);
52 $valeurs['date_fin'] = date('Y-m-d H:i:00', $t +
3600);
56 $id_message_origine = intval(_request('id_message_origine'));
57 if (autoriser('voir', 'message', $id_message_origine)) {
58 $v = formulaires_editer_objet_charger('message', $id_message_origine, 0, 0, $retour, '');
59 $valeurs['titre'] = _T('organiseur:re') . ' : ' . $v['titre'];
60 $valeurs['texte'] = '<quote>' . $v['texte'] . '</quote>';
63 // dispatcher date et heure
64 list($valeurs['date_debut'], $valeurs['heure_debut']) = explode(
66 date('d/m/Y H:i', strtotime($valeurs['date_heure']))
68 list($valeurs['date_fin'], $valeurs['heure_fin']) = explode(
70 date('d/m/Y H:i', strtotime($valeurs['date_fin']))
73 if (in_array($valeurs['type'], array('pb', 'affich'))) {
74 $valeurs['_destiner'] = '';
76 $valeurs['_destiner'] = ' ';
83 function formulaires_editer_message_verifier_dist(
87 $accepter_email = 'oui',
93 $oblis = array('titre');
94 if (!_request('draft')) {
97 if (intval($id_message) and $t = sql_getfetsel('type', 'spip_messages', 'id_message=' . intval($id_message))) {
100 if (!in_array($type, array('pb', 'affich'))
101 // pas de destinataire obligatoire pour un brouillon
102 and !_request('draft')
104 $oblis['destinataires'] = 'destinataires';
107 if ($d = _request('destinataires')) {
108 set_request('destinataires', implode(',', $d));
110 $erreurs = formulaires_editer_objet_verifier('message', $id_message, $oblis);
112 set_request('destinataires', $d);
114 include_spip('inc/messages');
116 (!isset($erreurs['destinataires']) or !$erreurs['destinataires'])
117 and isset($oblis['destinataires'])
118 and $e = messagerie_verifier_destinataires(
119 _request('destinataires'),
120 array('accepter_email' => ($accepter_email == 'oui'))
122 $erreurs['destinataires'] = implode(', ', $e);
125 if (_request('rv') == 'oui') {
126 include_spip('inc/date_gestion');
127 $date_debut = verifier_corriger_date_saisie('debut', true, $erreurs);
128 $date_fin = verifier_corriger_date_saisie('fin', true, $erreurs);
130 if ($date_debut and $date_fin and $date_fin < $date_debut) {
131 $erreurs['date_fin'] = _T('organiseur:erreur_date_avant_apres');
134 set_request('rv', '');
140 function formulaires_editer_message_traiter_dist(
144 $accepter_email = 'oui',
149 // preformater le post
150 // fixer le type de message
151 // sans modifier le type d'un message existant
152 if (intval($id_message) and $t = sql_getfetsel('type', 'spip_messages', 'id_message=' . intval($id_message))) {
155 set_request('type', $type);
157 // formater les destinataires
158 $d = _request('destinataires');
162 include_spip('inc/messages');
163 $d = messagerie_nettoyer_destinataires($d);
164 // si email non acceptes, extraire les seuls id_auteur de la liste proposee
165 if ($accepter_email !== 'oui') {
166 // separer id_auteur et email
167 $d = messagerie_destiner($d);
168 // ne conserver que les id_auteur
171 // reinjecter sous forme de chaine
172 set_request('destinataires', implode(',', $d));
175 set_request('id_auteur', $GLOBALS['visiteur_session']['id_auteur']);
177 if (_request('rv') == 'oui') {
178 include_spip('inc/date_gestion');
180 $date_debut = verifier_corriger_date_saisie('debut', true, $erreurs);
181 $date_fin = verifier_corriger_date_saisie('fin', true, $erreurs);
182 set_request('date_heure', date('Y-m-d H:i:s', $date_debut));
183 set_request('date_fin', date('Y-m-d H:i:s', $date_fin));
185 set_request('date_heure');
186 set_request('date_fin');
189 // on gere par les traitements standard
190 // la diffusion du message se fait par pipeline post_edition sur instituer
192 $res = formulaires_editer_objet_traiter('message', $id_message, 0, 0, $retour, '');
194 if ($id_message = $res['id_message']
195 and !_request('draft')
197 include_spip('action/editer_objet');
198 objet_modifier('message', $id_message, array('statut' => 'publie', 'date_heure' => _request('date_heure')));
199 // apres en message envoyes, retourner sur la boite d'envoi plutot que sur le message
200 if (isset($res['redirect'])
201 and ($res['redirect'] == generer_url_ecrire('message', 'id_message=' . $id_message))) {
202 $res['redirect'] = generer_url_ecrire('messages', 'quoi=envoi');
206 set_request('destinataires', explode(',', _request('destinataires')));