mirror of
https://github.com/Piwigo/Piwigo.git
synced 2026-03-28 17:42:57 +01:00
feature 2999: documentation of admin/include/functions.php
git-svn-id: http://piwigo.org/svn/trunk@26807 68402e56-0260-453c-a942-63ccdbb3a9ee
This commit is contained in:
@@ -21,11 +21,19 @@
|
||||
// | USA. |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
||||
include(PHPWG_ROOT_PATH.'admin/include/functions_metadata.php');
|
||||
/**
|
||||
* @package functions\admin\___
|
||||
*/
|
||||
|
||||
// The function delete_site deletes a site and call the function
|
||||
// delete_categories for each primary category of the site
|
||||
function delete_site( $id )
|
||||
include_once(PHPWG_ROOT_PATH.'admin/include/functions_metadata.php');
|
||||
|
||||
|
||||
/**
|
||||
* 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
|
||||
* Returns an array containing sub-directories which are potentially
|
||||
* a category.
|
||||
* Directories named ".svn", "thumbnail", "pwg_high" or "pwg_representative"
|
||||
* are omitted.
|
||||
*
|
||||
* directories nammed "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
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user