diff options
author | plegall <plg@piwigo.org> | 2015-12-01 12:08:10 +0100 |
---|---|---|
committer | plegall <plg@piwigo.org> | 2015-12-01 12:08:10 +0100 |
commit | be6afad731b965a75d9fe0b254ea72858a4deec4 (patch) | |
tree | 0c061688186e3ab9298cf4e64deabc996b8b27bb /include/ws_functions | |
parent | 27389102d1275cdefcaee9c5a4a93297fc797b8c (diff) |
fixes #377 use Ajax calls to refresh/delete album thumbnail
Diffstat (limited to 'include/ws_functions')
-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..4fece14ec 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 COUNT(*) + FROM '. CATEGORIES_TABLE .' + WHERE id = '. $params['category_id'] .' +;'; + list($count) = pwg_db_fetch_row(pwg_query($query)); + if ($count == 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 COUNT(*) + FROM '. CATEGORIES_TABLE .' + WHERE id = '. $params['category_id'] .' +;'; + list($count) = pwg_db_fetch_row(pwg_query($query)); + if ($count == 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 |