aboutsummaryrefslogtreecommitdiffstats
path: root/admin
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--admin/picture_coi.php97
-rw-r--r--admin/picture_modify.php5
-rw-r--r--admin/themes/default/template/picture_coi.tpl66
-rw-r--r--admin/themes/default/template/picture_modify.tpl7
4 files changed, 174 insertions, 1 deletions
diff --git a/admin/picture_coi.php b/admin/picture_coi.php
new file mode 100644
index 000000000..2a3a60023
--- /dev/null
+++ b/admin/picture_coi.php
@@ -0,0 +1,97 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | Piwigo - a PHP based photo gallery |
+// +-----------------------------------------------------------------------+
+// | Copyright(C) 2008-2012 Piwigo Team http://piwigo.org |
+// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
+// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
+// +-----------------------------------------------------------------------+
+// | 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 |
+// | |
+// | 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
+// | USA. |
+// +-----------------------------------------------------------------------+
+
+if(!defined("PHPWG_ROOT_PATH"))
+{
+ die('Hacking attempt!');
+}
+
+// +-----------------------------------------------------------------------+
+// | Check Access and exit when user status is not ok |
+// +-----------------------------------------------------------------------+
+check_status(ACCESS_ADMINISTRATOR);
+
+check_input_parameter('image_id', $_GET, false, PATTERN_ID);
+
+if (isset($_POST['submit']))
+{
+ $query = 'UPDATE '.IMAGES_TABLE;
+ if (strlen($_POST['l'])==0)
+ {
+ $query .= ' SET coi=NULL';
+ }
+ else
+ {
+ $coi = fraction_to_char($_POST['l'])
+ .fraction_to_char($_POST['t'])
+ .fraction_to_char($_POST['r'])
+ .fraction_to_char($_POST['b']);
+ $query .= ' SET coi=\''.$coi.'\'';
+ }
+ $query .= ' WHERE id='.$_GET['image_id'];
+ pwg_query($query);
+}
+
+$query = 'SELECT * FROM '.IMAGES_TABLE.' WHERE id='.$_GET['image_id'];
+$row = pwg_db_fetch_assoc( pwg_query($query) );
+
+if (isset($_POST['submit']))
+{
+ delete_element_derivatives($row);
+}
+
+$tpl_var = array(
+ 'ALT' => $row['file'],
+ 'U_IMG' => DerivativeImage::url(IMG_LARGE, $row),
+ 'U_EDIT' => get_root_url().'admin.php?page=picture_modify&amp;image_id='.$_GET['image_id'],
+ );
+
+if (!empty($row['coi']))
+{
+ $tpl_var['coi'] = array(
+ 'l'=> char_to_fraction($row['coi'][0]),
+ 't'=> char_to_fraction($row['coi'][1]),
+ 'r'=> char_to_fraction($row['coi'][2]),
+ 'b'=> char_to_fraction($row['coi'][3]),
+ );
+}
+
+if (isset($_POST['submit']))
+{
+ $uid = '&b='.time();
+ $conf['question_mark_in_urls'] = $conf['php_extension_in_urls'] = true;
+ $conf['derivative_url_style']=2; //script
+ $tpl_var['U_SQUARE'] = DerivativeImage::url(IMG_SQUARE, $row).$uid;
+ $tpl_var['U_THUMB'] = DerivativeImage::url(IMG_THUMB, $row).$uid;
+}
+else
+{
+ $tpl_var['U_SQUARE'] = DerivativeImage::url(IMG_SQUARE, $row);
+ $tpl_var['U_THUMB'] = DerivativeImage::url(IMG_THUMB, $row);
+}
+
+$template->assign($tpl_var);
+$template->set_filename('picture_coi', 'picture_coi.tpl');
+
+$template->assign_var_from_handle('ADMIN_CONTENT', 'picture_coi');
+?>
diff --git a/admin/picture_modify.php b/admin/picture_modify.php
index 66a3240d3..38b607cc7 100644
--- a/admin/picture_modify.php
+++ b/admin/picture_modify.php
@@ -303,6 +303,11 @@ $template->assign(
)
);
+if (in_array(get_extension($row['path']),$conf['picture_ext']))
+{
+ $template->assign('U_COI', get_root_url().'admin.php?page=picture_coi&amp;image_id='.$_GET['image_id']);
+}
+
// image level options
$selected_level = isset($_POST['level']) ? $_POST['level'] : $row['level'];
$template->assign(
diff --git a/admin/themes/default/template/picture_coi.tpl b/admin/themes/default/template/picture_coi.tpl
new file mode 100644
index 000000000..8287d3701
--- /dev/null
+++ b/admin/themes/default/template/picture_coi.tpl
@@ -0,0 +1,66 @@
+{html_head}
+<link rel="stylesheet" type="text/css" href="themes/default/js/plugins/jquery.Jcrop.css" />
+{/html_head}
+{combine_script id='jquery.jcrop' load='footer' require='jquery' path='themes/default/js/plugins/jquery.Jcrop.min.js'}
+
+<h2>{'Center of interest'|@translate}</h2>
+<div>
+<a href="{$U_EDIT}">{'Edit photo information'|@translate}</a>
+</div>
+
+<div>
+<img src="{$U_SQUARE}" alt="{$ALT}">
+<img src="{$U_THUMB}" alt="{$ALT}">
+</div>
+
+<div>
+<form method="post">
+<input type="hidden" id="l" name="l" value="{if isset($coi)}{$coi.l}{/if}">
+<input type="hidden" id="t" name="t" value="{if isset($coi)}{$coi.t}{/if}">
+<input type="hidden" id="r" name="r" value="{if isset($coi)}{$coi.r}{/if}">
+<input type="hidden" id="b" name="b" value="{if isset($coi)}{$coi.b}{/if}">
+
+<img id="jcrop" src="{$U_IMG}" alt="{$ALT}">
+
+<p>
+<input type="submit" name="submit" value="{'Submit'|@translate}">
+</p>
+</form>
+</div>
+
+{footer_script}
+{literal}
+function from_coi(f, total) {
+ return f*total;
+}
+
+function to_coi(v, total) {
+ return v/total;
+}
+
+function jOnChange(sel) {
+ var $img = jQuery("#jcrop");
+ jQuery("#l").val( to_coi(sel.x, $img.width()) );
+ jQuery("#t").val( to_coi(sel.y, $img.height()) );
+ jQuery("#r").val( to_coi(sel.x2, $img.width()) );
+ jQuery("#b").val( to_coi(sel.y2, $img.height()) );
+}
+function jOnRelease() {
+ jQuery("#l,#t,#r,#b").val("");
+}
+
+{/literal}
+jQuery("#jcrop").Jcrop( {ldelim}
+ boxWidth: 400, boxHeight: 400,
+ onChange: jOnChange,
+ onRelease: jOnRelease
+ }
+{if isset($coi)}
+ ,function() {ldelim}
+ var $img = jQuery("#jcrop");
+ this.animateTo( [from_coi({$coi.l}, $img.width()), from_coi({$coi.t}, $img.height()), from_coi({$coi.r}, $img.width()), from_coi({$coi.b}, $img.height()) ] );
+ }
+{/if}
+);
+{/footer_script}
+
diff --git a/admin/themes/default/template/picture_modify.tpl b/admin/themes/default/template/picture_modify.tpl
index cddd1ba78..28e6bfc76 100644
--- a/admin/themes/default/template/picture_modify.tpl
+++ b/admin/themes/default/template/picture_modify.tpl
@@ -83,7 +83,12 @@ pwg_initialization_datepicker("#date_creation_day", "#date_creation_month", "#da
</td>
</tr>
{/if}
-
+{if isset($U_COI)}
+ <tr>
+ <td></td>
+ <td><a href="{$U_COI}">{'Not cropped correctly?'|@translate}</a></td>
+ </tr>
+{/if}
</table>
</fieldset>