1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/spip_ynh.git synced 2024-09-03 20:25:59 +02:00
spip_ynh/sources/plugins-dist/organiseur/formulaires/editer_message.php
2015-04-28 17:10:23 +02:00

150 lines
5.5 KiB
PHP

<?php
/***************************************************************************\
* SPIP, Systeme de publication pour l'internet *
* *
* Copyright (c) 2001-2014 *
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
* *
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
* Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
\***************************************************************************/
if (!defined('_ECRIRE_INC_VERSION')) return;
include_spip('inc/editer');
function formulaires_editer_message_charger_dist($id_message='new',$type='message',$retour='',$accepter_email='oui',$destinataires='',$titre='',$texte=''){
include_spip('inc/autoriser');
if (
(!intval($id_message) AND !autoriser('envoyermessage',$type))
OR
(intval($id_message) AND !autoriser('modifier','message',$id_message))
)
return false;
$valeurs = formulaires_editer_objet_charger('message',$id_message,0,0,$retour,'');
// les destinataires sont stockes en chaine separe par une virgule dans la base
if (strlen($valeurs['destinataires']))
$valeurs['destinataires'] = explode(",",$valeurs['destinataires']);
if (!intval($id_message)){
$valeurs['type'] = $type;
$valeurs['destinataires'] = ($destinataires ? explode(",",$destinataires):array());
$valeurs['titre'] = $titre;
$valeurs['texte'] = $texte;
$t=time();
$valeurs["date_heure"] = date('Y-m-d H:i:00',$t);
$valeurs["date_fin"] = date('Y-m-d H:i:00',$t+3600);
$valeurs["rv"] = "";
}
// dispatcher date et heure
list($valeurs["date_debut"],$valeurs["heure_debut"]) = explode(' ',date('d/m/Y H:i',strtotime($valeurs["date_heure"])));
list($valeurs["date_fin"],$valeurs["heure_fin"]) = explode(' ',date('d/m/Y H:i',strtotime($valeurs["date_fin"])));
if (in_array($valeurs['type'],array('pb','affich')))
$valeurs['_destiner'] = '';
else
$valeurs['_destiner'] = ' ';
return $valeurs;
}
function formulaires_editer_message_verifier_dist($id_message='new',$type='message',$retour='',$accepter_email='oui',$destinataires='',$titre='',$texte=''){
$oblis = array('titre');
if (!_request('draft'))
$oblis[] = 'texte';
if (intval($id_message) AND $t=sql_getfetsel('type','spip_messages','id_message='.intval($id_message)))
$type = $t;
if (!in_array($type,array('pb','affich'))
// pas de destinataire obligatoire pour un brouillon
AND !_request('draft'))
$oblis['destinataires'] = 'destinataires';
if ($d=_request('destinataires'))
set_request('destinataires',implode(',',$d));
$erreurs = formulaires_editer_objet_verifier('message',$id_message,$oblis);
if ($d)
set_request('destinataires',$d);
include_spip('inc/messages');
if (!$erreurs['destinataires']
AND isset($oblis['destinataires'])
AND $e = messagerie_verifier_destinataires(_request('destinataires'),array('accepter_email'=>($accepter_email=='oui'))))
$erreurs['destinataires'] = implode(', ',$e);
if (_request('rv')=='oui'){
include_spip('inc/date_gestion');
$date_debut = verifier_corriger_date_saisie('debut',true,$erreurs);
$date_fin = verifier_corriger_date_saisie('fin',true,$erreurs);
if ($date_debut AND $date_fin AND $date_fin<$date_debut)
$erreurs['date_fin'] = _T('organiseur:erreur_date_avant_apres');
}
else
set_request('rv','');
return $erreurs;
}
function formulaires_editer_message_traiter_dist($id_message='new',$type='message',$retour='',$accepter_email='oui',$destinataires='',$titre='',$texte=''){
// preformater le post
// fixer le type de message
// sans modifier le type d'un message existant
if (intval($id_message) AND $t=sql_getfetsel('type','spip_messages','id_message='.intval($id_message)))
$type = $t;
set_request('type',$type);
// formater les destinataires
$d = _request('destinataires');
if (!$d)
$d = array();
include_spip('inc/messages');
$d = messagerie_nettoyer_destinataires($d);
// si email non acceptes, extraire les seuls id_auteur de la liste proposee
if ($accepter_email!=='oui'){
// separer id_auteur et email
$d = messagerie_destiner($d);
// ne conserver que les id_auteur
$d = reset($d);
}
// reinjecter sous forme de chaine
set_request('destinataires',implode(',',$d));
// fixer l'auteur !
set_request('id_auteur',$GLOBALS['visiteur_session']['id_auteur']);
if (_request('rv')=='oui'){
include_spip('inc/date_gestion');
$erreurs = array();
$date_debut = verifier_corriger_date_saisie('debut',true,$erreurs);
$date_fin = verifier_corriger_date_saisie('fin',true,$erreurs);
set_request('date_heure',date('Y-m-d H:i:s',$date_debut));
set_request('date_fin',date('Y-m-d H:i:s',$date_fin));
}
else {
set_request('date_heure');
set_request('date_fin');
}
// on gere par les traitements standard
// la diffusion du message se fait par pipeline post_edition sur instituer
// et notification
$res = formulaires_editer_objet_traiter('message',$id_message,0,0,$retour,'');
if ($id_message = $res['id_message']
AND !_request('draft')){
include_spip('action/editer_objet');
objet_modifier('message',$id_message,array('statut'=>'publie'));
// apres en message envoyes, retourner sur la boite d'envoi plutot que sur le message
if ($res['redirect']==generer_url_ecrire('message','id_message='.$id_message))
$res['redirect'] = generer_url_ecrire('messages','quoi=envoi');
}
set_request('destinataires',explode(',',_request('destinataires')));
return $res;
}