User Relationships
This module allows users to create named relationships between each other.
Currently relationship types are defined by the admins.
Relationship types have a name, a plural name, a timeout, an auto approve designation and a directionality. The name can be anything. The timeout is the amount of time a request stays active. For example, if it's set to 30 days and a user requests a relationship with another user and that user doesn't accept or deny the request within 30 days the request will be dropped.
If auto approve is set, the system skips the request->approve/deny process and simply creates the relationship. An application of this might be the relationship type "subscriber." You don't necessarily need to approve of me subscribing to you.
There are only two types of directionality: two-way and one-way. An example of a two-way relationship may be "friends." If you're my friend I'm your friend. One-way relationships may be something like "manager," "follower," "stalker." You me be my manager, but I'm not yours.
A user can request a relationship by visiting another user's profile and clicking the request relationship link. They can view a list of all their relationships, specific types of relationships or their pending relationship requests by visiting their own profile. Within "pending relationships" they can approve, deny or cancel a request (approve or deny if requested by another user, cancel if their request of another user).
Developers (both module and theme) are given a wide array of API functions with which they can build additional functionality.
Theme developers should look at user_relationships_theme.inc for all the theme functions that are used throughout the core module. Anything created by plugin modules will be discussed in their section (linked to below).
