function handlers()
{
return array(
- 'carnet' => $this->make_hook('index', AUTH_COOKIE),
- 'carnet/panel' => $this->make_hook('panel', AUTH_COOKIE),
- 'carnet/notifs' => $this->make_hook('notifs', AUTH_COOKIE),
+ 'carnet' => $this->make_hook('index', AUTH_COOKIE),
+ 'carnet/panel' => $this->make_hook('panel', AUTH_COOKIE),
+ 'carnet/notifs' => $this->make_hook('notifs', AUTH_COOKIE),
- 'carnet/contacts' => $this->make_hook('contacts', AUTH_COOKIE),
- 'carnet/contacts/pdf' => $this->make_hook('pdf', AUTH_COOKIE),
+ '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/vcard' => $this->make_hook('vcard', AUTH_COOKIE),
- 'carnet/rss' => $this->make_hook('rss', AUTH_PUBLIC),
- 'carnet/ical' => $this->make_hook('ical', AUTH_PUBLIC),
+ '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)
$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');
}
if ($action == 'trombi') {
- require_once 'trombi.inc.php';
-
$trombi = new Trombi(array($this, '_get_list'));
$trombi->setNbRows(4);
$page->assign_by_ref('trombi',$trombi);
ad0.text AS app0text, ad0.url AS app0url, ai0.type AS app0type,
ad1.text AS app1text, ad1.url AS app1url, ai1.type AS app1type,
adr.city, gp.a2, gp.pays AS countrytxt, gr.name AS region,
- IF(a.nom_usage<>'',a.nom_usage,a.nom) AS sortkey
+ IF(a.nom_usage<>'',a.nom_usage,a.nom) AS sortkey,
+ COUNT(em.email) > 0 AS actif
FROM contacts AS c
INNER JOIN auth_user_md5 AS a ON (a.user_id = c.contact)
INNER JOIN aliases AS l ON (a.user_id = l.id AND l.type='a_vie')
AND FIND_IN_SET('active', adr.statut))
LEFT JOIN geoloc_pays AS gp ON (adr.country = gp.a2)
LEFT JOIN geoloc_region AS gr ON (adr.country = gr.a2 AND adr.region = gr.region)
+ LEFT JOIN emails AS em ON (em.uid = a.user_id AND em.flags = 'active')
WHERE c.uid = $uid
+ GROUP BY a.user_id
ORDER BY ".$order;
- $page->assign_by_ref('citer', XDB::iterator($sql));
+ $page->assign('citer', XDB::iterator($sql));
}
}
while (list($alias) = $citer->next()) {
$user = get_user_details($alias);
- $pdf->addContact($user, $arg0 == 'photos' || $arg1 == 'photos');
+ $pdf = ContactsPDF::addContact($pdf, $user, $arg0 == 'photos' || $arg1 == 'photos');
}
$pdf->Output();
function handler_ical(&$page)
{
- require_once dirname(__FILE__).'/carnet/smarty.php';
+ require_once 'ical.inc.php';
$page->changeTpl('carnet/calendar.tpl', NO_SKIN);
$page->register_function('display_ical', 'display_ical');
header('Content-Type: text/calendar; charset=utf-8');
}
+
+ 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(), $photos == 'photos');
+ $vcard->do_page(&$page);
+ }
}
?>