/** * Given a list of fields defining numeric values, it will return a Piwik_DataTable_Array * ordered by idsite * * @param array|string $fields array( fieldName1, fieldName2, ...) Names of the mysql table fields to load * @return Piwik_DataTable_Array */ public function getDataTableFromNumeric( $fields ) { $tableArray = $this->getNewDataTableArray(); if ($this->getFirstArchive() instanceof Piwik_Archive_Single) { $values = $this->getValues($fields); foreach($this->archives as $idSite => $archive) { $table = new Piwik_DataTable_Simple(); if (array_key_exists($idSite, $values)) { $table->addRowsFromArray($values[$idSite]); } $tableArray->addTable($table, $idSite); } } elseif ($this->getFirstArchive() instanceof Piwik_Archive_Array) { foreach($this->archives as $idSite => $archive) { $tableArray->addTable($archive->getDataTableFromNumeric($fields), $idSite); } } return $tableArray; }
/** * Given a list of fields defining numeric values, it will return a Piwik_DataTable_Simple * containing one row per field name. * * For example $fields = array( 'max_actions', * 'nb_uniq_visitors', * 'nb_visits', * 'nb_actions', * 'sum_visit_length', * 'bounce_count', * 'nb_visits_converted' * ); * * @param string|array $fields Name or array of names of Archive fields * * @return Piwik_DataTable_Simple */ public function getDataTableFromNumeric($fields) { if (!is_array($fields)) { $fields = array($fields); } $values = array(); foreach ($fields as $field) { $values[$field] = $this->getNumeric($field); } $table = new Piwik_DataTable_Simple(); $table->addRowsFromArray($values); return $table; }
protected function _getDataTableSimpleOneRowArrayTest() { $array1 = array('nb_visits' => 14.0); $table1 = new Piwik_DataTable_Simple(); $table1->addRowsFromArray($array1); $array2 = array('nb_visits' => 15.0); $table2 = new Piwik_DataTable_Simple(); $table2->addRowsFromArray($array2); $table3 = new Piwik_DataTable_Simple(); $table = new Piwik_DataTable_Array(); $table->setKeyName('testKey'); $table->addTable($table1, 'row1'); $table->addTable($table2, 'row2'); $table->addTable($table3, 'row3'); return $table; }
protected function handleScalar($scalar) { $dataTable = new Piwik_DataTable_Simple(); $dataTable->addRowsFromArray( array($scalar) ); return $this->getRenderedDataTable($dataTable); }
/** * Returns a DataTable_Array containing values * of the element $name from the archives in this Archive_Array. * * The value to be returned are blob values (stored in the archive_numeric_* tables in the DB). * * It can return anything from strings, to serialized PHP arrays or PHP objects, etc. * * @param string $name Name of the mysql table field to load eg. Referers_keywordBySearchEngine * @return Piwik_DataTable_Array containing the requested blob values for each Archive */ public function getBlob($name) { $table = $this->getNewDataTableArray(); foreach ($this->archives as $archive) { $blob = $archive->getBlob($name); $subTable = new Piwik_DataTable_Simple(); $subTable->addRowsFromArray(array('blob' => $blob)); $table->addTable($subTable, $this->getDataTableLabelValue($archive)); $this->loadMetadata($table, $archive); } return $table; }