Sh3ll
OdayForums


Server : LiteSpeed
System : Linux premium84.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64
User : claqxcrl ( 523)
PHP Version : 8.1.32
Disable Function : NONE
Directory :  /home/claqxcrl/anfangola.com/wp-content/plugins/matomo/app/plugins/Referrers/Reports/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/claqxcrl/anfangola.com/wp-content/plugins/matomo/app/plugins/Referrers/Reports/Get.php
<?php

/**
 * Matomo - free/libre analytics platform
 *
 * @link https://matomo.org
 * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
 *
 */
namespace Piwik\Plugins\Referrers\Reports;

use Piwik\API\Request;
use Piwik\Common;
use Piwik\DataTable;
use Piwik\DataTable\Filter\CalculateEvolutionFilter;
use Piwik\Date;
use Piwik\Metrics;
use Piwik\NumberFormatter;
use Piwik\Period;
use Piwik\Period\Factory;
use Piwik\Period\Month;
use Piwik\Period\Range;
use Piwik\Piwik;
use Piwik\Plugin\ViewDataTable;
use Piwik\Plugins\CoreVisualizations\Visualizations\Sparklines;
use Piwik\Plugins\Referrers\Archiver;
use Piwik\Report\ReportWidgetFactory;
use Piwik\Widget\WidgetsList;
class Get extends \Piwik\Plugins\Referrers\Reports\Base
{
    const TOTAL_DIRECT_ENTRIES_METRIC_NAME = 'Referrers_directEntries';
    protected function init()
    {
        parent::init();
        $this->name = Piwik::translate('Referrers_ReferrersOverview');
        $this->documentation = Piwik::translate('Referrers_ReferrersOverviewDocumentation');
        $this->processedMetrics = [];
        $this->metrics = ['Referrers_visitorsFromSearchEngines', 'Referrers_visitorsFromSearchEngines_percent', 'Referrers_visitorsFromSocialNetworks', 'Referrers_visitorsFromSocialNetworks_percent', 'Referrers_visitorsFromDirectEntry', 'Referrers_visitorsFromDirectEntry_percent', 'Referrers_visitorsFromWebsites', 'Referrers_visitorsFromWebsites_percent', 'Referrers_visitorsFromCampaigns', 'Referrers_visitorsFromCampaigns_percent', Archiver::METRIC_DISTINCT_SEARCH_ENGINE_RECORD_NAME, Archiver::METRIC_DISTINCT_SOCIAL_NETWORK_RECORD_NAME, Archiver::METRIC_DISTINCT_WEBSITE_RECORD_NAME, Archiver::METRIC_DISTINCT_KEYWORD_RECORD_NAME, Archiver::METRIC_DISTINCT_CAMPAIGN_RECORD_NAME];
    }
    public function configureWidgets(WidgetsList $widgetsList, ReportWidgetFactory $factory)
    {
        // empty
    }
    public function configureView(ViewDataTable $view)
    {
        if ($view->isViewDataTableId(Sparklines::ID) && $view instanceof Sparklines) {
            $this->addSparklineColumns($view);
            $view->config->addTranslations($this->getSparklineTranslations());
            // add evolution values
            [$lastPeriodDate, $ignore] = Range::getLastDate();
            if ($lastPeriodDate !== false) {
                $date = Common::getRequestVar('date');
                /** @var DataTable $previousData */
                $previousData = Request::processRequest('Referrers.get', ['date' => $lastPeriodDate]);
                $previousDataRow = $previousData->getFirstRow();
                $view->config->compute_evolution = function ($columns) use($date, $lastPeriodDate, $previousDataRow) {
                    $value = reset($columns);
                    $columnName = key($columns);
                    if (!in_array($columnName, $this->metrics)) {
                        return;
                    }
                    $pastValue = $previousDataRow ? $previousDataRow->getColumn($columnName) : 0;
                    $currentValueFormatted = NumberFormatter::getInstance()->format($value);
                    $pastValueFormatted = NumberFormatter::getInstance()->format($pastValue);
                    return ['currentValue' => $value, 'pastValue' => $pastValue, 'isLowerValueBetter' => Metrics::isLowerValueBetter($columnName), 'tooltip' => Piwik::translate('General_EvolutionSummaryGeneric', array(Piwik::translate('General_NVisits', $currentValueFormatted), $date, Piwik::translate('General_NVisits', $pastValueFormatted), $lastPeriodDate, CalculateEvolutionFilter::calculate($value, $pastValue, $precision = 1)))];
                };
            }
        }
    }
    /**
     * Returns the pretty date representation
     *
     * @param $date string
     * @param $period string
     * @return string Pretty date
     */
    public static function getPrettyDate($date, $period)
    {
        return self::getCalendarPrettyDate(Factory::build($period, Date::factory($date)));
    }
    /**
     * Returns a prettified date string for use in period selector widget.
     *
     * @param Period $period The period to return a pretty string for.
     * @return string
     * @api
     */
    public static function getCalendarPrettyDate($period)
    {
        if ($period instanceof Month) {
            // show month name when period is for a month
            return $period->getLocalizedLongString();
        } else {
            return $period->getPrettyString();
        }
    }
    private function addSparklineColumns(Sparklines $view)
    {
        $view->config->addSparklineMetric(['Referrers_visitorsFromDirectEntry', 'Referrers_visitorsFromDirectEntry_percent'], 10, ['rows' => Common::REFERRER_TYPE_DIRECT_ENTRY . ',total']);
        $view->config->addSparklineMetric(['Referrers_visitorsFromWebsites', 'Referrers_visitorsFromWebsites_percent'], 20, ['rows' => Common::REFERRER_TYPE_WEBSITE . ',total']);
        $view->config->addSparklineMetric(['Referrers_visitorsFromSearchEngines', 'Referrers_visitorsFromSearchEngines_percent'], 30, ['rows' => Common::REFERRER_TYPE_SEARCH_ENGINE . ',total']);
        $view->config->addSparklineMetric(['Referrers_visitorsFromSocialNetworks', 'Referrers_visitorsFromSocialNetworks_percent'], 40, ['rows' => Common::REFERRER_TYPE_SOCIAL_NETWORK . ',total']);
        $view->config->addSparklineMetric(['Referrers_visitorsFromCampaigns', 'Referrers_visitorsFromCampaigns_percent'], 50, ['rows' => Common::REFERRER_TYPE_CAMPAIGN . ',total']);
        $view->config->addSparklineMetric([Archiver::METRIC_DISTINCT_SEARCH_ENGINE_RECORD_NAME], 50);
        $view->config->addSparklineMetric([Archiver::METRIC_DISTINCT_SOCIAL_NETWORK_RECORD_NAME], 60);
        $view->config->addSparklineMetric([Archiver::METRIC_DISTINCT_WEBSITE_RECORD_NAME], 70);
        $view->config->addSparklineMetric([Archiver::METRIC_DISTINCT_KEYWORD_RECORD_NAME], 80);
        $view->config->addSparklineMetric([Archiver::METRIC_DISTINCT_CAMPAIGN_RECORD_NAME], 90);
    }
    private function getSparklineTranslations()
    {
        $translations = ['Referrers_visitorsFromDirectEntry' => Piwik::translate('Referrers_TypeDirectEntries'), 'Referrers_visitorsFromWebsites' => Piwik::translate('Referrers_TypeWebsites'), 'Referrers_visitorsFromSearchEngines' => Piwik::translate('Referrers_TypeSearchEngines'), 'Referrers_visitorsFromSocialNetworks' => Piwik::translate('Referrers_TypeSocialNetworks'), 'Referrers_visitorsFromCampaigns' => Piwik::translate('Referrers_TypeCampaigns')];
        foreach ($translations as $name => $label) {
            $translations[$name . '_percent'] = Piwik::translate('Referrers_XPercentOfVisits');
        }
        $translations = array_merge($translations, [Archiver::METRIC_DISTINCT_SEARCH_ENGINE_RECORD_NAME => Piwik::translate('Referrers_DistinctSearchEngines'), Archiver::METRIC_DISTINCT_SOCIAL_NETWORK_RECORD_NAME => Piwik::translate('Referrers_DistinctSocialNetworks'), Archiver::METRIC_DISTINCT_WEBSITE_RECORD_NAME => Piwik::translate('Referrers_DistinctWebsites'), Archiver::METRIC_DISTINCT_KEYWORD_RECORD_NAME => Piwik::translate('Referrers_DistinctKeywords'), Archiver::METRIC_DISTINCT_CAMPAIGN_RECORD_NAME => Piwik::translate('Referrers_DistinctCampaigns')]);
        return $translations;
    }
}

ZeroDay Forums Mini