Changeset 31703 in spip-zone


Ignore:
Timestamp:
Sep 21, 2009, 4:04:46 PM (10 years ago)
Author:
cedric@…
Message:

utiliser la queue, et sql_

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/notifications/notifications.php

    r27085 r31703  
    5050
    5151function notifier_publication_auteurs_article($id_article) {
    52 
    53         $envoyer_mail = charger_fonction('envoyer_mail','inc');
     52        include_spip('base/abstract_sql');
    5453        $nom_site_spip = nettoyer_titre_email($GLOBALS['meta']["nom_site"]);
    5554        $suivi_edito = $GLOBALS['meta']["suivi_edito"];
     
    9089                        }
    9190
    92         // Nettoyer le tableau
    93         // Ne pas ecrire au posteur du message !
    94         $destinataires = array();
    95         foreach ($tous as $m) {
    96                 if ($m = email_valide($m))
    97                         $destinataires[$m]++;
    98         }
    99 
    100         //
    101         // Envoyer les emails
    102         //
    103         foreach (array_keys($destinataires) as $email) {
    104 
    105                 $envoyer_mail($email, $sujet, $courr);
    106         }
     91                        // Nettoyer le tableau
     92                        // Ne pas ecrire au posteur du message !
     93                        $destinataires = array();
     94                        foreach ($tous as $m) {
     95                                if ($m = email_valide($m))
     96                                        $destinataires[$m]++;
     97                        }
     98
     99                        //
     100                        // Envoyer les emails
     101                        //
     102                        $envoyer_mail = charger_fonction('envoyer_mail','inc');
     103                        foreach (array_keys($destinataires) as $email) {
     104                                if (!function_exists('job_queue_add'))
     105                                        $envoyer_mail($email, $sujet, $courr);
     106                                else
     107                                        job_queue_add('envoyer_mail',">$email : $sujet",array($email,$sujet,$courr),'inc/',true);
     108                        }
    107109
    108110                        if ($l) lang_select();
     
    166168// Envoi des notifications
    167169function Notifications_envoi($emails, $subject, $body) {
    168         include_spip('inc/mail'); # un peu obsolete, cf. envoyer_mail
     170        $envoyer_mail = charger_fonction('envoyer_mail','inc');
    169171        include_spip('inc/filtres'); # pour email_valide()
    170172
     
    181183                        $bodyc .= "\n\n$url\n";
    182184                }
    183                 envoyer_mail($email, $subject, $bodyc);
     185                foreach (array_keys($destinataires) as $email) {
     186                        if (!function_exists('job_queue_add'))
     187                                $envoyer_mail($email, $subject, $bodyc);
     188                        else
     189                                job_queue_add('envoyer_mail',"->$email : $subject",array($email, $subject, $bodyc),'inc/',true);
     190                }
    184191        }
    185192}
     
    188195// definis par la constante _SPIP_MODERATEURS_PETITION
    189196function Notifications_spip_signatures($x) {
     197        include_spip('base/abstract_sql');
    190198        if (!$GLOBALS['notifications']['moderateurs_signatures'])
    191199                return $x;
     
    193201        $id_signature = $x['args']['id_objet'];
    194202
    195         $s = spip_query($q = "SELECT * FROM spip_signatures WHERE id_signature="._q($id_signature));
    196 
    197         if ($t = spip_fetch_array($s)) {
    198 
    199                 $a = spip_fetch_array(spip_query("SELECT titre,lang FROM spip_articles WHERE id_article="._q($t['id_article'])));
     203        $s = sql_select("*","spip_signatures","id_signature=".intval($id_signature));
     204
     205        if ($t = sql_fetch($s)) {
     206
     207                $a = sql_fetsel("titre,lang","spip_articles","id_article=".intval($t['id_article']));
    200208                lang_select($a['lang']);
    201209
     
    249257
    250258function notifications_forumprive($quoi, $id_forum) {
    251         $s = spip_query("SELECT * FROM spip_forum WHERE id_forum="._q($id_forum));
    252         if (!$t = spip_fetch_array($s))
     259        include_spip('base/abstract_sql');
     260        $s = sql_select("*","spip_forum","id_forum=".intval($id_forum));
     261        if (!$t = sql_fetch($s))
    253262                return;
    254263
     
    266275                // 1.1. Les auteurs du message (si c'est un message)
    267276                if ($t['id_message']) {
    268                         $result = spip_query("SELECT auteurs.email FROM spip_auteurs AS auteurs, spip_auteurs_messages AS lien WHERE lien.id_message="._q($t['id_message'])." AND auteurs.id_auteur=lien.id_auteur");
     277                        $result = sql_select("auteurs.email","spip_auteurs AS auteurs, spip_auteurs_messages AS lien","lien.id_message=".intval($t['id_message'])." AND auteurs.id_auteur=lien.id_auteur");
    269278       
    270                         while ($qui = spip_fetch_array($result))
     279                        while ($qui = sql_fetch($result))
    271280                                $tous[] = $qui['email'];
    272281       
     
    282291                // 1.2. Les auteurs de l'article (si c'est un article)
    283292                elseif ($t['id_article']) {
    284                         $result = spip_query("SELECT auteurs.email FROM spip_auteurs AS auteurs, spip_auteurs_articles AS lien WHERE lien.id_article="._q($t['id_article'])." AND auteurs.id_auteur=lien.id_auteur");
     293                        $result = sql_select("auteurs.email","spip_auteurs AS auteurs, spip_auteurs_articles AS lien","lien.id_article=".intval($t['id_article'])." AND auteurs.id_auteur=lien.id_auteur");
    285294       
    286                         while ($qui = spip_fetch_array($result))
     295                        while ($qui = sql_fetch($result))
    287296                                $tous[] = $qui['email'];
    288297                }
     
    299308        // pour se retirer d'un troll (hack: replacer @ par % dans l'email)
    300309        if ($GLOBALS['notifications']['thread_forum_prive']) {
    301                 $s = spip_query("SELECT DISTINCT(email_auteur) FROM spip_forum WHERE id_thread=".$t['id_thread']." AND email_auteur != ''");
    302                 while ($r = spip_fetch_array($s))
     310                $s = sql_select("DISTINCT(email_auteur)","spip_forum","id_thread=".intval($t['id_thread'])." AND email_auteur != ''");
     311                while ($r = sql_fetch($s))
    303312                        $tous[] = $r['email_auteur'];
    304313        }
     
    343352// suivre si le forum est valide directement ('pos' ou 'abo')
    344353function notifications_forumvalide($quoi, $id_forum) {
    345         $s = spip_query("SELECT * FROM spip_forum WHERE id_forum="._q($id_forum));
    346         if (!$t = spip_fetch_array($s))
     354        include_spip('base/abstract_sql');
     355        $s = sql_select("*","spip_forum","id_forum=".intval($id_forum));
     356        if (!$t = sql_fetch($s))
    347357                return;
    348358
     
    364374        if ($t['id_article']
    365375        AND $GLOBALS['notifications']['prevenir_auteurs']) {
    366                 $result = spip_query("SELECT auteurs.* FROM spip_auteurs AS auteurs, spip_auteurs_articles AS lien WHERE lien.id_article="._q($t['id_article'])." AND auteurs.id_auteur=lien.id_auteur");
    367 
    368                 while ($qui = spip_fetch_array($result)) {
     376                $result = sql_select("auteurs.*","spip_auteurs AS auteurs, spip_auteurs_articles AS lien","lien.id_article=".intval($t['id_article'])." AND auteurs.id_auteur=lien.id_auteur");
     377
     378                while ($qui = sql_fetch($result)) {
    369379                        if (!autoriser('modererforum', 'article', $t['id_article'], $qui['id_auteur']))
    370380                                $tous[] = $qui['email'];
     
    379389        // pour se retirer d'un troll (hack: replacer @ par % dans l'email)
    380390        if ($GLOBALS['notifications']['thread_forum']) {
    381                 $s = spip_query("SELECT DISTINCT(email_auteur) FROM spip_forum WHERE id_thread=".$t['id_thread']." AND email_auteur != ''");
    382                 while ($r = spip_fetch_array($s))
     391                $s = sql_select("DISTINCT(email_auteur)","spip_forum","id_thread=".intval($t['id_thread'])." AND email_auteur != ''");
     392                while ($r = sql_fetch($s))
    383393                        $tous[] = $r['email_auteur'];
    384394        }
     
    423433
    424434function notifications_forumposte($quoi, $id_forum) {
    425         $s = spip_query("SELECT * FROM spip_forum WHERE id_forum="._q($id_forum));
    426         if (!$t = spip_fetch_array($s))
     435        include_spip('base/abstract_sql');
     436        $s = sql_select("*","spip_forum","id_forum=".intval($id_forum));
     437        if (!$t = sql_fetch($s))
    427438                return;
    428439
     
    440451        if ($t['id_article']
    441452        AND $GLOBALS['notifications']['prevenir_auteurs']) {
    442                 $result = spip_query("SELECT auteurs.* FROM spip_auteurs AS auteurs, spip_auteurs_articles AS lien WHERE lien.id_article="._q($t['id_article'])." AND auteurs.id_auteur=lien.id_auteur");
    443 
    444                 while ($qui = spip_fetch_array($result)) {
     453                $result = sql_select("auteurs.*","spip_auteurs AS auteurs, spip_auteurs_articles AS lien","lien.id_article=".intval($t['id_article'])." AND auteurs.id_auteur=lien.id_auteur");
     454
     455                while ($qui = sql_fetch($result)) {
    445456                        if (autoriser('modererforum', 'article', $t['id_article'], $qui['id_auteur']))
    446457                                $tous[] = $qui['email'];
Note: See TracChangeset for help on using the changeset viewer.