public function filter($className, $parameters = array())
{
if ($className instanceof \Closure || is_array($className)) {
array_unshift($parameters, $this);
call_user_func_array($className, $parameters);
return;
}
if (in_array($className, $this->disabledFilters)) {
return;
}
if (!class_exists($className, true)) {
$className = 'Piwik\\DataTable\\Filter\\' . $className;
}
$reflectionObj = new ReflectionClass($className);
// the first parameter of a filter is the DataTable
// we add the current datatable as the parameter
$parameters = array_merge(array($this), $parameters);
$filter = $reflectionObj->newInstanceArgs($parameters);
$filter->enableRecursive($this->enableRecursiveFilters);
$filter->filter($this);
}