$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
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']);
<table class="bicol">
<tr>
<th>
+ <a href="?lu={$ev.id}{if $previd}#newsid{$previd}{/if}" style="display:block;float:right"><img alt="Cacher" title="Cacher cet article" src="{rel}/images/retirer.gif"/></a>
+ {assign var="previd" value=$ev.id}
<a id="newsid{$ev.id}"></a>
{tidy}
{$ev.titre|nl2br}
{$ev.texte|smarty:nodefaults|nl2br}
{/tidy}
<br />
- <p class="smaller">Annonce proposée par
+ <p class="smaller"><a href="#" style="display:block;float:right"><img alt="Sommaire" title="Remonter tout en haut" src="{rel}/images/up.png"/></a>Annonce proposée par
<a href="{rel}/fiche.php?user={$ev.forlife}" class="popup2">
{$ev.prenom} {$ev.nom} X{$ev.promo}
</a>
</table>
{/iterate}
+ <br/>
+
+ <table class="bicol">
+ <tr>
+ <th>
+ Sommaire des informations événementielles
+ </th>
+ </tr>
+ {iterate item=ev from=$evenement_summary}
+ <tr class="{cycle values="impair,pair"}">
+ <td class="half">
+ •
+ <a href="{if !$ev.nonlu}?nonlu={$ev.id}{/if}#newsid{$ev.id}">
+ {if $ev.nonlu}<strong>{/if}
+ {tidy}
+ {$ev.titre|nl2br}
+ {/tidy}
+ {if $ev.nonlu}</strong>{/if}
+ </a>
+ </td>
+ </tr>
+ {/iterate}
+ </table>
+
<p class="smaller">
Nota Bene : les informations présentées ici n'engagent que leurs auteurs
respectifs et sont publiées à leur initiative. L'association Polytechnique.org