aboutsummaryrefslogtreecommitdiffstats
path: root/include/ws_functions/pwg.categories.php
diff options
context:
space:
mode:
Diffstat (limited to 'include/ws_functions/pwg.categories.php')
-rw-r--r--include/ws_functions/pwg.categories.php94
1 files changed, 93 insertions, 1 deletions
diff --git a/include/ws_functions/pwg.categories.php b/include/ws_functions/pwg.categories.php
index b2cfc2dd4..5bafaf5da 100644
--- a/include/ws_functions/pwg.categories.php
+++ b/include/ws_functions/pwg.categories.php
@@ -2,7 +2,7 @@
// +-----------------------------------------------------------------------+
// | Piwigo - a PHP based photo gallery |
// +-----------------------------------------------------------------------+
-// | Copyright(C) 2008-2014 Piwigo Team http://piwigo.org |
+// | Copyright(C) 2008-2016 Piwigo Team http://piwigo.org |
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
// +-----------------------------------------------------------------------+
@@ -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