feature 2718: Add batch manager filters for photo dimensions

git-svn-id: http://piwigo.org/svn/trunk@17931 68402e56-0260-453c-a942-63ccdbb3a9ee
This commit is contained in:
mistic100 2012-09-15 15:47:52 +00:00
commit 0b7bd87646
4 changed files with 102 additions and 4 deletions

View file

@ -90,6 +90,19 @@ if (isset($_POST['submitFilter']))
}
}
}
if (isset($_POST['filter_dimension_use']))
{
if ( $_POST['filter_dimension'] != 'format' and !preg_match('#^[0-9]+$#', $_POST['filter_dimension_'. $_POST['filter_dimension'] ]) )
{
array_push($page['errors'], l10n('Invalid dimension'));
}
else
{
$_SESSION['bulk_manager_filter']['dimension'] = $_POST['filter_dimension'];
$_SESSION['bulk_manager_filter']['dimension_'. $_POST['filter_dimension'] ] = $_POST['filter_dimension_'. $_POST['filter_dimension'] ];
}
}
}
if (isset($_GET['cat']))
@ -327,6 +340,44 @@ if (!empty($_SESSION['bulk_manager_filter']['tags']))
);
}
if (isset($_SESSION['bulk_manager_filter']['dimension']))
{
switch ($_SESSION['bulk_manager_filter']['dimension'])
{
case 'min_width':
$where_clause = 'width >= '.$_SESSION['bulk_manager_filter']['dimension_min_width']; break;
case 'max_width':
$where_clause = 'width <= '.$_SESSION['bulk_manager_filter']['dimension_max_width']; break;
case 'min_height':
$where_clause = 'height >= '.$_SESSION['bulk_manager_filter']['dimension_min_height']; break;
case 'max_height':
$where_clause = 'height <= '.$_SESSION['bulk_manager_filter']['dimension_max_height']; break;
case 'format':
{
switch ($_SESSION['bulk_manager_filter']['dimension_format'])
{
case 'portrait':
$where_clause = 'width/height < 0.95'; break;
case 'square':
$where_clause = 'width/height >= 0.95 AND width/height <= 1.05'; break;
case 'landscape':
$where_clause = 'width/height > 1.05 AND width/height < 2.5'; break;
case 'panorama':
$where_clause = 'width/height >= 2.5'; break;
}
break;
}
}
$query = '
SELECT id
FROM '.IMAGES_TABLE.'
WHERE '.$where_clause.'
'.$conf['order_by'];
$filter_sets[] = array_from_query($query, 'id');
}
$current_set = array_shift($filter_sets);
foreach ($filter_sets as $set)
{