From 42c62cb041a2b2b95c9cda0c20fcf70334fd244c Mon Sep 17 00:00:00 2001 From: deva Date: Tue, 1 Nov 2011 09:32:21 +0000 Subject: Rewl og krat... needs cleaning up - after port to GIT. --- utils/modules/gallery.php | 131 ++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 120 insertions(+), 11 deletions(-) (limited to 'utils/modules/gallery.php') diff --git a/utils/modules/gallery.php b/utils/modules/gallery.php index 3915a90..396cfd7 100644 --- a/utils/modules/gallery.php +++ b/utils/modules/gallery.php @@ -58,6 +58,15 @@ class Photo { return $str; } + public function showRef() + { + $str = ""; + $str .= " \"".$this-title."\"\n"; + $str .= " src=\"?mode=imagecache&uri=" + . $this->path . "/" . $this->image . "&mod=gallery&cat=reficon\"/>\n"; + return $str; + } + public function Photo($path, $id, $title, $image) { $this->path = $path; @@ -103,16 +112,33 @@ class Album { { global $page; + if(!$this->enabled) return ""; + $str = ""; $str .= $indent."\n"; + // $str .= $indent."   ← Back to albums\n"; $str .= $indent." " . $this->title . "\n"; + $str .= $indent." Copyright: " . $this->copyright . "\n"; foreach($this->photos as $photo) { $str .= $indent." id."&p=".$photo->id."\">\n"; $str .= $photo->show($indent." ", "albumicon"); $str .= $indent." \n"; } - $str .= $indent."\n"; + $str .= $indent."
  ← Back to albums\n"; + // Back to gallery + /* + $str .= $indent." \n"; + $str .= $indent."\n"; + $str .= $indent." \n"; + $str .= $indent." \"Back\n"; + $str .= $indent." \n"; + $str .= $indent." " . $this->title . "\n"; + $str .= $indent."\n"; + $str .= $indent." \n"; + $str .= $indent."\n"; + */ return $str; } @@ -132,6 +158,20 @@ class Album { return $str; } + public function showRef() + { + global $page; + + $str = ""; + + $str .= $indent."id."\">\n"; + $str .= $this->photos[$this->icon]->showRef() . + " " .$this->title . "\n"; + $str .= $indent."\n"; + + return $str; + } + public function showPhoto($indent, $photo) { global $GLOBALS; @@ -192,7 +232,7 @@ class Album { $this->title = $title; $this->copyright = $copyright; $this->icon = $icon; - $this->enabled = $enabled == 'on'; + $this->enabled = $enabled == "true" || $enabled == "on" || $enabled == "yes"; } } @@ -266,11 +306,20 @@ class Gallery { global $ALBUMS_DIR; switch($action) { case "create": - $album = new Album($this->getNextID(), $vars['title'], $vars['copyright'], "1", $vars['enabled']); + $baseid = $vars['id']; + $id = $baseid; + $idcnt = 1; + while(!$this->checkUniqueID($id)) { + $id = $baseid . "-" . $idcnt; + $idcnt++; + } + + $album = new Album($id, $vars['title'], $vars['copyright'], "1", $vars['enabled']); unpackImages($_FILES['images'], $album); - $this->add($album); + $this->add($album); $this->write(); echo $album->show("", "albumicon"); + break; case "select": @@ -278,7 +327,8 @@ class Gallery { $form = new Form("create"); $form->addWidget(new LineEdit("Album title:", "title")); $form->addWidget(new LineEdit("Album copyright:", "copyright")); - $form->addWidget(new CheckBox("Album enabled:", "enabled")); + $form->addWidget(new LineEdit("Album ID:", "id", $this->getNextID())); + $form->addWidget(new CheckBox("Album enabled:", "enabled")); $form->addWidget(new FileUpload("Select image archive:", "images", "application/zip")); $form->addWidget(new Button("Create")); $form->render(); @@ -286,6 +336,48 @@ class Gallery { } } + public function admin_edit($action, $vars) + { + global $ALBUMS_DIR; + switch($action) { + case "update": + $album = $this->albums[$vars["id"]]; + + $album->title = $vars["title"]; + $album->copyright = $vars["copyright"]; + $album->enabled = $vars["enabled"] == "on"; + + $this->write(); + break; + + case "edit": + $album = $this->albums[$vars["id"]]; + + $form = new Form("update"); + $form->addWidget(new LineEdit("Album title:", "title", $album->title)); + $form->addWidget(new LineEdit("Album copyright:", "copyright", $album->copyright)); + $form->addWidget(new LineEdit("Album ID:", "id", $album->id)); + $form->addWidget(new CheckBox("Album enabled:", "enabled", $album->enabled)); + $form->addWidget(new Button("Update")); + $form->render(); + break; + + case "select": + default: + $albumlist = array(); + foreach($this->albums as $album) { + $albumlist[$album->title . " (".$album->id.")"] = $album->id; + } + krsort($albumlist); + + $form = new Form("edit"); + $form->addWidget(new ComboBox("Select album:", "id", "", $albumlist)); + $form->addWidget(new Button("Edit")); + $form->render(); + break; + } + } + public function admin_options($action, $vars) { switch($action) { @@ -325,7 +417,7 @@ class Gallery { $this->admin_new($action, $vars); break; case "edit": - $this->admin_new($action, $vars); + $this->admin_edit($action, $vars); break; case "delete": $this->admin_new($action, $vars); @@ -356,7 +448,7 @@ class Gallery { $str .= "\n\n"; foreach($this->albums as $album) { - $str .= $album->showIcon(" "); + if($album->enabled) $str .= $album->showIcon(" "); } $str .= "\n"; @@ -374,6 +466,12 @@ class Gallery { return $str; } + public function showRef($id) + { + if(!$this->albums[$id]) return ""; + return $this->albums[$id]->showRef(); + } + public function run($params) { global $a, $p; @@ -413,17 +511,28 @@ class Gallery { return $maxid + 1; } + public function checkUniqueID($id) + { + foreach($this->albums as $album) { + if($album->id == $id) return false; + } + return true; + } + public function getImageSize($cat) { switch($cat) { case "photo": - return new ImageSize($this->maxwidth, $this->maxheight); + return new ImageSize($this->maxwidth, $this->maxheight, false); case "randomimage": - return new ImageSize($this->maxwidth_rand, $this->maxheight_rand); + return new ImageSize($this->maxwidth_rand, $this->maxheight_rand, true); case "navicon": - return new ImageSize($this->maxwidth_navicon, $this->maxheight_navicon); + return new ImageSize($this->maxwidth_navicon, $this->maxheight_navicon, true); case "albumicon": - return new ImageSize($this->maxwidth_icon, $this->maxheight_icon); + return new ImageSize($this->maxwidth_icon, $this->maxheight_icon, true); + case "reficon": + // return new ImageSize($this->maxwidth_reficon, $this->maxheight_reficon, true); + return new ImageSize(32, 24, true); default: die(404); } -- cgit v1.2.3