![]() 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/UserCountry/ |
<?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\UserCountry; use Exception; use Piwik\Common; use Piwik\IP; use Piwik\Notification; use Piwik\Piwik; use Piwik\Plugin\Manager; use Piwik\Plugins\UserCountry\LocationProvider\DefaultProvider; use Piwik\Plugins\UserCountry\LocationProvider\DisabledProvider; use Piwik\View; /** * */ class Controller extends \Piwik\Plugin\ControllerAdmin { public function getDistinctCountries() { $view = new View('@UserCountry/getDistinctCountries'); $view->urlSparklineCountries = $this->getUrlSparkline('getLastDistinctCountriesGraph'); $view->numberDistinctCountries = $this->getNumberOfDistinctCountries(); return $view->render(); } public function adminIndex() { $this->dieIfGeolocationAdminIsDisabled(); Piwik::checkUserHasSuperUserAccess(); $view = new View('@UserCountry/adminIndex'); $allProviderInfo = \Piwik\Plugins\UserCountry\LocationProvider::getAllProviderInfo($newline = '<br/>', $includeExtra = true); $view->locationProviders = $allProviderInfo; $view->currentProviderId = \Piwik\Plugins\UserCountry\LocationProvider::getCurrentProviderId(); $view->thisIP = IP::getIpFromHeader(); $view->hasGeoIp2Provider = Manager::getInstance()->isPluginActivated('GeoIp2'); if (!\Piwik\Plugins\UserCountry\LocationProvider::getCurrentProvider()) { $provider = \Piwik\Plugins\UserCountry\LocationProvider::getProviderById(\Piwik\Plugins\UserCountry\LocationProvider::getCurrentProviderId()); if ($provider) { $message = Piwik::translate('UserCountry_GeolocationProviderBroken', '<strong>' . $provider->getInfo()['title'] . '</strong>'); } else { $message = Piwik::translate('UserCountry_GeolocationProviderUnavailable', '<strong>' . \Piwik\Plugins\UserCountry\LocationProvider::getCurrentProviderId() . '</strong>'); } $notification = new Notification($message); $notification->context = Notification::CONTEXT_ERROR; $notification->raw = true; Notification\Manager::notify('UserCountry_GeoLocationProviderBroken', $notification); } else { $isWorking = \Piwik\Plugins\UserCountry\LocationProvider::getCurrentProvider()->isWorking(); if (true !== $isWorking) { $message = Piwik::translate('UserCountry_GeolocationProviderBroken', '<strong>' . \Piwik\Plugins\UserCountry\LocationProvider::getCurrentProvider()->getInfo()['title'] . '</strong>'); if ($isWorking) { $message .= '<br /><br />' . $isWorking; } $notification = new Notification($message); $notification->context = Notification::CONTEXT_ERROR; $notification->raw = true; Notification\Manager::notify('UserCountry_GeoLocationProviderBroken', $notification); } } // check if there is a working provider (that isn't the default one) $isThereWorkingProvider = false; foreach ($allProviderInfo as $id => $provider) { if ($id != DefaultProvider::ID && $id != DisabledProvider::ID && $provider['status'] == \Piwik\Plugins\UserCountry\LocationProvider::INSTALLED) { $isThereWorkingProvider = true; break; } } $view->isThereWorkingProvider = $isThereWorkingProvider; $configurations = $setUpGuides = ''; foreach (\Piwik\Plugins\UserCountry\LocationProvider::getAllProviders() as $provider) { $configurations .= $provider->renderConfiguration(); $setUpGuides .= $provider->renderSetUpGuide(); } $view->configurations = $configurations; $view->setUpGuides = $setUpGuides; $this->setBasicVariablesView($view); $this->setBasicVariablesAdminView($view); return $view->render(); } /** * Echo's a pretty formatted location using a specific LocationProvider. * * Input: * The 'id' query parameter must be set to the ID of the LocationProvider to use. * * Output: * The pretty formatted location that was obtained. Will be HTML. */ public function getLocationUsingProvider() { $this->dieIfGeolocationAdminIsDisabled(); Piwik::checkUserHasSuperUserAccess(); $providerId = Common::getRequestVar('id'); $provider = \Piwik\Plugins\UserCountry\LocationProvider::getProviderById($providerId); if (empty($provider)) { throw new Exception("Invalid provider ID: '{$providerId}'."); } $location = $provider->getLocation(array('ip' => IP::getIpFromHeader(), 'lang' => Common::getBrowserLanguage(), 'disable_fallbacks' => true)); $location = \Piwik\Plugins\UserCountry\LocationProvider::prettyFormatLocation($location, $newline = '<br/>', $includeExtra = true); return $location; } public function getNumberOfDistinctCountries() { return $this->getNumericValue('UserCountry.getNumberOfDistinctCountries'); } public function getLastDistinctCountriesGraph() { $view = $this->getLastUnitGraph('UserCountry', __FUNCTION__, "UserCountry.getNumberOfDistinctCountries"); $view->config->columns_to_display = array('UserCountry_distinctCountries'); return $this->renderView($view); } private function dieIfGeolocationAdminIsDisabled() { if (!\Piwik\Plugins\UserCountry\UserCountry::isGeoLocationAdminEnabled()) { throw new \Exception('Geo location setting page has been disabled.'); } } }