You are here

function user_relationships_cron in User Relationships 5.2

Same name and namespace in other branches
  1. 5 user_relationships_hooks.inc \user_relationships_cron()
  2. 7 user_relationships.module \user_relationships_cron()

Cron

File

./user_relationships_hooks.inc, line 328

Code

function user_relationships_cron() {
  $now = time();

  // only expire relationships once a day
  $last_cron = variable_get('user_relationships_last_expire', 0);
  if ($now < $last_cron + 86400) {
    return FALSE;
  }
  $result = db_query(" SELECT ur.rid\n      FROM {user_relationships} ur\n        INNER JOIN {user_relationship_types} urt ON ur.rtid = urt.rtid\n        WHERE ur.approved = 0\n          AND urt.expires_val > 0\n        AND ur.updated_at < (%d - (urt.expires_val * 86400))\n      GROUP BY ur.rid", $now);
  $expired_requests = array();
  while ($request = db_fetch_object($result)) {
    $expired_requests[$request->rid] = $request;
  }
  if ($expired_requests) {
    $placeholders = implode(', ', array_fill(0, count($expired_requests), '%d'));
    db_query('DELETE FROM {user_relationships} WHERE rid IN (' . $placeholders . ')', $expired_requests);
    _user_relationships_invoke('delete', $expired_requests);
  }

  // remember when we last expired relationships
  variable_set('user_relationships_last_expire', $now);
  return TRUE;
}