function handlers()
{
return array(
- 'events' => $this->make_hook('ev', AUTH_COOKIE),
- '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_PUBLIC),
- 'events/submit' => $this->make_hook('ev_submit', AUTH_MDP),
- 'admin/events' => $this->make_hook('admin_events', AUTH_MDP, 'admin'),
-
- 'ajax/tips' => $this->make_hook('tips', AUTH_COOKIE, 'user', NO_AUTH),
- 'admin/tips' => $this->make_hook('admin_tips', AUTH_MDP, 'admin'),
+ 'events' => $this->make_hook('ev', AUTH_COOKIE),
+ '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_PUBLIC),
+ 'events/submit' => $this->make_hook('ev_submit', AUTH_MDP),
+ 'admin/events' => $this->make_hook('admin_events', AUTH_MDP, 'admin'),
+
+ 'ajax/tips' => $this->make_hook('tips', AUTH_COOKIE, 'user', NO_AUTH),
+ 'admin/tips' => $this->make_hook('admin_tips', AUTH_MDP, 'admin'),
);
}
$page->addJsLink('ajax.js');
$page->assign('tips', $this->get_tips());
- require_once 'reminder.inc.php';
+ // Adds a reminder onebox to the page.
$user = S::user();
- if (($new_reminder = Reminder::GetCandidateReminder($user))) {
- $page->assign('reminder', $new_reminder->GetDisplayAsString());
+ require_once 'reminder.inc.php';
+ if (($reminder = Reminder::GetCandidateReminder($user))) {
+ $reminder->Prepare($page);
}
- // Profile update (appears when profile is > 400d old), and birthday
- // oneboxes.
+ // Wishes "Happy birthday" when required
$res = XDB::query(
- "SELECT date < DATE_SUB(NOW(), INTERVAL 400 DAY) AS is_profile_old,
- MONTH(naissance) = MONTH(NOW()) AND DAYOFMONTH(naissance) = DAYOFMONTH(NOW()) AS is_birthday,
- date AS profile_date, YEAR(NOW()) - YEAR(naissance) AS age
+ 'SELECT MONTH(naissance) = MONTH(NOW())
+ AND DAYOFMONTH(naissance) = DAYOFMONTH(NOW()) AS is_birthday
FROM auth_user_md5
- WHERE user_id = {?}", S::user()->id());
- list($is_profile_old, $is_birthday, $profile_date, $age) = $res->fetchOneRow();
-
- if ($is_profile_old) {
- $page->assign('fiche_incitation', $profile_date);
- }
- if ($is_birthday) {
- $page->assign('birthday', $age);
- }
-
- // No-photo onebox.
- $res = XDB::query("SELECT COUNT(*) FROM photo WHERE uid = {?}", S::user()->id());
- $page->assign('photo_incitation', $res->fetchOneCell() == 0);
-
- // Geo-location onebox.
- require_once 'geoloc.inc.php';
- $res = localize_addresses(S::user()->id());
- $page->assign('geoloc_incitation', count($res));
+ WHERE user_id = {?}',
+ $user->id());
+ $page->assign('birthday', $res->fetchOneCell());
// Direct link to the RSS feed, when available.
if (S::rssActivated()) {
// Fetch the events to display, along with their metadata.
$array = array();
- $it = XDB::iterator("SELECT e.id,e.titre,e.texte,e.post_id,a.user_id,a.nom,a.prenom,a.promo,a.hruid,
+ $it = XDB::iterator("SELECT e.id, e.titre, e.texte, e.post_id, a.user_id, a.nom, a.prenom, d.promo AS promo_display ,a.hruid,
p.x, p.y, p.attach IS NOT NULL AS img, FIND_IN_SET('wiki', e.flags) AS wiki,
FIND_IN_SET('important', e.flags) AS important,
e.creation_date > DATE_SUB(CURDATE(), INTERVAL 2 DAY) AS news,
e.peremption < DATE_ADD(CURDATE(), INTERVAL 2 DAY) AS end,
ev.user_id IS NULL AS nonlu
FROM evenements AS e
- LEFT JOIN evenements_photo AS p ON (e.id = p.eid)
- INNER JOIN auth_user_md5 AS a ON e.user_id=a.user_id
- LEFT JOIN evenements_vus AS ev ON (e.id = ev.evt_id AND ev.user_id = {?})
+ LEFT JOIN evenements_photo AS p ON (e.id = p.eid)
+ INNER JOIN auth_user_md5 AS a ON (e.user_id = a.user_id)
+ INNER JOIN profile_display AS d ON (d.pid = a.user_id)
+ LEFT JOIN evenements_vus AS ev ON (e.id = ev.evt_id AND ev.user_id = {?})
WHERE FIND_IN_SET('valide', e.flags) AND peremption >= NOW()
AND (e.promo_min = 0 || e.promo_min <= {?})
AND (e.promo_max = 0 || e.promo_max >= {?})
$res = XDB::query("SELECT * FROM evenements_photo WHERE eid = {?}", $eid);
if ($res->numRows()) {
$photo = $res->fetchOneAssoc();
- header('Content-Type: image/' . $photo['attachmime']);
+ pl_cached_dynamic_content_headers("image/" . $photo['attachmime']);
echo $photo['attach'];
exit;
}
require_once 'validations.inc.php';
$valid = Validate::get_request_by_id($valid);
if ($valid && $valid->img) {
- header('Content-Type: image/' . $valid->imgtype);
+ pl_cached_dynamic_content_headers("image/" . $valid->imgtype);
echo $valid->img;
exit;
}
} else {
$upload = new PlUpload(S::user()->login(), 'event');
if ($upload->exists() && $upload->isType('image')) {
- header('Content-Type: ' . $upload->contentType());
+ pl_cached_dynamic_content_headers($upload->contentType());
echo $upload->getContents();
exit;
}
}
global $globals;
- header('Content-Type: image/png');
+ pl_cached_dynamic_content_headers("image/png");
echo file_get_contents($globals->spoolroot . '/htdocs/images/logo.png');
exit;
}
}
$page->assign('texte', $texte);
$page->assign('titre', $titre);
- header('Content-Type: text/html; charset=utf-8');
+ pl_content_headers("text/html");
}
function handler_ev_submit(&$page)
function handler_tips(&$page, $tips = null)
{
- header('Content-Type: text/html; charset="UTF-8"');
+ pl_content_headers("text/html");
$page->changeTpl('include/tips.tpl', NO_SKIN);
$page->assign('tips', $this->get_tips($tips));
}