Set the value $value to the metadata called $name.
public setMetadata ( string $name, mixed $value ) | ||
$name | string | name of the metadata to set. |
$value | mixed | value of the metadata to set. |
private function addRowWithMetadata($metadata) { $row = new Row(array(Row::COLUMNS => array('label' => 'val1'))); foreach ($metadata as $name => $value) { $row->setMetadata($name, $value); } $this->table->addRow($row); }
private function buildRowWithMetadata($metadata) { $row = new Row(array(Row::COLUMNS => array('label' => 'val1'))); foreach ($metadata as $name => $value) { $row->setMetadata($name, $value); } return $row; }
/** * @param Row $row * @param DataTable $dataTable * @param string $labelPrefix * @param bool $parentLogo */ private function flattenRow(Row $row, DataTable $dataTable, $labelPrefix = '', $parentLogo = false) { $label = $row->getColumn('label'); if ($label !== false) { $label = trim($label); if (substr($label, 0, 1) == '/' && $this->recursiveLabelSeparator == '/') { $label = substr($label, 1); } $label = $labelPrefix . $label; $row->setColumn('label', $label); } $logo = $row->getMetadata('logo'); if ($logo === false && $parentLogo !== false) { $logo = $parentLogo; $row->setMetadata('logo', $logo); } $subTable = $this->loadSubtable($dataTable, $row); $row->removeSubtable(); if ($subTable === null) { if ($this->includeAggregateRows) { $row->setMetadata('is_aggregate', 0); } $dataTable->addRow($row); } else { if ($this->includeAggregateRows) { $row->setMetadata('is_aggregate', 1); $dataTable->addRow($row); } $prefix = $label . $this->recursiveLabelSeparator; foreach ($subTable->getRows() as $row) { $this->flattenRow($row, $dataTable, $prefix, $logo); } } }
/** * Returns a custom data table. * This data table will be converted to all available formats * when requested in the API request. * * @return DataTable */ public function getCompetitionDatatable() { $dataTable = new DataTable(); $row1 = new Row(); $row1->setColumns(array('name' => 'piwik', 'license' => 'GPL')); // Rows Metadata is useful to store non stats data for example (logos, urls, etc.) // When printed out, they are simply merged with columns $row1->setMetadata('logo', 'logo.png'); $dataTable->addRow($row1); $dataTable->addRowFromSimpleArray(array('name' => 'google analytics', 'license' => 'commercial')); return $dataTable; }
/** * @param Row $row * @param string $metadataToFilter * @param mixed $newValue */ protected function setElementToReplace($row, $metadataToFilter, $newValue) { $row->setMetadata($metadataToFilter, $newValue); }
/** * @param Row $row * @param DataTable $dataTable * @param string $labelPrefix * @param bool $parentLogo */ private function flattenRow(Row $row, $rowId, DataTable $dataTable, $labelPrefix = '', $parentLogo = false) { $label = $row->getColumn('label'); if ($label !== false) { $label = trim($label); if ($this->recursiveLabelSeparator == '/') { if (substr($label, 0, 1) == '/') { $label = substr($label, 1); } elseif ($rowId === DataTable::ID_SUMMARY_ROW && $labelPrefix && $label != DataTable::LABEL_SUMMARY_ROW) { $label = ' - ' . $label; } } $label = $labelPrefix . $label; $row->setColumn('label', $label); } $logo = $row->getMetadata('logo'); if ($logo === false && $parentLogo !== false) { $logo = $parentLogo; $row->setMetadata('logo', $logo); } /** @var DataTable $subTable */ $subTable = $row->getSubtable(); if ($subTable) { $subTable->applyQueuedFilters(); $row->deleteMetadata('idsubdatatable_in_db'); } else { $subTable = $this->loadSubtable($dataTable, $row); } $row->removeSubtable(); if ($subTable === null) { if ($this->includeAggregateRows) { $row->setMetadata('is_aggregate', 0); } $dataTable->addRow($row); } else { if ($this->includeAggregateRows) { $row->setMetadata('is_aggregate', 1); $dataTable->addRow($row); } $prefix = $label . $this->recursiveLabelSeparator; $this->flattenDataTableInto($subTable, $dataTable, $prefix, $logo); } }
private function assertMetadataSavesValue($expectedValue, $metadataName, $valueToSet) { $this->row->setMetadata($metadataName, $valueToSet); $this->assertSame($expectedValue, $this->row->getMetadata($metadataName)); }