function handler_ajax_get($page) { $json = json_decode(Env::v('json')); if (isset($json->date)) { $date = new FrankizDateTime($json->date); $date->setTime(0, 0); $date_n = new FrankizDateTime($json->date); date_add($date_n, date_interval_create_from_date_string('1 day')); $date_n->setTime(0, 0); $activities = new ActivityInstanceFilter(new PFC_And(new PFC_Or(new AIFC_User(S::user(), 'restricted'), new AIFC_User(S::user(), 'everybody')), new AIFC_Period($date, $date_n))); $c = $activities->get(); $c->select(ActivityInstanceSelect::all()); $c->order('hour_begin', false); $result = array(); foreach ($c as $a) { $page->assign('day', $date); $page->assign('activity', $a); $result[] = $page->fetch(FrankizPage::getTplPath('minimodules/activity/single.tpl')); } $page->jsonAssign('success', true); $page->jsonAssign('activities', $result); } else { if (isset($json->ids)) { $activities = new ActivityInstanceFilter(new PFC_AND(new AIFC_CanBeSeen(S::user()), new AIFC_Id($json->ids))); $act = $activities->get(); $act->select(ActivityInstanceSelect::all()); $activities = array(); foreach ($act as $a) { $activities[$a->id()] = $a->export(); } $page->jsonAssign('success', true); $page->jsonAssign('activities', $activities); } else { if (JSON::has('list')) { if (JSON::t('visibility') == 'all') { $activities = new ActivityInstanceFilter(new PFC_AND(new AIFC_CanBeSeen(S::user()), new AIFC_END(new FrankizDateTime(), AIFC_End::AFTER))); } elseif (JSON::t('visibility') == 'participate') { $activities = new ActivityInstanceFilter(new PFC_AND(new AIFC_Participants(S::user()), new AIFC_END(new FrankizDateTime(), AIFC_End::AFTER))); } else { $activities = new ActivityInstanceFilter(new PFC_Or(new PFC_And(new AIFC_END(new FrankizDateTime(), AIFC_End::AFTER), new AIFC_User(S::user(), 'restricted')), new PFC_And(new AIFC_END(new FrankizDateTime(), AIFC_End::AFTER), new AIFC_User(S::user(), 'everybody')))); } $c = $activities->get(); $c->select(ActivityInstanceSelect::all()); $c->order('hour_begin'); $split = $c->split('date'); ksort($split); $page->assign('activities', $split); $page->assign('user', S::user()); $page->assign('visibility', JSON::v('visibility')); $page->jsonAssign('activities', $page->fetch(FrankizPage::getTplPath('activity/activities_list.tpl'))); $page->jsonAssign('success', true); } } } return PL_JSON; }