From f75b229234fc7e7975b5b3256abce44dd1539be7 Mon Sep 17 00:00:00 2001 From: x2001corpet Date: Sun, 4 Jun 2006 22:48:23 +0000 Subject: [PATCH] bugs 268 et 391 : cache les articles evenements deja lus, et fleche pour remonter en haut git-svn-id: svn+ssh://murphy/home/svn/platal/trunk@293 839d8a87-29fc-0310-9880-83ba4fa771e5 --- ChangeLog | 4 +++- htdocs/login.php | 22 +++++++++++++++++++++- templates/login.tpl | 28 +++++++++++++++++++++++++++- upgrade/0.9.10/01_events.sql | 5 +++++ 4 files changed, 56 insertions(+), 3 deletions(-) create mode 100644 upgrade/0.9.10/01_events.sql diff --git a/ChangeLog b/ChangeLog index 2c18ae7..b194ce7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -11,7 +11,9 @@ Bug/Wish : * Admin : - #408: Admin can change sex of users without root intervention. -Car - * Core : + * Events : + - #268: Hide read events. -Car + - #391: Go back to top link at end of each event. -Car - #411: Count chars in events proposals to make them smaller. -Car * Profile : diff --git a/htdocs/login.php b/htdocs/login.php index d67ee86..dccab73 100644 --- a/htdocs/login.php +++ b/htdocs/login.php @@ -72,6 +72,15 @@ if (Session::has('core_rss_hash')) { $page->assign('xorg_rss', Array("title" => "Polytechnique.org :: News", "href" => "/rss.php/".Session::get('forlife')."/".Session::get('core_rss_hash').".xml")); } +// cache les evenements lus et raffiche les evenements a relire +if (Env::has('lu')){ + $globals->xdb->execute('DELETE FROM evenements_vus AS ev INNER JOIN evenements AS e ON e.id = ev.evt_id WHERE peremption < NOW)'); + $globals->xdb->execute('REPLACE INTO evenements_vus VALUES({?},{?})', Env::get('lu'), Session::getInt('uid')); +} +if (Env::has('nonlu')){ + $globals->xdb->execute('DELETE FROM evenements_vus WHERE evt_id = {?} AND user_id = {?}', Env::get('nonlu'), Session::getInt('uid')); +} + // affichage des evenements // annonces promos triées par présence d'une limite sur les promos // puis par dates croissantes d'expiration @@ -80,11 +89,22 @@ $sql = "SELECT e.id,e.titre,e.texte,a.user_id,a.nom,a.prenom,a.promo,l.alias AS FROM evenements AS e INNER JOIN auth_user_md5 AS a ON e.user_id=a.user_id INNER JOIN aliases AS l ON ( a.user_id=l.id AND l.type='a_vie' ) + LEFT JOIN evenements_vus AS ev ON (e.id = ev.evt_id AND ev.user_id = {?}) + WHERE FIND_IN_SET(e.flags, 'valide') AND peremption >= NOW() + AND (e.promo_min = 0 || e.promo_min <= {?}) + AND (e.promo_max = 0 || e.promo_max >= {?}) + AND ev.user_id IS NULL + ORDER BY (e.promo_min != 0 AND e.promo_max != 0) DESC, e.peremption"; +$page->assign('evenement', $globals->xdb->iterator($sql, Session::getInt('uid'), $promo, $promo)); + +$sql = "SELECT e.id,e.titre, ev.user_id IS NULL AS nonlu + FROM evenements AS e + LEFT JOIN evenements_vus AS ev ON (e.id = ev.evt_id AND ev.user_id = {?}) WHERE FIND_IN_SET(e.flags, 'valide') AND peremption >= NOW() AND (e.promo_min = 0 || e.promo_min <= {?}) AND (e.promo_max = 0 || e.promo_max >= {?}) ORDER BY (e.promo_min != 0 AND e.promo_max != 0) DESC, e.peremption"; -$page->assign('evenement', $globals->xdb->iterator($sql, $promo, $promo)); +$page->assign('evenement_summary', $globals->xdb->iterator($sql, Session::getInt('uid'), $promo, $promo)); $page->assign('refe',$_SERVER['PHP_SELF']); diff --git a/templates/login.tpl b/templates/login.tpl index a8e1b50..8dfc684 100644 --- a/templates/login.tpl +++ b/templates/login.tpl @@ -82,6 +82,8 @@ Bienvenue {$smarty.session.prenom}
+ Cacher + {assign var="previd" value=$ev.id} {tidy} {$ev.titre|nl2br} @@ -94,7 +96,7 @@ Bienvenue {$smarty.session.prenom} {$ev.texte|smarty:nodefaults|nl2br} {/tidy}
-

Annonce proposée par +

SommaireAnnonce proposée par {$ev.prenom} {$ev.nom} X{$ev.promo} @@ -104,6 +106,30 @@ Bienvenue {$smarty.session.prenom}

{/iterate} +
+ + + + + + {iterate item=ev from=$evenement_summary} + + + + {/iterate} +
+ Sommaire des informations événementielles +
+ • + + {if $ev.nonlu}{/if} + {tidy} + {$ev.titre|nl2br} + {/tidy} + {if $ev.nonlu}{/if} + +
+

Nota Bene : les informations présentées ici n'engagent que leurs auteurs respectifs et sont publiées à leur initiative. L'association Polytechnique.org diff --git a/upgrade/0.9.10/01_events.sql b/upgrade/0.9.10/01_events.sql new file mode 100644 index 0000000..4de7eb0 --- /dev/null +++ b/upgrade/0.9.10/01_events.sql @@ -0,0 +1,5 @@ +CREATE TABLE `evenements_vus` ( + `evt_id` smallint(4) unsigned NOT NULL default '0', + `user_id` smallint(4) unsigned NOT NULL default '0', + PRIMARY KEY (`user_id`,`evt_id`) +); -- 2.1.4