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;
 }