UserSettings/icons/linux.png) * * @package Piwik * @subpackage Piwik_DataTable */ class Piwik_DataTable_Filter_ColumnCallbackAddMetadata extends Piwik_DataTable_Filter { private $columnToRead; private $functionToApply; private $functionParameters; private $metadataToAdd; public function __construct( $table, $columnToRead, $metadataToAdd, $functionToApply = null, $functionParameters = null ) { parent::__construct($table); $this->functionToApply = $functionToApply; $this->functionParameters = $functionParameters; $this->columnToRead = $columnToRead; $this->metadataToAdd = $metadataToAdd; $this->filter(); } protected function filter() { foreach($this->table->getRows() as $key => $row) { $oldValue = $row->getColumn($this->columnToRead); $parameters = array($oldValue); if(!is_null($this->functionParameters)) { $parameters = array_merge($parameters, $this->functionParameters); } if(!is_null($this->functionToApply)) { $newValue = call_user_func_array( $this->functionToApply, $parameters); } else { $newValue = $oldValue; } $row->addMetadata($this->metadataToAdd, $newValue); } } }