<?php
/***************************************************************************
- * Copyright (C) 2003-2006 Polytechnique.org *
+ * Copyright (C) 2003-2007 Polytechnique.org *
* http://opensource.polytechnique.org/ *
* *
* This program is free software; you can redistribute it and/or modify *
'carnet/contacts' => $this->make_hook('contacts', AUTH_COOKIE),
'carnet/contacts/pdf' => $this->make_hook('pdf', AUTH_COOKIE),
- 'carnet/contacts/ical' => $this->make_hook('ical', AUTH_COOKIE),
+ 'carnet/contacts/ical' => $this->make_hook('ical', AUTH_PUBLIC),
'carnet/contacts/vcard' => $this->make_hook('vcard', AUTH_COOKIE),
'carnet/rss' => $this->make_hook('rss', AUTH_PUBLIC),
if (!S::has('core_rss_hash')) {
return;
}
- $page->assign('xorg_rss',
- array('title' => 'Polytechnique.org :: Carnet',
- 'href' => '/carnet/rss/'.S::v('forlife')
- .'/'.S::v('core_rss_hash').'/rss.xml')
- );
+ $page->setRssLink('Polytechnique.org :: Carnet',
+ '/carnet/rss/'.S::v('forlife') .'/'.S::v('core_rss_hash').'/rss.xml');
}
function handler_index(&$page)
if(preg_match('!^ *(\d{4}) *$!', $arg, $matches)) {
$p = intval($matches[1]);
if($p<1900 || $p>2100) {
- $page->trig("la promo entrée est invalide");
+ $page->trig("la promo entrée est invalide");
} else {
if ($action == 'add_promo') {
$watch->_promos->add($p);
$p1 = intval($matches[1]);
$p2 = intval($matches[2]);
if($p1<1900 || $p1>2100) {
- $page->trig('la première promo de la plage entrée est invalide');
+ $page->trig('la première promo de la plage entrée est invalide');
} elseif($p2<1900 || $p2>2100) {
- $page->trig('la seconde promo de la plage entrée est invalide');
+ $page->trig('la seconde promo de la plage entrée est invalide');
} else {
if ($action == 'add_promo') {
$watch->_promos->addRange($p1, $p2);
}
}
} else {
- $page->trig("La promo (ou la plage de promo) entrée est dans un format incorrect.");
+ $page->trig("La promo (ou la plage de promo) entrée est dans un format incorrect.");
}
}
$page->changeTpl('carnet/mescontacts.tpl');
require_once("applis.func.inc.php");
$page->assign('xorg_title','Polytechnique.org - Mes contacts');
+ $this->_add_rss_link($page);
$uid = S::v('uid');
$user = Env::v('user');
case 'retirer':
if (is_numeric($user)) {
if (XDB::execute('DELETE FROM contacts
- WHERE uid = {?} AND contact = {?}',
+ WHERE uid = {?} AND contact = {?}',
$uid, $user))
{
- $page->trig("Contact retiré !");
+ $page->trig("Contact retiré !");
}
} else {
if (XDB::execute(
- 'DELETE FROM contacts
+ 'DELETE FROM c
USING contacts AS c
INNER JOIN aliases AS a ON (c.contact=a.id and a.type!="homonyme")
WHERE c.uid = {?} AND a.alias={?}', $uid, $user))
{
- $page->trig("Contact retiré !");
+ $page->trig("Contact retiré !");
}
}
break;
FROM aliases
WHERE alias = {?}', $uid, $login))
{
- $page->trig('Contact ajouté !');
+ $page->trig('Contact ajouté !');
} else {
- $page->trig('Contact déjà dans la liste !');
+ $page->trig('Contact déjà dans la liste !');
}
}
}
if ($action == 'trombi') {
- require_once 'trombi.inc.php';
-
$trombi = new Trombi(array($this, '_get_list'));
$trombi->setNbRows(4);
$page->assign_by_ref('trombi',$trombi);
$page->assign('notifs', $notifs);
}
- function handler_ical(&$page)
+ function handler_ical(&$page, $alias = null, $hash = null)
{
- require_once dirname(__FILE__).'/carnet/smarty.php';
+ require_once 'rss.inc.php';
+ $uid = init_rss(null, $alias, $hash, false);
+ if (S::logged()) {
+ if (!$uid) {
+ $uid = S::i('uid');
+ } else if ($uid != S::i('uid')) {
+ require_once 'xorg.misc.inc.php';
+ send_warning_email("Récupération d\'un autre utilisateur ($uid)");
+ }
+ } else if (!$uid) {
+ exit;
+ }
+ require_once 'ical.inc.php';
$page->changeTpl('carnet/calendar.tpl', NO_SKIN);
$page->register_function('display_ical', 'display_ical');
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'));
+ WHERE c.uid = {?}', $uid);
$annivs = Array();
while (list($prenom, $nom, $promo, $naissance, $end, $ts, $forlife) = $res->next()) {
header('Content-Type: text/calendar; charset=utf-8');
}
- function handler_vcard(&$page)
+ function handler_vcard(&$page, $photos = null)
{
$res = XDB::query('SELECT contact
FROM contacts
WHERE uid = {?}', S::v('uid'));
- require_once('vcard.inc.php');
- $vcard = new VCard($res->fetchColumn());
+ $vcard = new VCard($res->fetchColumn(), $photos == 'photos');
$vcard->do_page(&$page);
}
}
+// vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8:
?>