{
return array(
'events' => $this->make_hook('ev', AUTH_COOKIE),
- 'rss' => $this->make_hook('rss', AUTH_PUBLIC),
+ 'rss' => $this->make_hook('rss', AUTH_PUBLIC, 'user', NO_HTTPS),
'events/preview' => $this->make_hook('preview', AUTH_PUBLIC, 'user', NO_AUTH),
- 'events/photo' => $this->make_hook('photo', AUTH_COOKIE),
+ 'events/photo' => $this->make_hook('photo', AUTH_PUBLIC),
'events/submit' => $this->make_hook('ev_submit', AUTH_MDP),
'admin/events' => $this->make_hook('admin_events', AUTH_MDP, 'admin'),
} while ($priority && !$res->numRows());
if (!$res->numRows()) {
return null;
- }
+ }
return $res->fetchOneAssoc();
}
// annonces promos triées par présence d'une limite sur les promos
// puis par dates croissantes d'expiration
$promo = S::v('promo');
- $uid = S::i('uid');
+ $uid = S::i('uid');
$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 = {?})
// cache les evenements lus et raffiche les evenements a relire
if ($action == 'read' && $eid) {
XDB::execute('DELETE evenements_vus.*
- FROM evenements_vus AS ev
+ FROM evenements_vus AS ev
INNER JOIN evenements AS e ON e.id = ev.evt_id
WHERE peremption < NOW()');
XDB::execute('REPLACE INTO evenements_vus VALUES({?},{?})',
}
function handler_rss(&$page, $user = null, $hash = null)
- {
+ {
require_once 'rss.inc.php';
-
+
$uid = init_rss('events/rss.tpl', $user, $hash);
-
+
$rss = XDB::iterator(
- 'SELECT e.id, e.titre, e.texte, e.creation_date,
+ 'SELECT e.id, e.titre, e.texte, e.creation_date, e.post_id, p.attachmime IS NOT NULL AS photo,
IF(u2.nom_usage = "", u2.nom, u2.nom_usage) AS nom, u2.prenom, u2.promo
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(e.flags, "valide")
+ WHERE u.user_id = {?} AND FIND_IN_SET("valide", e.flags)
AND peremption >= NOW()', $uid);
$page->assign('rss', $rss);
}
function handler_preview(&$page)
{
- require_once('url_catcher.inc.php');
$page->changeTpl('events/preview.tpl', NO_SKIN);
$texte = Get::v('texte');
if (!is_utf8($texte)) {
$texte = utf8_encode($texte);
}
if (strpos($_SERVER['HTTP_REFERER'], 'admin') === false) {
- $texte = url_catcher(pl_entities($texte));
+ $texte = MiniWiki::WikiToHTML($texte);
}
$titre = Get::v('titre');
if (!is_utf8($titre)) {
{
$page->changeTpl('events/submit.tpl');
$page->addJsLink('ajax.js');
-
+
require_once('wiki.inc.php');
wiki_require_page('Xorg.Annonce');
$action = null;
}
- require_once('url_catcher.inc.php');
- $texte_catch_url = url_catcher($texte);
+ $texte_catch_url = MiniWiki::WikiToHTML($texte);
$page->assign('titre', $titre);
$page->assign('texte', $texte);
} elseif (!Env::v('preview')) {
$upload->rm();
}
-
- $select = '';
- for ($i = 1 ; $i < 30 ; $i++) {
- $time = time() + 3600 * 24 * $i;
- $p_stamp = date('Ymd', $time);
- $year = date('Y', $time);
- $month = date('m', $time);
- $day = date('d', $time);
-
- $select .= "<option value=\"$p_stamp\"";
- if ($p_stamp == strtr($peremption, array("-" => ""))) {
- $select .= " selected='selected'";
- }
- $select .= "> $day / $month / $year</option>\n";
- }
- $page->assign('select',$select);
}
function handler_tips(&$page, $tips = null)
}
}
- function handler_admin_events(&$page, $action = 'list', $eid = null)
+ function handler_admin_events(&$page, $action = 'list', $eid = null)
{
$page->changeTpl('events/admin.tpl');
$page->addJsLink('ajax.js');
} elseif (Post::v('action') == "Proposer" && $eid) {
$promo_min = Post::i('promo_min');
$promo_max = Post::i('promo_max');
- if ($promo_min > $promo_max ||
- ($promo_min != 0 && ($promo_min <= 1900 || $promo_min >= 2020)) ||
- ($promo_max != 0 && ($promo_max <= 1900 || $promo_max >= 2020)))
+ if (($promo_min != 0 && ($promo_min <= 1900 || $promo_min >= 2020)) ||
+ ($promo_max != 0 && ($promo_max <= 1900 || $promo_max >= 2020 || $promo_max < $promo_min)))
{
$page->trig("L'intervalle de promotions $promo_min -> $promo_max n'est pas valide");
$action = 'edit';
$flags->addFlag('important');
} else {
$flags->rmFlag('important');
- }
+ }
XDB::execute('UPDATE evenements
- SET creation_date = creation_date,
+ SET creation_date = creation_date,
titre={?}, texte={?}, peremption={?}, promo_min={?}, promo_max={?},
flags = {?}
- WHERE id = {?}',
+ WHERE id = {?}',
Post::v('titre'), Post::v('texte'), Post::v('peremption'),
Post::v('promo_min'), Post::v('promo_max'),
$flags->flags(), $eid);
$eid, $type, $x, $y, $upload->getContents());
$upload->rm();
}
- }
+ }
}
if ($action == 'edit') {
$month=substr($p_stamp,4,2);
$day=substr($p_stamp,6,2);
- $select .= "<option value=\"$p_stamp\""
+ $select .= "<option value=\"$p_stamp\""
. (($p_stamp == strtr($peremption, array("-" => ""))) ? " selected" : "")
. "> $day / $month / $year</option>\n";
}
}
$page->assign('arch', $arch);
$page->assign('admin_evts', true);
- }
+ }
}
// vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8: