Merge pull request #659 from ajshort/instance-search-filters

BUG: Allow using instances for search filters.
This commit is contained in:
Ingo Schommer 2012-08-16 13:07:35 -07:00
commit 4598cc02aa

View File

@ -3177,14 +3177,23 @@ class DataObject extends ViewableData implements DataObjectInterface, i18nEntity
*/
public function defaultSearchFilters() {
$filters = array();
foreach($this->searchableFields() as $name => $spec) {
$filterClass = $spec['filter'];
// if $filterClass is not set a name of any subclass of SearchFilter than assing 'PartiailMatchFilter' to it
if (!is_subclass_of($filterClass, 'SearchFilter')) {
$filterClass = 'PartialMatchFilter';
if($spec['filter'] instanceof SearchFilter) {
$filters[$name] = $spec['filter'];
} else {
$class = $spec['filter'];
if(!is_subclass_of($spec['filter'], 'SearchFilter')) {
$class = 'PartialMatchFilter';
}
$filters[$name] = new $class($name);
}
$filters[$name] = new $filterClass($name);
}
return $filters;
}