public function index($permalink = null) { $event = self::load_event($permalink); $this->assign("event", $event); $content = EventContent::find_by_permalink($event, 'seating', false); if ($content) { $this->assign('content', $content); } $planPermalink = $this->getData('seatingplan'); $event_id = mysql_real_escape_string($event->id); $plan = null; if ($planPermalink) { $planPermalink = mysql_real_escape_string($planPermalink); $plan = EventSeatingPlan::find("events.id = '{$event_id}' AND seating_plans.permalink = '{$planPermalink}'"); if (!$plan) { Error404('Unable to find seating plan'); } } else { $plan = EventSeatingPlan::find("events.id = '{$event_id}'", "event_seatingplans.position ASC"); } $groups = array(); $signups = array(); $anyseat = false; $noseat = false; $event_id = mysql_real_escape_string($event->id); if (Site::CurrentUser()) { $user_id = mysql_real_escape_string(Site::CurrentUser()->id); $signups = EventSignup::find_all("event_signups.event_id = '{$event_id}' AND (event_signups.user_id = '{$user_id}' OR event_signups.manager_id = '{$user_id}') AND event_signups.paid = true AND event_tickets.participant = true"); if ($signups) { if ($event->lock_seating) { $noseat = false; foreach ($signups as $signup) { if (!$signup->event_seat_id) { $noseat = true; break; } } if ($noseat) { Site::Flash('notice', 'Seating has been locked for this event, however you can select a seat. You will not be able to change it.'); } else { Site::Flash('notice', 'Seating has been locked for this event. You cannot change your seat.'); } } } foreach ($signups as $signup) { if ($signup->event_ticket->seating_group_id) { $groups[] = $signup->event_ticket->seating_group_id; } else { $anyseat = true; } } } $this->assign('plan', $plan); $this->assign('groups', $groups); $this->assign("signups", $signups); $this->assign("anyseat", $anyseat); $this->assign('noseat', $noseat); $this->title = "{$event->name} :: Seating Plan"; if ($plan) { $this->title .= " :: {$plan->seating_plan->name}"; } $this->render("event_seat/index.tpl"); }
public function all_seating_plans($reload = false) { if ($reload or !$this->seating_plans_cache) { $id = mysql_real_escape_string($this->id); $this->seating_plans_cache = EventSeatingPlan::find_all("events.id = '{$id}'", 'event_seatingplans.position ASC'); } return $this->seating_plans_cache; }