aboutsummaryrefslogtreecommitdiffstats
path: root/admin
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--admin/include/functions.php447
1 files changed, 260 insertions, 187 deletions
diff --git a/admin/include/functions.php b/admin/include/functions.php
index ba6cdf40d..71c164822 100644
--- a/admin/include/functions.php
+++ b/admin/include/functions.php
@@ -21,11 +21,19 @@
// | USA. |
// +-----------------------------------------------------------------------+
-include(PHPWG_ROOT_PATH.'admin/include/functions_metadata.php');
+/**
+ * @package functions\admin\___
+ */
+
+include_once(PHPWG_ROOT_PATH.'admin/include/functions_metadata.php');
+
-// The function delete_site deletes a site and call the function
-// delete_categories for each primary category of the site
-function delete_site( $id )
+/**
+ * Deletes a site and call delete_categories for each primary category of the site
+ *
+ * @param int $id
+ */
+function delete_site($id)
{
// destruction of the categories of the site
$query = '
@@ -44,18 +52,19 @@ DELETE FROM '.SITES_TABLE.'
pwg_query($query);
}
-
-// The function delete_categories deletes the categories identified by the
-// (numeric) key of the array $ids. It also deletes (in the database) :
-// - all the elements physically linked to the category (delete_elements, see further)
-// - all the links between elements and this category
-// - all the restrictions linked to the category
-// The function works recursively.
-//
-// the $photo_deletion_mode is for photos virtually linked to the categorty
-// * no_delete : delete no photo, may create orphans
-// * delete_orphans : delete photos that are no longer linked to any category
-// * force_delete : delete photos even if they are linked to another category
+/**
+ * Recursively deletes one or more categories.
+ * It also deletes :
+ * - all the elements physically linked to the category (with delete_elements)
+ * - all the links between elements and this category
+ * - all the restrictions linked to the category
+ *
+ * @param int[] $ids
+ * @param string $photo_deletion_mode
+ * - no_delete : delete no photo, may create orphans
+ * - delete_orphans : delete photos that are no longer linked to any category
+ * - force_delete : delete photos even if they are linked to another category
+ */
function delete_categories($ids, $photo_deletion_mode='no_delete')
{
if (count($ids) == 0)
@@ -156,8 +165,12 @@ DELETE FROM '.USER_CACHE_CATEGORIES_TABLE.'
trigger_action('delete_categories', $ids);
}
-// Deletes all files (on disk) related to given image ids
-// @return image ids where files are deleted successfully
+/**
+ * Deletes all files (on disk) related to given image ids.
+ *
+ * @param int[] $ids
+ * @return 0|int[] image ids where files were successfully deleted
+ */
function delete_element_files($ids)
{
global $conf;
@@ -219,12 +232,18 @@ SELECT
return $new_ids;
}
-// The function delete_elements deletes the elements identified by the
-// (numeric) values of the array $ids. It also deletes (in the database) :
-// - all the comments related to elements
-// - all the links between categories and elements
-// - all the favorites associated to elements
-// @return number of deleted elements
+/**
+ * Deletes elements from database.
+ * It also deletes :
+ * - all the comments related to elements
+ * - all the links between categories/tags and elements
+ * - all the favorites/rates associated to elements
+ * - removes elements from caddie
+ *
+ * @param int[] $ids
+ * @param bool $physical_deletion
+ * @return int number of deleted elements
+ */
function delete_elements($ids, $physical_deletion=false)
{
if (count($ids) == 0)
@@ -241,60 +260,55 @@ function delete_elements($ids, $physical_deletion=false)
return 0;
}
}
+
+ $ids_str = wordwrap(implode(', ', $ids), 80, "\n");
// destruction of the comments on the image
$query = '
DELETE FROM '.COMMENTS_TABLE.'
- WHERE image_id IN (
-'.wordwrap(implode(', ', $ids), 80, "\n").')
+ WHERE image_id IN ('. $ids_str .')
;';
pwg_query($query);
- // destruction of the links between images and this category
+ // destruction of the links between images and categories
$query = '
DELETE FROM '.IMAGE_CATEGORY_TABLE.'
- WHERE image_id IN (
-'.wordwrap(implode(', ', $ids), 80, "\n").')
+ WHERE image_id IN ('. $ids_str .')
;';
pwg_query($query);
// destruction of the links between images and tags
$query = '
DELETE FROM '.IMAGE_TAG_TABLE.'
- WHERE image_id IN (
-'.wordwrap(implode(', ', $ids), 80, "\n").')
+ WHERE image_id IN ('. $ids_str .')
;';
pwg_query($query);
// destruction of the favorites associated with the picture
$query = '
DELETE FROM '.FAVORITES_TABLE.'
- WHERE image_id IN (
-'.wordwrap(implode(', ', $ids), 80, "\n").')
+ WHERE image_id IN ('. $ids_str .')
;';
pwg_query($query);
// destruction of the rates associated to this element
$query = '
DELETE FROM '.RATE_TABLE.'
- WHERE element_id IN (
-'.wordwrap(implode(', ', $ids), 80, "\n").')
+ WHERE element_id IN ('. $ids_str .')
;';
pwg_query($query);
- // destruction of the rates associated to this element
+ // destruction of the caddie associated to this element
$query = '
DELETE FROM '.CADDIE_TABLE.'
- WHERE element_id IN (
-'.wordwrap(implode(', ', $ids), 80, "\n").')
+ WHERE element_id IN ('. $ids_str .')
;';
pwg_query($query);
// destruction of the image
$query = '
DELETE FROM '.IMAGES_TABLE.'
- WHERE id IN (
-'.wordwrap(implode(', ', $ids), 80, "\n").')
+ WHERE id IN ('. $ids_str .')
;';
pwg_query($query);
@@ -303,8 +317,7 @@ DELETE FROM '.IMAGES_TABLE.'
SELECT
id
FROM '.CATEGORIES_TABLE.'
- WHERE representative_picture_id IN (
-'.wordwrap(implode(', ', $ids), 80, "\n").')
+ WHERE representative_picture_id IN ('. $ids_str .')
;';
$category_ids = array_from_query($query, 'id');
if (count($category_ids) > 0)
@@ -316,13 +329,13 @@ SELECT
return count($ids);
}
-// The delete_user function delete a user identified by the $user_id
-// It also deletes :
-// - all the access linked to this user
-// - all the links to any group
-// - all the favorites linked to this user
-// - calculated permissions linked to the user
-// - all datas about notifications for the user
+/**
+ * Deletes an user.
+ * It also deletes all related data (accesses, favorites, permissions, etc.)
+ * @todo : accept array input
+ *
+ * @param int $user_id
+ */
function delete_user($user_id)
{
global $conf;
@@ -356,7 +369,7 @@ DELETE FROM '.$table.'
pwg_query($query);
}
- // destruction of the user
+ // purge of sessions
$query = '
DELETE FROM '.SESSIONS_TABLE.'
WHERE data LIKE \'pwg_uid|i:'.(int)$user_id.';%\'
@@ -415,10 +428,9 @@ SELECT
/**
* Verifies that the representative picture really exists in the db and
- * picks up a random represantive if possible and based on config.
+ * picks up a random representative if possible and based on config.
*
- * @param mixed category id
- * @returns void
+ * @param 'all'|int|int[] $ids
*/
function update_category($ids = 'all')
{
@@ -485,9 +497,8 @@ SELECT DISTINCT id
}
/**
- * check and repair images integrity
- *
- * TODO see delete_elements function to check all linked tables
+ * Checks and repairs IMAGE_CATEGORY_TABLE integrity.
+ * Removes all entries from the table which correspond to a deleted image.
*/
function images_integrity()
{
@@ -513,18 +524,18 @@ DELETE
}
/**
- * returns an array containing sub-directories which can be a category,
- * recursive by default
- *
- * directories nammed "thumbnail", "pwg_high" or "pwg_representative" are
- * omitted
+ * Returns an array containing sub-directories which are potentially
+ * a category.
+ * Directories named ".svn", "thumbnail", "pwg_high" or "pwg_representative"
+ * are omitted.
*
- * @param string $basedir
- * @return array
+ * @param string $basedir (eg: ./galleries)
+ * @return string[]
*/
function get_fs_directories($path, $recursive = true)
{
$dirs = array();
+ $path = rtrim($path, '/');
if (is_dir($path))
{
@@ -555,9 +566,8 @@ function get_fs_directories($path, $recursive = true)
}
/**
- * order categories (update categories.rank and global_rank database fields)
- * so that rank field are consecutive integers starting at 1 for each child
- * @return void
+ * Orders categories (update categories.rank and global_rank database fields)
+ * so that rank field are consecutive integers starting at 1 for each child.
*/
function update_global_rank()
{
@@ -623,22 +633,21 @@ SELECT id, id_uppercat, uppercats, rank, global_rank
}
/**
- * change the visible property on a set of categories
+ * Change the **visible** property on a set of categories.
*
- * @param array categories
- * @param string value
- * @return void
+ * @param int[] $categories
+ * @param boolean|string $value
*/
function set_cat_visible($categories, $value)
{
- if (!in_array($value, array('true', 'false')))
+ if ( ($value = filter_var($value, FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE)) === null )
{
trigger_error("set_cat_visible invalid param $value", E_USER_WARNING);
return false;
}
// unlocking a category => all its parent categories become unlocked
- if ($value == 'true')
+ if ($value)
{
$uppercats = get_uppercat_ids($categories);
$query = '
@@ -648,7 +657,7 @@ UPDATE '.CATEGORIES_TABLE.'
pwg_query($query);
}
// locking a category => all its child categories become locked
- if ($value == 'false')
+ else
{
$subcats = get_subcat_ids($categories);
$query = '
@@ -660,11 +669,10 @@ UPDATE '.CATEGORIES_TABLE.'
}
/**
- * change the status property on a set of categories : private or public
+ * Change the **status** property on a set of categories : private or public.
*
- * @param array categories
- * @param string value
- * @return void
+ * @param int[] $categories
+ * @param string $value
*/
function set_cat_status($categories, $value)
{
@@ -698,10 +706,10 @@ UPDATE '.CATEGORIES_TABLE.'
}
/**
- * returns all uppercats category ids of the given category ids
+ * Returns all uppercats category ids of the given category ids.
*
- * @param array cat_ids
- * @return array
+ * @param int[] $cat_ids
+ * @return int[]
*/
function get_uppercat_ids($cat_ids)
{
@@ -729,9 +737,9 @@ SELECT uppercats
}
/**
- * set a new random representant to the categories
+ * Set a new random representant to the categories.
*
- * @param array categories
+ * @param int[] $categories
*/
function set_random_representant($categories)
{
@@ -764,10 +772,10 @@ SELECT image_id
}
/**
- * returns the fulldir for each given category id
+ * Returns the fulldir for each given category id.
*
- * @param array cat_ids
- * @return array
+ * @param int[] intcat_ids
+ * @return string[]
*/
function get_fulldirs($cat_ids)
{
@@ -816,11 +824,10 @@ SELECT id, uppercats, site_id
}
/**
- * returns an array with all file system files according to
- * $conf['file_ext']
+ * Returns an array with all file system files according to $conf['file_ext']
*
* @param string $path
- * @param bool recursive
+ * @param bool $recursive
* @return array
*/
function get_fs($path, $recursive = true)
@@ -902,14 +909,12 @@ function get_fs($path, $recursive = true)
}
/**
- * synchronize base users list and related users list
+ * Synchronize base users list and related users list.
*
- * compares and synchronizes base users table (USERS_TABLE) with its child
+ * Compares and synchronizes base users table (USERS_TABLE) with its child
* tables (USER_INFOS_TABLE, USER_ACCESS, USER_CACHE, USER_GROUP) : each
* base user must be present in child tables, users in child tables not
* present in base table must be deleted.
- *
- * @return void
*/
function sync_users()
{
@@ -971,10 +976,7 @@ DELETE
}
/**
- * updates categories.uppercats field based on categories.id +
- * categories.id_uppercat
- *
- * @return void
+ * Updates categories.uppercats field based on categories.id + categories.id_uppercat
*/
function update_uppercats()
{
@@ -1010,9 +1012,7 @@ SELECT id, id_uppercat, uppercats
}
/**
- * update images.path field
- *
- * @return void
+ * Update images.path field base on images.file and storage categories fulldirs.
*/
function update_path()
{
@@ -1036,12 +1036,11 @@ UPDATE '.IMAGES_TABLE.'
}
/**
- * change the parent category of the given categories. The categories are
+ * Change the parent category of the given categories. The categories are
* supposed virtual.
*
- * @param array category identifiers
- * @param int parent category identifier
- * @return void
+ * @param int[] $category_ids
+ * @param int $new_parent (-1 for root)
*/
function move_categories($category_ids, $new_parent = -1)
{
@@ -1095,11 +1094,10 @@ SELECT uppercats
}
}
- $tables =
- array(
- USER_ACCESS_TABLE => 'user_id',
- GROUP_ACCESS_TABLE => 'group_id'
- );
+ $tables = array(
+ USER_ACCESS_TABLE => 'user_id',
+ GROUP_ACCESS_TABLE => 'group_id'
+ );
$query = '
UPDATE '.CATEGORIES_TABLE.'
@@ -1175,11 +1173,17 @@ DELETE FROM '.$table.'
}
/**
- * create a virtual category
+ * Create a virtual category.
*
- * @param string category name
- * @param int parent category id
- * @return array with ('info' and 'id') or ('error') key
+ * @param string $category_name
+ * @param int $parent_id
+ * @param array $options
+ * - boolean commentable
+ * - boolean visible
+ * - string status
+ * - string comment
+ * - boolean inherit
+ * @return array ('info', 'id') or ('error')
*/
function create_virtual_category($category_name, $parent_id=null, $options=array())
{
@@ -1322,12 +1326,11 @@ SELECT id, uppercats, global_rank, visible, status
}
/**
- * Set tags to an image. Warning: given tags are all tags associated to the
- * image, not additionnal tags.
+ * Set tags to an image.
+ * Warning: given tags are all tags associated to the image, not additionnal tags.
*
- * @param array tag ids
- * @param int image id
- * @return void
+ * @param int[] $tags
+ * @param int $image_id
*/
function set_tags($tags, $image_id)
{
@@ -1337,9 +1340,8 @@ function set_tags($tags, $image_id)
/**
* Add new tags to a set of images.
*
- * @param array tag ids
- * @param array image ids
- * @return void
+ * @param int[] $tags
+ * @param int[] $images
*/
function add_tags($tags, $images)
{
@@ -1378,7 +1380,9 @@ DELETE
}
/**
+ * Delete tags and tags associations.
*
+ * @param int[] $tag_ids
*/
function delete_tags($tag_ids)
{
@@ -1409,7 +1413,13 @@ DELETE
invalidate_user_cache_nb_tags();
}
-function tag_id_from_tag_name($tag_name)
+/**
+ * Returns a tag id from its name. If nothing found, create a new tag.
+ *
+ * @param string $tag_name
+ * @return int
+ */
+function tag_id_from_tag_name($tag_name, $create=true)
{
global $page;
@@ -1454,6 +1464,9 @@ SELECT id
)
)
);
+
+ invalidate_user_cache_nb_tags();
+
$page['tag_id_from_tag_name_cache'][$tag_name] = pwg_db_insert_id(TAGS_TABLE);
return $page['tag_id_from_tag_name_cache'][$tag_name];
}
@@ -1464,6 +1477,11 @@ SELECT id
return $page['tag_id_from_tag_name_cache'][$tag_name];
}
+/**
+ * Set tags of images. Overwrites all existing associations.
+ *
+ * @param array $tags_of - keys are image ids, values are array of tag ids
+ */
function set_tags_of($tags_of)
{
if (count($tags_of) > 0)
@@ -1503,12 +1521,10 @@ DELETE
/**
* Associate a list of images to a list of categories.
+ * The function will not duplicate links and will preserve ranks.
*
- * The function will not duplicate links and will preserve ranks
- *
- * @param array images
- * @param array categories
- * @return void
+ * @param int[] $images
+ * @param int[] $categories
*/
function associate_images_to_categories($images, $categories)
{
@@ -1595,12 +1611,10 @@ SELECT
/**
* Dissociate images from all old categories except their storage category and
* associate to new categories.
+ * This function will preserve ranks.
*
- * This function will preserve ranks
- *
- * @param array images
- * @param array categories
- * @return void
+ * @param int[] $images
+ * @param int[] $categories
*/
function move_images_to_categories($images, $categories)
{
@@ -1639,9 +1653,8 @@ DELETE '.IMAGE_CATEGORY_TABLE.'.*
* Associate images associated to a list of source categories to a list of
* destination categories.
*
- * @param array sources
- * @param array destinations
- * @return void
+ * @param int[] $sources
+ * @param int[] $destinations
*/
function associate_categories_to_categories($sources, $destinations)
{
@@ -1663,8 +1676,7 @@ SELECT image_id
/**
* Refer main Piwigo URLs (currently PHPWG_DOMAIN domain)
*
- * @param void
- * @return array like $conf['links']
+ * @return string[]
*/
function pwg_URL()
{
@@ -1680,7 +1692,7 @@ function pwg_URL()
}
/**
- * Invalidates cahed data (permissions and category counts) for all users.
+ * Invalidates cached data (permissions and category counts) for all users.
*/
function invalidate_user_cache($full = true)
{
@@ -1703,11 +1715,14 @@ UPDATE '.USER_CACHE_TABLE.'
trigger_action('invalidate_user_cache', $full);
}
-
+/**
+ * Invalidates cached tags counter for all users.
+ */
function invalidate_user_cache_nb_tags()
{
global $user;
unset($user['nb_available_tags']);
+
$query = '
UPDATE '.USER_CACHE_TABLE.'
SET nb_available_tags = NULL';
@@ -1715,9 +1730,11 @@ UPDATE '.USER_CACHE_TABLE.'
}
/**
- * adds the caracter set to a create table sql query.
- * all CREATE TABLE queries must call this function
- * @param string query - the sql query
+ * Adds the caracter set to a create table sql query.
+ * All CREATE TABLE queries must call this function
+ *
+ * @param string $query
+ * @return string
*/
function create_table_add_character_set($query)
{
@@ -1762,9 +1779,11 @@ function create_table_add_character_set($query)
}
/**
- * Returns array use on template with html_options method
- * @param Min and Max access to use
- * @return array of user access level
+ * Returns access levels as array used on template with html_options functions.
+ *
+ * @param int $MinLevelAccess
+ * @param int $MaxLevelAccess
+ * @return array
*/
function get_user_access_level_html_options($MinLevelAccess = ACCESS_FREE, $MaxLevelAccess = ACCESS_CLOSED)
{
@@ -1777,9 +1796,11 @@ function get_user_access_level_html_options($MinLevelAccess = ACCESS_FREE, $MaxL
}
/**
- * returns a list of templates currently available in template-extension
+ * returns a list of templates currently available in template-extension.
* Each .tpl file is extracted from template-extension.
- * @return array
+ *
+ * @param string $start (internal use)
+ * @return string[]
*/
function get_extents($start='')
{
@@ -1804,6 +1825,12 @@ function get_extents($start='')
return $extents;
}
+/**
+ * Create a new tag.
+ *
+ * @param string $tag_name
+ * @return array ('id', info') or ('error')
+ */
function create_tag($tag_name)
{
// does the tag already exists?
@@ -1841,11 +1868,10 @@ SELECT id
/**
* Is the category accessible to the (Admin) user ?
- *
* Note : if the user is not authorized to see this category, category jump
* will be replaced by admin cat_modify page
*
- * @param int category id to verify
+ * @param int $category_id
* @return bool
*/
function cat_admin_access($category_id)
@@ -1862,10 +1888,14 @@ function cat_admin_access($category_id)
}
/**
- * Retrieve data from external URL
+ * Retrieve data from external URL.
*
- * @param string $src: URL
- * @param global $dest: can be a file ressource or string
+ * @param string $src
+ * @param string|Ressource $dest - can be a file ressource or string
+ * @param array $get_data - data added to request url
+ * @param array $post_data - data transmitted with POST
+ * @param string $user_agent
+ * @param int $step (internal use)
* @return bool
*/
function fetchRemote($src, &$dest, $get_data=array(), $post_data=array(), $user_agent='Piwigo', $step=0)
@@ -2019,13 +2049,11 @@ function fetchRemote($src, &$dest, $get_data=array(), $post_data=array(), $user_
return true;
}
-
/**
- * returns the groupname corresponding to the given group identifier if
- * exists
+ * Returns the groupname corresponding to the given group identifier if exists.
*
- * @param int group_id
- * @return mixed
+ * @param int $group_id
+ * @return string|false
*/
function get_groupname($group_id)
{
@@ -2048,10 +2076,10 @@ SELECT name
}
/**
- * returns the username corresponding to the given user identifier if exists
+ * Returns the username corresponding to the given user identifier if exists.
*
- * @param int user_id
- * @return mixed
+ * @param int $user_id
+ * @return string|false
*/
function get_username($user_id)
{
@@ -2075,13 +2103,22 @@ SELECT '.$conf['user_fields']['username'].'
return stripslashes($username);
}
-function get_newsletter_subscribe_base_url($language) {
+/**
+ * Get url on piwigo.org for newsletter subscription
+ *
+ * @param string $language (unused)
+ * @return string
+ */
+function get_newsletter_subscribe_base_url($language='en_UK')
+{
return PHPWG_URL.'/announcement/subscribe/';
}
/**
- * Accordion menus need to know which section to open by default when
- * loading the page
+ * Return admin menu id for accordion.
+ *
+ * @param string $menu_page
+ * @return int
*/
function get_active_menu($menu_page)
{
@@ -2136,14 +2173,19 @@ function get_active_menu($menu_page)
case 'theme':
case 'languages':
return 5;
+
+ default:
+ return 0;
}
- return 0;
}
-/*
- * get tags list from SQL query (ids are surrounded by ~~, for get_tag_ids())
- * @param string: query
- * @param boolean: only_user_language, if true, only local name is returned for multilingual tags
+/**
+ * Get tags list from SQL query (ids are surrounded by ~~, for get_tag_ids()).
+ *
+ * @param string $query
+ * @param boolean $only_user_language - if true, only local name is returned for
+ * multilingual tags (if ExtendedDescription plugin is active)
+ * @return array[] ('id', 'name')
*/
function get_taglist($query, $only_user_language=true)
{
@@ -2185,18 +2227,20 @@ function get_taglist($query, $only_user_language=true)
return $taglist;
}
-/*
- * get tags ids from a list of raw tags (existing tags or new tags)
- * @param mixed: raw_tags, array or comma separated string
- * @param boolean: allow_create
+/**
+ * Get tags ids from a list of raw tags (existing tags or new tags).
+ *
+ * In $raw_tags we receive something like array('~~6~~', '~~59~~', 'New
+ * tag', 'Another new tag') The ~~34~~ means that it is an existing
+ * tag. We added the surrounding ~~ to permit creation of tags like "10"
+ * or "1234" (numeric characters only)
+ *
+ * @param string|string[] $raw_tags - array or comma separated string
+ * @param boolean $allow_create
+ * @return int[]
*/
function get_tag_ids($raw_tags, $allow_create=true)
{
- // In $raw_tags we receive something like array('~~6~~', '~~59~~', 'New
- // tag', 'Another new tag') The ~~34~~ means that it is an existing
- // tag. I've added the surrounding ~~ to permit creation of tags like "10"
- // or "1234" (numeric characters only)
-
$tag_ids = array();
if (!is_array($raw_tags))
{
@@ -2219,11 +2263,16 @@ function get_tag_ids($raw_tags, $allow_create=true)
return $tag_ids;
}
-/** returns the argument_ids array with new sequenced keys based on related
+/**
+ * Returns the argument_ids array with new sequenced keys based on related
* names. Sequence is not case sensitive.
- * Warning: By definition, this function breaks original keys
+ * Warning: By definition, this function breaks original keys.
+ *
+ * @param int[] $elements_ids
+ * @param string[] $name - names of elements, indexed by ids
+ * @return int[]
*/
-function order_by_name($element_ids,$name)
+function order_by_name($element_ids, $name)
{
$ordered_element_ids = array();
foreach ($element_ids as $k_id => $element_id)
@@ -2235,14 +2284,18 @@ function order_by_name($element_ids,$name)
return $ordered_element_ids;
}
+/**
+ * Grant access to a list of categories for a list of users.
+ *
+ * @param int[] $category_ids
+ * @param int[] $user_ids
+ */
function add_permission_on_category($category_ids, $user_ids)
{
- // array-ify categories and users
if (!is_array($category_ids))
{
$category_ids = array($category_ids);
}
-
if (!is_array($user_ids))
{
$user_ids = array($user_ids);
@@ -2294,7 +2347,12 @@ SELECT id
);
}
-
+/**
+ * Returns the list of admin users.
+ *
+ * @param boolean $include_webmaster
+ * @return int[]
+ */
function get_admins($include_webmaster=true)
{
$status_list = array('admin');
@@ -2314,7 +2372,11 @@ SELECT
return array_from_query($query, 'user_id');
}
-/** delete all derivative files for one or several types */
+/**
+ * Delete all derivative files for one or several types
+ *
+ * @param 'all'|int[] $types
+ */
function clear_derivative_cache($types='all')
{
if ($types === 'all')
@@ -2371,6 +2433,10 @@ function clear_derivative_cache($types='all')
}
}
+/**
+ * Used by clear_derivative_cache()
+ * @ignore
+ */
function clear_derivative_cache_rec($path, $pattern)
{
$rmdir = true;
@@ -2417,6 +2483,12 @@ function clear_derivative_cache_rec($path, $pattern)
}
}
+/**
+ * Deletes derivatives of a particular element
+ *
+ * @param array $infos ('path'[, 'representative_ext'])
+ * @param 'all'|int $type
+ */
function delete_element_derivatives($infos, $type='all')
{
$path = $infos['path'];
@@ -2448,10 +2520,10 @@ function delete_element_derivatives($infos, $type='all')
}
/**
- * returns an array contening sub-directories, excluding ".svn"
+ * Returns an array containing sub-directories, excluding ".svn"
*
- * @param string $dir
- * @return array
+ * @param string $directory
+ * @return string[]
*/
function get_dirs($directory)
{
@@ -2474,7 +2546,8 @@ function get_dirs($directory)
}
/**
- * recursively delete a directory
+ * Recursively delete a directory.
+ *
* @param string $path
* @param string $trash_path, try to move the directory to this path if it cannot be delete
*/