. "Tu recois ce mail car tu as activé la notification automatique \n"
. "par mail des évènements que tu surveilles.\n\n"
. "Tu peux changer cette option sur :\n"
- . " {$globals->baseurl}/carnet/notifs.php";
+ . " {$globals->baseurl}/carnet/notifs";
$html .= <<<EOF
<hr />
<p>L'équipe de Polytechnique.org</p>
<p>
Tu recois ce mail car tu as activé la notification automatique par mail des évènements que tu surveilles.
</p>
- <p>Tu peux changer cette option sur la <a href="{$globals->baseurl}/carnet/notifs.php">page
+ <p>Tu peux changer cette option sur la <a href="{$globals->baseurl}/carnet/notifs">page
de configuration des notifications</a>
</p>
</body>
global $globals;
$globals->menu->addPrivateEntry(XOM_CUSTOM, 10, 'Mon profil', 'profil.php');
- $globals->menu->addPrivateEntry(XOM_CUSTOM, 20, 'Mes contacts', 'carnet/mescontacts.php');
+ $globals->menu->addPrivateEntry(XOM_CUSTOM, 20, 'Mes contacts', 'carnet/contacts');
$globals->menu->addPrivateEntry(XOM_CUSTOM, 30, 'Mon carnet', 'carnet/');
$globals->menu->addPrivateEntry(XOM_CUSTOM, 40, 'Mon mot de passe', 'password');
$globals->menu->addPrivateEntry(XOM_CUSTOM, 50, 'Mes préférences', 'prefs');
+++ /dev/null
-<?php
-/***************************************************************************
- * Copyright (C) 2003-2006 Polytechnique.org *
- * http://opensource.polytechnique.org/ *
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- * This program is distributed in the hope that it will be useful, *
- * but WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
- * GNU General Public License for more details. *
- * *
- * You should have received a copy of the GNU General Public License *
- * along with this program; if not, write to the Free Software *
- * Foundation, Inc., *
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *
- ***************************************************************************/
-
-require_once("xorg.inc.php");
-new_skinned_page('carnet/index.tpl', AUTH_COOKIE);
-$page->assign('xorg_title','Polytechnique.org - Mon carnet');
-
-if (Session::has('core_rss_hash')) {
- $page->assign('xorg_rss',
- array("title" => "Polytechnique.org :: Carnet",
- "href" => "/carnet/rss/".Session::get('forlife')."/".Session::get('core_rss_hash')."/rss..xml"));
-}
-
-$page->assign('refe',$_SERVER['PHP_SELF']);
-
-$page->run();
-
-?>
+++ /dev/null
-<?php
-/***************************************************************************
- * Copyright (C) 2003-2006 Polytechnique.org *
- * http://opensource.polytechnique.org/ *
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- * This program is distributed in the hope that it will be useful, *
- * but WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
- * GNU General Public License for more details. *
- * *
- * You should have received a copy of the GNU General Public License *
- * along with this program; if not, write to the Free Software *
- * Foundation, Inc., *
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *
- ***************************************************************************/
-
-require_once("xorg.inc.php");
-new_skinned_page("carnet/mescontacts.tpl",AUTH_COOKIE);
-require_once("applis.func.inc.php");
-$page->assign('xorg_title','Polytechnique.org - Mes contacts');
-
-$uid = Session::getInt('uid');
-$user = Env::get('user');
-
-switch (Env::get('action')) {
- case 'retirer':
- if (preg_match('/^\d+$/', $user)) {
- if ($globals->xdb->execute('DELETE FROM contacts WHERE uid = {?} AND contact = {?}', $uid, $user))
- {
- $page->trig("Contact retiré !");
- }
- } else {
- if ($globals->xdb->execute(
- 'DELETE FROM contacts
- 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é !");
- }
- }
- break;
-
- case 'ajouter':
- require_once('user.func.inc.php');
- if (($login = get_user_login($user)) !== false) {
- if ($globals->xdb->execute(
- 'INSERT INTO contacts (uid, contact)
- SELECT {?}, id
- FROM aliases
- WHERE alias = {?}', $uid, $login))
- {
- $page->trig('Contact ajouté !');
- } else {
- $page->trig('Contact déjà dans la liste !');
- }
- }
-}
-
-if(Get::get('trombi')) {
- require_once('trombi.inc.php');
- function getList($offset,$limit) {
- global $globals;
- $uid = Session::getInt('uid');
- $res = $globals->xdb->query("SELECT COUNT(*) FROM contacts WHERE uid = {?}", $uid);
- $total = $res->fetchOneCell();
-
- $order = Get::get('order');
- $orders = Array(
- 'nom' => 'nom DESC, u.prenom, u.promo',
- 'promo' => 'promo DESC, nom, u.prenom',
- 'last' => 'u.date DESC, nom, u.prenom, promo');
- if ($order != 'promo' && $order != 'last')
- $order = 'nom';
- $order = $orders[$order];
- if (Get::get('inv') == '')
- $order = str_replace(" DESC,", ",", $order);
-
- $res = $globals->xdb->query("
- SELECT u.prenom, IF(u.nom_usage='',u.nom,u.nom_usage) AS nom, a.alias AS forlife, u.promo
- 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 = {?}
- ORDER BY $order
- LIMIT {?}, {?}", $uid, $offset*$limit, $limit);
- $list = $res->fetchAllAssoc();
-
- return Array($total, $list);
- }
-
- $trombi = new Trombi('getList');
- $trombi->setNbRows(4);
- $page->assign_by_ref('trombi',$trombi);
-
- $order = Get::get('order');
- if ($order != 'promo' && $order != 'last')
- $order = 'nom';
- $page->assign('order', $order);
- $page->assign('inv', Get::get('inv'));
-} else {
-
- $order = Get::get('order');
- $orders = Array(
- 'nom' => 'sortkey DESC, a.prenom, a.promo',
- 'promo' => 'promo DESC, sortkey, a.prenom',
- 'last' => 'a.date DESC, sortkey, a.prenom, promo');
- if ($order != 'promo' && $order != 'last')
- $order = 'nom';
- $page->assign('order', $order);
- $page->assign('inv', Get::get('inv'));
- $order = $orders[$order];
- if (Get::get('inv') == '')
- $order = str_replace(" DESC,", ",", $order);
-
- $sql = "SELECT contact AS id,
- a.*, l.alias AS forlife,
- 1 AS inscrit,
- a.perms != 'pending' AS wasinscrit,
- a.deces != 0 AS dcd, a.deces, a.matricule_ax, FIND_IN_SET('femme', a.flags) AS sexe,
- e.entreprise, es.label AS secteur, ef.fonction_fr AS fonction,
- IF(n.nat='',n.pays,n.nat) AS nat, n.a2 AS iso3166,
- 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
- 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')
- LEFT JOIN entreprises AS e ON (e.entrid = 0 AND e.uid = a.user_id)
- LEFT JOIN emploi_secteur AS es ON (e.secteur = es.id)
- LEFT JOIN fonctions_def AS ef ON (e.fonction = ef.id)
- LEFT JOIN geoloc_pays AS n ON (a.nationalite = n.a2)
- LEFT JOIN applis_ins AS ai0 ON (a.user_id = ai0.uid AND ai0.ordre = 0)
- LEFT JOIN applis_def AS ad0 ON (ad0.id = ai0.aid)
- LEFT JOIN applis_ins AS ai1 ON (a.user_id = ai1.uid AND ai1.ordre = 1)
- LEFT JOIN applis_def AS ad1 ON (ad1.id = ai1.aid)
- LEFT JOIN adresses AS adr ON (a.user_id = adr.uid 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)
- WHERE c.uid = $uid
- ORDER BY ".$order;
-
- $page->assign_by_ref('citer', $globals->xdb->iterator($sql));
-}
-
-$page->run();
-
-// vim:set et sw=4 sts=4 sws=4:
-?>
+++ /dev/null
-<?php
-/***************************************************************************
- * Copyright (C) 2003-2006 Polytechnique.org *
- * http://opensource.polytechnique.org/ *
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- * This program is distributed in the hope that it will be useful, *
- * but WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
- * GNU General Public License for more details. *
- * *
- * You should have received a copy of the GNU General Public License *
- * along with this program; if not, write to the Free Software *
- * Foundation, Inc., *
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *
- ***************************************************************************/
-
-require_once('xorg.inc.php');
-new_skinned_page('index.tpl', AUTH_COOKIE);
-require_once('contacts.pdf.inc.php');
-require_once('user.func.inc.php');
-
-session_write_close();
-
-$sql = "SELECT a.alias
- FROM aliases AS a
- INNER JOIN auth_user_md5 AS u ON ( a.id = u.user_id )
- INNER JOIN contacts AS c ON ( a.id = c.contact )
- WHERE c.uid = {?} AND a.type='a_vie'";
-if (Get::get('order') == "promo") {
- $sql .= " ORDER BY u.promo, u.nom, u.prenom";
-} else {
- $sql .= " ORDER BY u.nom, u.prenom, u.promo";
-}
-
-$citer = $globals->xdb->iterRow($sql, Session::getInt('uid'));
-$pdf = new ContactsPDF();
-
-while (list($alias) = $citer->next()) {
- $user = get_user_details($alias);
- $pdf->addContact($user, Env::has('photo'));
-}
-$pdf->Output();
-
-?>
+++ /dev/null
-<?php
-/***************************************************************************
- * Copyright (C) 2003-2006 Polytechnique.org *
- * http://opensource.polytechnique.org/ *
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- * This program is distributed in the hope that it will be useful, *
- * but WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
- * GNU General Public License for more details. *
- * *
- * You should have received a copy of the GNU General Public License *
- * along with this program; if not, write to the Free Software *
- * Foundation, Inc., *
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *
- ***************************************************************************/
-
-require_once("xorg.inc.php");
-new_skinned_page('carnet/notifs.tpl', AUTH_COOKIE);
-require_once('notifs.inc.php');
-
-$watch = new Watch(Session::getInt('uid'));
-
-$res = $globals->xdb->query("SELECT promo_sortie FROM auth_user_md5 WHERE user_id = {?}", Session::getInt('uid', -1));
-$promo_sortie = $res->fetchOneCell();
-$page->assign('promo_sortie', $promo_sortie);
-
-if(Env::has('promo')) {
- if(preg_match('!^ *(\d{4}) *$!', Env::get('promo'), $matches)) {
- $p = intval($matches[1]);
- if($p<1900 || $p>2100) {
- $page->trig("la promo entrée est invalide");
- } else {
- if (Env::has('add_promo')) $watch->_promos->add($p);
- if (Env::has('del_promo')) $watch->_promos->del($p);
- }
- } elseif (preg_match('!^ *(\d{4}) *- *(\d{4}) *$!', Env::get('promo'), $matches)) {
- $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');
- } elseif($p2<1900 || $p2>2100) {
- $page->trig('la seconde promo de la plage entrée est invalide');
- } else {
- if (Env::has('add_promo')) $watch->_promos->addRange($p1,$p2);
- if (Env::has('del_promo')) $watch->_promos->delRange($p1,$p2);
- }
- } else {
- $page->trig("La promo (ou la plage de promo) entrée est dans un format incorrect.");
- }
-}
-
-if (Env::has('del_nonins')) $watch->_nonins->del(Env::get('del_nonins'));
-if (Env::has('add_nonins')) $watch->_nonins->add(Env::get('add_nonins'));
-if (Env::has('subs')) $watch->_subs->update('sub');
-if (Env::has('flags_contacts')) {
- $watch->watch_contacts = Env::getBool('contacts');
- $watch->saveFlags();
-}
-if (Env::has('flags_mail')) {
- $watch->watch_mail = Env::getBool('mail');
- $watch->saveFlags();
-}
-
-$page->assign_by_ref('watch', $watch);
-$page->run();
-
-// vim:set et sws=4 sw=4 sts=4:
-?>
$this->AddFont('Vera Sans', '', 'Vera.php');
$this->AddFont('Vera Sans', 'I', 'VeraIt.php');
$this->AddFont('Vera Sans', 'B', 'VeraBd.php');
-
+
$this->AddFont('Vera Mono', '', 'VeraMono.php');
-
+
$this->SetTitle($this->title);
$this->SetCreator('Site Polytechnique.org');
$this->AddPage();
$this->_out(sprintf('q %.5f %.5f %.5f %.5f %.2f %.2f cm 1 0 0 1 %.2f %.2f cm',$c,$s,-$s,$c,$cx,$cy,-$cx,-$cy));
}
}
-
+
function Header()
{
$this->Text(55,190,"informations limitées à un usage");
$this->Text(40,210,"strictement personnel et non commercial");
$this->Rotate(0);
-
+
$this->setLeftMargin(5);
$this->setRightMargin(5);
$this->SetFont('Vera Sans', 'B', 16);
$this->SetFillColor(245, 248, 252);
$this->Cell(200, 10, $this->title, 1, 1, 'C', 1);
$this->Image(dirname(dirname(__FILE__)).'/htdocs/images/logo.png', 5, 5, 10, 10, 'png', 'https://www.polytechnique.org/');
-
+
$this->Ln(10);
$this->y0 = $this->GetY();
$this->ColSetup(false);
$this->SetFont('Vera '.$font, '', 8);
$this->setY($y);
$first = 1;
-
+
$this->setX($x+25);
$this->MultiCell(65, 4, $r, '', 1);
-
+
$this->setY(max($y1, $this->getY())+0.5);
$this->setX($x);
}
if ($a['entreprise']) {
$this->TableRow('Entreprise', $a['entreprise']);
}
-
+
if ($a['adr1'] || $a['adr2'] || $a['adr3'] || $a['postcode'] || $a['city']) {
$r = '';
$r = trim("$r\n".$a['adr1']);
$photo = $res->fetchOneAssoc();
$width = $photo['x'] * 20/$photo['y'];
$GLOBALS["p{$x['user_id']}"] = $photo['attach'];
-
+
$_x = $this->getX();
$_y = $this->getY();
$this->Cell(0, 20, '', '', 0, '', 1);
$this->Image("var://p{$x['user_id']}", $_x, $_y, $width, 20, $photo['attachmime']);
-
+
if ($this->error) {
$this = $old2;
} else {
if (!$ok) {
$this->MultiCell(0, 6, $nom, "T", 'C', 1);
}
-
+
if ($x['mobile']) {
$this->Space();
$this->TableRow('mobile', $x['mobile'], 'Mono');
$this->Space();
$this->Address($a);
}
-
+
foreach ($x['adr_pro'] as $a) {
if ( ! ($a['entreprise'] || $a['tel'] || $a['fax']
|| $a['adr1'] || $a['adr2'] || $a['adr3'] || $a['postcode'] || $a['city']) )
function handlers()
{
return array(
- 'carnet/panel' => $this->make_hook('panel', 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/rss' => $this->make_hook('rss', AUTH_PUBLIC),
- 'carnet/ical' => $this->make_hook('ical', AUTH_PUBLIC),
+ 'carnet/contacts' => $this->make_hook('contacts', AUTH_COOKIE),
+ 'carnet/contacts/pdf' => $this->make_hook('pdf', AUTH_COOKIE),
+
+ 'carnet/rss' => $this->make_hook('rss', AUTH_PUBLIC),
+ 'carnet/ical' => $this->make_hook('ical', AUTH_PUBLIC),
);
}
);
}
+ function handler_index(&$page)
+ {
+ $page->changeTpl('carnet/index.tpl');
+ $page->assign('xorg_title','Polytechnique.org - Mon carnet');
+ $this->_add_rss_link($page);
+
+ return PL_OK;
+ }
+
function handler_panel(&$page)
{
$page->changeTpl('carnet/panel.tpl');
return PL_OK;
}
+ function _handler_notifs_promos(&$page, &$watch, $action, $arg)
+ {
+ if(preg_match('!^ *(\d{4}) *$!', $arg, $matches)) {
+ $p = intval($matches[1]);
+ if($p<1900 || $p>2100) {
+ $page->trig("la promo entrée est invalide");
+ } else {
+ if ($action == 'add_promo') {
+ $watch->_promos->add($p);
+ } else {
+ $watch->_promos->del($p);
+ }
+ }
+ } elseif (preg_match('!^ *(\d{4}) *- *(\d{4}) *$!', $arg, $matches)) {
+ $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');
+ } elseif($p2<1900 || $p2>2100) {
+ $page->trig('la seconde promo de la plage entrée est invalide');
+ } else {
+ if ($action == 'add_promo') {
+ $watch->_promos->addRange($p1, $p2);
+ } else {
+ $watch->_promos->delRange($p1, $p2);
+ }
+ }
+ } else {
+ $page->trig("La promo (ou la plage de promo) entrée est dans un format incorrect.");
+ }
+ }
+
+ function handler_notifs(&$page, $action = null, $arg = null)
+ {
+ global $globals;
+
+ $page->changeTpl('carnet/notifs.tpl');
+
+ require_once 'notifs.inc.php';
+
+ $watch = new Watch(Session::getInt('uid'));
+
+ $res = $globals->xdb->query("SELECT promo_sortie
+ FROM auth_user_md5
+ WHERE user_id = {?}",
+ Session::getInt('uid', -1));
+ $promo_sortie = $res->fetchOneCell();
+ $page->assign('promo_sortie', $promo_sortie);
+
+ switch ($action) {
+ case 'add_promo':
+ case 'del_promo':
+ $this->_handler_notifs_promos($page, $watch, $action, $arg);
+ break;
+
+ case 'del_nonins':
+ $watch->_nonins->del($arg);
+ break;
+
+ case 'add_nonins':
+ $watch->_nonins->add($arg);
+ break;
+ }
+
+ if (Env::has('subs')) $watch->_subs->update('sub');
+ if (Env::has('flags_contacts')) {
+ $watch->watch_contacts = Env::getBool('contacts');
+ $watch->saveFlags();
+ }
+ if (Env::has('flags_mail')) {
+ $watch->watch_mail = Env::getBool('mail');
+ $watch->saveFlags();
+ }
+
+ $page->assign_by_ref('watch', $watch);
+
+ return PL_OK;
+ }
+
+ function _get_list($offset, $limit) {
+ global $globals;
+ $uid = Session::getInt('uid');
+ $res = $globals->xdb->query("SELECT COUNT(*) FROM contacts WHERE uid = {?}", $uid);
+ $total = $res->fetchOneCell();
+
+ $order = Get::get('order');
+ $orders = Array(
+ 'nom' => 'nom DESC, u.prenom, u.promo',
+ 'promo' => 'promo DESC, nom, u.prenom',
+ 'last' => 'u.date DESC, nom, u.prenom, promo');
+ if ($order != 'promo' && $order != 'last')
+ $order = 'nom';
+ $order = $orders[$order];
+ if (Get::get('inv') == '')
+ $order = str_replace(" DESC,", ",", $order);
+
+ $res = $globals->xdb->query("
+ SELECT u.prenom, IF(u.nom_usage='',u.nom,u.nom_usage) AS nom, a.alias AS forlife, u.promo
+ 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 = {?}
+ ORDER BY $order
+ LIMIT {?}, {?}", $uid, $offset*$limit, $limit);
+ $list = $res->fetchAllAssoc();
+
+ return Array($total, $list);
+ }
+
+ function handler_contacts(&$page, $action = null)
+ {
+ global $globals;
+
+ $page->changeTpl('carnet/mescontacts.tpl');
+ require_once("applis.func.inc.php");
+ $page->assign('xorg_title','Polytechnique.org - Mes contacts');
+
+ $uid = Session::getInt('uid');
+ $user = Env::get('user');
+
+ switch (Env::get('action')) {
+ case 'retirer':
+ if (is_numeric($user)) {
+ if ($globals->xdb->execute('DELETE FROM contacts
+ WHERE uid = {?} AND contact = {?}',
+ $uid, $user))
+ {
+ $page->trig("Contact retiré !");
+ }
+ } else {
+ if ($globals->xdb->execute(
+ 'DELETE FROM contacts
+ 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é !");
+ }
+ }
+ break;
+
+ case 'ajouter':
+ require_once('user.func.inc.php');
+ if (($login = get_user_login($user)) !== false) {
+ if ($globals->xdb->execute(
+ 'INSERT INTO contacts (uid, contact)
+ SELECT {?}, id
+ FROM aliases
+ WHERE alias = {?}', $uid, $login))
+ {
+ $page->trig('Contact ajouté !');
+ } else {
+ $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);
+
+ $order = Get::get('order');
+ if ($order != 'promo' && $order != 'last')
+ $order = 'nom';
+ $page->assign('order', $order);
+ $page->assign('inv', Get::get('inv'));
+
+ } else {
+
+ $order = Get::get('order');
+ $orders = Array(
+ 'nom' => 'sortkey DESC, a.prenom, a.promo',
+ 'promo' => 'promo DESC, sortkey, a.prenom',
+ 'last' => 'a.date DESC, sortkey, a.prenom, promo');
+ if ($order != 'promo' && $order != 'last')
+ $order = 'nom';
+ $page->assign('order', $order);
+ $page->assign('inv', Get::get('inv'));
+ $order = $orders[$order];
+ if (Get::get('inv') == '')
+ $order = str_replace(" DESC,", ",", $order);
+
+ $sql = "SELECT contact AS id,
+ a.*, l.alias AS forlife,
+ 1 AS inscrit,
+ a.perms != 'pending' AS wasinscrit,
+ a.deces != 0 AS dcd, a.deces, a.matricule_ax,
+ FIND_IN_SET('femme', a.flags) AS sexe,
+ e.entreprise, es.label AS secteur, ef.fonction_fr AS fonction,
+ IF(n.nat='',n.pays,n.nat) AS nat, n.a2 AS iso3166,
+ 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
+ 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')
+ LEFT JOIN entreprises AS e ON (e.entrid = 0 AND e.uid = a.user_id)
+ LEFT JOIN emploi_secteur AS es ON (e.secteur = es.id)
+ LEFT JOIN fonctions_def AS ef ON (e.fonction = ef.id)
+ LEFT JOIN geoloc_pays AS n ON (a.nationalite = n.a2)
+ LEFT JOIN applis_ins AS ai0 ON (a.user_id = ai0.uid AND ai0.ordre = 0)
+ LEFT JOIN applis_def AS ad0 ON (ad0.id = ai0.aid)
+ LEFT JOIN applis_ins AS ai1 ON (a.user_id = ai1.uid AND ai1.ordre = 1)
+ LEFT JOIN applis_def AS ad1 ON (ad1.id = ai1.aid)
+ LEFT JOIN adresses AS adr ON (a.user_id = adr.uid
+ 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)
+ WHERE c.uid = $uid
+ ORDER BY ".$order;
+
+ $page->assign_by_ref('citer', $globals->xdb->iterator($sql));
+ }
+
+ return PL_OK;
+ }
+
+ function handler_pdf(&$page, $arg0 = null, $arg1 = null)
+ {
+ global $globals;
+
+ require_once 'contacts.pdf.inc.php';
+ require_once 'user.func.inc.php';
+
+ session_write_close();
+
+ $sql = "SELECT a.alias
+ FROM aliases AS a
+ INNER JOIN auth_user_md5 AS u ON ( a.id = u.user_id )
+ INNER JOIN contacts AS c ON ( a.id = c.contact )
+ WHERE c.uid = {?} AND a.type='a_vie'";
+ if ($arg0 == 'promo') {
+ $sql .= ' ORDER BY u.promo, u.nom, u.prenom';
+ } else {
+ $sql .= ' ORDER BY u.nom, u.prenom, u.promo';
+ }
+
+ $citer = $globals->xdb->iterRow($sql, Session::getInt('uid'));
+ $pdf = new ContactsPDF();
+
+ while (list($alias) = $citer->next()) {
+ $user = get_user_details($alias);
+ $pdf->addContact($user, $arg0 == 'photos' || $arg1 == 'photos');
+ }
+ $pdf->Output();
+
+ exit;
+ }
+
function handler_rss(&$page, $user = null, $hash = null)
{
require_once 'rss.inc.php';
<tr class="impair">
<td class='half'>
<h3>
- <a href="{"carnet/mescontacts.php"|url}">Page de tes contacts</a>
+ <a href="{rel}/carnet/contacts">Page de tes contacts</a>
</h3>
<div class="explication">
Tu peux ici lister tes contacts, en ajouter et en retirer.
</td>
<td class='half'>
<h3>
- <a href="{"carnet/mescontacts.php?trombi=1"|url}">Le trombi de tes contacts</a>
+ <a href="{rel}/carnet/contacts/trombi">Le trombi de tes contacts</a>
</h3>
<div class="explication">
La même chose que la page de tes contacts... <strong>en images !</strong>
</div>
{else}
<div class="right">
- <a href='{rel}/prefs/rss/?referer=carnet/index.php'><img src='{rel}/images/rssact.gif' alt='fil rss' /></a>
+ <a href='{rel}/prefs/rss/?referer=carnet'><img src='{rel}/images/rssact.gif' alt='fil rss' /></a>
</div>
{/if}
</div>
</td>
<td class='half'>
<h3>
- <a href="{"carnet/notifs.php"|url}">Configurer tes notifications</a>
+ <a href="{rel}/carnet/notifs">Configurer tes notifications</a>
</h3>
<div class="explication">
Être notifié des inscriptions, décès, changement de fiche, ...
</p>
<ul>
<li>avec les photos :
- [<a href="mescontacts_pdf.php/mes_contacts.pdf?order=promo&photo" class='popup'><strong>tri par promo</strong></a>]
- [<a href="mescontacts_pdf.php/mes_contacts.pdf?photo" class='popup'><strong>tri par noms</strong></a>]
+ [<a href="{rel}/carnet/contacts/pdf/promo/photos/mescontacts.pdf" class='popup'><strong>tri par promo</strong></a>]
+ [<a href="{rel}/carnet/contacts/pdf/photos/mescontacts.pdf" class='popup'><strong>tri par noms</strong></a>]
</li>
<li>sans les photos :
- [<a href="mescontacts_pdf.php/mes_contacts.pdf?order=promo" class='popup'><strong>tri par promo</strong></a>]
- [<a href="mescontacts_pdf.php/mes_contacts.pdf" class='popup'><strong>tri par noms</strong></a>]
+ [<a href="{rel}/carnet/contacts/pdf/promo/mescontacts.pdf" class='popup'><strong>tri par promo</strong></a>]
+ [<a href="{rel}/carnet/contacts/pdf/mescontacts.pdf" class='popup'><strong>tri par noms</strong></a>]
</li>
</ul>
{if $smarty.session.core_rss_hash}
{if $trombi}
-<h1>
- Mon trombino de contacts
-</h1>
+<h1>Mon trombino de contacts</h1>
<p>
-Pour afficher la liste détaillée de tes contacts: [<a href="{$smarty.server.PHP_SELF}?order={$order}&inv={$inv}"><strong>vue classique</strong></a>]
+Pour afficher la liste détaillée de tes contacts: [<a href="{rel}/carnet/contacts?order={$order}&inv={$inv}"><strong>vue classique</strong></a>]
</p>
{include file=carnet/tricontacts.tpl order=$order}
</h1>
<p>
-[<a href="?trombi=1&order={$order}&inv={$inv}"><strong>Afficher le trombi de tes contacts</strong></a>]
+[<a href="{rel}/carnet/contacts/trombi?order={$order}&inv={$inv}"><strong>Afficher le trombi de tes contacts</strong></a>]
</p>
{include file=carnet/tricontacts.tpl order=$order}
{**************************************************************************}
-<h1 id='top'>Notifications automatiques</h1>
+<h1>Notifications automatiques</h1>
<p>Les mails sont hebdomadaires (pour éviter une trop grosse charge du serveur de mails et de ta boite mail).
S'il n'y a rien à te signaler le mail ne t'est pas envoyé.</p>
-<form action="#top" method="post">
+<form action="{rel}/carnet/notifs" method="post">
<fieldset>
<legend>Mail</legend>
<input type='checkbox' name='mail' onclick="this.form.submit();" {if $watch->watch_mail}checked="checked"{/if} />
</fieldset>
</form>
-<form action="{$smarty.server.PHP_SELF}" method="post">
+<form action="{rel}/carnet/notifs" method="post">
<fieldset>
<legend>Événements à surveiller</legend>
{foreach from=$watch->cats() item=s key=i}
<h2>Surveiller ses contacts</h2>
-<form action="#middle" method="post">
+<form action="{rel}/carnet/notifs#middle" method="post">
<fieldset>
<legend>Contacts</legend>
<input type='checkbox' name='contacts' onclick="this.form.submit();" {if $watch->watch_contacts}checked="checked"{/if} /> Surveiller mes contacts<br />
Attention : pour les promos, tu n'es pas notifié des évènements trop fréquents (par exemple les changements de fiche).
</p>
-<form action="{$smarty.server.PHP_SELF}" method="post">
+<form action="{rel}/carnet/notifs/" method="post">
<fieldset>
<legend>Ajouter une promo</legend>
Tu peux surveiller des promos (mettre la promo sur 4 chiffres),
ou des plages de promos (par ex. 1990-1992) : <br />
<input type='text' name='promo' />
- <input type='submit' name='add_promo' value='ajouter' />
- <input type='submit' name='del_promo' value='retirer' />
+ <input type='submit' name='add_promo' value='ajouter'
+ onclick="this.form.action += 'add_promo/' + this.form.promo.value;" />
+ <input type='submit' name='del_promo' value='retirer'
+ onclick="this.form.action += 'del_promo/' + this.form.promo.value;" />
<br />
{if $watch->promos()|@count eq 0}
<p>Tu ne surveilles actuellement aucune promo.</p>
<ul>
{foreach from=$watch->nonins() item=p}
<li>
- {$p.prenom} {$p.nom} ({$p.promo}) <a href="?del_nonins={$p.user_id}"><img src="{"images/retirer.gif"|url}" alt="retirer" /></a>
+ {$p.prenom} {$p.nom} ({$p.promo}) <a href="{rel}/carnet/notifs/del_nonins/{$p.user_id}"><img src="{"images/retirer.gif"|url}" alt="retirer" /></a>
</li>
{/foreach}
</ul>
<p>
Tu peux choisir plus finement les données affichées sur cette page.
-Il faut pour celà se rendre sur la page de <a href='notifs.php'>configuration des notifications</a>.
+Il faut pour celà se rendre sur la page de <a href='{rel}/carnet/notifs'>configuration des notifications</a>.
</p>
<div class="right">
{$promo[row].prenom} {$promo[row].nom}
</a>
{if !$promo[row].contact}
- <a href="{"carnet/mescontacts.php"|url}?action=ajouter&user={$promo[row].bestalias}">{*
+ <a href="{rel}/carnet/contacts?action=ajouter&user={$promo[row].bestalias}">{*
*}<img src="{"images/ajouter.gif"|url}" alt="ajouter à mes contacts" />{*
*}</a>
{/if}
<link>{#globals.baseurl#}/fiche.php?user={$x.bestalias}&force_login=1</link>
<description><![CDATA[
{if !$x.contact and !$x.dcd}
- <a href="{#globals.baseurl#}/carnet/mescontacts.php?action=ajouter&user={$x.bestalias}">
+ <a href="{#globals.baseurl#}/carnet/contacts?action=ajouter&user={$x.bestalias}">
ajouter à mes contacts
</a>
{/if}
<img src="images/vcard.png" alt="Afficher la carte de visite" title="Afficher la carte de visite"/>
</a>
{if !$x.is_contact}
- <a href="javascript:x()" onclick="chgMainWinLoc('{rel}/carnet/mescontacts.php?action=ajouter&user={$x.forlife}')">
+ <a href="javascript:x()" onclick="chgMainWinLoc('{rel}/carnet/contacts?action=ajouter&user={$x.forlife}')">
<img src="images/ajouter.gif" alt="Ajouter à mes contacts" title="Ajouter à mes contacts" />
</a>
{else}
- <a href="javascript:x()" onclick="chgMainWinLoc('{rel}/carnet/mescontacts.php?action=retirer&user={$x.forlife}')">
+ <a href="javascript:x()" onclick="chgMainWinLoc('{rel}/carnet/contacts?action=retirer&user={$x.forlife}')">
<img src="images/retirer.gif" alt="Retirer de mes contacts" title="Retirer de mes contacts" />
</a>
{/if}
{min_auth level="cookie"}
{if !$c.wasinscrit && !$c.dcd}
{if $show_action eq ajouter}
- <a href="{rel}/carnet/notifs.php?add_nonins={$c.user_id}">{*
+ <a href="{rel}/carnet/notifs/add_nonins/{$c.user_id}">{*
*}<img src="{rel}/images/ajouter.gif" alt="Ajouter à la liste de mes surveillances" title="Ajouter à la liste de mes surveillances" /></a>
{else}
- <a href="{rel}/carnet/notifs.php?del_nonins={$c.user_id}">{*
+ <a href="{rel}/carnet/notifs/del_nonins/{$c.user_id}">{*
*}<img src="{rel}/images/retirer.gif" alt="Retirer de la liste de mes surveillances" title="Retirer de la liste de mes surveillances" /></a>
{/if}
{elseif $c.wasinscrit}
{if !$c.dcd}
<a href="{rel}/vcard.php/{$c.forlife}.vcf?x={$c.forlife}">{*
*}<img src="{rel}/images/vcard.png" alt="Afficher la carte de visite" title="Afficher la carte de visite" /></a>
- <a href="{rel}/carnet/mescontacts.php?action={$show_action}&user={$c.forlife}">{*
+ <a href="{rel}/carnet/contacts?action={$show_action}&user={$c.forlife}">{*
*}<img src="{rel}/images/{$show_action}.gif" alt="{if $show_action eq "ajouter"}Ajouter à mes{else}Retirer de mes{/if} contacts"
title="{if $show_action eq "ajouter"}Ajouter à mes{else}Retirer de mes{/if} contacts" /></a>
{/if}