From f3b3f363309a44960de3dd980d3fd214dfbea0b8 Mon Sep 17 00:00:00 2001 From: x2003bruneau Date: Sun, 23 Jul 2006 12:31:31 +0000 Subject: [PATCH] iCal now contains yearly events for *all* contacts git-svn-id: svn+ssh://murphy/home/svn/platal/trunk@587 839d8a87-29fc-0310-9880-83ba4fa771e5 --- modules/carnet.php | 61 ++++++++++++++++++------------------------- templates/carnet/calendar.tpl | 7 ++--- 2 files changed, 30 insertions(+), 38 deletions(-) diff --git a/modules/carnet.php b/modules/carnet.php index 69b29b9..6c200e3 100644 --- a/modules/carnet.php +++ b/modules/carnet.php @@ -330,42 +330,33 @@ class CarnetModule extends PLModule { $page->changeTpl('carnet/calendar.tpl', NO_SKIN); - if ($alias && $hash) { - $res = XDB::query( - 'SELECT a.id - FROM aliases AS a - INNER JOIN auth_user_quick AS q ON ( a.id = q.user_id AND q.core_rss_hash = {?} ) - WHERE a.alias = {?} AND a.type != "homonyme"', $hash, $alias); - $uid = $res->fetchOneCell(); - } - - require_once 'notifs.inc.php'; - $notifs = new Notifs($uid, true); - - $annivcat = false; - foreach ($notifs->_cats as $cat) { - if (preg_match('/anniv/i', $cat['short'])) - $annivcat = $cat['id']; - } - - if ($annivcat !== false) { - $annivs = array(); - foreach ($notifs->_data[$annivcat] as $promo) { - foreach ($promo as $notif) { - if ($all == 'all' || $notif['contact']) { - $annivs[] = array( - 'timestamp' => $notif['known'], - 'date' => strtotime($notif['date']), - 'tomorrow' => strtotime("+1 day", strtotime($notif['date'])), - 'bestalias' => $notif['bestalias'], - 'summary' => 'Anniversaire de '.$notif['prenom'] - .' '.$notif['nom'].' - x '.$notif['promo'], - ); - } - } - } - $page->assign('events', $annivs); + $res = XDB::iterRow( + 'SELECT u.prenom, + IF(u.nom_usage = \'\',u.nom,u.nom_usage) AS nom, + u.promo, + u.naissance, + DATE_ADD(u.naissance, INTERVAL 1 DAY) AS end, + u.date_ins, + a.alias AS forlife + FROM contacts AS c + INNER JOIN auth_user_md5 AS u ON (u.user_id = c.contact) + INNER JOIN aliases AS a ON (u.user_id = a.id AND a.type = \'a_vie\') + WHERE c.uid = {?}', S::v('uid')); + + $annivs = Array(); + while (list($prenom, $nom, $promo, $naissance, $end, $ts, $forlife) = $res->next()) { + $naissance = str_replace('-', '', $naissance); + $end = str_replace('-', '', $end); + $annivs[] = array( + 'timestamp' => strtotime($ts), + 'date' => $naissance, + 'tomorrow' => $end, + 'forlife' => $forlife, + 'summary' => 'Anniversaire de '.$prenom + .' '.$nom.' - x '.$promo, + ); } + $page->assign('events', $annivs); header('Content-Type: text/calendar; charset=utf-8'); } diff --git a/templates/carnet/calendar.tpl b/templates/carnet/calendar.tpl index 0e3b207..7b60be5 100644 --- a/templates/carnet/calendar.tpl +++ b/templates/carnet/calendar.tpl @@ -29,9 +29,10 @@ X-WR-TIMEZONE:Europe/Paris {foreach from=$events item=e} BEGIN:VEVENT DTSTAMP:{$e.timestamp|date_format:"%Y%m%dT%H%M%SZ"} -DTSTART;VALUE=DATE:{$e.date|date_format:"%Y%m%d"} -DTEND;VALUE=DATE:{$e.tomorrow|date_format:"%Y%m%d"} -UID:anniv-{$e.date|date_format:"%Y%m%d"}-{$e.bestalias}@polytechnique.org +DTSTART;VALUE=DATE:{$e.date} +DTEND;VALUE=DATE:{$e.tomorrow} +UID:anniv-{$e.date}-{$e.forlife}@polytechnique.org +RRULE:FREQ=YEARLY;INTERVAL=1 CLASS:PUBLIC {display_ical name="summary" value=$e.summary} END:VEVENT -- 2.1.4