From 0b7bd87646bd4e44474c7b2612a970b6afbbd235 Mon Sep 17 00:00:00 2001 From: mistic100 Date: Sat, 15 Sep 2012 15:47:52 +0000 Subject: feature 2718: Add batch manager filters for photo dimensions git-svn-id: http://piwigo.org/svn/trunk@17931 68402e56-0260-453c-a942-63ccdbb3a9ee --- admin/batch_manager.php | 51 ++++++++++++++++++++++ .../default/template/batch_manager_global.tpl | 41 +++++++++++++++-- language/en_UK/admin.lang.php | 7 +++ language/fr_FR/admin.lang.php | 7 +++ 4 files changed, 102 insertions(+), 4 deletions(-) diff --git a/admin/batch_manager.php b/admin/batch_manager.php index 71f3c72f6..7feb5a6a2 100644 --- a/admin/batch_manager.php +++ b/admin/batch_manager.php @@ -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) { diff --git a/admin/themes/default/template/batch_manager_global.tpl b/admin/themes/default/template/batch_manager_global.tpl index ac6e84623..a3e5c156d 100644 --- a/admin/themes/default/template/batch_manager_global.tpl +++ b/admin/themes/default/template/batch_manager_global.tpl @@ -391,6 +391,11 @@ $(document).ready(function() { filter_enable(filter); $(this).attr("value", -1); }); + + $("select[name='filter_dimension']").change(function () { + $("span[id^='filter_dimension_']").hide(); + $("span#filter_dimension_"+ $(this).attr("value")).show(); + }); function filter_disable(filter) { /* hide the filter line */ @@ -506,6 +511,7 @@ $(document).ready(function() { {/foreach} +
  • [x] @@ -515,6 +521,7 @@ $(document).ready(function() {
  • +
  • [x] @@ -527,6 +534,7 @@ $(document).ready(function() {
  • +
  • [x] @@ -536,16 +544,41 @@ $(document).ready(function() {
  • + +
  • + [x] + + + px + px + px + px + + + +
  • {'Remove all filters'|@translate} diff --git a/language/en_UK/admin.lang.php b/language/en_UK/admin.lang.php index 1ace5615c..91c2f6b55 100644 --- a/language/en_UK/admin.lang.php +++ b/language/en_UK/admin.lang.php @@ -357,6 +357,7 @@ $lang['Forbid this language to users'] = 'Forbid this language to users'; $lang['Forbid this theme to users'] = "Forbid this theme to users"; $lang['Forbidden'] = "Forbidden"; $lang['Form'] = "Form"; +$lang['Format'] = 'Format'; $lang['FTP + Synchronization'] = 'FTP + Synchronization'; $lang['Gallery title'] = "Gallery title"; $lang['Gallery unlocked'] = 'Gallery unlocked'; @@ -428,12 +429,14 @@ $lang['Install'] = "Install"; $lang['Installed Languages'] = 'Installed Languages'; $lang['Installed Themes'] = "Installed Themes"; $lang['Instructions to use Piwigo'] = "Instructions to use Piwigo"; +$lang['Invalid dimension'] = 'Invalid dimension'; $lang['Invert'] = 'Invert'; $lang['IP'] = "IP"; $lang['iPhoto is the default photo manager on MacOSX. The Piwigo export plugin let you create new albums and export your photos directly from iPhoto to your Piwigo photo gallery.'] = 'iPhoto is the default photo manager on MacOSX. The Piwigo export plugin let you create new albums and export your photos directly from iPhoto to your Piwigo photo gallery.'; $lang['jump to album'] = "jump to album"; $lang['jump to photo'] = "jump to photo"; $lang['Keep in touch with Piwigo project, subscribe to Piwigo Announcement Newsletter. You will receive emails when a new release is available (sometimes including a security bug fix, it\'s important to know and upgrade) and when major events happen to the project. Only a few emails a year.'] = "Keep in touch with Piwigo project, subscribe to Piwigo Announcement Newsletter. You will be sent emails when a new release is available (sometimes including a security bug fix, it is important to know and upgrade) and when major events happen to the project. Only a few emails a year."; +$lang['Landscape'] = 'Landscape'; $lang['Language has been successfully installed'] = 'Language has been successfully installed'; $lang['Languages which need upgrade'] = 'Languages which need upgrade'; $lang['Languages'] = 'Languages'; @@ -491,6 +494,8 @@ $lang['Merge tags'] = 'Merge tags'; $lang['Metadata synchronization results'] = "Metadata synchronization results"; $lang['Metadata synchronized from file'] = "Metadata synchronized from file"; $lang['middle'] = 'middle'; +$lang['Minimum width'] = 'Minimum width'; +$lang['Minimum height'] = 'Minimum height'; $lang['Minimum privacy level'] = "Minimum privacy level"; $lang['Miscellaneous'] = 'Miscellaneous'; $lang['Missing a temporary folder'] = 'Missing a temporary folder'; @@ -564,6 +569,7 @@ $lang['overrides existing values with empty ones'] = "overrides existing values $lang['Page banner'] = "Page banner"; $lang['Page end'] = 'Page end'; $lang['Pages seen'] = "Pages seen"; +$lang['Panorama'] = 'Panorama'; $lang['Parameter'] = "Settings"; $lang['Parameters'] = "Parameters"; $lang['Parent album'] = "Parent album"; @@ -621,6 +627,7 @@ $lang['Plugin has been successfully copied'] = "The plugin has been successfully $lang['Plugin list'] = "Plugins list"; $lang['Plugins which need upgrade'] = "Plugins to be upgraded"; $lang['Plugins'] = "Plugins"; +$lang['Portrait'] = 'Portrait'; $lang['Position'] = "Position"; $lang['Posted %s on %s'] = 'Posted %s on %s'; $lang['Predefined filter'] = 'Predefined filter'; diff --git a/language/fr_FR/admin.lang.php b/language/fr_FR/admin.lang.php index 8d036970f..72abb6034 100644 --- a/language/fr_FR/admin.lang.php +++ b/language/fr_FR/admin.lang.php @@ -927,4 +927,11 @@ $lang['Name of the duplicate'] = "Nom du duplicata"; $lang['Source tag'] = 'Tag source'; $lang['Tag "%s" is now a duplicate of "%s"'] = "Le tag \"%s\" est désormais une copie de \"%s\""; $lang['Duplicate selected tags'] = 'Dupliquer les tags sélectionnés'; +$lang['Invalid dimension'] = 'Dimension invalide'; +$lang['Minimum width'] = 'Largeur minimale'; +$lang['Minimum height'] = 'Hauteur minimale'; +$lang['Format'] = 'Format'; +$lang['Portrait'] = 'Portrait'; +$lang['Landscape'] = 'Paysage'; +$lang['Panorama'] = 'Panorama'; ?> \ No newline at end of file -- cgit v1.2.3