Piwik\Archive::createDataTableFromArchive PHP Method

createDataTableFromArchive() public static method

Helper function that creates an Archive instance and queries for report data using query parameter data. API methods can use this method to reduce code redundancy.
public static createDataTableFromArchive ( string $recordName, integer | string | array $idSite, string $period, string $date, string $segment, boolean $expanded = false, boolean $flat = false, integer | null $idSubtable = null, integer | null $depth = null ) : DataTable | Piwik\DataTable\Map
$recordName string The name of the report to return.
$idSite integer | string | array @see {@link build()}
$period string @see {@link build()}
$date string @see {@link build()}
$segment string @see {@link build()}
$expanded boolean If true, loads all subtables. See {@link getDataTableExpanded()}
$flat boolean If true, loads all subtables and disabled all recursive filters.
$idSubtable integer | null See {@link getDataTableExpanded()}
$depth integer | null See {@link getDataTableExpanded()}
return DataTable | Piwik\DataTable\Map
    public static function createDataTableFromArchive($recordName, $idSite, $period, $date, $segment, $expanded = false, $flat = false, $idSubtable = null, $depth = null)
    {
        Piwik::checkUserHasViewAccess($idSite);
        if ($flat && !$idSubtable) {
            $expanded = true;
        }
        $archive = Archive::build($idSite, $period, $date, $segment, $_restrictSitesToLogin = false);
        if ($idSubtable === false) {
            $idSubtable = null;
        }
        if ($expanded) {
            $dataTable = $archive->getDataTableExpanded($recordName, $idSubtable, $depth);
        } else {
            $dataTable = $archive->getDataTable($recordName, $idSubtable);
        }
        $dataTable->queueFilter('ReplaceSummaryRowLabel');
        $dataTable->queueFilter('ReplaceColumnNames');
        if ($expanded) {
            $dataTable->queueFilterSubtables('ReplaceColumnNames');
        }
        if ($flat) {
            $dataTable->disableRecursiveFilters();
        }
        return $dataTable;
    }

Usage Example

示例#1
0
 /**
  * @param int $idSite
  * @param string $period
  * @param Date $date
  * @param string $segment
  * @param bool $expanded
  * @param int $idSubtable
  *
  * @return DataTable|DataTable\Map
  */
 protected function getDataTable($idSite, $period, $date, $segment, $expanded, $flat, $idSubtable)
 {
     $dataTable = Archive::createDataTableFromArchive(Archiver::CUSTOM_VARIABLE_RECORD_NAME, $idSite, $period, $date, $segment, $expanded, $flat, $idSubtable);
     $dataTable->queueFilter('ColumnDelete', 'nb_uniq_visitors');
     if ($flat) {
         $dataTable->filterSubtables('Sort', array(Metrics::INDEX_NB_ACTIONS, 'desc', $naturalSort = false, $expanded));
         $dataTable->queueFilterSubtables('ColumnDelete', 'nb_uniq_visitors');
     }
     return $dataTable;
 }
All Usage Examples Of Piwik\Archive::createDataTableFromArchive