Piwik\Plugin\Visualization::applyFilters PHP Method

applyFilters() private method

private applyFilters ( )
    private function applyFilters()
    {
        $postProcessor = $this->makeDataTablePostProcessor();
        // must be created after requestConfig is final
        $self = $this;
        $postProcessor->setCallbackBeforeGenericFilters(function (DataTable\DataTableInterface $dataTable) use($self, $postProcessor) {
            $self->setDataTable($dataTable);
            // First, filters that delete rows
            foreach ($self->config->getPriorityFilters() as $filter) {
                $dataTable->filter($filter[0], $filter[1]);
            }
            $self->beforeGenericFiltersAreAppliedToLoadedDataTable();
            if (!in_array($self->requestConfig->filter_sort_column, $self->config->columns_to_display)) {
                $hasNbUniqVisitors = in_array('nb_uniq_visitors', $self->config->columns_to_display);
                $columns = $dataTable->getColumns();
                $self->requestConfig->setDefaultSort($self->config->columns_to_display, $hasNbUniqVisitors, $columns);
            }
            $postProcessor->setRequest($self->buildApiRequestArray());
        });
        $postProcessor->setCallbackAfterGenericFilters(function (DataTable\DataTableInterface $dataTable) use($self) {
            $self->setDataTable($dataTable);
            $self->afterGenericFiltersAreAppliedToLoadedDataTable();
            // queue other filters so they can be applied later if queued filters are disabled
            foreach ($self->config->getPresentationFilters() as $filter) {
                $dataTable->queueFilter($filter[0], $filter[1]);
            }
        });
        $this->dataTable = $postProcessor->process($this->dataTable);
    }