diff options
Diffstat (limited to 'utils/modules/events.php')
-rw-r--r-- | utils/modules/events.php | 296 |
1 files changed, 160 insertions, 136 deletions
diff --git a/utils/modules/events.php b/utils/modules/events.php index 339102e..efba697 100644 --- a/utils/modules/events.php +++ b/utils/modules/events.php @@ -1,153 +1,177 @@ <?php - include_once($UTIL_DIR . "/convert.php"); class Event { - public $title; - public $time; - public $description; - public $flyer; - - public function show() - { - $str = "<div class=\"event\">\n"; - $str .= " <div class=\"event_title\">" . - htmlspecialchars_decode($this->title, ENT_QUOTES) . "</div>\n"; - $str .= " <div class=\"event_time\">" . date("D M jS Y", $this->time) . "</div>\n"; - $str .= " <div class=\"event_description\">" . - htmlspecialchars_decode($this->description, ENT_QUOTES) . "</div>\n"; - if($this->flyer) { - $str .= " <img class=\"event_flyer\" alt=\"flyer\" src=\"gfx/flyers/" . $this->flyer . "\"/>\n"; - } - $str .= "</div>\n"; - return $str; - } - - public function Event($title, $time, $description, $flyer = "") - { - $this->title = $title; - $this->time = $time; - $this->description = $description; - $this->flyer = $flyer; - } + public $title; + public $time; + public $description; + public $flyer; + + public function show() + { + $str = "<div class=\"event\">\n"; + $str .= " <div class=\"event_title\">" . + htmlspecialchars_decode($this->title, ENT_QUOTES) . "</div>\n"; + $str .= " <div class=\"event_time\">" . date("D M jS Y", $this->time) . "</div>\n"; + $str .= " <div class=\"event_description\">" . + htmlspecialchars_decode($this->description, ENT_QUOTES) . "</div>\n"; + if($this->flyer) { + $str .= " <img class=\"event_flyer\" alt=\"flyer\" src=\"gfx/flyers/" . $this->flyer . "\"/>\n"; + } + $str .= "</div>\n"; + return $str; + } + + public function Event($title, $time, $description, $flyer = "") + { + $this->title = $title; + $this->time = $time; + $this->description = $description; + $this->flyer = $flyer; + } } class Events { - private $file; - private $events = array(); - - public function run($params) - { - foreach($params as $param) { - switch($param) { - case "coming": - return $this->showcoming(-1); - break; - - case "old": - default: - return $this->showold(-1); - break; - } - } - } - - public function showcoming($number) - { - $str = ""; - - $foundany = false; - - // Key sort - ksort($this->events); - - // If number is -1 show all shows. - if($number == -1) $number = 100000; + private $file; + private $events = array(); + + // Admin config + public $admin_title = "Events"; + public $admin_submodules = array("New Event" => "new", + "Edit Event" => "edit", + "Delete Event" => "delete"); + + public function admin($sub, $action, $vars) + { + switch($sub) { + case "new": + echo "New"; + break; + case "edit": + echo "Edit"; + break; + case "delete": + echo "Delete"; + break; + } + } + + public function run($params) + { + foreach($params as $param) { + switch($param) { + case "coming": + return $this->showcoming(-1); + break; + + case "old": + default: + return $this->showold(-1); + break; + } + } + } + + public function showcoming($number) + { + $str = ""; + + $foundany = false; + + // Key sort + ksort($this->events); + + // If number is -1 show all shows. + if($number == -1) $number = 100000; - foreach($this->events as $event) { - if($event->time >= time()) { - $foundany = true; - $str .= $event->show(); - $number--; - } - if(!$number) return $str; - } - - if($foundany == false) return "No shows available at the moment."; - return $str; - } - - public function showold($number) - { - $str = ""; - - // Key sort - krsort($this->events); - - // If number is -1 show all shows. - if($number == -1) $number = 100000; - - foreach($this->events as $event) { - if($event->time <= time()) { - $str .= $event->show(); - $number--; - } - if(!$number) return $str; - } - return $str; - } + foreach($this->events as $event) { + if($event->time >= time()) { + $foundany = true; + $str .= $event->show(); + $number--; + } + if(!$number) return $str; + } + + if($foundany == false) return "No shows available at the moment."; + return $str; + } + + public function showold($number) + { + $str = ""; + + // Key sort + krsort($this->events); + + // If number is -1 show all shows. + if($number == -1) $number = 100000; + + foreach($this->events as $event) { + if($event->time <= time()) { + $str .= $event->show(); + $number--; + } + if(!$number) return $str; + } + return $str; + } - public function add($event) { - $key = $event->time; - // array_push($this->events, $event); - $this->events[$key] = $event; - } + public function add($event) { + $key = $event->time; + // array_push($this->events, $event); + $this->events[$key] = $event; + } - public function write() - { - $fp = fopen($this->file, "w"); - fwrite($fp, "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"); - - fwrite($fp, "<events>\n"); - foreach($this->events as $event) { - fwrite($fp, " <event title=\"" . - htmlspecialchars($event->title, ENT_QUOTES, "UTF-8") . "\"\n"); - fwrite($fp, " time=\"" . $event->time . "\"\n"); - fwrite($fp, " description=\"" . - htmlspecialchars($event->description, ENT_QUOTES, "UTF-8") . "\"\n"); - fwrite($fp, " flyer=\"" . $event->flyer . "\">\n"); - fwrite($fp, " </event>\n"); - } - fwrite($fp, "</events>\n"); - - fclose($fp); - } + public function write() + { + $fp = fopen($this->file, "w"); + fwrite($fp, "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"); + + fwrite($fp, "<events>\n"); + foreach($this->events as $event) { + fwrite($fp, " <event title=\"" . + htmlspecialchars($event->title, ENT_QUOTES, "UTF-8") . "\"\n"); + fwrite($fp, " time=\"" . $event->time . "\"\n"); + fwrite($fp, " description=\"" . + htmlspecialchars($event->description, ENT_QUOTES, "UTF-8") . "\"\n"); + fwrite($fp, " flyer=\"" . $event->flyer . "\">\n"); + fwrite($fp, " </event>\n"); + } + fwrite($fp, "</events>\n"); + + fclose($fp); + } - private function read() - { - - $dom = new DomDocument; - $dom->preserveWhiteSpace = FALSE; - $dom->load($this->file); - $params = $dom->getElementsByTagName('event'); - - foreach ($params as $param) { - $event = new Event($param->getAttribute('title'), - $param->getAttribute('time'), - $param->getAttribute('description'), - $param->getAttribute('flyer')); - $this->add($event); - } - - } + private function read() + { + $dom = new DomDocument; + $dom->preserveWhiteSpace = FALSE; + $dom->load($this->file); + $params = $dom->getElementsByTagName('event'); + + foreach ($params as $param) { + $event = new Event($param->getAttribute('title'), + $param->getAttribute('time'), + $param->getAttribute('description'), + $param->getAttribute('flyer')); + $this->add($event); + } + } + + public function Events($file) + { + $this->file = $file; + if(file_exists($file)) $this->read(); + } - public function Events($file) - { - $this->file = $file; - if(file_exists($file)) $this->read(); - } +} +function events_init() +{ + global $DATA_DIR; + return new Events($DATA_DIR . "/events.xml"); } ?> |