public function run() { $date = new FrankizDateTime(); $date->setTime(0, 0); $date_n = new FrankizDateTime(); 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); $this->assign('day', new FrankizDateTime()); $this->assign('date', date("Y-m-d")); $this->assign('activities', $c); }
function handler_ajax_timetable($page, $visibility = 'friends') { $day = env::t("showdate"); $type = env::t("viewtype"); $page->jsonAssign('day', $day); $phpTime = strtotime($day); switch ($type) { case "month": $st = mktime(0, 0, 0, date("m", $phpTime), 1, date("Y", $phpTime)); $et = mktime(0, 0, -1, date("m", $phpTime) + 1, 1, date("Y", $phpTime)); break; case "week": $monday = date("d", $phpTime) - date('N', $phpTime) + 1; $st = mktime(0, 0, 0, date("m", $phpTime), $monday, date("Y", $phpTime)); $et = mktime(0, 0, -1, date("m", $phpTime), $monday + 7, date("Y", $phpTime)); break; case "day": $st = mktime(0, 0, 0, date("m", $phpTime), date("d", $phpTime), date("Y", $phpTime)); $et = mktime(0, 0, -1, date("m", $phpTime), date("d", $phpTime) + 1, date("Y", $phpTime)); break; } $date = new FrankizDateTime(date('Y-m-d H:i:s', $st)); $date_n = new FrankizDateTime(date('Y-m-d H:i:s', $et)); if ($visibility == 'all') { $activities = new ActivityInstanceFilter(new PFC_And(new AIFC_CanBeSeen(S::user()), new AIFC_Period($date, $date_n))); } else { if ($visibility == 'participate') { $activities = new ActivityInstanceFilter(new PFC_And(new AIFC_Participants(S::user()), new AIFC_Period($date, $date_n))); } else { $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); $page->jsonAssign('issort', true); $page->jsonAssign('start', date("m/d/Y H:i", $st)); $page->jsonAssign('end', date("m/d/Y H:i", $et)); $page->jsonAssign('error', null); $events = array(); foreach ($c as $e) { $events[] = array($e->id(), $e->title(), $e->begin()->format("m/d/Y H:i"), $e->end()->format("m/d/Y H:i"), 0, $e->begin()->format("m/d/Y") != $e->end()->format("m/d/Y"), $e->regular(), $e->activity()->origin() == false ? $e->writer()->id() % 15 - 1 : $e->origin()->id() % 15 - 1, 0, $e->description(), ''); } $page->jsonAssign('events', $events); return PL_JSON; }