]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - plugins/EmailReminder/lib/siteconfirmreminderhandler.php
Merge remote-tracking branch 'origin/1.0.x' into 1.0.x
[quix0rs-gnu-social.git] / plugins / EmailReminder / lib / siteconfirmreminderhandler.php
index e5b561827b0de4d1b3f084accd013a9292f47165..e5b4a5e2ab71848e40b30bc20b1bb0e8687630cf 100644 (file)
@@ -60,22 +60,24 @@ class SiteConfirmReminderHandler extends QueueHandler
     /**
      * Handle the site
      *
-     * @param string $reminderType type of reminder to send
+     * @param array $remitem type of reminder to send and any special options
      * @return boolean true on success, false on failure
      */
-    function handle($reminderType)
+    function handle($remitem)
     {
+        list($type, $opts) = $remitem;
+
         $qm = QueueManager::get();
 
         try {
-            switch($reminderType) {
+            switch($type) {
             case UserConfirmRegReminderHandler::REGISTER_REMINDER:
                 $confirm               = new Confirm_address();
-                $confirm->address_type = $object;
+                $confirm->address_type = $type;
                 $confirm->find();
                 while ($confirm->fetch()) {
                     try {
-                        $qm->enqueue($confirm, 'uregrem');
+                        $qm->enqueue(array($confirm, $opts), 'uregrem');
                     } catch (Exception $e) {
                         common_log(LOG_WARNING, $e->getMessage());
                         continue;
@@ -84,10 +86,12 @@ class SiteConfirmReminderHandler extends QueueHandler
                 break;
             case UserInviteReminderHandler::INVITE_REMINDER:
                 $invitation = new Invitation();
-                $invitation->find();
+                // Only send one reminder (the latest one), regardless of how many invitations a user has
+                $sql = 'SELECT * FROM (SELECT * FROM invitation WHERE registered_user_id IS NULL ORDER BY created DESC) invitees GROUP BY invitees.address';
+                $invitation->query($sql);
                 while ($invitation->fetch()) {
                     try {
-                        $qm->enqueue($invitation, 'uinvrem');
+                        $qm->enqueue(array($invitation, $opts), 'uinvrem');
                     } catch (Exception $e) {
                         common_log(LOG_WARNING, $e->getMessage());
                         continue;