You are here

function user_relationships_types_load in User Relationships 6

Same name and namespace in other branches
  1. 5.3 user_relationships_api/user_relationships_api.api.inc \user_relationships_types_load()
  2. 5.2 user_relationships_api.inc \user_relationships_types_load()
  3. 7 user_relationships.module \user_relationships_types_load()

Public API for loading the full list of relationship types

Parameters

$reset: a boolean that forces a reset of the internal static types list

Return value

array of relationship_type objects

31 calls to user_relationships_types_load()
UserRelationshipsApiSocnetTestCase::setUp in user_relationships_api/tests/user_relationships_api.socnet.test
Enable modules.
UserRelationshipsApiTestCase::setUp in user_relationships_api/tests/user_relationships_api.api.test
Enable modules.
UserRelationshipsApiTestCase::testUserRelationshipsReciprocalTypes in user_relationships_api/tests/user_relationships_api.api.test
UserRelationshipsNodeAccessTestCase::setUp in user_relationship_node_access/tests/user_relationship_node_access.test
Enable modules.
user_relationships_api_activity_grants in user_relationships_api/user_relationships_api.activity.inc
Implementation of hook_activity_grants().

... See full list

File

user_relationships_api/user_relationships_api.api.inc, line 69
User Relationships API. Data abstraction layer @author Jeff Smick (creator) @author Alex Karshakevich (maintainer) http://drupal.org/user/183217

Code

function user_relationships_types_load($reset = NULL) {
  static $relationship_types_list = array();
  if ($reset || empty($relationship_types_list)) {

    //clear the cached list, since some relationships may have disappeared
    $relationship_types_list = array();
    $results = db_query("SELECT * FROM {user_relationship_types}");
    while ($relationship = db_fetch_object($results)) {
      $relationship_types_list[$relationship->rtid] = $relationship;
    }

    //load role permissions for all types
    $results = db_query('SELECT rtid, rid FROM {user_relationship_type_roles} ORDER BY rtid, rid');
    while ($mapping = db_fetch_object($results)) {
      $rtype = $relationship_types_list[$mapping->rtid];

      // //roles is an associative array {role id} => {role id}
      $rtype->roles[$mapping->rid] = $mapping->rid;

      //] = $mapping->name;
    }

    //load role receive permissions for all types
    $results = db_query('SELECT rtid, rid FROM {user_relationship_type_roles_receive} ORDER BY rtid, rid');
    while ($mapping = db_fetch_object($results)) {
      $rtype = $relationship_types_list[$mapping->rtid];

      // //roles is an associative array {role id} => {role id}
      $rtype->roles_receive[$mapping->rid] = $mapping->rid;

      //] = $mapping->name;
    }
  }
  _user_relationships_invoke('load', $relationship_types_list, TRUE);
  return $relationship_types_list;
}