function _user_relationships_ui_get_requestable_rtypes in User Relationships 6
Get relationship types that a user can request TODO: factor out of .module into an include file
Parameters
$requester requester user or uid:
$requestee requestee user or uid:
Return value
array {rtid} => {relationship type name} that requester may send to requestee
1 call to _user_relationships_ui_get_requestable_rtypes()
- user_relationships_ui_request_form in user_relationships_ui/
user_relationships_ui.forms.inc - Request new user to user relationship
File
- user_relationships_ui/
user_relationships_ui.module, line 311 - UI components of user_relationships @author Jeff Smick (creator) @author Alex Karshakevich (maintainer) http://drupal.org/user/183217 @author Darren Ferguson (contributor) http://drupal.org/user/70179
Code
function _user_relationships_ui_get_requestable_rtypes($requester, $requestee) {
$current_relationships = user_relationships_load(array(
'between' => array(
$requester->uid,
$requestee->uid,
),
), array(
'sort' => 'rtid',
));
$relationship_types = user_relationships_types_load();
$relationships = array();
foreach ($relationship_types as $rtype) {
//exclude already established relationships
if (!isset($current_relationships[$rtype->rtid])) {
$relationships[$rtype->rtid] = ur_tt("user_relationships:rtid:{$rtype->rtid}:name", $rtype->name);
continue;
}
$relationship = $current_relationships[$rtype->rtid];
if (is_array($relationship) && count($relationship)) {
$relationship = $relationship[0];
}
//skip two-way relationships, one-way non-reciprocal relationships, or reciprocal where this direction already exists
if (isset($current_relationships[$rtype->rtid]) && (!$rtype->is_oneway || !$rtype->is_reciprocal || $relationship->requester_id == $requester->uid)) {
continue;
}
//exclude types that are not allowed
if (!user_relationships_api_can_request($requester, $rtype) || !user_relationships_api_can_receive($requestee, $rtype)) {
continue;
}
$relationships[$rtype->rtid] = ur_tt("user_relationships:rtid:{$rtype->rtid}:name", $rtype->name);
}
return $relationships;
}