aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--include/functions_search.inc.php39
-rw-r--r--include/ws_functions/pwg.images.php36
2 files changed, 43 insertions, 32 deletions
diff --git a/include/functions_search.inc.php b/include/functions_search.inc.php
index a02e03331..b823bcfaa 100644
--- a/include/functions_search.inc.php
+++ b/include/functions_search.inc.php
@@ -1193,7 +1193,7 @@ function qsearch_eval(QMultiToken $expr, QResults $qsr, &$qualifies, &$ignored_t
* @param string $images_where optional additional restriction on images table
* @return array
*/
-function get_quick_search_results($q, $super_order_by, $images_where='')
+function get_quick_search_results($q, $options)
{
global $conf;
//@TODO: maybe cache for 10 minutes the result set to avoid many expensive sql calls when navigating the pictures
@@ -1254,26 +1254,35 @@ function get_quick_search_results($q, $super_order_by, $images_where='')
return $search_results;
}
+ $permissions = !isset($options['permissions']) ? true : $options['permissions'];
+
$where_clauses = array();
$where_clauses[]='i.id IN ('. implode(',', $ids) . ')';
- if (!empty($images_where))
+ if (!empty($options['images_where'))
{
$where_clauses[]='('.$images_where.')';
}
- $where_clauses[] = get_sql_condition_FandF(
- array
- (
- 'forbidden_categories' => 'category_id',
- 'visible_categories' => 'category_id',
- 'visible_images' => 'i.id'
- ),
- null,true
- );
+ if ($permissions)
+ {
+ $where_clauses[] = get_sql_condition_FandF(
+ array
+ (
+ 'forbidden_categories' => 'category_id',
+ 'visible_categories' => 'category_id',
+ 'visible_images' => 'i.id'
+ ),
+ null,true
+ );
+ }
$query = '
-SELECT DISTINCT(id)
- FROM '.IMAGES_TABLE.' i
- INNER JOIN '.IMAGE_CATEGORY_TABLE.' AS ic ON id = ic.image_id
+SELECT DISTINCT(id) FROM '.IMAGES_TABLE.' i';
+ if ($permissions)
+ {
+ $query .= '
+ INNER JOIN '.IMAGE_CATEGORY_TABLE.' AS ic ON id = ic.image_id';
+ }
+ $query .= '
WHERE '.implode("\n AND ", $where_clauses)."\n".
$conf['order_by'];
@@ -1305,7 +1314,7 @@ function get_search_results($search_id, $super_order_by, $images_where='')
}
else
{
- return get_quick_search_results($search['q'], $super_order_by, $images_where);
+ return get_quick_search_results($search['q'], array('super_order_by'=>$super_order_by, 'images_where'=>$images_where) );
}
}
diff --git a/include/ws_functions/pwg.images.php b/include/ws_functions/pwg.images.php
index 6eebd4482..78d1d51d7 100644
--- a/include/ws_functions/pwg.images.php
+++ b/include/ws_functions/pwg.images.php
@@ -294,7 +294,7 @@ function remove_chunks($original_sum, $type)
* @option string content
* @option string key
*/
-function ws_images_addComment($params, &$service)
+function ws_images_addComment($params, $service)
{
$query = '
SELECT DISTINCT image_id
@@ -354,7 +354,7 @@ SELECT DISTINCT image_id
* @option int comments_page
* @option int comments_per_page
*/
-function ws_images_getInfo($params, &$service)
+function ws_images_getInfo($params, $service)
{
global $user, $conf;
@@ -579,7 +579,7 @@ SELECT id, date, author, content
* @option int image_id
* @option float rate
*/
-function ws_images_rate($params, &$service)
+function ws_images_rate($params, $service)
{
$query = '
SELECT DISTINCT id
@@ -620,7 +620,7 @@ SELECT DISTINCT id
* @option int page
* @option string order (optional)
*/
-function ws_images_search($params, &$service)
+function ws_images_search($params, $service)
{
include_once(PHPWG_ROOT_PATH .'include/functions_search.inc.php');
@@ -638,8 +638,10 @@ function ws_images_search($params, &$service)
$search_result = get_quick_search_results(
$params['query'],
- $super_order_by,
- implode(' AND ', $where_clauses)
+ array(
+ 'super_order_by' => $super_order_by,
+ 'images_where' => implode(' AND ', $where_clauses)
+ )
);
$image_ids = array_slice(
@@ -704,7 +706,7 @@ SELECT *
* @option int image_id
* @option int level
*/
-function ws_images_setPrivacyLevel($params, &$service)
+function ws_images_setPrivacyLevel($params, $service)
{
global $conf;
@@ -737,7 +739,7 @@ UPDATE '. IMAGES_TABLE .'
* @option int category_id
* @option int rank
*/
-function ws_images_setRank($params, &$service)
+function ws_images_setRank($params, $service)
{
// does the image really exist?
$query = '
@@ -820,7 +822,7 @@ UPDATE '. IMAGE_CATEGORY_TABLE .'
* @option string type = 'file'
* @option int position
*/
-function ws_images_add_chunk($params, &$service)
+function ws_images_add_chunk($params, $service)
{
global $conf;
@@ -877,7 +879,7 @@ function ws_images_add_chunk($params, &$service)
* @option string type = 'file'
* @option string sum
*/
-function ws_images_addFile($params, &$service)
+function ws_images_addFile($params, $service)
{
ws_logfile(__FUNCTION__.', input : '.var_export($params, true));
@@ -970,7 +972,7 @@ SELECT
* @option bool check_uniqueness
* @option int image_id (optional)
*/
-function ws_images_add($params, &$service)
+function ws_images_add($params, $service)
{
global $conf, $user;
@@ -1133,7 +1135,7 @@ SELECT id, name, permalink
* @option string|string[] tags
* @option int image_id (optional)
*/
-function ws_images_addSimple($params, &$service)
+function ws_images_addSimple($params, $service)
{
global $conf;
@@ -1247,7 +1249,7 @@ SELECT id, name, permalink
* @option string md5sum_list (optional)
* @option string filename_list (optional)
*/
-function ws_images_exist($params, &$service)
+function ws_images_exist($params, $service)
{
ws_logfile(__FUNCTION__.' '.var_export($params, true));
@@ -1320,7 +1322,7 @@ SELECT id, file
* @option int image_id
* @option string file_sum
*/
-function ws_images_checkFiles($params, &$service)
+function ws_images_checkFiles($params, $service)
{
ws_logfile(__FUNCTION__.', input : '.var_export($params, true));
@@ -1392,7 +1394,7 @@ SELECT path
* @option string single_value_mode
* @option string multiple_value_mode
*/
-function ws_images_setInfo($params, &$service)
+function ws_images_setInfo($params, $service)
{
include_once(PHPWG_ROOT_PATH.'admin/include/functions.php');
@@ -1528,7 +1530,7 @@ SELECT *
* @option int|int[] image_id
* @option string pwg_token
*/
-function ws_images_delete($params, &$service)
+function ws_images_delete($params, $service)
{
if (get_pwg_token() != $params['pwg_token'])
{
@@ -1565,7 +1567,7 @@ function ws_images_delete($params, &$service)
* Checks if Piwigo is ready for upload
* @param mixed[] $params
*/
-function ws_images_checkUpload($params, &$service)
+function ws_images_checkUpload($params, $service)
{
include_once(PHPWG_ROOT_PATH.'admin/include/functions_upload.inc.php');