mirror of
https://github.com/EGroupware/egroupware.git
synced 2024-12-23 07:09:20 +01:00
fix advanced search for customfields (multiple field criteria, combined by AND) in addressbook
This commit is contained in:
parent
89ed32a022
commit
07930ecd58
@ -457,21 +457,31 @@ class so_sql_cf extends so_sql
|
|||||||
unset($criteria[$name]);
|
unset($criteria[$name]);
|
||||||
}
|
}
|
||||||
elseif (is_string($name) && $this->is_cf($name))
|
elseif (is_string($name) && $this->is_cf($name))
|
||||||
|
{
|
||||||
|
if ($op != 'AND')
|
||||||
{
|
{
|
||||||
$name = substr($name, 1);
|
$name = substr($name, 1);
|
||||||
if (($negate = $criteria[$name][0] === '!'))
|
if (($negate = $criteria[$name][0] === '!'))
|
||||||
{
|
{
|
||||||
$val = substr($val,1);
|
$val = substr($val,1);
|
||||||
}
|
}
|
||||||
$criteria[] = '(' . $this->extra_table.'.'.$this->extra_value . ' ' .($negate ? 'NOT ' : '').
|
$cfcriteria[] = '(' . $this->extra_table.'.'.$this->extra_value . ' ' .($negate ? 'NOT ' : '').
|
||||||
$this->db->capabilities[egw_db::CAPABILITY_CASE_INSENSITIV_LIKE]. ' ' .
|
$this->db->capabilities[egw_db::CAPABILITY_CASE_INSENSITIV_LIKE]. ' ' .
|
||||||
$this->db->quote($wildcard.$val.$wildcard) . ' AND ' .
|
$this->db->quote($wildcard.$val.$wildcard) . ' AND ' .
|
||||||
$this->extra_table.'.'.$this->extra_key . ' = ' . $this->db->quote($name) .
|
$this->extra_table.'.'.$this->extra_key . ' = ' . $this->db->quote($name) .
|
||||||
')';
|
')';
|
||||||
unset($criteria[self::CF_PREFIX.$name]);
|
unset($criteria[self::CF_PREFIX.$name]);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// criteria operator is AND we remap the criteria to be transformed to filters
|
||||||
|
$filter[$name] = $val;
|
||||||
|
unset($criteria[$name]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
if ($cfcriteria && $op =='OR') $criteria[] = implode(' OR ',$cfcriteria);
|
||||||
|
}
|
||||||
if($only_keys === true) {
|
if($only_keys === true) {
|
||||||
// Expand to keys here, so table_name can be prepended below
|
// Expand to keys here, so table_name can be prepended below
|
||||||
$only_keys = array_values($this->db_key_cols);
|
$only_keys = array_values($this->db_key_cols);
|
||||||
|
Loading…
Reference in New Issue
Block a user