Piwik\Plugins\Referrers\Controller::getSparklines PHP Method

getSparklines() public method

public getSparklines ( )
    public function getSparklines()
    {
        $metrics = $this->getReferrersVisitorsByType();
        $distinctMetrics = $this->getDistinctReferrersMetrics();
        $numberFormatter = NumberFormatter::getInstance();
        $totalVisits = array_sum($metrics);
        foreach ($metrics as $name => $value) {
            // calculate percent of total, if there were any visits
            if ($value != 0 && $totalVisits != 0) {
                $percentName = $name . 'Percent';
                $metrics[$percentName] = round($value / $totalVisits * 100, 0);
            }
        }
        // calculate evolution for visit metrics & distinct metrics
        list($lastPeriodDate, $ignore) = Range::getLastDate();
        if ($lastPeriodDate !== false) {
            $date = Common::getRequestVar('date');
            $period = Common::getRequestVar('period');
            $prettyDate = self::getPrettyDate($date, $period);
            $prettyLastPeriodDate = self::getPrettyDate($lastPeriodDate, $period);
            // visit metrics
            $previousValues = $this->getReferrersVisitorsByType($lastPeriodDate);
            $metrics = $this->addEvolutionPropertiesToView($prettyDate, $metrics, $prettyLastPeriodDate, $previousValues);
            // distinct metrics
            $previousValues = $this->getDistinctReferrersMetrics($lastPeriodDate);
            $distinctMetrics = $this->addEvolutionPropertiesToView($prettyDate, $distinctMetrics, $prettyLastPeriodDate, $previousValues);
        }
        /** @var Sparklines $view */
        $view = ViewDataTable\Factory::build(Sparklines::ID, $api = '', $controller = '', $force = true, $loadUserParams = false);
        // DIRECT ENTRY
        $metrics['visitorsFromDirectEntry'] = $numberFormatter->formatNumber($metrics['visitorsFromDirectEntry']);
        $values = array($metrics['visitorsFromDirectEntry']);
        $descriptions = array(Piwik::translate('Referrers_TypeDirectEntries'));
        if (!empty($metrics['visitorsFromDirectEntryPercent'])) {
            $metrics['visitorsFromDirectEntryPercent'] = $numberFormatter->formatPercent($metrics['visitorsFromDirectEntryPercent'], $precision = 1);
            $values[] = $metrics['visitorsFromDirectEntryPercent'];
            $descriptions[] = Piwik::translate('Referrers_XPercentOfVisits');
        }
        $directEntryParams = $this->getReferrerSparklineParams(Common::REFERRER_TYPE_DIRECT_ENTRY);
        $view->config->addSparkline($directEntryParams, $values, $descriptions, @$metrics['visitorsFromDirectEntryEvolution']);
        // WEBSITES
        $metrics['visitorsFromWebsites'] = $numberFormatter->formatNumber($metrics['visitorsFromWebsites']);
        $values = array($metrics['visitorsFromWebsites']);
        $descriptions = array(Piwik::translate('Referrers_TypeWebsites'));
        if (!empty($metrics['visitorsFromWebsitesPercent'])) {
            $metrics['visitorsFromWebsitesPercent'] = $numberFormatter->formatPercent($metrics['visitorsFromWebsitesPercent'], $precision = 1);
            $values[] = $metrics['visitorsFromWebsitesPercent'];
            $descriptions[] = Piwik::translate('Referrers_XPercentOfVisits');
        }
        $searchEngineParams = $this->getReferrerSparklineParams(Common::REFERRER_TYPE_WEBSITE);
        $view->config->addSparkline($searchEngineParams, $values, $descriptions, @$metrics['visitorsFromWebsitesEvolution']);
        // SEARCH ENGINES
        $metrics['visitorsFromSearchEngines'] = $numberFormatter->formatNumber($metrics['visitorsFromSearchEngines']);
        $values = array($metrics['visitorsFromSearchEngines']);
        $descriptions = array(Piwik::translate('Referrers_TypeSearchEngines'));
        if (!empty($metrics['visitorsFromSearchEnginesPercent'])) {
            $metrics['visitorsFromSearchEnginesPercent'] = $numberFormatter->formatPercent($metrics['visitorsFromSearchEnginesPercent'], $precision = 1);
            $values[] = $metrics['visitorsFromSearchEnginesPercent'];
            $descriptions[] = Piwik::translate('Referrers_XPercentOfVisits');
        }
        $searchEngineParams = $this->getReferrerSparklineParams(Common::REFERRER_TYPE_SEARCH_ENGINE);
        $view->config->addSparkline($searchEngineParams, $values, $descriptions, @$metrics['visitorsFromSearchEnginesEvolution']);
        // CAMPAIGNS
        $metrics['visitorsFromCampaigns'] = $numberFormatter->formatNumber($metrics['visitorsFromCampaigns']);
        $values = array($metrics['visitorsFromCampaigns']);
        $descriptions = array(Piwik::translate('Referrers_TypeCampaigns'));
        if (!empty($metrics['visitorsFromCampaignsPercent'])) {
            $metrics['visitorsFromCampaignsPercent'] = $numberFormatter->formatPercent($metrics['visitorsFromCampaignsPercent'], $precision = 1);
            $values[] = $metrics['visitorsFromCampaignsPercent'];
            $descriptions[] = Piwik::translate('Referrers_XPercentOfVisits');
        }
        $searchEngineParams = $this->getReferrerSparklineParams(Common::REFERRER_TYPE_CAMPAIGN);
        $view->config->addSparkline($searchEngineParams, $values, $descriptions, @$metrics['visitorsFromCampaignsEvolution']);
        // DISTINCT SEARCH ENGINES
        $sparklineParams = $this->getDistinctSparklineUrlParams('getLastDistinctSearchEnginesGraph');
        $value = $distinctMetrics['numberDistinctSearchEngines'];
        $value = $numberFormatter->formatNumber($value);
        $description = Piwik::translate('Referrers_DistinctSearchEngines');
        $view->config->addSparkline($sparklineParams, $value, $description, @$distinctMetrics['numberDistinctSearchEnginesEvolution']);
        // DISTINCT WEBSITES
        $sparklineParams = $this->getDistinctSparklineUrlParams('getLastDistinctWebsitesGraph');
        $distinctMetrics['numberDistinctWebsites'] = $numberFormatter->formatNumber($distinctMetrics['numberDistinctWebsites']);
        $distinctMetrics['numberDistinctWebsitesUrls'] = $numberFormatter->formatNumber($distinctMetrics['numberDistinctWebsitesUrls']);
        $values = array($distinctMetrics['numberDistinctWebsites'], $distinctMetrics['numberDistinctWebsitesUrls']);
        $descriptions = array(Piwik::translate('Referrers_DistinctWebsites'), Piwik::translate('Referrers_UsingNDistinctUrls'));
        $view->config->addSparkline($sparklineParams, $values, $descriptions, @$distinctMetrics['numberDistinctWebsitesEvolution']);
        // DISTINCT KEYWORDS
        $sparklineParams = $this->getDistinctSparklineUrlParams('getLastDistinctKeywordsGraph');
        $value = $distinctMetrics['numberDistinctKeywords'];
        $value = $numberFormatter->formatNumber($value);
        $description = Piwik::translate('Referrers_DistinctKeywords');
        $view->config->addSparkline($sparklineParams, $value, $description, @$distinctMetrics['numberDistinctKeywordsEvolution']);
        // DISTINCT CAMPAIGNS
        $sparklineParams = $this->getDistinctSparklineUrlParams('getLastDistinctCampaignsGraph');
        $value = $distinctMetrics['numberDistinctCampaigns'];
        $value = $numberFormatter->formatNumber($value);
        $description = Piwik::translate('Referrers_DistinctCampaigns');
        $view->config->addSparkline($sparklineParams, $value, $description, @$distinctMetrics['numberDistinctCampaignsEvolution']);
        return $view->render();
    }