diff options
-rw-r--r-- | modules/watermark/controllers/watermark.php | 11 | ||||
-rw-r--r-- | modules/watermark/controllers/watermark_admin.php | 57 | ||||
-rw-r--r-- | modules/watermark/helpers/watermark.php | 15 | ||||
-rw-r--r-- | modules/watermark/helpers/watermark_installer.php | 2 | ||||
-rw-r--r-- | modules/watermark/helpers/watermark_menu.php | 34 | ||||
-rw-r--r-- | modules/watermark/views/watermark_position.html.php | 11 |
6 files changed, 122 insertions, 8 deletions
diff --git a/modules/watermark/controllers/watermark.php b/modules/watermark/controllers/watermark.php index 4bf90401..a23cce64 100644 --- a/modules/watermark/controllers/watermark.php +++ b/modules/watermark/controllers/watermark.php @@ -22,13 +22,12 @@ class Watermark_Controller extends Controller { $form = watermark::get_watermark_form(); if ($form->validate()) { $file = $_POST["file"]; - - // Format of the file is config["upload.directory"]/uploadfile-hash-filename. - $index = strrpos($file, "-"); - $watermark_target = VARPATH . substr($file, strrpos($file, "-") + 1); - if (rename($file, $watermark_target)) { - module::set_var("watermark", "watermark_image_path", $watermark_target); + $pathinfo = pathinfo($file); + $watermark_target = $pathinfo["basename"]; + if (copy($file, VARPATH . $watermark_target)) { + module::set_var("watermark", "watermark_image_path", $watermark_target); + unlink($file); $form->success = _("Watermark saved"); } else { // @todo set and error message diff --git a/modules/watermark/controllers/watermark_admin.php b/modules/watermark/controllers/watermark_admin.php new file mode 100644 index 00000000..c6d53999 --- /dev/null +++ b/modules/watermark/controllers/watermark_admin.php @@ -0,0 +1,57 @@ +<?php defined("SYSPATH") or die("No direct script access."); +/** + * Gallery - a web based photo album viewer and editor + * Copyright (C) 2000-2008 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 Watermark_admin_Controller extends Controller { + public function get_form($user_id) { + try { + // @todo check for admin user + + $path = module::get_var("watermark", "watermark_image_path"); + $view = new View("watermark_position.html"); + + if (empty($path)) { + // @todo need to do something when there is no watermark + } + + $photo = ORM::factory("item") + ->where("type", "photo") + ->find_all(1, 0)->current(); + + // @todo determine what to do if water mark is not set + // @todo caclulate the view sizes + $view->sample_image = $photo->resize_url(); + $scaleWidth = $photo->resize_width / $photo->width; + $scaleHeight = $photo->resize_height / $photo->height; + $scale = $scaleHeight < $scaleWidth ? $scaleHeight : $scaleWidth; + + $imageinfo = getimagesize(VARPATH . $path); + + $view->watermark_height = $imageinfo[1] * $scale; + $view->watermark_width = $imageinfo[0] * $scale; + $view->watermark_image = url::abs_file("var/" . $path); + + $current_position = module::get_var("watermark", "watermark_position"); + $view->watermark_position_form = watermark::get_watermark_postion_form($current_position); + + print $view; + } catch (Exception $e) { + print $e; + } + } +}
\ No newline at end of file diff --git a/modules/watermark/helpers/watermark.php b/modules/watermark/helpers/watermark.php index 73434ceb..438fbc24 100644 --- a/modules/watermark/helpers/watermark.php +++ b/modules/watermark/helpers/watermark.php @@ -26,4 +26,19 @@ class watermark_Core { $group->submit(_("Upload")); return $form; } + + public static function get_watermark_postion_form($position="southeast") { + $form = new Forge("admin/watermark/position", "", "post"); + $group = $form->group("watermark_position")->label(_("Update Position")); + $group->hidden("original_position")->value($position); + $group->dropdown("new_position")->label(_("Watermark Position")) + ->options(array("northwest", "north", "northeast", + "west", "center", "east", + "southwest", "south", "southeast")) + ->selected("8"); + + $group->submit(_("Update")); + $group->submit(_("Reset")); + return $form; + } }
\ No newline at end of file diff --git a/modules/watermark/helpers/watermark_installer.php b/modules/watermark/helpers/watermark_installer.php index a5f07202..e06e52cf 100644 --- a/modules/watermark/helpers/watermark_installer.php +++ b/modules/watermark/helpers/watermark_installer.php @@ -24,7 +24,7 @@ class watermark_installer { if ($version == 0) { module::set_version("watermark", 1); module::set_var("watermark", "watermark_image_path", ""); - module::set_var("watermark", "watermark_position", serialize(array())); + module::set_var("watermark", "watermark_position", "southeast"); } } diff --git a/modules/watermark/helpers/watermark_menu.php b/modules/watermark/helpers/watermark_menu.php new file mode 100644 index 00000000..384ba9c4 --- /dev/null +++ b/modules/watermark/helpers/watermark_menu.php @@ -0,0 +1,34 @@ +<?php defined("SYSPATH") or die("No direct script access."); +/** + * Gallery - a web based photo album viewer and editor + * Copyright (C) 2000-2008 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 watermark_menu_Core { + // @todo this needs to get on the admin page at some point + + public static function site_navigation($menu, $theme) { + $user = user::active(); + if ($user->admin) { + Kohana::log("debug", print_r($menu, 1)); + $menu->get("admin_menu")->append( + Menu::Factory("dialog") + ->id("watermark_position") + ->label(_("Set Watermark Position")) + ->url(url::site("admin/watermark/get_form/$user->id"))); + } + } +} diff --git a/modules/watermark/views/watermark_position.html.php b/modules/watermark/views/watermark_position.html.php index 566ee57b..af824ed1 100644 --- a/modules/watermark/views/watermark_position.html.php +++ b/modules/watermark/views/watermark_position.html.php @@ -1,7 +1,16 @@ <? defined("SYSPATH") or die("No direct script access."); ?> <div id="gWatermarkAdmin"> <div id="gTargetImage" class="droppable"> + <img src="<?= $sample_image ?>"></img> </div> - <div id="gWaterMark" class="draggable"> + <div id="gWaterMark"> + <!-- This style and div is only temporary --> + <div style="background-color: #cccccc;"> + <img src="<?= $watermark_image ?>" class="draggable" + width="<?= $watermark_width ?>" height="<?= $watermark_height ?>" /> + </div> + </div> + <div id="gWatermarkPostionForm" > + <?= $watermark_position_form ?> </div> </div>
\ No newline at end of file |