- return XDB::iterator(
- 'SELECT e.id, e.titre AS title, e.texte, e.creation_date AS publication, e.post_id, p.attachmime IS NOT NULL AS photo,
- CONCAT(u2.prenom, " ", IF(u2.nom_usage = "", u2.nom, u2.nom_usage), " (X", u2.promo, ")") AS author,
- FIND_IN_SET(\'wiki\', e.flags) AS wiki,
- CONCAT({?}, "/events#newsid", e.id) AS link
- FROM auth_user_md5 AS u
- INNER JOIN evenements AS e ON ( (e.promo_min = 0 || e.promo_min <= u.promo)
- AND (e.promo_max = 0 || e.promo_max >= u.promo) )
- LEFT JOIN evenements_photo AS p ON (p.eid = e.id)
- INNER JOIN auth_user_md5 AS u2 ON (u2.user_id = e.user_id)
- WHERE u.user_id = {?} AND FIND_IN_SET("valide", e.flags)
- AND peremption >= NOW()', $globals->baseurl, $user);
+ $events = XDB::iterator('SELECT e.id, e.titre AS title, e.texte, e.creation_date AS publication, e.post_id,
+ p.attachmime IS NOT NULL AS photo, FIND_IN_SET(\'wiki\', e.flags) AS wiki,
+ e.uid, e.promo_min, e.promo_max
+ FROM announces AS e
+ LEFT JOIN announce_photos AS p ON (p.eid = e.id)
+ WHERE FIND_IN_SET("valide", e.flags) AND expiration >= NOW()');
+ $data = array();
+ while ($e = self::nextEvent($events, $user)) {
+ $author = User::getWithUID($e['uid']);
+ $promo = $author->promo();
+ $e['author'] = $author->fullName() . ($promo ? ' (' . $promo . ')' : '');
+ $e['link'] = $globals->baseurl . '/events#newsid' . $e['id'];
+ $data[] = $e;
+ }
+ return PlIteratorUtils::fromArray($data, 1, true);