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/GeoIp2/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/claqxcrl/anfangola.com/wp-content/plugins/matomo/app/plugins/GeoIp2/GeoIp2.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\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> &nbsp;&nbsp;' . 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());
            }
        }
    }
}

ZeroDay Forums Mini