summaryrefslogtreecommitdiff
path: root/modules/watermark
diff options
context:
space:
mode:
Diffstat (limited to 'modules/watermark')
-rw-r--r--modules/watermark/controllers/watermark.php11
-rw-r--r--modules/watermark/controllers/watermark_admin.php57
-rw-r--r--modules/watermark/helpers/watermark.php15
-rw-r--r--modules/watermark/helpers/watermark_installer.php2
-rw-r--r--modules/watermark/helpers/watermark_menu.php34
-rw-r--r--modules/watermark/views/watermark_position.html.php11
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