diff options
Diffstat (limited to 'engine')
| -rw-r--r-- | engine/lib/entities.php | 434 | ||||
| -rw-r--r-- | engine/lib/private_settings.php | 443 | ||||
| -rw-r--r-- | engine/start.php | 6 | 
3 files changed, 446 insertions, 437 deletions
| diff --git a/engine/lib/entities.php b/engine/lib/entities.php index 84dd7820e..b277f6f25 100644 --- a/engine/lib/entities.php +++ b/engine/lib/entities.php @@ -2433,440 +2433,6 @@ function elgg_list_registered_entities($options) {  }  /** - * Get entities based on their private data. - * - * @param string  $name           The name of the setting - * @param string  $value          The value of the setting - * @param string  $type           The type of entity (eg "user", "object" etc) - * @param string  $subtype        The arbitrary subtype of the entity - * @param int     $owner_guid     The GUID of the owning user - * @param string  $order_by       The field to order by; by default, time_created desc - * @param int     $limit          The number of entities to return; 10 by default - * @param int     $offset         The indexing offset, 0 by default - * @param boolean $count          Return a count of entities - * @param int     $site_guid      The site to get entities for. 0 for current, -1 for any - * @param mixed   $container_guid The container(s) GUIDs - * - * @return array A list of entities. - * @todo deprecate - */ -function get_entities_from_private_setting($name = "", $value = "", $type = "", $subtype = "", -$owner_guid = 0, $order_by = "", $limit = 10, $offset = 0, $count = false, $site_guid = 0, -$container_guid = null) { - -	global $CONFIG; - -	if ($subtype === false || $subtype === null || $subtype === 0) { -		return false; -	} - -	$name = sanitise_string($name); -	$value = sanitise_string($value); - -	if ($order_by == "") { -		$order_by = "e.time_created desc"; -	} -	$order_by = sanitise_string($order_by); -	$limit = (int)$limit; -	$offset = (int)$offset; -	$site_guid = (int) $site_guid; -	if ($site_guid == 0) { -		$site_guid = $CONFIG->site_guid; -	} - -	$where = array(); - -	if (is_array($type)) { -		$tempwhere = ""; -		if (sizeof($type)) { -			foreach ($type as $typekey => $subtypearray) { -				foreach ($subtypearray as $subtypeval) { -					$typekey = sanitise_string($typekey); -					if (!empty($subtypeval)) { -						if (!$subtypeval = (int) get_subtype_id($typekey, $subtypeval)) { -							return false; -						} -					} else { -						$subtypeval = 0; -					} -					if (!empty($tempwhere)) { -						$tempwhere .= " or "; -					} -					$tempwhere .= "(e.type = '{$typekey}' and e.subtype = {$subtypeval})"; -				} -			} -		} -		if (!empty($tempwhere)) { -			$where[] = "({$tempwhere})"; -		} -	} else { -		$type = sanitise_string($type); -		if ($subtype AND !$subtype = get_subtype_id($type, $subtype)) { -			return false; -		} - -		if ($type != "") { -			$where[] = "e.type='$type'"; -		} -		if ($subtype !== "") { -			$where[] = "e.subtype=$subtype"; -		} -	} - -	if ($owner_guid != "") { -		if (!is_array($owner_guid)) { -			$owner_array = array($owner_guid); -			$owner_guid = (int) $owner_guid; -		} else if (sizeof($owner_guid) > 0) { -			$owner_array = array_map('sanitise_int', $owner_guid); -		} -		if (is_null($container_guid)) { -			$container_guid = $owner_array; -		} -	} - -	if ($site_guid > 0) { -		$where[] = "e.site_guid = {$site_guid}"; -	} - -	if (!is_null($container_guid)) { -		if (is_array($container_guid)) { -			foreach ($container_guid as $key => $val) { -				$container_guid[$key] = (int) $val; -			} -			$where[] = "e.container_guid in (" . implode(",", $container_guid) . ")"; -		} else { -			$container_guid = (int) $container_guid; -			$where[] = "e.container_guid = {$container_guid}"; -		} -	} - -	if ($name != "") { -		$where[] = "s.name = '$name'"; -	} - -	if ($value != "") { -		$where[] = "s.value='$value'"; -	} - -	if (!$count) { -		$query = "SELECT distinct e.* -			from {$CONFIG->dbprefix}entities e -			JOIN {$CONFIG->dbprefix}private_settings s ON e.guid=s.entity_guid where "; -	} else { -		$query = "SELECT count(distinct e.guid) as total -			from {$CONFIG->dbprefix}entities e JOIN {$CONFIG->dbprefix}private_settings s -			ON e.guid=s.entity_guid where "; -	} -	foreach ($where as $w) { -		$query .= " $w and "; -	} -	// Add access controls -	$query .= get_access_sql_suffix('e'); -	if (!$count) { -		$query .= " order by $order_by"; -		if ($limit) { -			// Add order and limit -			$query .= " limit $offset, $limit"; -		} - -		$dt = get_data($query, "entity_row_to_elggstar"); -		return $dt; -	} else { -		$total = get_data_row($query); -		return $total->total; -	} -} - -/** - * Get entities based on their private data by multiple keys. - * - * @param string $name           The name of the setting - * @param mixed  $type           Entity type - * @param string $subtype        Entity subtype - * @param int    $owner_guid     The GUID of the owning user - * @param string $order_by       The field to order by; by default, time_created desc - * @param int    $limit          The number of entities to return; 10 by default - * @param int    $offset         The indexing offset, 0 by default - * @param bool   $count          Count entities - * @param int    $site_guid      Site GUID. 0 for current, -1 for any. - * @param mixed  $container_guid Container GUID - * - * @return array A list of entities. - * @todo deprecate - */ -function get_entities_from_private_setting_multi(array $name, $type = "", $subtype = "", -$owner_guid = 0, $order_by = "", $limit = 10, $offset = 0, $count = false, -$site_guid = 0, $container_guid = null) { - -	global $CONFIG; - -	if ($subtype === false || $subtype === null || $subtype === 0) { -		return false; -	} - -	if ($order_by == "") { -		$order_by = "e.time_created desc"; -	} -	$order_by = sanitise_string($order_by); -	$limit = (int)$limit; -	$offset = (int)$offset; -	$site_guid = (int) $site_guid; -	if ($site_guid == 0) { -		$site_guid = $CONFIG->site_guid; -	} - -	$where = array(); - -	if (is_array($type)) { -		$tempwhere = ""; -		if (sizeof($type)) { -			foreach ($type as $typekey => $subtypearray) { -				foreach ($subtypearray as $subtypeval) { -					$typekey = sanitise_string($typekey); -					if (!empty($subtypeval)) { -						if (!$subtypeval = (int) get_subtype_id($typekey, $subtypeval)) { -							return false; -						} -					} else { -						$subtypeval = 0; -					} -					if (!empty($tempwhere)) { -						$tempwhere .= " or "; -					} -					$tempwhere .= "(e.type = '{$typekey}' and e.subtype = {$subtypeval})"; -				} -			} -		} -		if (!empty($tempwhere)) { -			$where[] = "({$tempwhere})"; -		} - -	} else { -		$type = sanitise_string($type); -		if ($subtype AND !$subtype = get_subtype_id($type, $subtype)) { -			return false; -		} - -		if ($type != "") { -			$where[] = "e.type='$type'"; -		} - -		if ($subtype !== "") { -			$where[] = "e.subtype=$subtype"; -		} -	} - -	if ($owner_guid != "") { -		if (!is_array($owner_guid)) { -			$owner_array = array($owner_guid); -			$owner_guid = (int) $owner_guid; -		} else if (sizeof($owner_guid) > 0) { -			$owner_array = array_map('sanitise_int', $owner_guid); -		} -		if (is_null($container_guid)) { -			$container_guid = $owner_array; -		} -	} -	if ($site_guid > 0) { -		$where[] = "e.site_guid = {$site_guid}"; -	} - -	if (!is_null($container_guid)) { -		if (is_array($container_guid)) { -			foreach ($container_guid as $key => $val) { -				$container_guid[$key] = (int) $val; -			} -			$where[] = "e.container_guid in (" . implode(",", $container_guid) . ")"; -		} else { -			$container_guid = (int) $container_guid; -			$where[] = "e.container_guid = {$container_guid}"; -		} -	} - -	if ($name) { -		$s_join = ""; -		$i = 1; -		foreach ($name as $k => $n) { -			$k = sanitise_string($k); -			$n = sanitise_string($n); -			$s_join .= " JOIN {$CONFIG->dbprefix}private_settings s$i ON e.guid=s$i.entity_guid"; -			$where[] = "s$i.name = '$k'"; -			$where[] = "s$i.value = '$n'"; -			$i++; -		} -	} - -	if (!$count) { -		$query = "SELECT distinct e.* from {$CONFIG->dbprefix}entities e $s_join where "; -	} else { -		$query = "SELECT count(distinct e.guid) as total -		from {$CONFIG->dbprefix}entities e $s_join where "; -	} - -	foreach ($where as $w) { -		$query .= " $w and "; -	} - -	// Add access controls -	$query .= get_access_sql_suffix('e'); - -	if (!$count) { -		$query .= " order by $order_by"; -		// Add order and limit -		if ($limit) { -			$query .= " limit $offset, $limit"; -		} - -		$dt = get_data($query, "entity_row_to_elggstar"); -		return $dt; -	} else { -		$total = get_data_row($query); -		return $total->total; -	} -} - -/** - * Gets a private setting for an entity. - * - * Plugin authors can set private data on entities.  By default - * private data will not be searched or exported. - * - * @internal Private data is used to store settings for plugins - * and user settings. - * - * @param int    $entity_guid The entity GUID - * @param string $name        The name of the setting - * - * @return mixed The setting value, or false on failure - * @see set_private_setting() - * @see get_all_private_settings() - * @see remove_private_setting() - * @see remove_all_private_settings() - * @link http://docs.elgg.org/DataModel/Entities/PrivateSettings - */ -function get_private_setting($entity_guid, $name) { -	global $CONFIG; -	$entity_guid = (int) $entity_guid; -	$name = sanitise_string($name); - -	$query = "SELECT value from {$CONFIG->dbprefix}private_settings -		where name = '{$name}' and entity_guid = {$entity_guid}"; -	$setting = get_data_row($query); - -	if ($setting) { -		return $setting->value; -	} -	return false; -} - -/** - * Return an array of all private settings. - * - * @param int $entity_guid The entity GUID - * - * @return array|false - * @see set_private_setting() - * @see get_private_settings() - * @see remove_private_setting() - * @see remove_all_private_settings() - * @link http://docs.elgg.org/DataModel/Entities/PrivateSettings - */ -function get_all_private_settings($entity_guid) { -	global $CONFIG; - -	$entity_guid = (int) $entity_guid; - -	$query = "SELECT * from {$CONFIG->dbprefix}private_settings where entity_guid = {$entity_guid}"; -	$result = get_data($query); -	if ($result) { -		$return = array(); -		foreach ($result as $r) { -			$return[$r->name] = $r->value; -		} - -		return $return; -	} - -	return false; -} - -/** - * Sets a private setting for an entity. - * - * @param int    $entity_guid The entity GUID - * @param string $name        The name of the setting - * @param string $value       The value of the setting - * - * @return mixed The setting ID, or false on failure - * @see get_private_setting() - * @see get_all_private_settings() - * @see remove_private_setting() - * @see remove_all_private_settings() - * @link http://docs.elgg.org/DataModel/Entities/PrivateSettings - */ -function set_private_setting($entity_guid, $name, $value) { -	global $CONFIG; - -	$entity_guid = (int) $entity_guid; -	$name = sanitise_string($name); -	$value = sanitise_string($value); - -	$result = insert_data("INSERT into {$CONFIG->dbprefix}private_settings -		(entity_guid, name, value) VALUES -		($entity_guid, '{$name}', '{$value}') -		ON DUPLICATE KEY UPDATE value='$value'"); -	if ($result === 0) { -		return true; -	} -	return $result; -} - -/** - * Deletes a private setting for an entity. - * - * @param int    $entity_guid The Entity GUID - * @param string $name        The name of the setting - * - * @return true|false depending on success - * @see get_private_setting() - * @see get_all_private_settings() - * @see set_private_setting() - * @see remove_all_private_settings() - * @link http://docs.elgg.org/DataModel/Entities/PrivateSettings - */ -function remove_private_setting($entity_guid, $name) { -	global $CONFIG; - -	$entity_guid = (int) $entity_guid; -	$name = sanitise_string($name); - -	return delete_data("DELETE from {$CONFIG->dbprefix}private_settings -		where name = '{$name}' -		and entity_guid = {$entity_guid}"); -} - -/** - * Deletes all private settings for an entity. - * - * @param int $entity_guid The Entity GUID - * - * @return true|false depending on success - * @see get_private_setting() - * @see get_all_private_settings() - * @see set_private_setting() - * @see remove_private_settings() - * @link http://docs.elgg.org/DataModel/Entities/PrivateSettings - */ -function remove_all_private_settings($entity_guid) { -	global $CONFIG; - -	$entity_guid = (int) $entity_guid; -	return delete_data("DELETE from {$CONFIG->dbprefix}private_settings -		where entity_guid = {$entity_guid}"); -} - -/**   * Check the recursive delete permissions token.   *   * If an entity is deleted recursively, a permissions override is required to allow diff --git a/engine/lib/private_settings.php b/engine/lib/private_settings.php new file mode 100644 index 000000000..3f6a10e3d --- /dev/null +++ b/engine/lib/private_settings.php @@ -0,0 +1,443 @@ +<?php +/** + * Private settings for entities + * Private settings provide metadata like storage of settings for plugins + * and users. + * + * @package Elgg.Core + * @subpackage PrivateSettings + */ + +/** + * Get entities based on their private data. + * + * @param string  $name           The name of the setting + * @param string  $value          The value of the setting + * @param string  $type           The type of entity (eg "user", "object" etc) + * @param string  $subtype        The arbitrary subtype of the entity + * @param int     $owner_guid     The GUID of the owning user + * @param string  $order_by       The field to order by; by default, time_created desc + * @param int     $limit          The number of entities to return; 10 by default + * @param int     $offset         The indexing offset, 0 by default + * @param boolean $count          Return a count of entities + * @param int     $site_guid      The site to get entities for. 0 for current, -1 for any + * @param mixed   $container_guid The container(s) GUIDs + * + * @return array A list of entities. + * @todo deprecate + */ +function get_entities_from_private_setting($name = "", $value = "", $type = "", $subtype = "", +$owner_guid = 0, $order_by = "", $limit = 10, $offset = 0, $count = false, $site_guid = 0, +$container_guid = null) { + +	global $CONFIG; + +	if ($subtype === false || $subtype === null || $subtype === 0) { +		return false; +	} + +	$name = sanitise_string($name); +	$value = sanitise_string($value); + +	if ($order_by == "") { +		$order_by = "e.time_created desc"; +	} +	$order_by = sanitise_string($order_by); +	$limit = (int)$limit; +	$offset = (int)$offset; +	$site_guid = (int) $site_guid; +	if ($site_guid == 0) { +		$site_guid = $CONFIG->site_guid; +	} + +	$where = array(); + +	if (is_array($type)) { +		$tempwhere = ""; +		if (sizeof($type)) { +			foreach ($type as $typekey => $subtypearray) { +				foreach ($subtypearray as $subtypeval) { +					$typekey = sanitise_string($typekey); +					if (!empty($subtypeval)) { +						if (!$subtypeval = (int) get_subtype_id($typekey, $subtypeval)) { +							return false; +						} +					} else { +						$subtypeval = 0; +					} +					if (!empty($tempwhere)) { +						$tempwhere .= " or "; +					} +					$tempwhere .= "(e.type = '{$typekey}' and e.subtype = {$subtypeval})"; +				} +			} +		} +		if (!empty($tempwhere)) { +			$where[] = "({$tempwhere})"; +		} +	} else { +		$type = sanitise_string($type); +		if ($subtype AND !$subtype = get_subtype_id($type, $subtype)) { +			return false; +		} + +		if ($type != "") { +			$where[] = "e.type='$type'"; +		} +		if ($subtype !== "") { +			$where[] = "e.subtype=$subtype"; +		} +	} + +	if ($owner_guid != "") { +		if (!is_array($owner_guid)) { +			$owner_array = array($owner_guid); +			$owner_guid = (int) $owner_guid; +		} else if (sizeof($owner_guid) > 0) { +			$owner_array = array_map('sanitise_int', $owner_guid); +		} +		if (is_null($container_guid)) { +			$container_guid = $owner_array; +		} +	} + +	if ($site_guid > 0) { +		$where[] = "e.site_guid = {$site_guid}"; +	} + +	if (!is_null($container_guid)) { +		if (is_array($container_guid)) { +			foreach ($container_guid as $key => $val) { +				$container_guid[$key] = (int) $val; +			} +			$where[] = "e.container_guid in (" . implode(",", $container_guid) . ")"; +		} else { +			$container_guid = (int) $container_guid; +			$where[] = "e.container_guid = {$container_guid}"; +		} +	} + +	if ($name != "") { +		$where[] = "s.name = '$name'"; +	} + +	if ($value != "") { +		$where[] = "s.value='$value'"; +	} + +	if (!$count) { +		$query = "SELECT distinct e.* +			from {$CONFIG->dbprefix}entities e +			JOIN {$CONFIG->dbprefix}private_settings s ON e.guid=s.entity_guid where "; +	} else { +		$query = "SELECT count(distinct e.guid) as total +			from {$CONFIG->dbprefix}entities e JOIN {$CONFIG->dbprefix}private_settings s +			ON e.guid=s.entity_guid where "; +	} +	foreach ($where as $w) { +		$query .= " $w and "; +	} +	// Add access controls +	$query .= get_access_sql_suffix('e'); +	if (!$count) { +		$query .= " order by $order_by"; +		if ($limit) { +			// Add order and limit +			$query .= " limit $offset, $limit"; +		} + +		$dt = get_data($query, "entity_row_to_elggstar"); +		return $dt; +	} else { +		$total = get_data_row($query); +		return $total->total; +	} +} + +/** + * Get entities based on their private data by multiple keys. + * + * @param string $name           The name of the setting + * @param mixed  $type           Entity type + * @param string $subtype        Entity subtype + * @param int    $owner_guid     The GUID of the owning user + * @param string $order_by       The field to order by; by default, time_created desc + * @param int    $limit          The number of entities to return; 10 by default + * @param int    $offset         The indexing offset, 0 by default + * @param bool   $count          Count entities + * @param int    $site_guid      Site GUID. 0 for current, -1 for any. + * @param mixed  $container_guid Container GUID + * + * @return array A list of entities. + * @todo deprecate + */ +function get_entities_from_private_setting_multi(array $name, $type = "", $subtype = "", +$owner_guid = 0, $order_by = "", $limit = 10, $offset = 0, $count = false, +$site_guid = 0, $container_guid = null) { + +	global $CONFIG; + +	if ($subtype === false || $subtype === null || $subtype === 0) { +		return false; +	} + +	if ($order_by == "") { +		$order_by = "e.time_created desc"; +	} +	$order_by = sanitise_string($order_by); +	$limit = (int)$limit; +	$offset = (int)$offset; +	$site_guid = (int) $site_guid; +	if ($site_guid == 0) { +		$site_guid = $CONFIG->site_guid; +	} + +	$where = array(); + +	if (is_array($type)) { +		$tempwhere = ""; +		if (sizeof($type)) { +			foreach ($type as $typekey => $subtypearray) { +				foreach ($subtypearray as $subtypeval) { +					$typekey = sanitise_string($typekey); +					if (!empty($subtypeval)) { +						if (!$subtypeval = (int) get_subtype_id($typekey, $subtypeval)) { +							return false; +						} +					} else { +						$subtypeval = 0; +					} +					if (!empty($tempwhere)) { +						$tempwhere .= " or "; +					} +					$tempwhere .= "(e.type = '{$typekey}' and e.subtype = {$subtypeval})"; +				} +			} +		} +		if (!empty($tempwhere)) { +			$where[] = "({$tempwhere})"; +		} + +	} else { +		$type = sanitise_string($type); +		if ($subtype AND !$subtype = get_subtype_id($type, $subtype)) { +			return false; +		} + +		if ($type != "") { +			$where[] = "e.type='$type'"; +		} + +		if ($subtype !== "") { +			$where[] = "e.subtype=$subtype"; +		} +	} + +	if ($owner_guid != "") { +		if (!is_array($owner_guid)) { +			$owner_array = array($owner_guid); +			$owner_guid = (int) $owner_guid; +		} else if (sizeof($owner_guid) > 0) { +			$owner_array = array_map('sanitise_int', $owner_guid); +		} +		if (is_null($container_guid)) { +			$container_guid = $owner_array; +		} +	} +	if ($site_guid > 0) { +		$where[] = "e.site_guid = {$site_guid}"; +	} + +	if (!is_null($container_guid)) { +		if (is_array($container_guid)) { +			foreach ($container_guid as $key => $val) { +				$container_guid[$key] = (int) $val; +			} +			$where[] = "e.container_guid in (" . implode(",", $container_guid) . ")"; +		} else { +			$container_guid = (int) $container_guid; +			$where[] = "e.container_guid = {$container_guid}"; +		} +	} + +	if ($name) { +		$s_join = ""; +		$i = 1; +		foreach ($name as $k => $n) { +			$k = sanitise_string($k); +			$n = sanitise_string($n); +			$s_join .= " JOIN {$CONFIG->dbprefix}private_settings s$i ON e.guid=s$i.entity_guid"; +			$where[] = "s$i.name = '$k'"; +			$where[] = "s$i.value = '$n'"; +			$i++; +		} +	} + +	if (!$count) { +		$query = "SELECT distinct e.* from {$CONFIG->dbprefix}entities e $s_join where "; +	} else { +		$query = "SELECT count(distinct e.guid) as total +		from {$CONFIG->dbprefix}entities e $s_join where "; +	} + +	foreach ($where as $w) { +		$query .= " $w and "; +	} + +	// Add access controls +	$query .= get_access_sql_suffix('e'); + +	if (!$count) { +		$query .= " order by $order_by"; +		// Add order and limit +		if ($limit) { +			$query .= " limit $offset, $limit"; +		} + +		$dt = get_data($query, "entity_row_to_elggstar"); +		return $dt; +	} else { +		$total = get_data_row($query); +		return $total->total; +	} +} + +/** + * Gets a private setting for an entity. + * + * Plugin authors can set private data on entities.  By default + * private data will not be searched or exported. + * + * @internal Private data is used to store settings for plugins + * and user settings. + * + * @param int    $entity_guid The entity GUID + * @param string $name        The name of the setting + * + * @return mixed The setting value, or false on failure + * @see set_private_setting() + * @see get_all_private_settings() + * @see remove_private_setting() + * @see remove_all_private_settings() + * @link http://docs.elgg.org/DataModel/Entities/PrivateSettings + */ +function get_private_setting($entity_guid, $name) { +	global $CONFIG; +	$entity_guid = (int) $entity_guid; +	$name = sanitise_string($name); + +	$query = "SELECT value from {$CONFIG->dbprefix}private_settings +		where name = '{$name}' and entity_guid = {$entity_guid}"; +	$setting = get_data_row($query); + +	if ($setting) { +		return $setting->value; +	} +	return false; +} + +/** + * Return an array of all private settings. + * + * @param int $entity_guid The entity GUID + * + * @return array|false + * @see set_private_setting() + * @see get_private_settings() + * @see remove_private_setting() + * @see remove_all_private_settings() + * @link http://docs.elgg.org/DataModel/Entities/PrivateSettings + */ +function get_all_private_settings($entity_guid) { +	global $CONFIG; + +	$entity_guid = (int) $entity_guid; + +	$query = "SELECT * from {$CONFIG->dbprefix}private_settings where entity_guid = {$entity_guid}"; +	$result = get_data($query); +	if ($result) { +		$return = array(); +		foreach ($result as $r) { +			$return[$r->name] = $r->value; +		} + +		return $return; +	} + +	return false; +} + +/** + * Sets a private setting for an entity. + * + * @param int    $entity_guid The entity GUID + * @param string $name        The name of the setting + * @param string $value       The value of the setting + * + * @return mixed The setting ID, or false on failure + * @see get_private_setting() + * @see get_all_private_settings() + * @see remove_private_setting() + * @see remove_all_private_settings() + * @link http://docs.elgg.org/DataModel/Entities/PrivateSettings + */ +function set_private_setting($entity_guid, $name, $value) { +	global $CONFIG; + +	$entity_guid = (int) $entity_guid; +	$name = sanitise_string($name); +	$value = sanitise_string($value); + +	$result = insert_data("INSERT into {$CONFIG->dbprefix}private_settings +		(entity_guid, name, value) VALUES +		($entity_guid, '{$name}', '{$value}') +		ON DUPLICATE KEY UPDATE value='$value'"); +	if ($result === 0) { +		return true; +	} +	return $result; +} + +/** + * Deletes a private setting for an entity. + * + * @param int    $entity_guid The Entity GUID + * @param string $name        The name of the setting + * + * @return true|false depending on success + * @see get_private_setting() + * @see get_all_private_settings() + * @see set_private_setting() + * @see remove_all_private_settings() + * @link http://docs.elgg.org/DataModel/Entities/PrivateSettings + */ +function remove_private_setting($entity_guid, $name) { +	global $CONFIG; + +	$entity_guid = (int) $entity_guid; +	$name = sanitise_string($name); + +	return delete_data("DELETE from {$CONFIG->dbprefix}private_settings +		where name = '{$name}' +		and entity_guid = {$entity_guid}"); +} + +/** + * Deletes all private settings for an entity. + * + * @param int $entity_guid The Entity GUID + * + * @return true|false depending on success + * @see get_private_setting() + * @see get_all_private_settings() + * @see set_private_setting() + * @see remove_private_settings() + * @link http://docs.elgg.org/DataModel/Entities/PrivateSettings + */ +function remove_all_private_settings($entity_guid) { +	global $CONFIG; + +	$entity_guid = (int) $entity_guid; +	return delete_data("DELETE from {$CONFIG->dbprefix}private_settings +		where entity_guid = {$entity_guid}"); +} diff --git a/engine/start.php b/engine/start.php index 6dd227d42..6a566b158 100644 --- a/engine/start.php +++ b/engine/start.php @@ -98,9 +98,9 @@ $lib_files = array(  	'location.php', 'mb_wrapper.php', 'memcache.php', 'metadata.php',  	'metastrings.php', 'navigation.php', 'notification.php', 'objects.php',  	'opendd.php', 'pagehandler.php', 'pageowner.php', 'pam.php', 'plugins.php', -	'relationships.php', 'river.php', 'sites.php', 'statistics.php', 'tags.php', -	'usersettings.php', 'users.php', 'version.php', 'widgets.php', 'xml.php', -	'xml-rpc.php' +	'private_settings.php', 'relationships.php', 'river.php', 'sites.php', +	'statistics.php', 'tags.php', 'usersettings.php', 'users.php', +	'version.php', 'widgets.php', 'xml.php', 'xml-rpc.php'  );  foreach ($lib_files as $file) { | 
