From d302da9f407de3b8df7cf8c2ed19a11b7858764c Mon Sep 17 00:00:00 2001 From: Bharat Mediratta Date: Tue, 28 Sep 2010 21:17:36 -0700 Subject: [PATCH] Caption an entire album at once. --- .../captionator/controllers/captionator.php | 53 +++++++++++++++++++ .../captionator/helpers/captionator_event.php | 33 ++++++++++++ modules/captionator/module.info | 3 ++ .../views/captionator_dialog.html.php | 37 +++++++++++++ 4 files changed, 126 insertions(+) create mode 100644 modules/captionator/controllers/captionator.php create mode 100644 modules/captionator/helpers/captionator_event.php create mode 100644 modules/captionator/module.info create mode 100644 modules/captionator/views/captionator_dialog.html.php diff --git a/modules/captionator/controllers/captionator.php b/modules/captionator/controllers/captionator.php new file mode 100644 index 00000000..7ccc13c6 --- /dev/null +++ b/modules/captionator/controllers/captionator.php @@ -0,0 +1,53 @@ +content = new View("captionator_dialog.html"); + $v->content->album = $album; + print $v; + } + + function save($album_id) { + access::verify_csrf(); + + $album = ORM::factory("item", $album_id); + access::required("edit", $album); + + if (Input::instance()->post("save")) { + $titles = Input::instance()->post("title"); + $descriptions = Input::instance()->post("description"); + foreach (array_keys($titles) as $id) { + $item = ORM::factory("item", $id); + if ($item->loaded() && access::can("edit", $item)) { + $item->title = $titles[$id]; + $item->description = $descriptions[$id]; + $item->save(); + } + } + message::success(t("Captions saved")); + } + url::redirect($album->parent()->abs_url()); + } +} diff --git a/modules/captionator/helpers/captionator_event.php b/modules/captionator/helpers/captionator_event.php new file mode 100644 index 00000000..d00c04ae --- /dev/null +++ b/modules/captionator/helpers/captionator_event.php @@ -0,0 +1,33 @@ +item(); + + if ($item && $item->is_album() && access::can("edit", $item)) { + $menu->get("options_menu") + ->append(Menu::factory("link") + ->id("captionator") + ->label(t("Caption album")) + ->css_id("g-menu-captionator-link") + ->url(url::site("captionator/dialog/{$item->id}"))); + } + } +} diff --git a/modules/captionator/module.info b/modules/captionator/module.info new file mode 100644 index 00000000..d9087368 --- /dev/null +++ b/modules/captionator/module.info @@ -0,0 +1,3 @@ +name = "Captionator" +description = "Caption all photos, movies and albums in an album at once." +version = 1 diff --git a/modules/captionator/views/captionator_dialog.html.php b/modules/captionator/views/captionator_dialog.html.php new file mode 100644 index 00000000..34867d63 --- /dev/null +++ b/modules/captionator/views/captionator_dialog.html.php @@ -0,0 +1,37 @@ + +
+
id}") ?>" method="post" id="g-captionator-form"> + +
+ + %album_name", array("album_name" => $album->name)) ?> + + + viewable()->children() as $child): ?> + + + + + +
+ thumb_img(array(), 140, true) ?> + +
    +
  • + + +
  • +
  • + + +
  • +
+
+ +
+
+ "/> + "/> +
+
+