diff options
author | plegall <plg@piwigo.org> | 2015-12-03 16:10:50 +0100 |
---|---|---|
committer | plegall <plg@piwigo.org> | 2015-12-03 16:10:50 +0100 |
commit | 5be28962a16ac6a2694d0c0e1c6bff3ef7ec1100 (patch) | |
tree | 33decf311572211a7d535eb751692f3d21d77c26 /include | |
parent | 27389102d1275cdefcaee9c5a4a93297fc797b8c (diff) | |
parent | 2080897f3b87ac1c1653232491c8bba56ede60f7 (diff) |
Merge branch 'feature/377-album-thumbnail'
Diffstat (limited to 'include')
-rw-r--r-- | include/ws_functions/pwg.categories.php | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/include/ws_functions/pwg.categories.php b/include/ws_functions/pwg.categories.php index b2cfc2dd4..07e64c803 100644 --- a/include/ws_functions/pwg.categories.php +++ b/include/ws_functions/pwg.categories.php @@ -663,6 +663,98 @@ UPDATE '. USER_CACHE_CATEGORIES_TABLE .' /** * API method + * + * Deletes the album thumbnail. Only possible if + * $conf['allow_random_representative'] + * + * @param mixed[] $params + * @option int category_id + */ +function ws_categories_deleteRepresentative($params, &$service) +{ + global $conf; + + // does the category really exist? + $query = ' +SELECT id + FROM '. CATEGORIES_TABLE .' + WHERE id = '. $params['category_id'] .' +;'; + $result = pwg_query($query); + if (pwg_db_num_rows($result) == 0) + { + return new PwgError(404, 'category_id not found'); + } + + if (!$conf['allow_random_representative']) + { + return new PwgError(401, 'not permitted'); + } + + $query = ' +UPDATE '.CATEGORIES_TABLE.' + SET representative_picture_id = NULL + WHERE id = '.$params['category_id'].' +;'; + pwg_query($query); +} + +/** + * API method + * + * Find a new album thumbnail. + * + * @param mixed[] $params + * @option int category_id + */ +function ws_categories_refreshRepresentative($params, &$service) +{ + global $conf; + + // does the category really exist? + $query = ' +SELECT id + FROM '. CATEGORIES_TABLE .' + WHERE id = '. $params['category_id'] .' +;'; + $result = pwg_query($query); + if (pwg_db_num_rows($result) == 0) + { + return new PwgError(404, 'category_id not found'); + } + + $query = ' +SELECT + DISTINCT category_id + FROM '.IMAGE_CATEGORY_TABLE.' + WHERE category_id = '.$params['category_id'].' + LIMIT 1 +;'; + $result = pwg_query($query); + $has_images = pwg_db_num_rows($result) > 0 ? true : false; + + if (!$has_images) + { + return new PwgError(401, 'not permitted'); + } + + include_once(PHPWG_ROOT_PATH.'admin/include/functions.php'); + + set_random_representant(array($params['category_id'])); + + // return url of the new representative + $query = ' +SELECT * + FROM '.CATEGORIES_TABLE.' + WHERE id = '.$params['category_id'].' +;'; + $category = pwg_db_fetch_assoc(pwg_query($query)); + + return get_category_representant_properties($category['representative_picture_id']); +} + +/** + * API method * Deletes a category * @param mixed[] $params * @option string|int[] category_id |