summaryrefslogtreecommitdiff
path: root/forum/utils/events.php
diff options
context:
space:
mode:
authordeva <deva>2008-10-04 10:38:03 +0000
committerdeva <deva>2008-10-04 10:38:03 +0000
commitcce5e7710295021b41d9aaecc503a60fb99256be (patch)
tree660235be91fb821e976c7ae62347eb368ce87524 /forum/utils/events.php
Initial revision
Diffstat (limited to 'forum/utils/events.php')
-rw-r--r--forum/utils/events.php141
1 files changed, 141 insertions, 0 deletions
diff --git a/forum/utils/events.php b/forum/utils/events.php
new file mode 100644
index 0000000..737c03c
--- /dev/null
+++ b/forum/utils/events.php
@@ -0,0 +1,141 @@
+<?php
+
+include_once($UTIL_DIR . "/convert.php");
+
+class Event {
+ public $eid;
+ public $title;
+ public $starttime;
+ public $duration;
+ public $description;
+ public $user;
+
+ public function show()
+ {
+ global $users, $date, $client_is_mobile_device;
+
+ $user = $users->getUser($this->user);
+
+ echo " <div class=\"event\">\n";
+ echo " <div class=\"title\">". $this->title . "\n";
+ // echo " <a class=\"button\" href=\"\">Edit</a>\n";
+ echo " </div>\n";
+ echo " <div class=\"time\">" . date("G:i", $this->starttime) . " - " .
+ date("G:i", $this->starttime + $this->duration) . "</div>\n";
+ if(!$client_is_mobile_device) {
+ echo " <div class=\"description\">". $this->description . "</div>\n";
+ } else {
+ echo " <div class=\"mobiledescription\">". $this->description . "</div>\n";
+ }
+ echo " <div class=\"user\">By: ".$user->name . "</div>\n";
+ // echo " <a href=\"?mode=calendar&amp;date=" . $date . "&amp;eid=" . $this->eid . "&amp;action=edit\">Edit</a>";
+ echo " </div>\n";
+ }
+
+ public function Event($eid, $title, $starttime, $duration, $description, $user)
+ {
+ $this->eid = $eid;
+ $this->title = $title;
+ $this->starttime = $starttime;
+ $this->duration = $duration;
+ $this->description = $description;
+ $this->user = $user;
+ }
+}
+
+class Events {
+
+ private $file;
+ public $events = array();
+
+ public function add($event) {
+ $key = $event->eid;
+ $this->events[$key] = $event;
+ }
+
+ public function write()
+ {
+ $fp = fopen($this->file, "w");
+
+ $block = TRUE;
+ flock($fp, LOCK_EX, $block); // do an exclusive lock
+
+ fwrite($fp, "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
+
+ fwrite($fp, "<events>\n");
+ foreach($this->events as $event) {
+ fwrite($fp, " <event eid=\"" .
+ htmlspecialchars($event->eid, ENT_QUOTES, "UTF-8") . "\"\n");
+ fwrite($fp, " title=\"" .
+ htmlspecialchars($event->title, ENT_QUOTES, "UTF-8") . "\"\n");
+ fwrite($fp, " starttime=\"" .
+ htmlspecialchars($event->starttime, ENT_QUOTES, "UTF-8") . "\"\n");
+ fwrite($fp, " duration=\"" .
+ htmlspecialchars($event->duration, ENT_QUOTES, "UTF-8") . "\"\n");
+ fwrite($fp, " description=\"" .
+ htmlspecialchars($event->description, ENT_QUOTES, "UTF-8") . "\"\n");
+ fwrite($fp, " user=\"" .
+ htmlspecialchars($event->user, ENT_QUOTES, "UTF-8") . "\">\n");
+ fwrite($fp, " </event>\n");
+ }
+ fwrite($fp, "</events>\n");
+
+ fclose($fp);
+ }
+
+ /*
+ public function deleteForumUser($id)
+ {
+ if($this->members[$id]) {
+ unset($this->members[$id]);
+ // $this->write();
+ } else {
+ echo "<p>ERROR: User! <em>".$id."</em> does not exist!</p>\n";
+ return false;
+ }
+ return true;
+ }
+ */
+
+ public function show($starttime, $endtime)
+ {
+ foreach($this->events as $event) {
+ if($event->starttime > $starttime && $event->starttime < $endtime)
+ $event->show();
+ }
+ }
+
+ public function getEvent($eid)
+ {
+ $event = $this->events[$eid];
+ return $event;
+ }
+
+ private function read()
+ {
+ $dom = new DomDocument;
+ $dom->preserveWhiteSpace = FALSE;
+ $dom->load($this->file);
+ $events = $dom->getElementsByTagName('event');
+
+ foreach ($events as $e) {
+ $event = new Event($e->getAttribute('eid'),
+ $e->getAttribute('title'),
+ $e->getAttribute('starttime'),
+ $e->getAttribute('duration'),
+ $e->getAttribute('description'),
+ $e->getAttribute('user'));
+
+ $this->add($event);
+ }
+
+ }
+
+ public function Events($file)
+ {
+ $this->file = $file;
+ $this->read();
+ }
+
+}
+?>