summaryrefslogtreecommitdiff
path: root/utils/modules/events.php
diff options
context:
space:
mode:
authordeva <deva>2009-03-23 18:41:22 +0000
committerdeva <deva>2009-03-23 18:41:22 +0000
commiteec8fdf3fd36f6f8511bdb4bea0899f82bf3f6ab (patch)
treeeefac33e9ef9980c81fd6200a437f39c12e63ba8 /utils/modules/events.php
parent93a934051be4af5f61e28d98650808fcc701ae91 (diff)
First attempt on a modularized plugin system, complete with admin, and parameters.
Diffstat (limited to 'utils/modules/events.php')
-rw-r--r--utils/modules/events.php296
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");
}
?>