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 @@ +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 @@ +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."); ?>