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

View File

@ -1,7 +1,7 @@
<?php <?php
/** /**
* A base class for decorators that wrap around a list to provide additional * 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. * implementation.
* *
* @package sapphire * @package sapphire
@ -108,7 +108,7 @@ abstract class SS_ListDecorator extends ViewableData implements SS_List {
public function canSortBy($by) { public function canSortBy($by) {
return $this->list->canSortBy($by); return $this->list->canSortBy($by);
} }
/** /**
* Sorts this list by one or more fields. You can either pass in a single * 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. * 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() { public function sort() {
$args = func_get_args(); $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 * Filter the list to include items with these charactaristics
* *
* @example $list->filter('Name', 'bob'); // only bob in list * @example $list->filter('Name', 'bob'); // only bob in list
* @example $list->filter('Name', array('aziz', 'bob'); // aziz and 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'=>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(){ public function filter(){
$args = func_get_args(); $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 * 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(){ public function exclude(){
$args = func_get_args(); $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() { public function debug() {