function _user_relationship_process_query_argument in User Relationships 6
Same name and namespace in other branches
- 5.3 user_relationships_api/user_relationships_api.module \_user_relationship_process_query_argument()
- 5.2 user_relationships.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_api/
user_relationships_api.module - Helper function to generate the main and count queries from a list of parameters and options
File
- user_relationships_api/
user_relationships_api.module, line 186 - User Relationships API. Module shell. @author Jeff Smick (creator) @author Alex Karshakevich (maintainer) http://drupal.org/user/183217
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 {
$type = is_numeric(current($value)) ? 'int' : 'varchar';
return 'IN (' . db_placeholders($value, $type) . ')';
}
}
elseif (is_numeric($value) || is_bool($value)) {
$value = (int) $value;
return '= %d';
}
elseif (is_float($value)) {
return '= %f';
}
elseif (preg_match('/([<>=]{1,2})\\s*(.+)/', $value, $matches)) {
$marker = "'%s'";
$value = $matches[2];
if (is_numeric($value)) {
$marker = '%d';
$value = (int) $value;
}
return "{$matches[1]} {$marker}";
}
else {
return "= '%s'";
}
}