FilterChain: Fix and document method listFilterColumns()

refs #10370
This commit is contained in:
Johannes Meyer 2015-11-10 13:16:40 +01:00
parent 7efefc1975
commit 6c07881466
1 changed files with 14 additions and 5 deletions

View File

@ -125,17 +125,26 @@ abstract class FilterChain extends Filter
return $this;
}
public function listFilteredColumns()
/**
* List and return all column names referenced in this filter
*
* @param array $columns The columns listed so far
*
* @return array
*/
public function listFilteredColumns(array $columns = array())
{
$columns = array();
foreach ($this->filters as $filter) {
if ($filter instanceof FilterExpression) {
$columns[] = $filter->getColumn();
$column= $filter->getColumn();
if (! in_array($column, $columns, true)) {
$columns[] = $column;
}
} else {
$columns += $filter->listFilteredColumns();
$columns = $filter->listFilteredColumns($columns);
}
}
// array_unique?
return $columns;
}