https://t.me/RX1948
Server : Apache
System : Linux s1230 5.15.0-139-generic #149~20.04.1 SMP Tue Jul 14 11:21:49 UTC 2026 x86_64
User : p141464 ( 418825)
PHP Version : 7.4.33.12
Disable Function : NONE
Directory :  /html/KMU-CSR-PLANER/wp-content/plugins/matomo/app/plugins/WebsiteMeasurable/Settings/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /html/KMU-CSR-PLANER/wp-content/plugins/matomo/app/plugins/WebsiteMeasurable/Settings/Urls.php
<?php

/**
 * Matomo - free/libre analytics platform
 *
 * @link    https://matomo.org
 * @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
 */
namespace Piwik\Plugins\WebsiteMeasurable\Settings;

use Piwik\Common;
use Piwik\Piwik;
use Piwik\Settings\FieldConfig;
use Exception;
use Piwik\UrlHelper;
class Urls extends \Piwik\Settings\Measurable\MeasurableProperty
{
    public function __construct($idSite)
    {
        $name = 'urls';
        $pluginName = 'WebsiteMeasurable';
        $defaultValue = array();
        $type = FieldConfig::TYPE_ARRAY;
        parent::__construct($name, $defaultValue, $type, $pluginName, $idSite);
    }
    public function configureField()
    {
        if ($this->config) {
            return $this->config;
        }
        $config = new FieldConfig();
        $config->title = Piwik::translate('SitesManager_Urls');
        $config->inlineHelp = Piwik::translate('SitesManager_AliasUrlHelp');
        $config->uiControl = FieldConfig::UI_CONTROL_TEXTAREA;
        $config->uiControlAttributes = array('cols' => '25', 'rows' => '3', 'placeholder' => "http://example.com/\nhttps://www.example.org/");
        $self = $this;
        $config->validate = function ($urls) use($self) {
            $self->checkUrls($urls);
            $self->checkAtLeastOneUrl($urls);
        };
        $config->transform = function ($urls) use($self) {
            return $self->cleanParameterUrls($urls);
        };
        $this->config = $config;
        return $this->config;
    }
    /**
     * Checks that the array has at least one element
     *
     * @param array $urls
     * @throws Exception
     */
    public function checkAtLeastOneUrl($urls)
    {
        $urls = $this->cleanParameterUrls($urls);
        if (!is_array($urls) || count($urls) == 0) {
            throw new Exception(Piwik::translate('SitesManager_ExceptionNoUrl'));
        }
    }
    /**
     * Check that the array of URLs are valid URLs
     *
     * @param array $urls
     * @throws Exception if any of the urls is not valid
     */
    public function checkUrls($urls)
    {
        $urls = $this->cleanParameterUrls($urls);
        foreach ($urls as $url) {
            if (!UrlHelper::isLookLikeUrl($url)) {
                throw new Exception(sprintf(Piwik::translate('SitesManager_ExceptionInvalidUrl'), $url));
            }
        }
    }
    /**
     * Clean the parameter URLs:
     * - if the parameter is a string make it an array
     * - remove the trailing slashes if found
     *
     * @param string|array urls
     * @return array the array of cleaned URLs
     */
    public function cleanParameterUrls($urls)
    {
        if (!is_array($urls)) {
            $urls = array($urls);
        }
        $urls = array_filter($urls);
        $urls = array_map('urldecode', $urls);
        foreach ($urls as &$url) {
            $url = $this->removeTrailingSlash($url);
            $scheme = parse_url($url, \PHP_URL_SCHEME);
            if (empty($scheme) && strpos($url, '://') === \false) {
                if (strpos($url, '//') === 0) {
                    $url = 'http:' . $url;
                } else {
                    $url = 'http://' . $url;
                }
            }
            $url = trim($url);
            $url = Common::sanitizeInputValue($url);
        }
        $urls = array_unique($urls);
        return $urls;
    }
    /**
     * Remove the final slash in the URLs if found
     *
     * @param string $url
     * @return string the URL without the trailing slash
     */
    private function removeTrailingSlash($url)
    {
        // if there is a final slash, we take the URL without this slash (expected URL format)
        if (strlen($url) > 5 && $url[strlen($url) - 1] == '/') {
            $url = substr($url, 0, strlen($url) - 1);
        }
        return $url;
    }
}

https://t.me/RX1948 - 2025