Piwik\Plugin\Visualization::render PHP Method

render() public method

public render ( )
    public function render()
    {
        $this->overrideSomeConfigPropertiesIfNeeded();
        try {
            $this->beforeLoadDataTable();
            $this->loadDataTableFromAPI();
            $this->postDataTableLoadedFromAPI();
            $requestPropertiesAfterLoadDataTable = $this->requestConfig->getProperties();
            $this->applyFilters();
            $this->addVisualizationInfoFromMetricMetadata();
            $this->afterAllFiltersAreApplied();
            $this->beforeRender();
            $this->logMessageIfRequestPropertiesHaveChanged($requestPropertiesAfterLoadDataTable);
        } catch (NoAccessException $e) {
            throw $e;
        } catch (\Exception $e) {
            Log::error("Failed to get data from API: " . $e->getMessage() . "\n" . $e->getTraceAsString());
            $message = $e->getMessage();
            if (\Piwik_ShouldPrintBackTraceWithMessage()) {
                $message .= "\n" . $e->getTraceAsString();
            }
            $loadingError = array('message' => $message);
        }
        $view = new View("@CoreHome/_dataTable");
        if (!empty($loadingError)) {
            $view->error = $loadingError;
        }
        $view->assign($this->templateVars);
        $view->visualization = $this;
        $view->visualizationTemplate = static::TEMPLATE_FILE;
        $view->visualizationCssClass = $this->getDefaultDataTableCssClass();
        $view->reportMetdadata = $this->getReportMetadata();
        if (null === $this->dataTable) {
            $view->dataTable = null;
        } else {
            $view->dataTableHasNoData = !$this->isThereDataToDisplay();
            $view->dataTable = $this->dataTable;
            // if it's likely that the report data for this data table has been purged,
            // set whether we should display a message to that effect.
            $view->showReportDataWasPurgedMessage = $this->hasReportBeenPurged();
            $view->deleteReportsOlderThan = Option::get('delete_reports_older_than');
        }
        $view->idSubtable = $this->requestConfig->idSubtable;
        $clientSideParameters = $this->getClientSideParametersToSet();
        if (isset($clientSideParameters['showtitle'])) {
            unset($clientSideParameters['showtitle']);
        }
        $view->clientSideParameters = $clientSideParameters;
        $view->clientSideProperties = $this->getClientSidePropertiesToSet();
        $view->properties = array_merge($this->requestConfig->getProperties(), $this->config->getProperties());
        $view->reportLastUpdatedMessage = $this->reportLastUpdatedMessage;
        $view->footerIcons = $this->config->footer_icons;
        $view->isWidget = Common::getRequestVar('widget', 0, 'int');
        return $view->render();
    }