add reminder functionality
authorcommunity.cacert.org <community.cacert.org@d4452222-2f33-11de-9270-010000000000>
Fri, 12 Jun 2009 05:01:29 +0000 (05:01 +0000)
committercommunity.cacert.org <community.cacert.org@d4452222-2f33-11de-9270-010000000000>
Fri, 12 Jun 2009 05:01:29 +0000 (05:01 +0000)
git-svn-id: http://svn.cacert.cl/Software/Voting/vote@58 d4452222-2f33-11de-9270-010000000000

.htaccess
database.php
remind.php [new file with mode: 0755]

index 7a803b2..02170ca 100644 (file)
--- a/.htaccess
+++ b/.htaccess
@@ -9,7 +9,7 @@ php_value       open_basedir            /var/www/board
 php_value      safe_mode_exec_dir      /var/empty
 </IfModule>
 
-<FilesMatch "^database.*$">
+<FilesMatch "^(database.*|remind.php)$">
        Order Deny,Allow
        Deny from all
 </FilesMatch>
index f8b5b11..83aec29 100644 (file)
@@ -104,6 +104,11 @@ BODY;
                        $header = "References: <".$tag.">\r\nIn-reply-to: <".$tag.">\r\n";
                        mail($this->notices, mb_encode_mimeheader($subject,"UTF-8", "B", "\n"),$body,$header."From: Voting System <returns@cacert.org>");
                }
+               function remind_notify($email,$subject,$body)                                                                                                                                                                               
+               {                                                                                                                                                                                                                           
+                       $header = "Content-Type: text/plain; charset=UTF-8\r\n";                                                                                                                                                            
+                       mail($email,$subject,$body,$header."From: Voting System <returns@cacert.org>");                                                                                                                                     
+               }  
                function auth()
                {
                        $stmt = $this->getStatement("get voter");
diff --git a/remind.php b/remind.php
new file mode 100755 (executable)
index 0000000..635c2c7
--- /dev/null
@@ -0,0 +1,45 @@
+#!/usr/bin/php
+<?
+require_once("database.php");
+$db = new DB();
+
+$db->closeVotes();
+
+$id = 0;
+$page = 1;
+
+$voters = $db->getStatement('get reminder voters');
+$voters->execute();
+
+$outstanding = $db->getStatement('list my unvoted decisions');
+$outstanding->bindParam(':id',$id);
+$outstanding->bindParam(':page',$page);
+
+while ($v = $voters->fetch()) {
+       $id = $v['id'];
+       $outstanding->execute();
+       $msg ='';
+       while ($row=$outstanding->fetch()) {
+               $msg .= ($row['votetype'] ? 'vote ' : 'motion ') . $row['tag'] . ' ' . $row['title'] . "\nDue: " . $row['due'] . "\nhttps://community.cacert.org/board/motions.php?motion=" . $row['tag'] . "\n\n";
+       }
+       if ($msg) {
+               // form email
+               $name = $v['name'];
+               $body = <<<BODY
+Dear $name,
+
+You have not voted in the following CAcert Board vote(s)/motion(s):
+
+$msg
+
+
+To view all your outstanding motions: https://community.cacert.org/board/motions.php?unvoted=1
+
+Kind regards,
+the vote system
+
+BODY;
+               $db->remind_notify($v['email'],"Outstanding CAcert board votes",$body); 
+       }
+}
+?>