diff options
author | plegall <plg@piwigo.org> | 2011-11-15 11:58:10 +0000 |
---|---|---|
committer | plegall <plg@piwigo.org> | 2011-11-15 11:58:10 +0000 |
commit | f6a6701fb77e377e33896c1d73821416dcc7b921 (patch) | |
tree | 584927d902dd1e8c86821a92bc6e039ae73ddd79 /include | |
parent | 144a79944b194d31f9494a8ec0a38aff8867e001 (diff) |
merge r12629 from branch 2.3 to trunk
bug 2506 fixed: Batch Manager does not take permissions into account when
filtering on tags
feature 2507 added: Batch Manager can filter on "all tags" or "any tag"
git-svn-id: http://piwigo.org/svn/trunk@12630 68402e56-0260-453c-a942-63ccdbb3a9ee
Diffstat (limited to 'include')
-rw-r--r-- | include/functions_tag.inc.php | 37 |
1 files changed, 23 insertions, 14 deletions
diff --git a/include/functions_tag.inc.php b/include/functions_tag.inc.php index 9f93115fd..3bc6d0ff1 100644 --- a/include/functions_tag.inc.php +++ b/include/functions_tag.inc.php @@ -166,7 +166,7 @@ function add_level_to_tags($tags) * @param string order_by - optionally overwrite default photo order * @return array */ -function get_image_ids_for_tags($tag_ids, $mode='AND', $extra_images_where_sql='', $order_by='') +function get_image_ids_for_tags($tag_ids, $mode='AND', $extra_images_where_sql='', $order_by='', $use_permissions=true) { global $conf; if (empty($tag_ids)) @@ -175,22 +175,31 @@ function get_image_ids_for_tags($tag_ids, $mode='AND', $extra_images_where_sql=' } $query = 'SELECT id - FROM '.IMAGES_TABLE.' i - INNER JOIN '.IMAGE_CATEGORY_TABLE.' ic ON id=ic.image_id + FROM '.IMAGES_TABLE.' i '; + + if ($use_permissions) + { + $query.= ' + INNER JOIN '.IMAGE_CATEGORY_TABLE.' ic ON id=ic.image_id'; + } + + $query.= ' INNER JOIN '.IMAGE_TAG_TABLE.' it ON id=it.image_id - WHERE tag_id IN ('.implode(',', $tag_ids).')' - .get_sql_condition_FandF - ( - array - ( - 'forbidden_categories' => 'category_id', - 'visible_categories' => 'category_id', - 'visible_images' => 'id' + WHERE tag_id IN ('.implode(',', $tag_ids).')'; + + if ($use_permissions) + { + $query.= get_sql_condition_FandF( + array( + 'forbidden_categories' => 'category_id', + 'visible_categories' => 'category_id', + 'visible_images' => 'id' ), "\n AND" - ) - .(empty($extra_images_where_sql) ? '' : " \nAND (".$extra_images_where_sql.')') - .' + ); + } + + $query.= (empty($extra_images_where_sql) ? '' : " \nAND (".$extra_images_where_sql.')').' GROUP BY id'; if ($mode=='AND' and count($tag_ids)>1) |