| 
    Elgg
    Version 1.12
    
   | 
 
Go to the source code of this file.
Namespaces | |
| Elgg\Core | |
| Activate a plugin or plugins.  | |
Functions | |
| row_to_elggrelationship ($row) | |
| Convert a database row to a new \ElggRelationship.  More... | |
| get_relationship ($id) | |
| Get a relationship by its ID.  More... | |
| _elgg_get_relationship_row ($id) | |
| Get a database row from the relationship table.  More... | |
| delete_relationship ($id) | |
| Delete a relationship by its ID.  More... | |
| add_entity_relationship ($guid_one, $relationship, $guid_two) | |
| Create a relationship between two entities.  More... | |
| check_entity_relationship ($guid_one, $relationship, $guid_two) | |
| Check if a relationship exists between two entities.  More... | |
| remove_entity_relationship ($guid_one, $relationship, $guid_two) | |
| Delete a relationship between two entities.  More... | |
| remove_entity_relationships ($guid, $relationship="", $inverse_relationship=false, $type='') | |
| Removes all relationships originating from a particular entity.  More... | |
| get_entity_relationships ($guid, $inverse_relationship=false) | |
| Get all the relationships for a given GUID.  More... | |
| elgg_get_entities_from_relationship ($options) | |
| Return entities matching a given query joining against a relationship.  More... | |
| elgg_get_entity_relationship_where_sql ($column, $relationship=null, $relationship_guid=null, $inverse_relationship=false) | |
| Returns SQL appropriate for relationship joins and wheres.  More... | |
| elgg_list_entities_from_relationship (array $options=array()) | |
| Returns a viewable list of entities by relationship.  More... | |
| elgg_get_entities_from_relationship_count (array $options=array()) | |
| Gets the number of entities by a the number of entities related to them in a particular way.  More... | |
| elgg_list_entities_from_relationship_count ($options) | |
| Returns a list of entities by relationship count.  More... | |
| _elgg_relationships_test ($hook, $type, $tests) | |
| Register relationship unit tests.  More... | |
| _elgg_relationship_init () | |
| Initialize the relationship library @access private.  More... | |
Variables | |
| return | function (\Elgg\EventsService $events, \Elgg\HooksRegistrationService $hooks) | 
| _elgg_get_relationship_row | ( | $id | ) | 
Get a database row from the relationship table.
| int | $id | The relationship ID | 
Definition at line 44 of file relationships.php.
| _elgg_relationship_init | ( | ) | 
Initialize the relationship library @access private.
Definition at line 303 of file relationships.php.
| _elgg_relationships_test | ( | $hook, | |
| $type, | |||
| $tests | |||
| ) | 
Register relationship unit tests.
| string | $hook | |
| string | $type | |
| array | $tests | 
Definition at line 292 of file relationships.php.
| add_entity_relationship | ( | $guid_one, | |
| $relationship, | |||
| $guid_two | |||
| ) | 
Create a relationship between two entities.
E.g. friendship, group membership, site membership.
This function lets you make the statement "$guid_one is a $relationship of $guid_two". In the statement, $guid_one is the subject of the relationship, $guid_two is the target, and $relationship is the type.
| int | $guid_one | GUID of the subject entity of the relationship | 
| string | $relationship | Type of the relationship | 
| int | $guid_two | GUID of the target entity of the relationship | 
| InvalidArgumentException | 
Definition at line 73 of file relationships.php.
| check_entity_relationship | ( | $guid_one, | |
| $relationship, | |||
| $guid_two | |||
| ) | 
Check if a relationship exists between two entities.
If so, the relationship object is returned.
This function lets you ask "Is $guid_one a $relationship of $guid_two?"
| int | $guid_one | GUID of the subject entity of the relationship | 
| string | $relationship | Type of the relationship | 
| int | $guid_two | GUID of the target entity of the relationship | 
Definition at line 88 of file relationships.php.
| delete_relationship | ( | $id | ) | 
Delete a relationship by its ID.
| int | $id | The relationship ID | 
Definition at line 55 of file relationships.php.
| elgg_get_entities_from_relationship | ( | $options | ) | 
Return entities matching a given query joining against a relationship.
By default the function finds relationship targets. E.g.:
// find groups with a particular member: $options = [ 'relationship' => 'member', 'relationship_guid' => $member->guid, ];
// find people the user has friended $options = [ 'relationship' => 'friend', 'relationship_guid' => $user->guid, ];
// find stuff created by friends (not in groups) $options = [ 'relationship' => 'friend', 'relationship_guid' => $user->guid, 'relationship_join_on' => 'container_guid', ];
To find relationship subjects, set "inverse_relationship" to true. E.g.:
// find members of a particular group $options = [ 'relationship' => 'member', 'relationship_guid' => $group->guid, 'inverse_relationship' => true, ];
// find users who have friended the current user $options = [ 'relationship' => 'friend', 'relationship_guid' => $user->guid, 'inverse_relationship' => true, ];
This also accepts all options available to elgg_get_entities() and elgg_get_entities_from_metadata().
To ask for entities that do not have a particular relationship to an entity, use a custom where clause like the following:
$options['wheres'][] = "NOT EXISTS (
    SELECT 1 FROM {$db_prefix}entity_relationships
        WHERE guid_one = e.guid
        AND relationship = '$relationship'
)";
 
| array | $options | Array in format: | 
relationship => null|STR Type of the relationship. E.g. "member"
relationship_guid => null|INT GUID of the subject of the relationship, unless "inverse_relationship" is set to true, in which case this will specify the target.
inverse_relationship => false|BOOL Are we searching for relationship subjects? By default, the query finds targets of relationships.
relationship_join_on => null|STR How the entities relate: guid (default), container_guid, or owner_guid Examples using the relationship 'friend':
relationship_created_time_lower => null|INT Relationship created time lower boundary in epoch time
relationship_created_time_upper => null|INT Relationship created time upper boundary in epoch time
Definition at line 216 of file relationships.php.
| elgg_get_entities_from_relationship_count | ( | array | $options = array() | ) | 
Gets the number of entities by a the number of entities related to them in a particular way.
This is a good way to get out the users with the most friends, or the groups with the most members.
| array | $options | An options array compatible with elgg_get_entities_from_relationship() | 
Definition at line 265 of file relationships.php.
| elgg_get_entity_relationship_where_sql | ( | $column, | |
$relationship = null,  | 
        |||
$relationship_guid = null,  | 
        |||
$inverse_relationship = false  | 
        |||
| ) | 
Returns SQL appropriate for relationship joins and wheres.
| string | $column | Column name the GUID should be checked against. Provide in table.column format. | 
| string | $relationship | Type of the relationship | 
| int | $relationship_guid | Entity GUID to check | 
| bool | $inverse_relationship | Is $relationship_guid the target of the relationship? | 
Definition at line 235 of file relationships.php.
| elgg_list_entities_from_relationship | ( | array | $options = array() | ) | 
Returns a viewable list of entities by relationship.
| array | $options | Options array for retrieval of entities | 
Definition at line 251 of file relationships.php.
| elgg_list_entities_from_relationship_count | ( | $options | ) | 
Returns a list of entities by relationship count.
| array | $options | Options array | 
Definition at line 279 of file relationships.php.
| get_entity_relationships | ( | $guid, | |
$inverse_relationship = false  | 
        |||
| ) | 
Get all the relationships for a given GUID.
| int | $guid | GUID of the subject or target entity (see $inverse) | 
| bool | $inverse_relationship | Is $guid the target of the relationships? By default $guid is the subject of the relationships. | 
Definition at line 131 of file relationships.php.
| get_relationship | ( | $id | ) | 
Get a relationship by its ID.
| int | $id | The relationship ID | 
Definition at line 32 of file relationships.php.
| remove_entity_relationship | ( | $guid_one, | |
| $relationship, | |||
| $guid_two | |||
| ) | 
Delete a relationship between two entities.
This function lets you say "$guid_one is no longer a $relationship of $guid_two."
| int | $guid_one | GUID of the subject entity of the relationship | 
| string | $relationship | Type of the relationship | 
| int | $guid_two | GUID of the target entity of the relationship | 
Definition at line 103 of file relationships.php.
| remove_entity_relationships | ( | $guid, | |
$relationship = "",  | 
        |||
$inverse_relationship = false,  | 
        |||
$type = ''  | 
        |||
| ) | 
Removes all relationships originating from a particular entity.
| int | $guid | GUID of the subject or target entity (see $inverse) | 
| string | $relationship | Type of the relationship (optional, default is all relationships) | 
| bool | $inverse_relationship | Is $guid the target of the deleted relationships? By default, $guid is the subject of the relationships. | 
| string | $type | The type of entity related to $guid (defaults to all) | 
Definition at line 118 of file relationships.php.
| row_to_elggrelationship | ( | $row | ) | 
Convert a database row to a new \ElggRelationship.
| \stdClass | $row | Database row from the relationship table | 
Definition at line 17 of file relationships.php.
| return function(\Elgg\EventsService $events, \Elgg\HooksRegistrationService $hooks) | ( | \Elgg\EventsService | $events, | 
| \Elgg\HooksRegistrationService | $hooks | ||
| ) | 
Definition at line 307 of file relationships.php.