diff options
author | Thomas Steur <thomas.steur@googlemail.com> | 2014-08-14 11:02:26 +0400 |
---|---|---|
committer | Thomas Steur <thomas.steur@gmail.com> | 2014-08-14 11:19:26 +0400 |
commit | 5cf69a0b75e0041e7373a18e21e7d640edbb69ec (patch) | |
tree | 76ede142c3b229099b8667293bff076b2cde2bde /core | |
parent | a040cb98cccb95ebe241465ad3cab1f0925d9e78 (diff) |
wondering if this fixes the skipped test?
Diffstat (limited to 'core')
-rw-r--r-- | core/DataTable.php | 24 | ||||
-rw-r--r-- | core/DataTable/Filter/ColumnDelete.php | 8 |
2 files changed, 27 insertions, 5 deletions
diff --git a/core/DataTable.php b/core/DataTable.php index d4c1976d60..3049dbf966 100644 --- a/core/DataTable.php +++ b/core/DataTable.php @@ -165,7 +165,7 @@ require_once PIWIK_INCLUDE_PATH . '/core/Common.php'; * * @api */ -class DataTable implements DataTableInterface, \IteratorAggregate +class DataTable implements DataTableInterface, \IteratorAggregate, \ArrayAccess { const MAX_DEPTH_DEFAULT = 15; @@ -1640,4 +1640,26 @@ class DataTable implements DataTableInterface, \IteratorAggregate public function getIterator() { return new \ArrayIterator($this->getRows()); } + + public function offsetExists($offset) + { + $row = $this->getRowFromId($offset); + + return false !== $row; + } + + public function offsetGet($offset) + { + return $this->getRowFromId($offset); + } + + public function offsetSet($offset, $value) + { + $this->rows[$offset] = $value; + } + + public function offsetUnset($offset) + { + $this->deleteRow($offset); + } }
\ No newline at end of file diff --git a/core/DataTable/Filter/ColumnDelete.php b/core/DataTable/Filter/ColumnDelete.php index 532cd5c644..5aac6d44a6 100644 --- a/core/DataTable/Filter/ColumnDelete.php +++ b/core/DataTable/Filter/ColumnDelete.php @@ -100,7 +100,7 @@ class ColumnDelete extends BaseFilter // remove columns specified in $this->columnsToRemove if (!empty($this->columnsToRemove)) { - foreach ($table as &$row) { + foreach ($table as $index => $row) { foreach ($this->columnsToRemove as $column) { if ($this->deleteIfZeroOnly) { $value = $row[$column]; @@ -109,7 +109,7 @@ class ColumnDelete extends BaseFilter } } - unset($row[$column]); + unset($table[$index][$column]); } } @@ -118,7 +118,7 @@ class ColumnDelete extends BaseFilter // remove columns not specified in $columnsToKeep if (!empty($this->columnsToKeep)) { - foreach ($table as &$row) { + foreach ($table as $index => $row) { foreach ($row as $name => $value) { $keep = false; @@ -133,7 +133,7 @@ class ColumnDelete extends BaseFilter && $name != 'label' // label cannot be removed via whitelisting && !isset($this->columnsToKeep[$name]) ) { - unset($row[$name]); + unset($table[$index][$name]); } } } |