|
|
|
@ -1,12 +1,13 @@
|
|
|
|
|
<?php |
|
|
|
|
|
|
|
|
|
/***************************************************************************\ |
|
|
|
|
* SPIP, Système de publication pour l'internet * |
|
|
|
|
* SPIP, Systeme de publication pour l'internet * |
|
|
|
|
* * |
|
|
|
|
* Copyright © avec tendresse depuis 2001 * |
|
|
|
|
* Arnaud Martin, Antoine Pitrou, Philippe Rivière, Emmanuel Saint-James * |
|
|
|
|
* Copyright (c) 2001-2020 * |
|
|
|
|
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James * |
|
|
|
|
* * |
|
|
|
|
* Ce programme est un logiciel libre distribué sous licence GNU/GPL. * |
|
|
|
|
* 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')) { |
|
|
|
@ -59,21 +60,20 @@ function messagerie_nettoyer_destinataires($destinataires) {
|
|
|
|
|
* @param array $options |
|
|
|
|
* @return array |
|
|
|
|
*/ |
|
|
|
|
function messagerie_verifier_destinataires($destinataires, $options = ['accepter_email' => true]) { |
|
|
|
|
$erreurs = []; |
|
|
|
|
function messagerie_verifier_destinataires($destinataires, $options = array('accepter_email' => true)) { |
|
|
|
|
$erreurs = array(); |
|
|
|
|
|
|
|
|
|
$destinataires = messagerie_nettoyer_destinataires($destinataires); |
|
|
|
|
foreach ($destinataires as $id) { |
|
|
|
|
if (is_numeric($id)) { |
|
|
|
|
if (!$id) { |
|
|
|
|
$erreurs[] = _T('organiseur:erreur_destinataire_invalide', ['dest' => entites_html($id)]); |
|
|
|
|
$erreurs[] = _T('organiseur:erreur_destinataire_invalide', array('dest' => entites_html($id))); |
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
|
if ( |
|
|
|
|
!$options['accepter_email'] |
|
|
|
|
if (!$options['accepter_email'] |
|
|
|
|
or !email_valide($id) |
|
|
|
|
) { |
|
|
|
|
$erreurs[] = _T('organiseur:erreur_destinataire_invalide', ['dest' => entites_html($id)]); |
|
|
|
|
$erreurs[] = _T('organiseur:erreur_destinataire_invalide', array('dest' => entites_html($id))); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
@ -89,8 +89,8 @@ function messagerie_verifier_destinataires($destinataires, $options = ['accepter
|
|
|
|
|
*/ |
|
|
|
|
function messagerie_destiner($dests) { |
|
|
|
|
// separer les destinataires auteur des destinataires email |
|
|
|
|
$auteurs_dest = []; |
|
|
|
|
$email_dests = []; |
|
|
|
|
$auteurs_dest = array(); |
|
|
|
|
$email_dests = array(); |
|
|
|
|
|
|
|
|
|
$dests = messagerie_nettoyer_destinataires($dests); |
|
|
|
|
foreach ($dests as $id) { |
|
|
|
@ -103,14 +103,14 @@ function messagerie_destiner($dests) {
|
|
|
|
|
if (count($email_dests)) { |
|
|
|
|
// retrouver les id des emails pour ceux qui sont en base |
|
|
|
|
$res = sql_select('id_auteur,email', 'spip_auteurs', sql_in('email', $email_dests)); |
|
|
|
|
$auteurs_dest_found = []; |
|
|
|
|
$auteurs_dest_found = array(); |
|
|
|
|
while ($row = sql_fetch($res)) { |
|
|
|
|
$auteurs_dest_found[] = $row['id_auteur']; |
|
|
|
|
} |
|
|
|
|
$auteurs_dest = [...$auteurs_dest, ...$auteurs_dest_found]; |
|
|
|
|
$auteurs_dest = array_merge($auteurs_dest, $auteurs_dest_found); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return [$auteurs_dest, $email_dests]; |
|
|
|
|
return array($auteurs_dest, $email_dests); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
@ -120,14 +120,13 @@ function messagerie_destiner($dests) {
|
|
|
|
|
* @param array $auteurs_dest |
|
|
|
|
* @return bool|int |
|
|
|
|
*/ |
|
|
|
|
function messagerie_diffuser_message($id_message, $auteurs_dest = []) { |
|
|
|
|
function messagerie_diffuser_message($id_message, $auteurs_dest = array()) { |
|
|
|
|
$out = false; |
|
|
|
|
if ( |
|
|
|
|
$id_message = intval($id_message) |
|
|
|
|
if ($id_message = intval($id_message) |
|
|
|
|
and count($auteurs_dest) |
|
|
|
|
) { |
|
|
|
|
include_spip('action/editer_liens'); |
|
|
|
|
$out = objet_associer(['auteur' => $auteurs_dest], ['message' => $id_message], ['vu' => 'non']); |
|
|
|
|
$out = objet_associer(array('auteur' => $auteurs_dest), array('message' => $id_message), array('vu' => 'non')); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return $out; |
|
|
|
@ -140,9 +139,8 @@ function messagerie_diffuser_message($id_message, $auteurs_dest = []) {
|
|
|
|
|
* @param array $emails_dest |
|
|
|
|
* @return bool |
|
|
|
|
*/ |
|
|
|
|
function messagerie_mailer_message($id_message, $emails_dest = []) { |
|
|
|
|
if ( |
|
|
|
|
$id_message = intval($id_message) |
|
|
|
|
function messagerie_mailer_message($id_message, $emails_dest = array()) { |
|
|
|
|
if ($id_message = intval($id_message) |
|
|
|
|
and count($emails_dest) |
|
|
|
|
) { |
|
|
|
|
if ($row = sql_fetsel('titre,texte,id_auteur', 'spip_messages', 'id_message=' . intval($id_message))) { |
|
|
|
@ -151,7 +149,7 @@ function messagerie_mailer_message($id_message, $emails_dest = []) {
|
|
|
|
|
job_queue_add( |
|
|
|
|
'envoyer_mail', |
|
|
|
|
'messagerie mail', |
|
|
|
|
[$email, $row['titre'], ['texte' => $row['texte'], 'from' => $from]], |
|
|
|
|
array($email, $row['titre'], array('texte' => $row['texte'], 'from' => $from)), |
|
|
|
|
'inc/' |
|
|
|
|
); |
|
|
|
|
} |
|
|
|
@ -174,19 +172,19 @@ function messagerie_mailer_message($id_message, $emails_dest = []) {
|
|
|
|
|
function messagerie_marquer_message($id_auteur, $liste, $vu) { |
|
|
|
|
include_spip('action/editer_liens'); |
|
|
|
|
if (!is_array($liste)) { |
|
|
|
|
$liste = [$liste]; |
|
|
|
|
$liste = array($liste); |
|
|
|
|
} |
|
|
|
|
// completer les liens qui n'existent pas encore |
|
|
|
|
// ex : pour marquer lue une annonce, on ajoute le lien d'abord (n'existe pas) |
|
|
|
|
// puis on le marque 'oui' |
|
|
|
|
$liens = objet_trouver_liens(['auteur' => $id_auteur], ['message' => $liste]); |
|
|
|
|
$l = []; |
|
|
|
|
$liens = objet_trouver_liens(array('auteur' => $id_auteur), array('message' => $liste)); |
|
|
|
|
$l = array(); |
|
|
|
|
foreach ($liens as $lien) { |
|
|
|
|
$l[] = $lien['message']; |
|
|
|
|
} |
|
|
|
|
objet_associer(['auteur' => $id_auteur], ['message' => array_diff($liste, $l)], ['vu' => $vu]); |
|
|
|
|
objet_associer(array('auteur' => $id_auteur), array('message' => array_diff($liste, $l)), array('vu' => $vu)); |
|
|
|
|
// puis les marquer tous lus |
|
|
|
|
objet_qualifier_liens(['auteur' => $id_auteur], ['message' => $liste], ['vu' => $vu]); |
|
|
|
|
objet_qualifier_liens(array('auteur' => $id_auteur), array('message' => $liste), array('vu' => $vu)); |
|
|
|
|
include_spip('inc/invalideur'); |
|
|
|
|
suivre_invalideur('message/' . implode(',', $liste)); |
|
|
|
|
} |
|
|
|
|