]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - plugins/EmailSummary/EmailSummaryPlugin.php
Merge branch 'master' into 0.9.x
[quix0rs-gnu-social.git] / plugins / EmailSummary / EmailSummaryPlugin.php
index dd72329f8887f48c0b61b7823bd1ae6fe98bbe49..58c40e43c5ae27a5d753633d6cea1f590df3a243 100644 (file)
@@ -63,7 +63,7 @@ class EmailSummaryPlugin extends Plugin
                                                  false, 'PRI'),
                                    new ColumnDef('send_summary', 'tinyint', null,
                                                 false, null, 1),
-                                   new ColumnDef('last_summary', 'datetime', null,
+                                   new ColumnDef('last_summary_id', 'integer', null,
                                                 true),
                                    new ColumnDef('created', 'datetime', null,
                                                 false),
@@ -89,6 +89,10 @@ class EmailSummaryPlugin extends Plugin
 
         switch ($cls)
         {
+        case 'SiteEmailSummaryHandler':
+        case 'UserEmailSummaryHandler':
+            include_once $dir . '/'.strtolower($cls).'.php';
+           return false;
         case 'Email_summary_status':
             include_once $dir . '/'.$cls.'.php';
             return false;
@@ -116,4 +120,83 @@ class EmailSummaryPlugin extends Plugin
                             _m('Send an email summary of the inbox to users.'));
         return true;
     }
+
+    /**
+     * Register our queue handlers
+     * 
+     * @param QueueManager $qm Current queue manager
+     * 
+     * @return boolean hook value
+     */
+    
+    function onEndInitializeQueueManager($qm)
+    {
+       $qm->connect('sitesum', 'SiteEmailSummaryHandler');
+       $qm->connect('usersum', 'UserEmailSummaryHandler');
+       return true;
+    }
+    
+    /**
+     * Add a checkbox to turn off email summaries
+     * 
+     * @param Action $action Action being executed (emailsettings)
+     * 
+     * @return boolean hook value
+     */
+    
+    function onEndEmailFormData($action)
+    {
+       $user = common_current_user();
+       
+       $action->elementStart('li');
+       $action->checkbox('emailsummary',
+                         // TRANS: Checkbox label in e-mail preferences form.
+                         _('Send me a periodic summary of updates from my network.'),
+                         Email_summary_status::getSendSummary($user->id));
+       $action->elementEnd('li');
+       return true;
+    }
+    
+    /**
+     * Add a checkbox to turn off email summaries
+     * 
+     * @param Action $action Action being executed (emailsettings)
+     * 
+     * @return boolean hook value
+     */
+    
+    function onEndEmailSaveForm($action)
+    {
+       $sendSummary = $action->boolean('emailsummary');
+       
+       $user = common_current_user();
+       
+       if (!empty($user)) {
+           
+           $ess = Email_summary_status::staticGet('user_id', $user->id);
+           
+           if (empty($ess)) {
+               
+               $ess = new Email_summary_status();
+
+               $ess->user_id      = $user->id;
+               $ess->send_summary = $sendSummary;
+               $ess->created      = common_sql_now();
+               $ess->modified     = common_sql_now();
+               
+               $ess->insert();
+               
+           } else {
+               
+               $orig = clone($ess);
+               
+               $ess->send_summary = $sendSummary;
+               $ess->modified     = common_sql_now();
+               
+               $ess->update($orig);
+           }
+       }
+       
+       return true;
+    }
 }