Fix DataObjectSet constructor breaking with associative arrays

git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/trunk@47873 467b73ca-7a2a-4603-9d3b-597d59a354a9
This commit is contained in:
Andrew O'Neil 2008-01-11 00:05:57 +00:00
parent d0827cc3ef
commit 05051ef484

View File

@ -75,18 +75,18 @@ class DataObjectSet extends ViewableData implements Iterator {
$itemsArr = (!is_array($items) || count(func_get_args()) > 1) ? func_get_args() : $items;
// We now have support for using the key of a data object set
for($i=0; $i<count($itemsArr); $i++) {
if(is_subclass_of($itemsArr[$i], 'ViewableData')) {
$this->items[] = $itemsArr[$i];
} elseif(is_object($itemsArr[$i]) || ArrayLib::is_associative($itemsArr[$i])) {
$this->items[] = new ArrayData($itemsArr[$i]);
foreach($itemsArr as $i => $item) {
if(is_subclass_of($item, 'ViewableData')) {
$this->items[$i] = $item;
} elseif(is_object($item) || ArrayLib::is_associative($item)) {
$this->items[$i] = new ArrayData($item);
} else {
user_error(
"DataObjectSet::__construct: Passed item #{$i} is not an object or associative array,
can't be properly iterated on in templates",
E_USER_WARNING
);
$this->items[] = $itemsArr[$i];
$this->items[$i] = $item;
}
}