mirror of
https://github.com/YunoHost-Apps/spip_ynh.git
synced 2024-09-03 20:25:59 +02:00
150 lines
5.5 KiB
PHP
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;
|
|
}
|
|
|