You are here

function _user_relationship_process_query_argument in User Relationships 5.2

Same name and namespace in other branches
  1. 5.3 user_relationships_api/user_relationships_api.module \_user_relationship_process_query_argument()
  2. 6 user_relationships_api/user_relationships_api.module \_user_relationship_process_query_argument()

Helper function to process the various argument types allowed

1 call to _user_relationship_process_query_argument()
_user_relationships_generate_query in ./user_relationships.module
Helper function to generate queries from a list of parameters

File

./user_relationships.module, line 373

Code

function _user_relationship_process_query_argument($key, &$value) {
  if ($key == 'between') {
    return array(
      _user_relationship_process_query_argument(NULL, $value[0]),
      _user_relationship_process_query_argument(NULL, $value[1]),
    );
  }
  if (is_array($value)) {
    if (count($value) == 1) {
      $value = array_shift($value);
      return _user_relationship_process_query_argument($key, $value);
    }
    else {
      $value = implode(',', $value);
      return 'IN (%s)';
    }
  }
  else {
    if (is_numeric($value) || is_bool($value)) {
      $value = (int) $value;
      return '= %d';
    }
    else {
      if (preg_match('/([<>=]{1,2})\\s*(.+)/', $value, $matches)) {
        $marker = "'%s'";
        $value = $matches[3];
        if (is_numeric($value)) {
          $marker = '%d';
          $value = (int) $value;
        }
        return "{$matches[1]} {$marker}";
      }
      else {
        return "= '%s'";
      }
    }
  }
}