From 7bc354f572a23b5e7239995f06d3d10c1cd33c8a Mon Sep 17 00:00:00 2001 From: deva Date: Tue, 28 Apr 2009 17:36:02 +0000 Subject: Created all admin stuff. --- utils/modules/events.php | 214 ++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 191 insertions(+), 23 deletions(-) (limited to 'utils/modules/events.php') diff --git a/utils/modules/events.php b/utils/modules/events.php index bdbe43e..f14622e 100644 --- a/utils/modules/events.php +++ b/utils/modules/events.php @@ -1,4 +1,6 @@ \n"; - $str .= "
" . - htmlspecialchars_decode($this->title, ENT_QUOTES) . "
\n"; - $str .= "
" . date("D M jS Y", $this->time) . "
\n"; - $str .= "
" . - htmlspecialchars_decode($this->description, ENT_QUOTES) . "
\n"; - if($this->flyer) { - $str .= " \"flyer\"flyer . "\"/>\n"; + public function write($fp) + { + fwrite($fp, " title, ENT_QUOTES, "UTF-8") . "\"\n"); + fwrite($fp, " time=\"" . $this->time . "\"\n"); + fwrite($fp, " description=\"" . + htmlspecialchars($this->description, ENT_QUOTES, "UTF-8") . "\"\n"); + fwrite($fp, " flyer=\"" . $this->flyer . "\">\n"); + fwrite($fp, " \n"); + } + + public function show() + { + global $ICONS_DIR; + $icons = new Icons($ICONS_DIR."/"); + $icon = $icons->icons[$this->flyer]; + + $str = "
\n"; + $str .= "
" . + htmlspecialchars_decode($this->title, ENT_QUOTES) . "
\n"; + $str .= "
" . date("D M jS Y", $this->time) . "
\n"; + $str .= "
" . + htmlspecialchars_decode($this->description, ENT_QUOTES) . "
\n"; + if($this->flyer) { + $str .= " \"flyer\"prefix.$icon->file."\"/>\n"; } $str .= "
\n"; return $str; } - + public function Event($title, $time, $description, $flyer = "") { $this->title = $title; @@ -38,21 +55,178 @@ class Events { // Admin config public $admin_title = "Events"; - public $admin_submodules = array("New Event" => "new", + public $admin_submodules = array("Add Event" => "add", "Edit Event" => "edit", "Delete Event" => "delete"); + public function admin_add($action, $vars) + { + global $ICONS_DIR; + + switch($action) { + case "add": + $event = new Event($vars["title"], DateTimeEdit::toTimestamp($vars, "time"), + $vars["description"], $vars["icon"]); + echo "\"" .$event->title . "\" has now been added."; + $this->add($event); + $this->write(); + break; + + case "preview": + $event = new Event($vars["title"], DateTimeEdit::toTimestamp($vars, "time"), + $vars["description"], $vars["icon"]); + echo "
\n"; + echo "
\n"; + echo $event->show(); + echo "
\n"; + echo "
\n"; + echo "

Looking ok?

"; + $form = new Form("add"); + $form->addWidget(new Hidden($vars)); + $form->addWidget(new Button("yes")); + $form->render(); + + $form = new Form("retry"); + $form->addWidget(new Hidden($vars)); + $form->addWidget(new Button("no")); + $form->render(); + break; + + case "retry": + $title = $vars["title"]; + $time = DateTimeEdit::toTimestamp($vars, "time"); + $description = $vars["description"]; + $flyer = $vars["icon"]; + default: + $form = new Form("preview"); + $form->addWidget(new LineEdit("Title", "title", $title)); + $form->addWidget(new DateTimeEdit("Time", "time", $time)); + $form->addWidget(new TextEdit("Description", "description", $description)); + $form->addWidget(new ImageComboBox("Icon", "icon", $icon, new Icons($ICONS_DIR."/"))); + $form->addWidget(new Button("Add event")); + $form->render(); + break; + } + } + + public function admin_edit($action, $vars) + { + global $ICONS_DIR; + + switch($action) { + case "add": + $this->events[$vars["eventid"]]->title = $vars["title"]; + $this->events[$vars["eventid"]]->time = DateTimeEdit::toTimestamp($vars, "time"); + $this->events[$vars["eventid"]]->description = $vars["description"]; + $this->events[$vars["eventid"]]->flyer = $vars["icon"]; + $this->write(); + echo "\"" . $this->events[$vars["eventid"]]->title . "\" has now been edited."; + break; + + case "preview": + $event = new Event($vars["title"], DatetimeEdit::toTimestamp($vars, "time"), + $vars["description"], $vars["icon"]); + echo "
\n"; + echo "
\n"; + echo $event->show(); + echo "
\n"; + echo "
\n"; + echo "

Looking ok?

"; + $form = new Form("add"); + $form->addWidget(new Hidden($vars)); + $form->addWidget(new Button("yes")); + $form->render(); + + $form = new Form("retry"); + $form->addWidget(new Hidden($vars)); + $form->addWidget(new Button("no")); + $form->render(); + break; + + case "edit": + case "retry": + if(isset($vars["title"])) $title = $vars["title"]; + else $title = $this->events[$vars["eventid"]]->title; + if(isset($vars["time_year"])) $time = DateTimeEdit::toTimestamp($vars, "time"); + else $time = $this->events[$vars["eventid"]]->time; + if(isset($vars["description"])) $description = $vars["description"]; + else $description = $this->events[$vars["eventid"]]->description; + if(isset($vars["icon"])) $icon = $vars["icon"]; + else $icon = $this->events[$vars["eventid"]]->flyer; + + $form = new Form("preview"); + $form->addWidget(new Hidden($vars)); + $form->addWidget(new LineEdit("Title", "title", $title)); + $form->addWidget(new DateTimeEdit("Time", "time", $time)); + $form->addWidget(new TextEdit("Description", "description", $description)); + $form->addWidget(new ImageComboBox("Icon", "icon", $icon, new Icons($ICONS_DIR."/"))); + $form->addWidget(new Button("Update event")); + $form->render(); + break; + + case "select": + default: + $eventlist = array(); + foreach($this->events as $event) { + $eventlist[$event->title] = $event->time; + } + + $form = new Form("edit"); + $form->addWidget(new ComboBox("Edit this event:", "eventid", "", $eventlist)); + $form->addWidget(new Button("Edit...")); + $form->render(); + break; + } + } + + public function admin_delete($action, $vars) + { + switch($action) { + case "delete": + echo "\"". $this->events[$vars["eventid"]]->title . "\" has now been deleted."; + unset($this->events[$vars["eventid"]]); + $this->write(); + break; + + case "confirm": + echo "Really delete: " . $this->events[$vars["eventid"]]->title . "?"; + $form = new Form("delete"); + $form->addWidget(new Hidden($vars)); + $form->addWidget(new Button("yes")); + $form->render(); + + $form = new Form("select"); + $form->addWidget(new Hidden($vars)); + $form->addWidget(new Button("no")); + $form->render(); + break; + + case "select": + default: + $eventlist = array(); + foreach($this->events as $event) { + $eventlist[$event->title] = $event->time; + } + + $form = new Form("confirm"); + $form->addWidget(new ComboBox("Delete this event:", "eventid", "", $eventlist)); + $form->addWidget(new Button("Delete...")); + $form->render(); + break; + } + } + public function admin($sub, $action, $vars) { switch($sub) { - case "new": - echo "New"; + case "add": + $this->admin_add($action, $vars); break; case "edit": - echo "Edit"; + $this->admin_edit($action, $vars); break; case "delete": - echo "Delete"; + $this->admin_delete($action, $vars); break; } } @@ -158,13 +332,7 @@ class Events { fwrite($fp, "\n"); foreach($this->events as $event) { - fwrite($fp, " 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, " \n"); + $event->write($fp); } fwrite($fp, "\n"); -- cgit v1.2.3