user_relationships_api.socnet.inc in User Relationships 6
User Relationships implementation of http://drupal.org/project/drupal_universal_relation_api @author Alex Karshakevich http://drupal.org/user/183217
File
user_relationships_api/user_relationships_api.socnet.incView source
<?php
/**
* @file
* User Relationships implementation of http://drupal.org/project/drupal_universal_relation_api
* @author Alex Karshakevich http://drupal.org/user/183217
*/
/**
* return an array of module names that implement these hooks. e.g. array('friendlist', 'user_relationships_api')
*/
function user_relationships_api_socnet_get_implementations() {
return 'user_relationships_api';
}
/**
* Returns TRUE if uid1 has a confirmed relationship with uid2, optionally filter by relationship name and style
* @param $relation_name optional name of relationship to restrict search to
* @param $relation_style optional, one of {'all', 'one-way', 'two-way'}
* @return TRUE if the relationship exists, or nothing if it does not.
*/
function user_relationships_api_socnet_is_related($uid1 = NULL, $uid2 = NULL, $relation_name = NULL, $relation_style = 'all') {
$args = array(
'requester_id' => $uid1,
'requestee_id' => $uid2,
'approved' => 1,
);
//optinally filter on relationship name
if ($relation_name) {
$args['name'] = $relation_name;
}
//or, filter on relationship directionality
if ($relation_style == 'one-way') {
$args['is_oneway'] = TRUE;
}
elseif ($relation_style == 'two-way') {
$args['is_oneway'] = FALSE;
}
$count = user_relationships_load($args, array(
'count' => TRUE,
));
if ($count > 0) {
return TRUE;
}
//else return nothing
}
/**
* true if user1 has requested a relationship to uid2, optionally set which relation and style to query
*/
function user_relationships_api_socnet_is_pending($uid1 = NULL, $uid2 = NULL, $relation_name = NULL, $relation_style = 'all') {
$args = array(
'requester_id' => $uid1,
'requestee_id' => $uid2,
'approved' => 0,
);
//optinally filter on relationship name
if ($relation_name) {
$args['name'] = $relation_name;
}
//or, filter on relationship directionality
if ($relation_style == 'one-way') {
$args['is_oneway'] = TRUE;
}
elseif ($relation_style == 'two-way') {
$args['is_oneway'] = FALSE;
}
$count = user_relationships_load($args, array(
'count' => TRUE,
));
if ($count > 0) {
return TRUE;
}
//else return nothing
}
/**
* true if user1 does not want to see uid2
*/
function user_relationships_api_socnet_is_blocked($blocked_by_uid = NULL, $blocked_uid = NULL, $relation_name = NULL, $relation_style = 'all') {
//UR does not implement it
}
/**
* return a list of uids of established relationships of $uid, optionally filter by relationship name
*/
function user_relationships_api_socnet_get_related_users($uid = NULL, $relation_name = NULL, $relation_style = 'all') {
$args = array(
'requester_id' => $uid,
'approved' => 1,
);
//optinally filter on relationship name
if ($relation_name) {
$args['name'] = $relation_name;
}
//or, filter on relationship directionality
if ($relation_style == 'one-way') {
$args['is_oneway'] = TRUE;
}
elseif ($relation_style == 'two-way') {
$args['is_oneway'] = FALSE;
}
$result = user_relationships_load($args, array(
'sort' => 'requestee_id',
));
if ($result > 0) {
return array_keys($result);
}
//else return nothing
}
/**
* return a list of uid of all, to whom uid has sent requests, optionally filter by relationship name
*/
function user_relationships_api_socnet_all_pending_from($uid = NULL, $relation_name = NULL, $relation_style = 'all') {
$args = array(
'requester_id' => $uid,
'approved' => 0,
);
//optinally filter on relationship name
if ($relation_name) {
$args['name'] = $relation_name;
}
//or, filter on relationship directionality
if ($relation_style == 'one-way') {
$args['is_oneway'] = TRUE;
}
elseif ($relation_style == 'two-way') {
$args['is_oneway'] = FALSE;
}
$result = user_relationships_load($args, array(
'sort' => 'requestee_id',
));
if ($result > 0) {
return array_keys($result);
}
//else return nothing
}
/**
* return a list of uid of users who want to relate to $uid, optionally filter by relationship name
*/
function user_relationships_api_socnet_all_pending_to($uid = NULL, $relation_name = NULL, $relation_style = 'all') {
$args = array(
'requestee_id' => $uid,
'approved' => 0,
);
//optinally filter on relationship name
if ($relation_name) {
$args['name'] = $relation_name;
}
//or, filter on relationship directionality
if ($relation_style == 'one-way') {
$args['is_oneway'] = TRUE;
}
elseif ($relation_style == 'two-way') {
$args['is_oneway'] = FALSE;
}
$result = user_relationships_load($args, array(
'sort' => 'requester_id',
));
if ($result > 0) {
return array_keys($result);
}
//else return nothing
}
/**
* return a list of all relationship names to use in other functions
*/
function user_relationships_api_socnet_get_relation_names($relation_style = 'all') {
$rtypes = user_relationships_types_load();
$result = array();
foreach ($rtypes as $type) {
if ($type->is_oneway && $relation_style == 'one-way' || !$type->is_oneway && $relation_style == 'two-way' || $relation_style == 'all') {
$result[] = $type->name;
}
}
if (count($result)) {
return $result;
}
}
/**
* return 'two-way' or 'one-way' depending on the relation type
*/
function user_relationships_api_socnet_relation_type($relation_name = NULL) {
$type = user_relationships_type_load(array(
'name' => $relation_name,
));
if (isset($type->is_oneway)) {
return $type->is_oneway ? 'one-way' : 'two-way';
}
}
Functions
Name![]() |
Description |
---|---|
user_relationships_api_socnet_all_pending_from | return a list of uid of all, to whom uid has sent requests, optionally filter by relationship name |
user_relationships_api_socnet_all_pending_to | return a list of uid of users who want to relate to $uid, optionally filter by relationship name |
user_relationships_api_socnet_get_implementations | return an array of module names that implement these hooks. e.g. array('friendlist', 'user_relationships_api') |
user_relationships_api_socnet_get_related_users | return a list of uids of established relationships of $uid, optionally filter by relationship name |
user_relationships_api_socnet_get_relation_names | return a list of all relationship names to use in other functions |
user_relationships_api_socnet_is_blocked | true if user1 does not want to see uid2 |
user_relationships_api_socnet_is_pending | true if user1 has requested a relationship to uid2, optionally set which relation and style to query |
user_relationships_api_socnet_is_related | Returns TRUE if uid1 has a confirmed relationship with uid2, optionally filter by relationship name and style |
user_relationships_api_socnet_relation_type | return 'two-way' or 'one-way' depending on the relation type |