e2433ff8e680083edc90ba8aaab9858230f827c2
[platal.git] / bin / cron / notifs.send.php
1 #!/usr/bin/php5 -q
2 <?php
3 /***************************************************************************
4 * Copyright (C) 2003-2013 Polytechnique.org *
5 * http://opensource.polytechnique.org/ *
6 * *
7 * This program is free software; you can redistribute it and/or modify *
8 * it under the terms of the GNU General Public License as published by *
9 * the Free Software Foundation; either version 2 of the License, or *
10 * (at your option) any later version. *
11 * *
12 * This program is distributed in the hope that it will be useful, *
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
15 * GNU General Public License for more details. *
16 * *
17 * You should have received a copy of the GNU General Public License *
18 * along with this program; if not, write to the Free Software *
19 * Foundation, Inc., *
20 * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *
21 ***************************************************************************/
22
23 require_once 'connect.db.inc.php';
24 require_once 'plmailer.php';
25 require_once 'notifs.inc.php';
26 ini_set('memory_limit', '128M');
27
28 $uids = XDB::query('SELECT uid
29 FROM watch
30 WHERE FIND_IN_SET(\'mail\', flags)
31 ORDER BY uid');
32 $iterator = User::iterOverUIDs($uids->fetchColumn());
33
34 while($user = $iterator->next()) {
35 $watch = new Watch($user);
36 if ($watch->count() > 0) {
37 $notifs = $watch->events();
38 $mailer = new PlMailer('carnet/notif.mail.tpl');
39 $mailer->assign('sex', $user->isFemale());
40 $mailer->assign('yourself', $user->display_name);
41 $mailer->assign('week', date('W - Y'));
42 $mailer->assign('notifs', $notifs);
43 $mailer->sendTo($user);
44 unset($mailer);
45 unset($notifs);
46 }
47 unset($watch);
48 unset($user);
49 }
50
51 XDB::execute("UPDATE watch_profile
52 SET ts = NOW()
53 WHERE field = 'broken'");
54 XDB::execute('DELETE FROM watch_profile
55 WHERE ts < DATE_SUB(CURRENT_DATE, INTERVAL 15 DAY)');
56
57 // vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8:
58 ?>