X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=modules%2Fevents.php;h=67e6abd2fc3769b6f7ba9307bcf7555bf6d7d721;hb=787bb3d745141f2f85bd947ad7dd775d2c63f908;hp=20a0f564372923ab8789332bff4717b4ca4f0fe3;hpb=b2bffbe6b6812e63fa718fdcc2b860055d5642db;p=platal.git
diff --git a/modules/events.php b/modules/events.php
index 20a0f56..67e6abd 100644
--- a/modules/events.php
+++ b/modules/events.php
@@ -25,9 +25,9 @@ class EventsModule extends PLModule
{
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'),
@@ -76,7 +76,7 @@ class EventsModule extends PLModule
} while ($priority && !$res->numRows());
if (!$res->numRows()) {
return null;
- }
+ }
return $res->fetchOneAssoc();
}
@@ -86,7 +86,7 @@ class EventsModule extends PLModule
// 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 = {?})
@@ -181,7 +181,7 @@ class EventsModule extends PLModule
// 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({?},{?})',
@@ -245,33 +245,33 @@ class EventsModule extends PLModule
}
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)) {
@@ -286,7 +286,7 @@ class EventsModule extends PLModule
{
$page->changeTpl('events/submit.tpl');
$page->addJsLink('ajax.js');
-
+
require_once('wiki.inc.php');
wiki_require_page('Xorg.Annonce');
@@ -308,8 +308,7 @@ class EventsModule extends PLModule
$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);
@@ -336,22 +335,6 @@ class EventsModule extends PLModule
} 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 .= "\n";
- }
- $page->assign('select',$select);
}
function handler_tips(&$page, $tips = null)
@@ -380,7 +363,7 @@ class EventsModule extends PLModule
}
}
- 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');
@@ -406,9 +389,8 @@ class EventsModule extends PLModule
} 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';
@@ -419,12 +401,12 @@ class EventsModule extends PLModule
$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);
@@ -434,7 +416,7 @@ class EventsModule extends PLModule
$eid, $type, $x, $y, $upload->getContents());
$upload->rm();
}
- }
+ }
}
if ($action == 'edit') {
@@ -462,7 +444,7 @@ class EventsModule extends PLModule
$month=substr($p_stamp,4,2);
$day=substr($p_stamp,6,2);
- $select .= "\n";
}
@@ -518,7 +500,7 @@ class EventsModule extends PLModule
}
$page->assign('arch', $arch);
$page->assign('admin_evts', true);
- }
+ }
}
// vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8: