mirror of
https://github.com/EGroupware/egroupware.git
synced 2024-11-21 23:43:17 +01:00
Add table name in when parsing search
Also, some code quality fixes
This commit is contained in:
parent
ca84df7007
commit
35fd51da86
@ -394,10 +394,10 @@ class Base
|
|||||||
{
|
{
|
||||||
if (!isset($this->table_def))
|
if (!isset($this->table_def))
|
||||||
{
|
{
|
||||||
$this->table_def = $this->db->get_table_definitions($this->app, $this->table);
|
$this->table_def = $this->db->get_table_definitions($this->app, $this->table_name);
|
||||||
if (!$this->table_def || !is_array($this->table_def['fd']))
|
if (!$this->table_def || !is_array($this->table_def['fd']))
|
||||||
{
|
{
|
||||||
throw new Api\Exception\WrongParameter(__METHOD__."(): No table definition for '$this->table' found !!!");
|
throw new Api\Exception\WrongParameter(__METHOD__."(): No table definition for '$this->table_name' found !!!");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
foreach($this->table_def['fd'] as $col => $def)
|
foreach($this->table_def['fd'] as $col => $def)
|
||||||
@ -1074,7 +1074,7 @@ class Base
|
|||||||
* @param string $wildcard ='' appended befor and after each criteria
|
* @param string $wildcard ='' appended befor and after each criteria
|
||||||
* @param boolean $empty =false False=empty criteria are ignored in query, True=empty have to be empty in row
|
* @param boolean $empty =false False=empty criteria are ignored in query, True=empty have to be empty in row
|
||||||
* @param string $op ='AND' defaults to 'AND', can be set to 'OR' too, then criteria's are OR'ed together
|
* @param string $op ='AND' defaults to 'AND', can be set to 'OR' too, then criteria's are OR'ed together
|
||||||
* @return Array
|
* @return array|string
|
||||||
* @throws Api\Db\Exception
|
* @throws Api\Db\Exception
|
||||||
*/
|
*/
|
||||||
protected function parse_search(Array $_criteria, $wildcard, $empty, $op)
|
protected function parse_search(Array $_criteria, $wildcard, $empty, $op)
|
||||||
@ -1114,6 +1114,7 @@ class Base
|
|||||||
{
|
{
|
||||||
$wildcard = '';
|
$wildcard = '';
|
||||||
}
|
}
|
||||||
|
$table_name = $this->db_cols[$db_col] ? $this->table_name . '.' : '';
|
||||||
$cmp_op = ' '.$this->db->capabilities['case_insensitive_like'].' ';
|
$cmp_op = ' '.$this->db->capabilities['case_insensitive_like'].' ';
|
||||||
$negate = false;
|
$negate = false;
|
||||||
if ($criteria[$col][0] == '!')
|
if ($criteria[$col][0] == '!')
|
||||||
@ -1124,7 +1125,7 @@ class Base
|
|||||||
}
|
}
|
||||||
foreach(explode(' ',$criteria[$col]) as $crit)
|
foreach(explode(' ',$criteria[$col]) as $crit)
|
||||||
{
|
{
|
||||||
$query[] = ($negate ? ' ('.$db_col.' IS NULL OR ' : '').$db_col.$cmp_op.
|
$query[] = ($negate ? ' ('.$table_name.$db_col.' IS NULL OR ' : '').$table_name.$db_col.$cmp_op.
|
||||||
$this->db->quote($wildcard.str_replace(array('%','_','*','?'),array('\\%','\\_','%','_'),$crit).$wildcard).
|
$this->db->quote($wildcard.str_replace(array('%','_','*','?'),array('\\%','\\_','%','_'),$crit).$wildcard).
|
||||||
($negate ? ') ' : '');
|
($negate ? ') ' : '');
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user