Piwik\Plugins\UserCountryMap\Controller::visitorMap PHP Method

visitorMap() public method

public visitorMap ( $fetch = false, $segmentOverride = false )
    public function visitorMap($fetch = false, $segmentOverride = false)
    {
        $this->checkUserCountryPluginEnabled();
        $idSite = Common::getRequestVar('idSite', 1, 'int');
        Piwik::checkUserHasViewAccess($idSite);
        $period = Common::getRequestVar('period');
        $date = Common::getRequestVar('date');
        if (!empty($segmentOverride)) {
            $segment = $segmentOverride;
        } else {
            $segment = Request::getRawSegmentFromRequest();
            if (empty($segment)) {
                $segment = '';
            }
        }
        $token_auth = Piwik::getCurrentUserTokenAuth();
        $view = new View('@UserCountryMap/visitorMap');
        // request visits summary
        $request = new Request('method=VisitsSummary.get&format=PHP' . '&idSite=' . $idSite . '&period=' . $period . '&date=' . $date . '&segment=' . $segment . '&token_auth=' . $token_auth . '&filter_limit=-1');
        $config = array();
        $config['visitsSummary'] = unserialize($request->process());
        $config['countryDataUrl'] = $this->_report('UserCountry', 'getCountry', $idSite, $period, $date, $token_auth, false, $segment);
        $config['regionDataUrl'] = $this->_report('UserCountry', 'getRegion', $idSite, $period, $date, $token_auth, true, $segment);
        $config['cityDataUrl'] = $this->_report('UserCountry', 'getCity', $idSite, $period, $date, $token_auth, true, $segment);
        $config['countrySummaryUrl'] = $this->getApiRequestUrl('VisitsSummary', 'get', $idSite, $period, $date, $token_auth, true, $segment);
        $view->defaultMetric = 'nb_visits';
        // some translations
        $view->localeJSON = json_encode(array('nb_visits' => $this->translator->translate('General_NVisits'), 'one_visit' => $this->translator->translate('General_OneVisit'), 'no_visit' => $this->translator->translate('UserCountryMap_NoVisit'), 'nb_actions' => $this->translator->translate('VisitsSummary_NbActionsDescription'), 'nb_actions_per_visit' => $this->translator->translate('VisitsSummary_NbActionsPerVisit'), 'bounce_rate' => $this->translator->translate('VisitsSummary_NbVisitsBounced'), 'avg_time_on_site' => $this->translator->translate('VisitsSummary_AverageVisitDuration'), 'and_n_others' => $this->translator->translate('UserCountryMap_AndNOthers'), 'no_data' => $this->translator->translate('CoreHome_ThereIsNoDataForThisReport'), 'nb_uniq_visitors' => $this->translator->translate('VisitsSummary_NbUniqueVisitors'), 'nb_users' => $this->translator->translate('VisitsSummary_NbUsers')));
        $view->reqParamsJSON = $this->getEnrichedRequest($params = array('period' => $period, 'idSite' => $idSite, 'date' => $date, 'segment' => $segment, 'token_auth' => $token_auth, 'enable_filter_excludelowpop' => 1, 'filter_excludelowpop_value' => -1));
        $view->metrics = $config['metrics'] = $this->getMetrics($idSite, $period, $date, $token_auth);
        $config['svgBasePath'] = 'plugins/UserCountryMap/svg/';
        $config['mapCssPath'] = 'plugins/UserCountryMap/stylesheets/map.css';
        $view->config = json_encode($config);
        $view->noData = empty($config['visitsSummary']['nb_visits']);
        $countriesByIso = array();
        $regionDataProvider = StaticContainer::get('Piwik\\Intl\\Data\\Provider\\RegionDataProvider');
        $countries = array_keys($regionDataProvider->getCountryList());
        foreach ($countries as $country) {
            $countriesByIso[strtoupper($country)] = Piwik::translate('Intl_Country_' . strtoupper($country));
        }
        $view->countriesByIso = $countriesByIso;
        $view->continents = array('AF' => \Piwik\Plugins\UserCountry\continentTranslate('afr'), 'AS' => \Piwik\Plugins\UserCountry\continentTranslate('asi'), 'EU' => \Piwik\Plugins\UserCountry\continentTranslate('eur'), 'NA' => \Piwik\Plugins\UserCountry\continentTranslate('amn'), 'OC' => \Piwik\Plugins\UserCountry\continentTranslate('oce'), 'SA' => \Piwik\Plugins\UserCountry\continentTranslate('ams'));
        return $view->render();
    }