aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorplegall <plg@piwigo.org>2015-12-03 16:10:50 +0100
committerplegall <plg@piwigo.org>2015-12-03 16:10:50 +0100
commit5be28962a16ac6a2694d0c0e1c6bff3ef7ec1100 (patch)
tree33decf311572211a7d535eb751692f3d21d77c26 /include
parent27389102d1275cdefcaee9c5a4a93297fc797b8c (diff)
parent2080897f3b87ac1c1653232491c8bba56ede60f7 (diff)
Merge branch 'feature/377-album-thumbnail'
Diffstat (limited to 'include')
-rw-r--r--include/ws_functions/pwg.categories.php92
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