![]() 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/GeoIp2/ |
<?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\GeoIp2; use Piwik\CliMulti; use Piwik\Container\StaticContainer; use Piwik\Option; use Piwik\Piwik; use Piwik\Plugins\Installation\FormDefaultSettings; use Piwik\Plugins\UserCountry\LocationProvider; use Piwik\Scheduler\Scheduler; /** * */ class GeoIp2 extends \Piwik\Plugin { public function registerEvents() { return array('Translate.getClientSideTranslationKeys' => 'getClientSideTranslationKeys', 'Installation.defaultSettingsForm.init' => 'installationFormInit', 'Installation.defaultSettingsForm.submit' => 'installationFormSubmit'); } public function isTrackerPlugin() { return true; } public function deactivate() { // switch to default provider if GeoIP2 provider was in use if (LocationProvider::getCurrentProvider() instanceof \Piwik\Plugins\GeoIp2\LocationProvider\GeoIp2) { LocationProvider::setCurrentProvider(LocationProvider::getDefaultProviderId()); } } public function getClientSideTranslationKeys(&$translationKeys) { $translationKeys[] = "GeoIp2_FatalErrorDuringDownload"; $translationKeys[] = "GeoIp2_SetupAutomaticUpdatesOfGeoIP"; $translationKeys[] = "General_Done"; $translationKeys[] = "General_Save"; $translationKeys[] = "General_Continue"; $translationKeys[] = 'GeoIp2_ISPRequiresProviderPlugin'; $translationKeys[] = 'GeoIp2_UpdaterWasLastRun'; $translationKeys[] = 'GeoIp2_UpdaterIsNotScheduledToRun'; $translationKeys[] = 'GeoIp2_GeoIPUpdaterIntro'; $translationKeys[] = 'GeoIp2_IWantToDownloadFreeGeoIP'; $translationKeys[] = 'General_GetStarted'; $translationKeys[] = 'GeoIp2_GeoIPDatabases'; $translationKeys[] = 'GeoIp2_NotManagingGeoIPDBs'; $translationKeys[] = 'GeoIp2_IPurchasedGeoIPDBs'; $translationKeys[] = 'UserCountry_GeoIpDbIpAccuracyNote'; $translationKeys[] = 'GeoIp2_GeoIPUpdaterInstructions'; $translationKeys[] = 'GeoIp2_GeoLiteCityLink'; $translationKeys[] = 'UserCountry_MaxMindLinkExplanation'; $translationKeys[] = 'GeoIp2_LocationDatabase'; $translationKeys[] = 'Actions_ColumnDownloadURL'; $translationKeys[] = 'GeoIp2_LocationDatabaseHint'; $translationKeys[] = 'GeoIp2_ISPDatabase'; $translationKeys[] = 'GeoIp2_DownloadNewDatabasesEvery'; $translationKeys[] = 'GeoIp2_CannotSetupGeoIPAutoUpdating'; $translationKeys[] = 'GeoIp2_UpdaterHasNotBeenRun'; $translationKeys[] = 'GeoIp2_UpdaterScheduledForNextRun'; $translationKeys[] = 'GeoIp2_UpdaterWillRunNext'; $translationKeys[] = 'GeoIp2_DownloadingDb'; } /** * Customize the Installation "default settings" form. * * @param FormDefaultSettings $form */ public function installationFormInit(FormDefaultSettings $form) { $form->addElement('checkbox', 'setup_geoip2', null, ['content' => '<div class="form-help">' . Piwik::translate('GeoIp2_AutomaticSetupDescription', ['<a rel="noreferrer noopener" target="_blank" href="https://db-ip.com/db/lite.php?refid=mtm">', '</a>']) . '</div> ' . Piwik::translate('GeoIp2_AutomaticSetup')]); // default values $form->addDataSource(new \HTML_QuickForm2_DataSource_Array(['setup_geoip2' => true])); } /** * Process the submit on the Installation "default settings" form. * * @param FormDefaultSettings $form */ public function installationFormSubmit(FormDefaultSettings $form) { $setupGeoIp2 = (bool) $form->getSubmitValue('setup_geoip2'); if ($setupGeoIp2) { Option::set(\Piwik\Plugins\GeoIp2\GeoIP2AutoUpdater::AUTO_SETUP_OPTION_NAME, true); \Piwik\Plugins\GeoIp2\GeoIP2AutoUpdater::setUpdaterOptions(['loc' => \Piwik\Plugins\GeoIp2\LocationProvider\GeoIp2::getDbIpLiteUrl(), 'period' => \Piwik\Plugins\GeoIp2\GeoIP2AutoUpdater::SCHEDULE_PERIOD_MONTHLY]); $cliMulti = new CliMulti(); // directly trigger the update task if possible // otherwise ensure it will be run soonish as scheduled task if ($cliMulti->supportsAsync()) { $phpCli = new CliMulti\CliPhp(); $command = sprintf('%s %s/console core:run-scheduled-tasks --force "Piwik\\Plugins\\GeoIp2\\GeoIP2AutoUpdater.update" > /dev/null 2>&1 &', $phpCli->findPhpBinary(), PIWIK_INCLUDE_PATH); shell_exec($command); } else { /** @var Scheduler $scheduler */ $scheduler = StaticContainer::getContainer()->get('Piwik\\Scheduler\\Scheduler'); $scheduler->rescheduleTask(new \Piwik\Plugins\GeoIp2\GeoIP2AutoUpdater()); } } } }