You are here

function user_relationship_elaborations_user_relationships in User Relationships 6

hook_user_relationships()

1 call to user_relationship_elaborations_user_relationships()
user_relationship_elaborations_preprocess_user_relationships in user_relationship_elaborations/user_relationship_elaborations.module
Add elaborations to relationships page through MODULE_preprocess_HOOK

File

user_relationship_elaborations/user_relationship_elaborations.module, line 57
User Relationships Elaborations feature @author Jeff Smick (creator) @author Darren Ferguson http://drupal.org/user/70179

Code

function user_relationship_elaborations_user_relationships($op, &$relationships) {
  if (!is_array($relationships)) {
    if (!isset($relationships->rid)) {
      return;
    }
    if (in_array($op, array(
      'cancel',
      'delete',
      'remove',
      'disapprove',
    ))) {
      db_query('DELETE FROM {user_relationship_elaborations} WHERE rid = %d', $relationships->rid);
    }
    else {

      //load elaboration string
      $elaboration = db_result(db_query('SELECT elaboration FROM {user_relationship_elaborations} WHERE rid = %d'), $relationships->rid);
      if ($elaboration) {
        $relationships->elaboration = $elaboration;
      }
    }
  }
  else {

    //have several relationships to process
    $rids = array();

    //collect rids from the array
    _user_relationship_elaborations_walk_recursive('find_rids', $relationships, $rids);
    if ($rids) {
      if (in_array($op, array(
        'cancel',
        'delete',
        'remove',
        'disapprove',
      ))) {
        db_query('DELETE FROM {user_relationship_elaborations} WHERE rid IN (' . db_placeholders($rids) . ')', $rids);
      }
      else {

        //load elaboration data into these relationships
        $results = db_query('SELECT rid, elaboration FROM {user_relationship_elaborations} WHERE rid IN (' . db_placeholders($rids) . ')', $rids);
        while ($result = db_fetch_object($results)) {
          $elaborations[$result->rid] = $result->elaboration;
        }
        _user_relationship_elaborations_walk_recursive('load', $relationships, $elaborations);
      }
    }
  }
}