Bad parameter forwarding from SS_ListDecorator (sort,filter,exclude) to i.e. DataList.

This commit is contained in:
Dominik Beerbohm 2012-01-17 00:34:54 +01:00
parent 3a9ea42488
commit 09c1f8f576
1 changed files with 9 additions and 10 deletions

View File

@ -1,7 +1,7 @@
<?php
/**
* A base class for decorators that wrap around a list to provide additional
* functionality. It passes through list methods to the underlying list
* functionality. It passes through list methods to the underlying list
* implementation.
*
* @package sapphire
@ -108,7 +108,7 @@ abstract class SS_ListDecorator extends ViewableData implements SS_List {
public function canSortBy($by) {
return $this->list->canSortBy($by);
}
/**
* Sorts this list by one or more fields. You can either pass in a single
* field name and direction, or a map of field names to sort directions.
@ -120,22 +120,22 @@ abstract class SS_ListDecorator extends ViewableData implements SS_List {
*/
public function sort() {
$args = func_get_args();
return $this->list->sort($args);
return call_user_func_array(array($this->list, 'sort'), $args);
}
/**
* Filter the list to include items with these charactaristics
*
*
* @example $list->filter('Name', 'bob'); // only bob in list
* @example $list->filter('Name', array('aziz', 'bob'); // aziz and bob in list
* @example $list->filter(array('Name'=>'bob, 'Age'=>21)); // bob or someone with Age 21
* @example $list->filter(array('Name'=>'bob, 'Age'=>array(21, 43))); // bob or anyone with Age 21 or 43
* @example $list->filter(array('Name'=>'bob, 'Age'=>array(21, 43))); // bob or anyone with Age 21 or 43
*/
public function filter(){
$args = func_get_args();
return $this->list->filter(func_get_args($args));
return call_user_func_array(array($this->list, 'filter'), $args);
}
/**
* Exclude the list to not contain items with these charactaristics
*
@ -146,8 +146,7 @@ abstract class SS_ListDecorator extends ViewableData implements SS_List {
*/
public function exclude(){
$args = func_get_args();
return $this->list->exclude(func_get_args($args));
return call_user_func_array(array($this->list, 'exclude'), $args);
}
public function debug() {