diff options
author | Tim Almdal <tnalmdal@shaw.ca> | 2009-07-09 18:59:04 -0700 |
---|---|---|
committer | Tim Almdal <tnalmdal@shaw.ca> | 2009-07-09 18:59:04 -0700 |
commit | 3347178eee9c0d4b779a172af1139885db5655dc (patch) | |
tree | d35cb15829b358dbe1c4d79e84f588a5a380fa88 /modules/dynamic/controllers/admin_dynamic.php | |
parent | 512f22a600362415f58197842248acc2f2f68be8 (diff) |
Created the dynamic albums module which provides a dynamic album
containing either recent updates or most viewed images.
Diffstat (limited to 'modules/dynamic/controllers/admin_dynamic.php')
-rw-r--r-- | modules/dynamic/controllers/admin_dynamic.php | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/modules/dynamic/controllers/admin_dynamic.php b/modules/dynamic/controllers/admin_dynamic.php new file mode 100644 index 00000000..f559e3d2 --- /dev/null +++ b/modules/dynamic/controllers/admin_dynamic.php @@ -0,0 +1,79 @@ +<?php defined("SYSPATH") or die("No direct script access.");/** + * Gallery - a web based photo album viewer and editor + * Copyright (C) 2000-2009 Bharat Mediratta + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or (at + * your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. + */ +class Admin_Dynamic_Controller extends Admin_Controller { + public function index() { + print $this->_get_view(); + } + + public function handler() { + access::verify_csrf(); + + $form = $this->_get_form(); + if ($form->validate()) { + foreach (array("updates", "popular") as $album) { + $album_defn = unserialize(module::get_var("dynamic", $album)); + $album_defn->enabled = $form->$album->enabled->value; + $album_defn->description = $form->$album->description->value; + $album_defn->limit = $form->$album->limit->value === "" ? null : $form->$album->limit->value; + module::set_var("dynamic", $album, serialize($album_defn)); + } + + message::success(t("Dynamic Albums Configured")); + + url::redirect("admin/dynamic"); + } + + print $this->_get_view($form); + } + + private function _get_view($form=null) { + $v = new Admin_View("admin.html"); + $v->content = new View("admin_dynamic.html"); + $v->content->form = empty($form) ? $this->_get_form() : $form; + return $v; + } + + private function _get_form() { + + $form = new Forge("admin/dynamic/handler", "", "post", + array("id" => "gAdminForm")); + + foreach (array("updates", "popular") as $album) { + $album_defn = unserialize(module::get_var("dynamic", $album)); + + $group = $form->group($album)->label(t($album_defn->title)); + $group->checkbox("enabled") + ->label(t("Enable")) + ->value(1) + ->checked($album_defn->enabled); + $group->input("limit") + ->label(t("Limit (leave empty for unlimited)")) + ->value(empty($updates->limit) ? "" : $updates->limit) + ->rules("valid_numeric"); + $group->textarea("description") + ->label(t("Description")) + ->rules("length[0,2048]") + ->value($album_defn->description); + } + + $form->submit("submit")->value(t("Submit")); + + return $form; + } +}
\ No newline at end of file |