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); }
protected function fetch(User $user) { global $globals; $activities = new ActivityInstanceFilter(new PFC_Or(new PFC_And(new AIFC_END(new FrankizDateTime(), AIFC_End::AFTER), new AIFC_User($user, 'restricted')), new PFC_And(new AIFC_END(new FrankizDateTime(), AIFC_End::AFTER), new AIFC_User($user, 'everybody')))); $activities = $activities->get(); $activities->select(ActivityInstanceSelect::base()); $data = array(); foreach ($activities as $item) { $e = array(); $e['id'] = $item->id(); $e['title'] = '[' . $item->target_group()->label() . '] ' . $item->title(); $e['activity'] = $item; $e['publication'] = $item->begin()->format(); $auth = $item->origin() != false ? '[' . $item->origin() . '] ' : ''; $e['author'] = $auth . $item->writer()->displayName(); $e['link'] = $globals->baseurl . '/activity'; $data[] = $e; } return PlIteratorUtils::fromArray($data, 1, true); }
function handler_ajax_modify($page, $type) { $json = json_decode(Env::v('json')); if ($type == 'instance') { $id = $json->admin_id; $ai = new ActivityInstance($id); $ai->select(ActivityInstanceSelect::base()); if (!S::user()->hasRights($ai->target()->group(), Rights::admin())) { throw new Exception("Invalid credentials"); } S::assert_xsrf_token(); try { $begin = new FrankizDateTime($json->begin); $end = new FrankizDateTime($json->end); if ($ai->regular()) { $ai->comment($json->activity_comment); $ai->begin($begin); $ai->end($end); } else { $ai->begin($begin); $ai->end($end); $a = $ai->activity(); $a->title($json->title); $a->description($json->activity_description); } $page->jsonAssign('success', true); } catch (Exception $e) { $page->jsonAssign('success', false); } } else { if ($type == 'regular') { $id = $json->aid; $a = new Activity($id); $a->select(ActivitySelect::base()); if (!S::user()->hasRights($a->target()->group(), Rights::admin())) { throw new Exception("Invalid credentials"); } S::assert_xsrf_token(); if (preg_match('`^\\d{2}:\\d{2}:\\d{2}$`', $json->begin) && strtotime($json->begin) !== false && preg_match('`^\\d{2}:\\d{2}:\\d{2}$`', $json->end) && strtotime($json->end) !== false) { $a->title($json->title); $a->description($json->activity_description); $key = 'days[]'; $days = unflatten($json->{$key}); $a->days(implode(',', $days)); $a->default_begin($json->begin); $a->default_end($json->end); $page->jsonAssign('success', true); } else { $page->jsonAssign('success', false); } } } return PL_JSON; }