public function adminIndex() { $this->dieIfGeolocationAdminIsDisabled(); Piwik::checkUserHasSuperUserAccess(); $view = new View('@UserCountry/adminIndex'); $allProviderInfo = LocationProvider::getAllProviderInfo($newline = '<br/>', $includeExtra = true); $view->locationProviders = $allProviderInfo; $view->currentProviderId = LocationProvider::getCurrentProviderId(); $view->thisIP = IP::getIpFromHeader(); $geoIPDatabasesInstalled = GeoIp::isDatabaseInstalled(); $view->geoIPDatabasesInstalled = $geoIPDatabasesInstalled; $view->updatePeriodOptions = $this->getPeriodUpdateOptions(); // check if there is a working provider (that isn't the default one) $isThereWorkingProvider = false; foreach ($allProviderInfo as $id => $provider) { if ($id != DefaultProvider::ID && $provider['status'] == LocationProvider::INSTALLED) { $isThereWorkingProvider = true; break; } } $view->isThereWorkingProvider = $isThereWorkingProvider; // if using either the Apache or PECL module, they are working and there are no databases // in misc, then the databases are located outside of Piwik, so we cannot update them $view->showGeoIPUpdateSection = true; $currentProviderId = LocationProvider::getCurrentProviderId(); if (!$geoIPDatabasesInstalled && ($currentProviderId == ServerBased::ID || $currentProviderId == Pecl::ID) && $allProviderInfo[$currentProviderId]['status'] == LocationProvider::INSTALLED) { $view->showGeoIPUpdateSection = false; } $this->setUpdaterManageVars($view); $this->setBasicVariablesView($view); $this->setBasicVariablesAdminView($view); return $view->render(); }