getColumn($columnName); if ($value === false) { if (empty($mappingNameToId)) { $mappingNameToId = Metrics::getMappingFromNameToId(); } if (isset($mappingNameToId[$columnName])) { return $row->getColumn($mappingNameToId[$columnName]); } } return $value; } elseif (!empty($row)) { if (array_key_exists($columnName, $row)) { return $row[$columnName]; } else { if (empty($mappingNameToId)) { $mappingNameToId = Metrics::getMappingFromNameToId(); } if (isset($mappingNameToId[$columnName])) { $columnName = $mappingNameToId[$columnName]; if (array_key_exists($columnName, $row)) { return $row[$columnName]; } } } } return null; } /** * Helper method that will determine the actual column name for a metric in a * {@link Piwik\DataTable} and return every column value for this name. * * @param DataTable $table * @param string $columnName * @param int[]|null $mappingNameToId A custom mapping of metric names to special index values. By * default {@link Metrics::getMappingFromNameToId()} is used. * @return array */ public static function getMetricValues(DataTable $table, $columnName, $mappingNameToId = null) { if (empty($mappingIdToName)) { $mappingNameToId = Metrics::getMappingFromNameToId(); } $columnName = self::getActualMetricColumn($table, $columnName, $mappingNameToId); return $table->getColumn($columnName); } /** * Helper method that determines the actual column for a metric in a {@link Piwik\DataTable}. * * @param DataTable $table * @param string $columnName * @param int[]|null $mappingNameToId A custom mapping of metric names to special index values. By * default {@link Metrics::getMappingFromNameToId()} is used. * @return string */ public static function getActualMetricColumn(DataTable $table, $columnName, $mappingNameToId = null) { $firstRow = $table->getFirstRow(); if (!empty($firstRow) && $firstRow->hasColumn($columnName) === false) { if (empty($mappingIdToName)) { $mappingNameToId = Metrics::getMappingFromNameToId(); } if (array_key_exists($columnName, $mappingNameToId)) { $columnName = $mappingNameToId[$columnName]; } } return $columnName; } }