Exemple #1
0
 /**
  * Handle distribution of a notice after we've saved it:
  * @li add to local recipient inboxes
  * @li send email notifications to local @-reply targets
  * @li run final EndNoticeSave plugin events
  * @li put any remaining post-processing into the queues
  *
  * If this function indicates failure, a warning will be logged
  * and the item is placed back in the queue to be re-run.
  *
  * @fixme addToInboxes is known to fail sometimes with large recipient sets
  *
  * @param Notice $notice
  * @return boolean true on success, false on failure
  */
 function handle($notice)
 {
     try {
         $notice->addToInboxes();
     } catch (Exception $e) {
         $this->logit($notice, $e);
     }
     try {
         $notice->sendReplyNotifications();
     } catch (Exception $e) {
         $this->logit($notice, $e);
     }
     try {
         Event::handle('EndNoticeSave', array($notice));
         // Enqueue for other handlers
     } catch (Exception $e) {
         $this->logit($notice, $e);
     }
     try {
         common_enqueue_notice($notice);
     } catch (Exception $e) {
         $this->logit($notice, $e);
     }
     return true;
 }
 /**
  * Handle distribution of a notice after we've saved it:
  * @li add to local recipient inboxes
  * @li send email notifications to local @-reply targets
  * @li run final EndNoticeSave plugin events
  * @li put any remaining post-processing into the queues
  *
  * If this function indicates failure, a warning will be logged
  * and the item is placed back in the queue to be re-run.
  *
  * @param Notice $notice
  * @return boolean true on success, false on failure
  */
 public function handle(Notice $notice)
 {
     // We have to manually add attentions to non-profile subs and non-mentions
     $ptAtts = $notice->getAttentionsFromProfileTags();
     foreach (array_keys($ptAtts) as $profile_id) {
         $profile = Profile::getKV('id', $profile_id);
         if ($profile instanceof Profile) {
             try {
                 common_debug('Adding Attention for ' . $notice->getID() . ' profile ' . $profile->getID());
                 Attention::saveNew($notice, $profile);
             } catch (Exception $e) {
                 $this->logit($notice, $e);
             }
         }
     }
     try {
         $notice->sendReplyNotifications();
     } catch (Exception $e) {
         $this->logit($notice, $e);
     }
     try {
         Event::handle('EndNoticeDistribute', array($notice));
     } catch (Exception $e) {
         $this->logit($notice, $e);
     }
     try {
         Event::handle('EndNoticeSave', array($notice));
     } catch (Exception $e) {
         $this->logit($notice, $e);
     }
     try {
         // Enqueue for other handlers
         common_enqueue_notice($notice);
     } catch (Exception $e) {
         $this->logit($notice, $e);
     }
     return true;
 }
Exemple #3
0
function common_broadcast_notice($notice, $remote = false)
{
    if (common_config('queue', 'enabled')) {
        // Do it later!
        return common_enqueue_notice($notice);
    } else {
        return common_real_broadcast($notice, $remote);
    }
}