48 $ENTITY_CACHE_DISABLED_GUIDS[
$guid] =
true;
61 unset($ENTITY_CACHE_DISABLED_GUIDS[
$guid]);
77 if (isset($ENTITY_CACHE[
$guid])) {
78 unset($ENTITY_CACHE[$guid]);
111 if (isset($ENTITY_CACHE_DISABLED_GUIDS[
$guid])) {
117 if (count($ENTITY_CACHE) > 256) {
137 if (isset($ENTITY_CACHE[
$guid])) {
138 if ($ENTITY_CACHE[$guid]->isFullyLoaded()) {
139 return $ENTITY_CACHE[
$guid];
173 if ($SUBTYPE_CACHE === null) {
201 if ($SUBTYPE_CACHE === null) {
205 if (isset($SUBTYPE_CACHE[$subtype_id])) {
206 return $SUBTYPE_CACHE[$subtype_id]->subtype;
224 if ($SUBTYPE_CACHE === null) {
228 foreach ($SUBTYPE_CACHE as $obj) {
244 $results =
get_data(
"SELECT * FROM {$CONFIG->dbprefix}entity_subtypes");
246 $SUBTYPE_CACHE = array();
247 foreach ($results as
$row) {
248 $SUBTYPE_CACHE[$row->id] =
$row;
270 if ($SUBTYPE_CACHE === null) {
300 if ($SUBTYPE_CACHE === null) {
304 if (isset($SUBTYPE_CACHE[$subtype_id])) {
305 return $SUBTYPE_CACHE[$subtype_id]->class;
342 $cache_obj = (object) array(
352 $id =
insert_data(
"INSERT INTO {$CONFIG->dbprefix}entity_subtypes" 353 .
" (type, subtype, class) VALUES ('$type', '$subtype', '$class')");
356 $cache_obj->id =
$id;
357 $SUBTYPE_CACHE[
$id] = $cache_obj;
384 .
" WHERE type = '$type' AND subtype = '$subtype'");
388 $SUBTYPE_CACHE = null;
411 if ($SUBTYPE_CACHE === null) {
415 $unescaped_class =
$class;
422 SET type = '$type', subtype = '$subtype', class = '$class' 427 $SUBTYPE_CACHE[
$id]->class = $unescaped_class;
450 $container_guid = (int)$container_guid;
451 if (!$container_guid) {
478 'container_permissions_check',
512 return get_data_row(
"SELECT * from {$CONFIG->dbprefix}entities where guid=$guid and $access");
531 if (!(
$row instanceof stdClass)) {
535 if ((!isset(
$row->guid)) || (!isset(
$row->subtype))) {
542 static $newentity_cache;
544 $newentity_cache =
new ElggMemcache(
'new_entity_cache');
546 if ($newentity_cache) {
547 $new_entity = $newentity_cache->load(
$row->guid);
555 if ($classname !=
"") {
556 if (class_exists($classname)) {
557 $new_entity =
new $classname(
$row);
560 $msg = $classname .
" is not a " .
'ElggEntity' .
".";
564 error_log(
"Class '" . $classname .
"' was not found, missing plugin?");
570 switch (
$row->type) {
584 $msg =
"Entity type " .
$row->type .
" is not supported.";
590 if (($newentity_cache) && ($new_entity)) {
591 $newentity_cache->save($new_entity->guid, $new_entity);
608 static $shared_cache;
624 if (null === $shared_cache) {
628 $shared_cache =
false;
639 $cached_entity = $shared_cache->load(
$guid);
641 if ($cached_entity) {
643 return $cached_entity;
678 $query =
"SELECT count(*) as total FROM {$CONFIG->dbprefix}entities WHERE guid = $guid";
788 'site_guids' => $CONFIG->site_guid,
795 'reverse_order_by' =>
false,
796 'order_by' =>
'e.time_created desc',
801 'selects' => array(),
805 'callback' =>
'entity_row_to_elggstar',
807 '__ElggBatch' => null,
814 if (isset(
$options[
'type_subtype_pair'])) {
815 if (isset(
$options[
'type_subtype_pairs'])) {
816 $options[
'type_subtype_pairs'] = array_merge(
$options[
'type_subtype_pairs'],
823 $singulars = array(
'type',
'subtype',
'guid',
'owner_guid',
'container_guid',
'site_guid');
827 if (!is_array(
$options[
'wheres'])) {
846 foreach ($wheres as $i => $where) {
847 if ($where ===
false) {
849 } elseif (empty($where)) {
855 $wheres = array_unique($wheres);
863 $joins = array_unique(
$options[
'joins']);
865 foreach ($joins as $i => $join) {
866 if ($join ===
false) {
868 } elseif (empty($join)) {
876 foreach (
$options[
'selects'] as $select) {
877 $selects .=
", $select";
884 $query =
"SELECT DISTINCT e.*{$selects} FROM {$CONFIG->dbprefix}entities e ";
886 $query =
"SELECT count(DISTINCT e.guid) as total FROM {$CONFIG->dbprefix}entities e ";
890 foreach ($joins as $j) {
897 foreach ($wheres as $w) {
898 $query .=
" $w AND ";
911 $query .=
" GROUP BY {$options['group_by']}";
915 $query .=
" ORDER BY {$options['order_by']}";
921 $query .=
" LIMIT $offset, $limit";
924 if (
$options[
'callback'] ===
'entity_row_to_elggstar') {
933 foreach ($dt as
$item) {
953 return (
int)$total->total;
968 static $plugin_subtype;
969 if (null === $plugin_subtype) {
975 $types_to_optimize = array(
977 'user' =>
'password',
984 $lookup_types = array();
986 $guid_to_key = array();
990 &&
$rows[0]->subtype == $plugin_subtype) {
994 $types_to_optimize = array();
999 if (empty(
$row->guid) || empty(
$row->type)) {
1000 throw new LogicException(
'Entity row missing guid or type');
1008 if (isset($types_to_optimize[
$row->type])) {
1010 if (isset(
$row->{$types_to_optimize[
$row->type]})) {
1015 $lookup_types[
$row->type][] =
$row->guid;
1016 $guid_to_key[
$row->guid] = $i;
1020 if ($lookup_types) {
1024 $set =
"(" . implode(
',',
$guids) .
")";
1025 $sql =
"SELECT * FROM {$dbprefix}{$type}s_entity WHERE guid IN $set";
1027 if ($secondary_rows) {
1028 foreach ($secondary_rows as $secondary_row) {
1029 $key = $guid_to_key[$secondary_row->guid];
1049 $batch->reportIncompleteEntity(
$row);
1072 elgg_log(
"Cannot set subtypes without type.",
'WARNING');
1086 if (!is_array($pairs)) {
1087 if (!is_array($types)) {
1088 $types = array($types);
1096 $valid_types_count = count($types);
1097 $valid_subtypes_count = 0;
1105 foreach ($types as
$type) {
1106 if (!in_array($type, $valid_types)) {
1107 $valid_types_count--;
1108 unset($types[array_search($type, $types)]);
1111 $valid_subtypes_count += count(
$subtypes);
1116 if (!$valid_types_count) {
1122 foreach ($types as $type) {
1123 $subtype_ids = array();
1130 } elseif (!$subtype) {
1138 $subtype_ids[] = $subtype_id;
1140 $valid_subtypes_count--;
1141 elgg_log(
"Type-subtype '$type:$subtype' does not exist!",
'NOTICE');
1148 if ($valid_subtypes_count <= 0) {
1153 if (is_array($subtype_ids) && count($subtype_ids)) {
1154 $subtype_ids_str = implode(
',', $subtype_ids);
1155 $wheres[] =
"({$table}.type = '$type' AND {$table}.subtype IN ($subtype_ids_str))";
1157 $wheres[] =
"({$table}.type = '$type')";
1162 $valid_pairs_count = count($pairs);
1163 $valid_pairs_subtypes_count = 0;
1168 foreach ($pairs as $paired_type => $paired_subtypes) {
1169 if (!in_array($paired_type, $valid_types)) {
1170 $valid_pairs_count--;
1171 unset($pairs[array_search($paired_type, $pairs)]);
1173 if ($paired_subtypes && !is_array($paired_subtypes)) {
1174 $pairs[$paired_type] = array($paired_subtypes);
1176 $valid_pairs_subtypes_count += count($paired_subtypes);
1180 if ($valid_pairs_count <= 0) {
1183 foreach ($pairs as $paired_type => $paired_subtypes) {
1186 if (is_array($paired_subtypes)) {
1187 $paired_subtype_ids = array();
1188 foreach ($paired_subtypes as $paired_subtype) {
1190 || ($paired_subtype_id =
get_subtype_id($paired_type, $paired_subtype))) {
1195 $valid_pairs_subtypes_count--;
1196 elgg_log(
"Type-subtype '$paired_type:$paired_subtype' does not exist!",
'NOTICE');
1203 if ($valid_pairs_subtypes_count <= 0) {
1208 if ($paired_subtype_ids_str = implode(
',', $paired_subtype_ids)) {
1209 $wheres[] =
"({$table}.type = '$paired_type'" 1210 .
" AND {$table}.subtype IN ($paired_subtype_ids_str))";
1213 $wheres[] =
"({$table}.type = '$paired_type')";
1219 if (is_array($wheres) && count($wheres)) {
1220 $where = implode(
' OR ', $wheres);
1250 $guids_sanitized = array();
1259 $guids_sanitized[] =
$guid;
1263 $guid_str = implode(
',', $guids_sanitized);
1266 if ($guid_str !==
false && $guid_str !==
'') {
1267 $where =
"($column IN ($guid_str))";
1288 $time_created_lower = null, $time_updated_upper = null, $time_updated_lower = null) {
1293 if ($time_created_upper && $time_created_upper ==
sanitise_int($time_created_upper)) {
1294 $wheres[] =
"{$table}.time_created <= $time_created_upper";
1297 if ($time_created_lower && $time_created_lower ==
sanitise_int($time_created_lower)) {
1298 $wheres[] =
"{$table}.time_created >= $time_created_lower";
1301 if ($time_updated_upper && $time_updated_upper ==
sanitise_int($time_updated_upper)) {
1302 $wheres[] =
"{$table}.time_updated <= $time_updated_upper";
1305 if ($time_updated_lower && $time_updated_lower ==
sanitise_int($time_updated_lower)) {
1306 $wheres[] =
"{$table}.time_updated >= $time_updated_lower";
1309 if (is_array($wheres) && count($wheres) > 0) {
1310 $where_str = implode(
' AND ', $wheres);
1311 return "($where_str)";
1344 $viewer =
'elgg_view_entity_list') {
1353 'limit' => (
int) max(
get_input(
'limit', 10), 0),
1354 'full_view' =>
false,
1355 'list_type_toggle' =>
false,
1356 'pagination' =>
true,
1363 if (isset(
$options[
'view_type_toggle'])) {
1364 elgg_deprecated_notice(
"Option 'view_type_toggle' deprecated by 'list_type_toggle' in elgg_list* functions", 1.9);
1373 $entities = call_user_func($getter,
$options);
1375 $entities = array();
1380 return call_user_func($viewer, $entities,
$options);
1418 'attribute_name_value_pairs_operator' =>
'AND',
1423 $singulars = array(
'type',
'attribute_name_value_pair');
1432 } elseif (!isset(
$options[
'wheres'])) {
1441 } elseif (!isset(
$options[
'joins'])) {
1462 throw new InvalidArgumentException(
"The entity type must be defined for elgg_get_entities_from_attributes()");
1466 throw new InvalidArgumentException(
"Only one type can be passed to elgg_get_entities_from_attributes()");
1471 if (is_array(
$type)) {
1476 if (!in_array(
$type, array(
'group',
'object',
'site',
'user'))) {
1477 throw new InvalidArgumentException(
"Invalid type '$type' passed to elgg_get_entities_from_attributes()");
1481 $type_table =
"{$CONFIG->dbprefix}{$type}s_entity";
1485 'wheres' => array(),
1493 if (!is_array(
$options[
'attribute_name_value_pairs'])) {
1494 throw new InvalidArgumentException(
"attribute_name_value_pairs must be an array for elgg_get_entities_from_attributes()");
1500 $pairs =
$options[
'attribute_name_value_pairs'];
1501 if (isset($pairs[
'name']) || isset($pairs[
'value'])) {
1502 $pairs = array($pairs);
1505 $pair_wheres = array();
1506 foreach ($pairs as $index => $pair) {
1508 if (!isset($pair[
'name']) || !isset($pair[
'value'])) {
1512 if (isset($pair[
'operand'])) {
1518 if (is_numeric($pair[
'value'])) {
1520 }
else if (is_array($pair[
'value'])) {
1521 $values_array = array();
1522 foreach ($pair[
'value'] as $pair_value) {
1523 if (is_numeric($pair_value)) {
1531 if ($values_array) {
1532 $value =
'(' . implode(
', ', $values_array) .
')';
1543 if (isset($pair[
'case_sensitive'])) {
1544 $pair_binary = ($pair[
'case_sensitive']) ?
'BINARY ' :
'';
1547 $pair_wheres[] =
"({$pair_binary}type_table.$name $operand $value)";
1550 if ($where = implode(
" {$options['attribute_name_value_pairs_operator']} ", $pair_wheres)) {
1551 $return[
'wheres'][] =
"($where)";
1553 $return[
'joins'][] =
"JOIN $type_table type_table ON e.guid = type_table.guid";
1577 $order_by =
'time_created') {
1581 $site_guid = (int) $site_guid;
1582 if ($site_guid == 0) {
1583 $site_guid = $CONFIG->site_guid;
1589 $where[] =
"type='$type'";
1595 foreach (
$subtype as $typekey => $subtypearray) {
1596 foreach ($subtypearray as $subtypeval) {
1598 if (!empty($subtypeval)) {
1599 if (!$subtypeval = (
int)
get_subtype_id($typekey, $subtypeval)) {
1605 if (!empty($tempwhere)) {
1606 $tempwhere .=
" or ";
1608 $tempwhere .=
"(type = '{$typekey}' and subtype = {$subtypeval})";
1612 if (!empty($tempwhere)) {
1613 $where[] =
"({$tempwhere})";
1620 $where[] =
"subtype=$subtype_id";
1625 if ($container_guid !== 0) {
1626 if (is_array($container_guid)) {
1627 foreach ($container_guid as
$key => $val) {
1628 $container_guid[
$key] = (int) $val;
1630 $where[] =
"container_guid in (" . implode(
",", $container_guid) .
")";
1632 $container_guid = (int) $container_guid;
1633 $where[] =
"container_guid = {$container_guid}";
1637 if ($site_guid > 0) {
1638 $where[] =
"site_guid = {$site_guid}";
1643 $sql =
"SELECT DISTINCT EXTRACT(YEAR_MONTH FROM FROM_UNIXTIME(time_created)) AS yearmonth 1644 FROM {$CONFIG->dbprefix}entities where ";
1646 foreach ($where as $w) {
1650 $sql .=
"1=1 ORDER BY $order_by";
1652 $endresult = array();
1654 $endresult[] = $res->yearmonth;
1679 if (!in_array(
$type, $CONFIG->entity_types)) {
1683 if (!isset($CONFIG->registered_entities)) {
1684 $CONFIG->registered_entities = array();
1687 if (!isset($CONFIG->registered_entities[
$type])) {
1688 $CONFIG->registered_entities[
$type] = array();
1714 if (!in_array(
$type, $CONFIG->entity_types)) {
1718 if (!isset($CONFIG->registered_entities)) {
1722 if (!isset($CONFIG->registered_entities[
$type])) {
1727 if (in_array(
$subtype, $CONFIG->registered_entities[
$type])) {
1729 unset($CONFIG->registered_entities[
$type][
$key]);
1734 unset($CONFIG->registered_entities[
$type]);
1751 if (!isset($CONFIG->registered_entities)) {
1757 if (!empty(
$type) && empty($CONFIG->registered_entities[
$type])) {
1762 return $CONFIG->registered_entities;
1765 return $CONFIG->registered_entities[
$type];
1779 if (!isset($CONFIG->registered_entities)) {
1787 if (!isset($CONFIG->registered_entities[
$type])) {
1820 'full_view' =>
false,
1821 'allowed_types' =>
true,
1822 'list_type_toggle' =>
false,
1823 'pagination' =>
true,
1826 'type_subtype_pairs' => array(),
1832 if (isset(
$options[
'view_type_toggle'])) {
1833 elgg_deprecated_notice(
"Option 'view_type_toggle' deprecated by 'list_type_toggle' in elgg_list* functions", 1.9);
1839 foreach ($types as
$type => $subtype_array) {
1842 if (
$type ==
'object') {
1843 if (is_array($subtype_array) && count($subtype_array)) {
1847 if (is_array($subtype_array) && count($subtype_array)) {
1856 if (!empty(
$options[
'type_subtype_pairs'])) {
1861 $entities = array();
1865 $entities = array();
1928 $query =
"UPDATE {$CONFIG->dbprefix}entities SET last_action = {$posted} WHERE guid = {$guid}";
1951 'site' =>
'sites_entity',
1952 'object' =>
'objects_entity',
1953 'group' =>
'groups_entity',
1954 'user' =>
'users_entity',
1958 delete_data(
"DELETE FROM {$CONFIG->dbprefix}{$table} 1959 WHERE guid NOT IN (SELECT guid FROM {$CONFIG->dbprefix}entities)");
1960 delete_data(
"DELETE FROM {$CONFIG->dbprefix}entities 1961 WHERE type = '$type' AND guid NOT IN (SELECT guid FROM {$CONFIG->dbprefix}{$table})");
1977 $value[] = $CONFIG->path .
'engine/tests/ElggEntityTest.php';
1978 $value[] = $CONFIG->path .
'engine/tests/ElggCoreAttributeLoaderTest.php';
1979 $value[] = $CONFIG->path .
'engine/tests/ElggCoreGetEntitiesTest.php';
1980 $value[] = $CONFIG->path .
'engine/tests/ElggCoreGetEntitiesFromAnnotationsTest.php';
1981 $value[] = $CONFIG->path .
'engine/tests/ElggCoreGetEntitiesFromMetadataTest.php';
1982 $value[] = $CONFIG->path .
'engine/tests/ElggCoreGetEntitiesFromPrivateSettingsTest.php';
1983 $value[] = $CONFIG->path .
'engine/tests/ElggCoreGetEntitiesFromRelationshipTest.php';
1984 $value[] = $CONFIG->path .
'engine/tests/ElggCoreGetEntitiesFromAttributesTest.php';
_elgg_disable_caching_for_entity($guid)
Remove this entity from the entity cache and make sure it is not re-added.
elgg_get_config($name, $site_guid=0)
Get an Elgg configuration value.
_elgg_populate_subtype_cache()
Fetch all suptypes from DB to local cache.
_elgg_retrieve_cached_subtype($type, $subtype)
Retrieve subtype from the cache.
get_data_row($query, $callback="")
Retrieve a single row from the database.
_elgg_invalidate_cache_for_entity($guid)
Invalidate this class's entry in the cache.
elgg_get_entities_from_attributes(array $options=array())
Gets entities based upon attributes in secondary tables.
if($guid==elgg_get_logged_in_user_guid()) $name
_elgg_retrieve_cached_entity($guid)
Retrieve a entity from the cache.
get_subtype_id($type, $subtype)
Return the id for a given subtype.
elgg_enable_entity($guid, $recursive=true)
Enable an entity.
const ELGG_ENTITIES_NO_VALUE
_elgg_get_guid_based_where_sql($column, $guids)
Returns SQL where clause for owner and containers.
update_entity_last_action($guid, $posted=null)
Update the last_action column in the entities table for $guid.
elgg_view_entity_list($entities, $vars=array(), $offset=0, $limit=10, $full_view=true, $list_type_toggle=true, $pagination=true)
Returns a rendered list of entities with pagination.
_elgg_get_entity_time_where_sql($table, $time_created_upper=null, $time_created_lower=null, $time_updated_upper=null, $time_updated_lower=null)
Returns SQL where clause for entity time limits.
get_subtype_from_id($subtype_id)
Gets the denormalized string for a given subtype ID.
get_entity_dates($type= '', $subtype= '', $container_guid=0, $site_guid=0, $order_by= 'time_created')
Returns a list of months in which entities were updated or created.
elgg_unregister_entity_type($type, $subtype=null)
Unregisters an entity type and subtype as a public-facing type.
getGUID()
Returns the guid.
elgg_entity_exists($guid)
Does an entity exist?
$guid
Removes an admin notice.
_elgg_enable_caching_for_entity($guid)
Allow this entity to be stored in the entity cache.
global $SUBTYPE_CACHE
Cache subtypes and related class names.
elgg_register_plugin_hook_handler($hook, $type, $callback, $priority=500)
Register a callback as a plugin hook handler.
delete_data($query)
Remove a row from the database.
if(isset($vars['id'])) $class
_elgg_sql_reverse_order_by_clause($order_by)
Reverses the ordering in an ORDER BY clause.
update_data($query)
Update a row in the database.
sanitize_string($string)
Sanitize a string for database use.
get_subtype_class_from_id($subtype_id)
Returns the class name for a subtype id.
insert_data($query)
Insert a row into the database.
elgg_get_ignore_access()
Get current ignore access setting.
entity_row_to_elggstar($row)
Create an Elgg* object from a given entity row.
get_subtype_class($type, $subtype)
Return the class name for a registered type and subtype.
is_registered_entity_type($type, $subtype=null)
Returns if the entity type and subtype have been registered with elgg_register_entity_type().
get_registered_entity_types($type=null)
Returns registered entity types and subtypes.
global $ENTITY_CACHE_DISABLED_GUIDS
GUIDs of entities banned from the entity cache (during this request)
_elgg_entities_gc()
Garbage collect stub and fragments from any broken delete/create calls.
elgg_instanceof($entity, $type=null, $subtype=null, $class=null)
Checks if $entity is an ElggEntity and optionally for type and subtype.
add_subtype($type, $subtype, $class="")
Register ElggEntities with a certain type and subtype to be loaded as a specific class.
get_user($guid)
Get a user object from a GUID.
can_write_to_container($user_guid=0, $container_guid=0, $type= 'all', $subtype= 'all')
Determine if a given user can write to an entity container.
sanitise_string($string)
Wrapper function for alternate English spelling (.
const ELGG_ENTITIES_ANY_VALUE
elgg_get_entities(array $options=array())
Returns an array of entities with optional filtering.
elgg_trigger_plugin_hook($hook, $type, $params=null, $returnvalue=null)
Trigger a Plugin Hook and run all handler callbacks registered to that hook:type. ...
_elgg_entities_test($hook, $type, $value)
Runs unit tests for the entity objects.
elgg_deprecated_notice($msg, $dep_version, $backtrace_level=1)
Sends a notice about deprecated use of a function, view, etc.
elgg global
Pointer to the global context.
access_get_show_hidden_status()
Return current status of showing disabled entities.
get_entity_as_row($guid)
Returns a database row from the entities table.
elgg_register_event_handler($event, $object_type, $callback, $priority=500)
Register a callback as an Elgg event handler.
elgg_log($message, $level= 'NOTICE')
Display or log a message.
update_subtype($type, $subtype, $class= '')
Update a registered ElggEntity type, subtype, and class name.
elgg_list_entities(array $options=array(), $getter= 'elgg_get_entities', $viewer= 'elgg_view_entity_list')
Returns a string of rendered entities.
get_data($query, $callback="")
Retrieve rows from the database.
access_show_hidden_entities($show_hidden)
Show or hide disabled entities.
elgg_list_registered_entities(array $options=array())
Returns a viewable list of entities based on the registered types.
_elgg_fetch_entities_from_sql($sql, ElggBatch $batch=null)
Return entities from an SQL query generated by elgg_get_entities.
remove_subtype($type, $subtype)
Removes a registered ElggEntity type, subtype, and classname.
_elgg_get_entity_type_subtype_where_sql($table, $types, $subtypes, $pairs)
Returns SQL where clause for type and subtype on main entity table.
sanitise_int($int, $signed=true)
Sanitizes an integer for database use.
_elgg_get_entity_attribute_where_sql(array $options=array())
Get the join and where clauses for working with entity attributes.
elgg_get_logged_in_user_entity()
Return the current logged in user, or null if no user is logged in.
is_memcache_available()
Return true if memcache is available and configured.
elgg_get_entities_from_relationship($options)
Return entities matching a given query joining against a relationship.
_elgg_normalize_plural_options_array($options, $singulars)
Normalise the singular keys in an options array to plural keys.
elgg_register_entity_type($type, $subtype=null)
Registers an entity type and subtype as a public-facing entity that should be shown in search and by ...
sanitize_int($int, $signed=true)
Sanitizes an integer for database use.
$user_guid
Avatar remove action.
_elgg_get_access_where_sql(array $options=array())
Returns the SQL where clause for enforcing read access to data.
global $ENTITY_CACHE
Cache entities in memory once loaded.
if(!$collection_name) $id
elgg_get_page_owner_guid($guid=0)
Gets the guid of the entity that owns the current page.
_elgg_cache_entity(ElggEntity $entity)
Cache an entity.
_elgg_entities_init()
Entities init function; establishes the default entity page handler.
elgg_get_logged_in_user_guid()
Return the current logged in user by guid.
get_entity($guid)
Loads and returns an entity object from a guid.