<?php
/***************************************************************************
- * Copyright (C) 2003-2010 Polytechnique.org *
+ * Copyright (C) 2003-2011 Polytechnique.org *
* http://opensource.polytechnique.org/ *
* *
* This program is free software; you can redistribute it and/or modify *
function handlers()
{
return array(
- 'carnet' => $this->make_hook('index', AUTH_COOKIE, 'directory_private'),
- 'carnet/panel' => $this->make_hook('panel', AUTH_COOKIE, 'directory_private'),
- 'carnet/notifs' => $this->make_hook('notifs', AUTH_COOKIE, 'directory_private'),
-
- 'carnet/contacts' => $this->make_hook('contacts', AUTH_COOKIE, 'directory_private'),
- 'carnet/contacts/pdf' => $this->make_hook('pdf', AUTH_COOKIE, 'directory_private'),
- 'carnet/contacts/vcard' => $this->make_hook('vcard', AUTH_COOKIE, 'directory_private'),
- 'carnet/contacts/ical' => $this->make_hook('ical', AUTH_PUBLIC, 'directory_private', NO_HTTPS),
- 'carnet/contacts/csv' => $this->make_hook('csv', AUTH_PUBLIC, 'directory_private', NO_HTTPS),
- 'carnet/contacts/csv/birthday' => $this->make_hook('csv_birthday', AUTH_PUBLIC, 'directory_private', NO_HTTPS),
-
- 'carnet/rss' => $this->make_hook('rss', AUTH_PUBLIC, 'directory_private', NO_HTTPS),
+ 'carnet' => $this->make_hook('index', AUTH_COOKIE, 'directory_private'),
+ 'carnet/panel' => $this->make_hook('panel', AUTH_COOKIE, 'directory_private'),
+ 'carnet/notifs' => $this->make_hook('notifs', AUTH_COOKIE, 'directory_private'),
+
+ 'carnet/contacts' => $this->make_hook('contacts', AUTH_COOKIE, 'directory_private'),
+ 'carnet/contacts/pdf' => $this->make_hook('pdf', AUTH_COOKIE, 'directory_private'),
+ 'carnet/contacts/vcard' => $this->make_hook('vcard', AUTH_COOKIE, 'directory_private'),
+ 'carnet/contacts/ical' => $this->make_token_hook('ical', AUTH_COOKIE, 'directory_private'),
+ 'carnet/contacts/csv' => $this->make_token_hook('csv', AUTH_COOKIE, 'directory_private'),
+ 'carnet/contacts/csv/birthday' => $this->make_token_hook('csv_birthday', AUTH_COOKIE, 'directory_private'),
+
+ 'carnet/rss' => $this->make_token_hook('rss', AUTH_COOKIE, 'directory_private'),
);
}
- function _add_rss_link(&$page)
+ function _add_rss_link($page)
{
if (!S::hasAuthToken()) {
return;
'/carnet/rss/' . S::v('hruid') . '/' . S::user()->token . '/rss.xml');
}
- function handler_index(&$page)
+ function handler_index($page)
{
$page->changeTpl('carnet/index.tpl');
$page->setTitle('Mon carnet');
$this->_add_rss_link($page);
}
- function handler_panel(&$page)
+ function handler_panel($page)
{
$page->changeTpl('carnet/panel.tpl');
$this->_add_rss_link($page);
}
- private function getSinglePromotion(PlPage &$page, $promo)
+ private function getSinglePromotion(PlPage $page, $promo)
{
if (!(is_int($promo) || ctype_digit($promo)) || $promo < 1920 || $promo > date('Y')) {
$page->trigError('Promotion invalide : ' . $promo . '.');
return (int)$promo;
}
- private function getPromo(PlPage &$page, $promo)
+ private function getPromo(PlPage $page, $promo)
{
if (strpos($promo, '-') === false) {
$promo = $this->getSinglePromotion($page, $promo);
return $array;
}
- private function addPromo(PlPage &$page, $promo)
+ private function addPromo(PlPage $page, $promo)
{
$promos = $this->getPromo($page, $promo);
if (!$promos || count($promos) == 0) {
Platal::session()->updateNbNotifs();
}
- private function delPromo(PlPage &$page, $promo)
+ private function delPromo(PlPage $page, $promo)
{
$promos = $this->getPromo($page, $promo);
if (!$promos || count($promos) == 0) {
Platal::session()->updateNbNotifs();
}
- public function addNonRegistered(PlPage &$page, PlUser &$user)
+ public function addNonRegistered(PlPage $page, PlUser $user)
{
XDB::execute('INSERT IGNORE INTO watch_nonins (uid, ni_id)
VALUES ({?}, {?})', S::i('uid'), $user->id());
Platal::session()->updateNbNotifs();
}
- public function delNonRegistered(PlPage &$page, PlUser &$user)
+ public function delNonRegistered(PlPage $page, PlUser $user)
{
XDB::execute('DELETE FROM watch_nonins
WHERE uid = {?} AND ni_id = {?}',
Platal::session()->updateNbNotifs();
}
- public function handler_notifs(&$page, $action = null, $arg = null)
+ public function handler_notifs($page, $action = null, $arg = null)
{
$page->changeTpl('carnet/notifs.tpl');
$page->assign('actions', $actions);
}
- function handler_contacts(&$page, $action = null, $subaction = null, $ssaction = null)
+ function handler_contacts($page, $action = null, $subaction = null, $ssaction = null)
{
$page->setTitle('Mes contacts');
$this->_add_rss_link($page);
case 'ajouter':
if (($contact = User::get(Env::v('user')))) {
- if (XDB::execute("REPLACE INTO contacts (uid, contact)
- VALUES ({?}, {?})",
- $uid, $contact->id())) {
+ XDB::execute('INSERT IGNORE INTO contacts (uid, contact)
+ VALUES ({?}, {?})',
+ $uid, $contact->id());
+ if (XDB::affectedRows() > 0) {
Platal::session()->updateNbNotifs();
$page->trigSuccess('Contact ajouté !');
} else {
}
if ($search && trim(Env::v('quick'))) {
$base = 'carnet/contacts/search';
- $view = new SearchSet(true, false, new UFC_Contact($user));
+ $view = new QuickSearchSet(new UFC_Contact($user));
} else {
$base = 'carnet/contacts';
$view = new ProfileSet(new UFC_Contact($user));
//}
}
- function handler_pdf(&$page, $arg0 = null, $arg1 = null)
+ function handler_pdf($page, $arg0 = null, $arg1 = null)
{
$this->load('contacts.pdf.inc.php');
$user = S::user();
exit;
}
- function handler_rss(&$page, $user = null, $hash = null)
+ function handler_rss(PlPage $page, PlUser $user)
{
$this->load('feed.inc.php');
$feed = new CarnetFeed();
- return $feed->run($page, $user, $hash);
+ return $feed->run($page, $user);
}
function buildBirthRef(Profile $profile)
'timestamp' => $date,
'date' => date('Ymd', $date),
'tomorrow' => date('Ymd', $tomorrow),
- 'hruid' => $profile->hrid(),
+ 'email' => $profile->owner()->bestEmail(),
'summary' => 'Anniversaire de ' . $profile->fullName(true)
);
}
- function handler_csv_birthday(&$page, $alias = null, $hash = null)
+ function handler_csv_birthday(PlPage $page, PlUser $user)
{
- $user = Platal::session()->tokenAuth($alias, $hash);
- if (is_null($user)) {
- if (S::logged()) {
- $user = S::user();
- } else {
- return PL_FORBIDDEN;
- }
- }
-
$page->changeTpl('carnet/calendar.outlook.tpl', NO_SKIN);
$filter = new UserFilter(new UFC_Contact($user));
$profiles = $filter->iterProfiles();
pl_content_headers("text/comma-separated-values;charset=".$encoding);
}
- function handler_ical(&$page, $alias = null, $hash = null)
+ function handler_ical(PlPage $page, PlUser $user)
{
- $user = Platal::session()->tokenAuth($alias, $hash);
- if (is_null($user)) {
- if (S::logged()) {
- $user = S::user();
- } else {
- return PL_FORBIDDEN;
- }
- }
-
require_once 'ical.inc.php';
$page->changeTpl('carnet/calendar.tpl', NO_SKIN);
$page->register_function('display_ical', 'display_ical');
pl_content_headers("text/calendar");
}
- function handler_vcard(&$page, $photos = null)
+ function handler_vcard($page, $photos = null)
{
$pf = new ProfileFilter(new UFC_Contact(S::user()));
$vcard = new VCard($photos == 'photos');
- $vcard->addProfiles($pf->getProfiles());
+ $vcard->addProfiles($pf->getProfiles(null, Profile::FETCH_ALL));
$vcard->show();
}
- function handler_csv(&$page, $alias = null, $hash = null)
+ function handler_csv(PlPage $page, PlUser $user)
{
- $user = Platal::session()->tokenAuth($alias, $hash);
- if (is_null($user)) {
- if (S::logged()) {
- $user = S::user();
- } else {
- return PL_FORBIDDEN;
- }
- }
-
$page->changeTpl('carnet/mescontacts.outlook.tpl', NO_SKIN);
$pf = new ProfileFilter(new UFC_Contact($user));
require_once 'carnet/outlook.inc.php';