multisize - added the coi (still to affine the admin ui + language)

multisize - derivatives can be revuild from a larger derviative instead of the original

git-svn-id: http://piwigo.org/svn/trunk@13038 68402e56-0260-453c-a942-63ccdbb3a9ee
This commit is contained in:
rvelices
2012-02-06 20:59:20 +00:00
parent 8d86e7b399
commit 0d277219fc
15 changed files with 2204 additions and 28 deletions
+97
View File
@@ -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');
?>
+5
View File
@@ -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(
@@ -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}
@@ -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>