Changeset 54440 in spip-zone


Ignore:
Timestamp:
Nov 14, 2011, 2:07:27 PM (8 years ago)
Author:
kent1@…
Message:

On utilise les notifications des forums pour les forums ...

On évite donc des doubles notifications...

On passe par le pipeline "notifications_destinataires" pour ajouter les destinataires :

-* l'email de l'id_auteur du ticket;
-* l'email de l'id_assigne du ticket;
-* les emails des autres forumeurs du ticket;

On incrémente à nouveau

Location:
_plugins_/tickets/branches/v1.1
Files:
1 deleted
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/tickets/branches/v1.1/plugin.xml

    r54427 r54440  
    2525        <icon>imgs/logo-bugs.png</icon>
    2626
    27         <version>1.9.0</version>
     27        <version>1.9.1</version>
    2828        <version_base>1.4</version_base>
    2929        <etat>stable</etat>
     
    102102                <inclure>tickets_pipelines.php</inclure>
    103103        </pipeline>
     104        <pipeline>
     105                <nom>notifications_destinataires</nom>
     106                <inclure>tickets_pipelines.php</inclure>
     107        </pipeline>
    104108
    105109        <bouton id='tickets' parent='bando_publication'>
  • _plugins_/tickets/branches/v1.1/tickets_notifications.php

    r52869 r54440  
    88/**
    99 *
    10  * Fonction appelée lors du changement de statut d'un ticket
     10 * Fonction de nortification appelée lors du changement de statut d'un ticket
    1111 *
    1212 * @return
     
    1515 * @param object $options
    1616 */
    17  
    18 
    19 
    2017function notifications_instituerticket_dist($quoi, $id_ticket, $options) {
    2118       
     
    3532}
    3633
    37 function notifications_commenterticket_dist($quoi, $id_ticket, $options) {
    38        
    39         $notifier_commentaire_ticket = charger_fonction('notifier_commentaire_ticket','inc');
    40         $notifier_commentaire_ticket($id_ticket,$options);
    41 }
    42 
    4334?>
  • _plugins_/tickets/branches/v1.1/tickets_pipelines.php

    r54427 r54440  
    267267                        }
    268268                }
    269                 if ($notifications = charger_fonction('notifications', 'inc')) {
    270                         $notifications('commenterticket', $flux['args']['args'][6],
    271                         array(
    272                                         'id_auteur' => id_assigne,
    273                                         'texte' => texte
    274                         )
    275                         );
     269        }
     270        return $flux;
     271}
     272
     273/**
     274 * Insertion dans le pipeline notifications_destinataires (Forum)
     275 * Ajoute des destinataires dans les notifications
     276 *
     277 * @param array $flux : le contexte du pipeline
     278 * @return array $flux : le contexte modifié
     279 */
     280function tickets_notifications_destinataires($flux){
     281        /**
     282         * Notification des auteurs de tickets et des assignés et des autres forumeurs lorsque le post est validé
     283         */
     284        if(($flux['args']['quoi'] == 'forumvalide')){
     285                if(($flux['args']['options']['forum']['objet'] == 'ticket') && ($id_ticket = intval($flux['args']['options']['forum']['id_objet']))){
     286                        /**
     287                         * On notifie l'id_auteur et l'id_assigné du ticket s'ils ne sont pas l'auteur du post en question
     288                         */
     289                        $auteurs = sql_fetsel('id_auteur,id_assigne','spip_tickets','id_ticket='.intval($id_ticket).' AND id_auteur !='.intval($flux['args']['options']['forum']['id_auteur']));
     290                        if(is_array($auteurs)){
     291                                foreach($auteurs as $auteur){
     292                                        $email = sql_getfetsel('email','spip_auteurs','id_auteur='.intval($auteur));
     293                                        $flux['data'][] = $email;
     294                                }
     295                        }
     296                        /**
     297                         * On notifie les autres forumeurs du ticket
     298                         * GROUP BY id_auteur
     299                         */
     300                        $id_forums = sql_select('*','spip_forum','objet='.sql_quote('ticket').' AND id_objet='.intval($id_ticket).' AND id_forum != '.intval($flux['args']['options']['forum']['id_forum']),array('id_auteur'));
     301                        while($forum = sql_fetch($id_forums)){
     302                                $email = sql_getfetsel('email','spip_auteurs','id_auteur='.intval($forum['id_auteur']));
     303                                $flux['data'][] = $email;
     304                        }
    276305                }
    277306        }
Note: See TracChangeset for help on using the changeset viewer.