1
0
Fork 0
mirror of https://github.com/Findus23/matomo-DiagnosticsExtended.git synced 2024-09-19 16:03:46 +02:00

add icon, notification and a few translatable strings

This commit is contained in:
Lukas Winkler 2021-03-31 23:38:26 +02:00
parent 4c63d4b722
commit 32e37d1cac
Signed by: lukas
GPG key ID: 54DE4D798D244853
13 changed files with 283 additions and 53 deletions

View file

@ -36,7 +36,7 @@ class CurlVersionCheck implements Diagnostic
public function __construct(LoggerInterface $logger, \Matomo\Cache\Lazy $lazyCache) public function __construct(LoggerInterface $logger, \Matomo\Cache\Lazy $lazyCache)
{ {
$this->logger = $logger; $this->logger = $logger;
$this->label = "curl version check"; $this->label = "🧪 curl version check";
$this->lazyCache = $lazyCache; $this->lazyCache = $lazyCache;
} }

View file

@ -11,6 +11,7 @@ namespace Piwik\Plugins\DiagnosticsExtended\Diagnostic;
use Piwik\Date; use Piwik\Date;
use Piwik\Db; use Piwik\Db;
use Piwik\Http; use Piwik\Http;
use Piwik\Piwik;
use Piwik\Plugins\Diagnostics\Diagnostic\Diagnostic; use Piwik\Plugins\Diagnostics\Diagnostic\Diagnostic;
use Piwik\Plugins\Diagnostics\Diagnostic\DiagnosticResult; use Piwik\Plugins\Diagnostics\Diagnostic\DiagnosticResult;
use Piwik\Plugins\Diagnostics\Diagnostic\DiagnosticResultItem; use Piwik\Plugins\Diagnostics\Diagnostic\DiagnosticResultItem;
@ -37,7 +38,7 @@ class DatabaseVersionCheck implements Diagnostic
public function __construct(LoggerInterface $logger, \Matomo\Cache\Lazy $lazyCache) public function __construct(LoggerInterface $logger, \Matomo\Cache\Lazy $lazyCache)
{ {
$this->logger = $logger; $this->logger = $logger;
$this->label = "Database version check"; $this->label = "🧪 " . Piwik::translate("DiagnosticsExtended_DatabaseVersionCheckLabel");
$this->lazyCache = $lazyCache; $this->lazyCache = $lazyCache;
} }
@ -78,29 +79,37 @@ class DatabaseVersionCheck implements Diagnostic
if (version_compare($currentVersion, $latestVersion, ">=")) { if (version_compare($currentVersion, $latestVersion, ">=")) {
$results->addItem(new DiagnosticResultItem( $results->addItem(new DiagnosticResultItem(
DiagnosticResult::STATUS_OK, DiagnosticResult::STATUS_OK,
"You are using the latest version of MariaDB " . $minorVersion Piwik::translate("DiagnosticsExtended_PhpVersionCheckLatestVersion",
[$minorVersion])
)); ));
} else { } else {
$results->addItem(new DiagnosticResultItem( $results->addItem(new DiagnosticResultItem(
DiagnosticResult::STATUS_WARNING, DiagnosticResult::STATUS_WARNING,
"There is a newer MariaDB patch version ($latestVersion) available (you are using $version/$currentVersion). Piwik::translate("DiagnosticsExtended_DatabaseVersionCheckMariaDBOutdated", [
You should update to it as soon as possible $latestVersion, $version, $currentVersion
(unless the distributor of your MariaDB binary is backporting security patches)." ])
. " "
. Piwik::translate("DiagnosticsExtended_BackportingDisclaimerMariaDB")
. "."
)); ));
} }
$formattedDate = (Date::factory($versionInfo["eol"]))->getLocalized(Date::DATE_FORMAT_LONG);
if (new \DateTime() > new \DateTime($versionInfo["eol"])) { if (new \DateTime() > new \DateTime($versionInfo["eol"])) {
$results->addItem(new DiagnosticResultItem( $results->addItem(new DiagnosticResultItem(
DiagnosticResult::STATUS_WARNING, DiagnosticResult::STATUS_WARNING,
"Your MariaDB version ($currentVersion) does not recieve security support by the MariaDB Piwik::translate("DiagnosticsExtended_DatabaseVersionCheckMariaDBEol", [
team anymore. You should update to a newer version $currentVersion, $formattedDate
(unless the distributor of your PHP binary is backporting security patches)." ])
. " "
. Piwik::translate("DiagnosticsExtended_BackportingDisclaimerMariaDB")
. "."
)); ));
} else { } else {
$formattedDate = (Date::factory($versionInfo["eol"]))->getLocalized(Date::DATE_FORMAT_LONG);
$results->addItem(new DiagnosticResultItem( $results->addItem(new DiagnosticResultItem(
DiagnosticResult::STATUS_OK, DiagnosticResult::STATUS_OK,
"Your MariaDB version ($minorVersion) receives security support by the MariaDB Piwik::translate("DiagnosticsExtended_DatabaseVersionCheckMariaDBNotEol", [
team until $formattedDate." $minorVersion, $formattedDate
])
)); ));
} }
return [$results]; return [$results];

View file

@ -27,7 +27,7 @@ class ExampleCheck implements Diagnostic
public function execute() public function execute()
{ {
$result = new DiagnosticResult("label"); $result = new DiagnosticResult("🧪 label");
$result->addItem(new DiagnosticResultItem(DiagnosticResult::STATUS_ERROR, "error")); $result->addItem(new DiagnosticResultItem(DiagnosticResult::STATUS_ERROR, "error"));
$result->addItem(new DiagnosticResultItem(DiagnosticResult::STATUS_WARNING, "warning")); $result->addItem(new DiagnosticResultItem(DiagnosticResult::STATUS_WARNING, "warning"));
$result->addItem(new DiagnosticResultItem(DiagnosticResult::STATUS_OK, "okay")); $result->addItem(new DiagnosticResultItem(DiagnosticResult::STATUS_OK, "okay"));

View file

@ -9,6 +9,7 @@
namespace Piwik\Plugins\DiagnosticsExtended\Diagnostic; namespace Piwik\Plugins\DiagnosticsExtended\Diagnostic;
use Piwik\Http; use Piwik\Http;
use Piwik\Piwik;
use Piwik\Plugins\Diagnostics\Diagnostic\Diagnostic; use Piwik\Plugins\Diagnostics\Diagnostic\Diagnostic;
use Piwik\Plugins\Diagnostics\Diagnostic\DiagnosticResult; use Piwik\Plugins\Diagnostics\Diagnostic\DiagnosticResult;
use Piwik\Plugins\Diagnostics\Diagnostic\DiagnosticResultItem; use Piwik\Plugins\Diagnostics\Diagnostic\DiagnosticResultItem;
@ -16,7 +17,7 @@ use Piwik\SettingsPiwik;
use Piwik\Tracker\TrackerCodeGenerator; use Piwik\Tracker\TrackerCodeGenerator;
use Psr\Log\LoggerInterface; use Psr\Log\LoggerInterface;
class GzipMatomoJsCheck implements Diagnostic class MatomoJsCheck implements Diagnostic
{ {
/** /**
* @var LoggerInterface * @var LoggerInterface
@ -37,7 +38,7 @@ class GzipMatomoJsCheck implements Diagnostic
public function __construct(LoggerInterface $logger) public function __construct(LoggerInterface $logger)
{ {
$this->logger = $logger; $this->logger = $logger;
$this->label = "matomo.js gzip"; $this->label = "🧪 " . "matomo.js"; # no need to make it translatable
} }
@ -62,18 +63,23 @@ class GzipMatomoJsCheck implements Diagnostic
$headers = $response["headers"]; $headers = $response["headers"];
$data = $response["data"]; $data = $response["data"];
if ($status != 200 || strpos($data, "c80d50af7d3db9be66a4d0a86db0286e4fd33292") === false) { if ($status != 200 || strpos($data, "c80d50af7d3db9be66a4d0a86db0286e4fd33292") === false) {
return [DiagnosticResult::singleResult( $result = new DiagnosticResult($this->label);
$this->label, $result->addItem(new DiagnosticResultItem(
DiagnosticResult::STATUS_INFORMATIONAL, DiagnosticResult::STATUS_INFORMATIONAL,
"It seems like matomo.js can't be fetched properly" Piwik::translate("DiagnosticsExtended_MatomoJSCheckFailed")
)]; ));
$result->setLongErrorMessage(Piwik::translate("DiagnosticsExtended_MatomoJSCheckFailedCurlTip", [
"<code>curl -v $checkURL</code>"
]));
return [$result];
} }
$results = new DiagnosticResult($this->label); $results = new DiagnosticResult($this->label);
$contentType = $headers["content-type"]; $contentType = $headers["content-type"];
if ($contentType !== "application/javascript") { if ($contentType !== "application/javascript") {
$results->addItem(new DiagnosticResultItem( $results->addItem(new DiagnosticResultItem(
DiagnosticResult::STATUS_WARNING, DiagnosticResult::STATUS_WARNING,
"matomo.js should be delivered with an 'application/javascript' Content-Type. You are using '$contentType'." Piwik::translate("DiagnosticsExtended_MatomoJSCheckMIMEError",
[$contentType])
)); ));
} }
@ -81,7 +87,7 @@ class GzipMatomoJsCheck implements Diagnostic
if ($contentEncoding === "gzip") { if ($contentEncoding === "gzip") {
$results->addItem(new DiagnosticResultItem( $results->addItem(new DiagnosticResultItem(
DiagnosticResult::STATUS_OK, DiagnosticResult::STATUS_OK,
"matomo.js is delivered gzipped." Piwik::translate("DiagnosticsExtended_MatomoJSCheckGzipped")
)); ));
} else { } else {

View file

@ -33,7 +33,7 @@ class OpensslVersionCheck implements Diagnostic
public function __construct(LoggerInterface $logger) public function __construct(LoggerInterface $logger)
{ {
$this->logger = $logger; $this->logger = $logger;
$this->label = "OpenSSL version check"; $this->label = "🧪 OpenSSL version check";
} }
/** /**

View file

@ -8,6 +8,7 @@
namespace Piwik\Plugins\DiagnosticsExtended\Diagnostic; namespace Piwik\Plugins\DiagnosticsExtended\Diagnostic;
use Piwik\Piwik;
use Piwik\Plugins\Diagnostics\Diagnostic\Diagnostic; use Piwik\Plugins\Diagnostics\Diagnostic\Diagnostic;
use Piwik\Plugins\Diagnostics\Diagnostic\DiagnosticResult; use Piwik\Plugins\Diagnostics\Diagnostic\DiagnosticResult;
use Piwik\Plugins\Diagnostics\Diagnostic\DiagnosticResultItem; use Piwik\Plugins\Diagnostics\Diagnostic\DiagnosticResultItem;
@ -24,29 +25,38 @@ class PhpIniCheck implements Diagnostic
* @var IniSetting[] * @var IniSetting[]
*/ */
private $iniSettings; private $iniSettings;
/**
* @var string
*/
private $label;
public function __construct(array $iniSettings, LoggerInterface $logger) public function __construct(array $iniSettings, LoggerInterface $logger)
{ {
$this->logger = $logger; $this->logger = $logger;
$this->iniSettings = $iniSettings; $this->iniSettings = $iniSettings;
$this->label = "🧪 " . Piwik::translate("DiagnosticsExtended_PhpIniCheckLabel");
} }
public function execute() public function execute()
{ {
$result = new DiagnosticResult("php.ini checks"); $result = new DiagnosticResult($this->label);
foreach ($this->iniSettings as $setting) { foreach ($this->iniSettings as $setting) {
$key = $setting::$key; $key = $setting::$key;
if ($this->booleanIni($key) === $setting::$targetValue) { if ($this->booleanIni($key) === $setting::$targetValue) {
$item = new DiagnosticResultItem( $item = new DiagnosticResultItem(
DiagnosticResult::STATUS_OK, DiagnosticResult::STATUS_OK,
$setting::$targetValue ? "$key is enabled" : "$key is disabled" $setting::$targetValue
? Piwik::translate("DiagnosticsExtended_PhpIniCheckIsEnabled", [$key])
: Piwik::translate("DiagnosticsExtended_PhpIniCheckIsDisabled", [$key])
); );
} else { } else {
$status = $setting::$severe ? DiagnosticResult::STATUS_ERROR : DiagnosticResult::STATUS_WARNING; $status = $setting::$severe ? DiagnosticResult::STATUS_ERROR : DiagnosticResult::STATUS_WARNING;
$item = new DiagnosticResultItem( $item = new DiagnosticResultItem(
$status, $status,
$setting::$targetValue ? "$key should be enabled" : "$key should be disabled" $setting::$targetValue
? Piwik::translate("DiagnosticsExtended_PhpIniCheckShouldBeEnabled", [$key])
: Piwik::translate("DiagnosticsExtended_PhpIniCheckShouldBeDisabled", [$key])
); );
} }
$result->addItem($item); $result->addItem($item);

View file

@ -35,7 +35,7 @@ class PhpUserCheck implements Diagnostic
} }
if (posix_getuid() === 0) { if (posix_getuid() === 0) {
return [DiagnosticResult::singleResult( return [DiagnosticResult::singleResult(
"php running as root", "🧪 php running as root",
DiagnosticResult::STATUS_WARNING, DiagnosticResult::STATUS_WARNING,
"PHP seems to be running as root. Unless you are using Matomo inside a docker container "PHP seems to be running as root. Unless you are using Matomo inside a docker container
you should check your setup." you should check your setup."

View file

@ -10,6 +10,7 @@ namespace Piwik\Plugins\DiagnosticsExtended\Diagnostic;
use Piwik\Date; use Piwik\Date;
use Piwik\Http; use Piwik\Http;
use Piwik\Piwik;
use Piwik\Plugins\Diagnostics\Diagnostic\Diagnostic; use Piwik\Plugins\Diagnostics\Diagnostic\Diagnostic;
use Piwik\Plugins\Diagnostics\Diagnostic\DiagnosticResult; use Piwik\Plugins\Diagnostics\Diagnostic\DiagnosticResult;
use Piwik\Plugins\Diagnostics\Diagnostic\DiagnosticResultItem; use Piwik\Plugins\Diagnostics\Diagnostic\DiagnosticResultItem;
@ -36,7 +37,7 @@ class PhpVersionCheck implements Diagnostic
public function __construct(LoggerInterface $logger, \Matomo\Cache\Lazy $lazyCache) public function __construct(LoggerInterface $logger, \Matomo\Cache\Lazy $lazyCache)
{ {
$this->logger = $logger; $this->logger = $logger;
$this->label = "php version check"; $this->label = "🧪 " . Piwik::translate("DiagnosticsExtended_PhpVersionCheckLabel");
$this->lazyCache = $lazyCache; $this->lazyCache = $lazyCache;
} }
@ -81,35 +82,45 @@ class PhpVersionCheck implements Diagnostic
if (version_compare($currentVersion, $latestVersion, ">=")) { if (version_compare($currentVersion, $latestVersion, ">=")) {
$results->addItem(new DiagnosticResultItem( $results->addItem(new DiagnosticResultItem(
DiagnosticResult::STATUS_OK, DiagnosticResult::STATUS_OK,
"You are using the latest version of PHP " . $minorVersion Piwik::translate("DiagnosticsExtended_PhpVersionCheckLatestVersion", [$minorVersion])
)); ));
} else { } else {
$results->addItem(new DiagnosticResultItem( $results->addItem(new DiagnosticResultItem(
DiagnosticResult::STATUS_WARNING, DiagnosticResult::STATUS_WARNING,
"There is a newer PHP patch version ($latestVersion) available (you are using $currentVersion). Piwik::translate("DiagnosticsExtended_PhpVersionCheckOutdated", [
You should update to it as soon as possible $latestVersion, $currentVersion
(unless the distributor of your PHP binary is backporting security patches)." ])
. " "
. Piwik::translate("DiagnosticsExtended_BackportingDisclaimerPHP")
. "."
)); ));
} }
if (empty($this->eolDates[$minorVersion])) { if (empty($this->eolDates[$minorVersion])) {
$results->addItem(new DiagnosticResultItem( $results->addItem(new DiagnosticResultItem(
DiagnosticResult::STATUS_INFORMATIONAL, DiagnosticResult::STATUS_INFORMATIONAL,
"No information is know about your PHP version ($currentVersion)." Piwik::translate("DiagnosticsExtended_PhpVersionCheckNoInformation", [
$latestVersion, $currentVersion
])
)); ));
} elseif (new \DateTime() > new \DateTime($this->eolDates[$minorVersion])) { } elseif (new \DateTime() > new \DateTime($this->eolDates[$minorVersion])) {
$formattedDate = (Date::factory($this->eolDates[$minorVersion]))->getLocalized(Date::DATE_FORMAT_LONG);
$results->addItem(new DiagnosticResultItem( $results->addItem(new DiagnosticResultItem(
DiagnosticResult::STATUS_WARNING, DiagnosticResult::STATUS_WARNING,
"Your PHP version ($currentVersion) does not recieve security support by the PHP Piwik::translate("DiagnosticsExtended_PhpVersionCheckEol", [
team anymore. You should update to a newer version $currentVersion, $formattedDate
(unless the distributor of your PHP binary is backporting security patches)." ])
. " "
. Piwik::translate("DiagnosticsExtended_BackportingDisclaimerPHP")
. "."
)); ));
} else { } else {
$formattedDate = (Date::factory($this->eolDates[$minorVersion]))->getLocalized(Date::DATE_FORMAT_LONG); $formattedDate = (Date::factory($this->eolDates[$minorVersion]))->getLocalized(Date::DATE_FORMAT_LONG);
$results->addItem(new DiagnosticResultItem( $results->addItem(new DiagnosticResultItem(
DiagnosticResult::STATUS_OK, DiagnosticResult::STATUS_OK,
"Your PHP version ($minorVersion) receives security support by the PHP Piwik::translate("DiagnosticsExtended_PhpVersionCheckEol", [
team until $formattedDate." $minorVersion, $formattedDate
])
)); ));
} }
} catch (\Exception $e) { } catch (\Exception $e) {
@ -124,7 +135,7 @@ class PhpVersionCheck implements Diagnostic
return DiagnosticResult::singleResult( return DiagnosticResult::singleResult(
$this->label, $this->label,
DiagnosticResult::STATUS_INFORMATIONAL, DiagnosticResult::STATUS_INFORMATIONAL,
"Matomo could not check if your PHP version is up-to-date" Piwik::translate("DiagnosticsExtended_PhpVersionCheckNotWorking")
); );
} }
} }

135
Diagnostic/URLCheck.php Normal file
View file

@ -0,0 +1,135 @@
<?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\DiagnosticsExtended\Diagnostic;
use Piwik\Http;
use Piwik\Plugins\Diagnostics\Diagnostic\Diagnostic;
use Piwik\Plugins\Diagnostics\Diagnostic\DiagnosticResult;
use Piwik\Plugins\Diagnostics\Diagnostic\DiagnosticResultItem;
use Piwik\SettingsPiwik;
use Psr\Log\LoggerInterface;
class URLCheck implements Diagnostic
{
/**
* @var LoggerInterface
*/
private $logger;
const SOCKET_TIMEOUT = 2;
/**
* @var string
*/
private $matomoURL;
/**
* @var boolean
*/
private $criticalIssue;
public function __construct(LoggerInterface $logger)
{
$this->logger = $logger;
$this->matomoURL = SettingsPiwik::getPiwikUrl();
$this->criticalIssue = false;
}
public function execute()
{
//TODO: don't check if running in development mode
$result = new DiagnosticResult("Files that should not be public");
$result->addItem($this->checkConfigIni());
$result->addItem($this->checkRequestNotAllowed(
".git/info/exclude",
"Lines that start"
));
$result->addItem($this->checkRequestNotAllowed(
"tmp/cache/token.php",
"?php exit"
));
$result->addItem($this->checkRequestNotAllowed(
"cache/tracker/matomocache_general.php",
"unserialize"
));
if ($this->criticalIssue) {
$result->setLongErrorMessage(
"Please check if your webserver processes the .htaccess files
generated by Matomo properly. If you are using Nginx, please take a look at the
<a href='https://github.com/matomo-org/matomo-nginx/' target='_blank' rel='noopener'>
official matomo-nginx config</a> for reference.<br>
Otherwise attackers might be able to read sensitive data."
);
}
return array($result);
}
/**
* @return DiagnosticResultItem
*/
protected function checkConfigIni()
{
$relativeUrl = "config/config.ini.php";
list($status, $headers, $data) = $this->makeHTTPReququest($relativeUrl);
if ($this->contains($data, "salt")) {
return $this->isPublicError($relativeUrl, true);
}
if ($this->contains($data, ";")) {
return new DiagnosticResultItem(
DiagnosticResult::STATUS_WARNING,
"<code>$relativeUrl</code> seems to be semi-public. " .
"While attackers can't read the config now, the file is publicly accessible and if for whatever reason your webserver " .
"stops executing PHP files, everyone can read your MySQL credentials and more" .
"Please check your webserver config."
);
}
}
protected function checkRequestNotAllowed($relativeUrl, $content, $critical = true): DiagnosticResultItem
{
list($status, $headers, $data) = $this->makeHTTPReququest($relativeUrl);
// var_dump($data);
if (strpos($data, $content) !== false) {
return $this->isPublicError($relativeUrl, $critical);
}
return new DiagnosticResultItem(DiagnosticResult::STATUS_OK, "<code>$relativeUrl</code> doesn't seem to be publically reachable");
}
protected function isPublicError($relativeUrl, $critical): DiagnosticResultItem
{
if ($critical) {
$this->criticalIssue = true;
}
return new DiagnosticResultItem(
$critical ? DiagnosticResult::STATUS_ERROR : DiagnosticResult::STATUS_WARNING,
"<code>$relativeUrl</code> should never be public. Please check your webserver config."
);
}
protected function makeHTTPReququest($relativeUrl)
{
$response = Http::sendHttpRequest($this->matomoURL . $relativeUrl, self::SOCKET_TIMEOUT, $userAgent = null,
$destinationPath = null,
$followDepth = 0,
$acceptLanguage = false,
$byteRange = false,
$getExtendedInfo = true);
$status = $response["status"];
$headers = $response["headers"];
$data = $response["data"];
return [$status, $headers, $data];
}
protected function contains(string $haystack, string $needle): bool
{
return strpos($haystack, $needle) !== false;
}
}

View file

@ -8,6 +8,38 @@
namespace Piwik\Plugins\DiagnosticsExtended; namespace Piwik\Plugins\DiagnosticsExtended;
use Piwik\Notification;
use Piwik\Piwik;
class DiagnosticsExtended extends \Piwik\Plugin class DiagnosticsExtended extends \Piwik\Plugin
{ {
public function registerEvents()
{
return [
'Request.dispatch' => "addNotification"
];
}
public function addNotification(&$module, &$action, &$parameters)
{
if ($module == "Installation" && $action == "systemCheckPage") {
$id = 'DiagnosticsExtended_Help';
$notification = new Notification(Piwik::translate("DiagnosticsExtended_NotificationText",
[
'<a href="https://forum.matomo.org/" target="_blank" rel="noopener">',
'</a>',
'<a href="https://github.com/Findus23/matomo-DiagnosticsExtended/issues" target="_blank" rel="noopener">',
'</a>'
]
));
$notification->raw = true;
$notification->title = Piwik::translate('DiagnosticsExtended_NotificationTitle');
$notification->context = Notification::CONTEXT_INFO;
\Piwik\Notification\Manager::notify($id, $notification);
}
}
} }

View file

@ -10,14 +10,15 @@ return [
DI\get('diagnosticsExtended.inisettings') DI\get('diagnosticsExtended.inisettings')
), ),
'diagnostics.optional' => DI\add([ 'diagnostics.optional' => DI\add([
DI\get('\Piwik\Plugins\DiagnosticsExtended\Diagnostic\ExampleCheck'), // DI\get('\Piwik\Plugins\DiagnosticsExtended\Diagnostic\ExampleCheck'),
DI\get('\Piwik\Plugins\DiagnosticsExtended\Diagnostic\PhpIniCheck'), DI\get('\Piwik\Plugins\DiagnosticsExtended\Diagnostic\PhpIniCheck'),
DI\get('\Piwik\Plugins\DiagnosticsExtended\Diagnostic\PhpVersionCheck'), DI\get('\Piwik\Plugins\DiagnosticsExtended\Diagnostic\PhpVersionCheck'),
DI\get('\Piwik\Plugins\DiagnosticsExtended\Diagnostic\DatabaseVersionCheck'), DI\get('\Piwik\Plugins\DiagnosticsExtended\Diagnostic\DatabaseVersionCheck'),
DI\get('\Piwik\Plugins\DiagnosticsExtended\Diagnostic\GzipMatomoJsCheck'), DI\get('\Piwik\Plugins\DiagnosticsExtended\Diagnostic\MatomoJsCheck'),
DI\get('\Piwik\Plugins\DiagnosticsExtended\Diagnostic\CurlVersionCheck'), DI\get('\Piwik\Plugins\DiagnosticsExtended\Diagnostic\CurlVersionCheck'),
DI\get('\Piwik\Plugins\DiagnosticsExtended\Diagnostic\OpensslVersionCheck'), DI\get('\Piwik\Plugins\DiagnosticsExtended\Diagnostic\OpensslVersionCheck'),
DI\get('\Piwik\Plugins\DiagnosticsExtended\Diagnostic\PhpUserCheck'), DI\get('\Piwik\Plugins\DiagnosticsExtended\Diagnostic\PhpUserCheck'),
DI\get('\Piwik\Plugins\DiagnosticsExtended\Diagnostic\URLCheck'),
]), ]),
]; ];

29
lang/en.json Normal file
View file

@ -0,0 +1,29 @@
{
"DiagnosticsExtended": {
"BackportingDisclaimerMariaDB": "(unless the distributor of your MariaDB binary is backporting security patches)",
"BackportingDisclaimerPHP": "(unless the distributor of your PHP binary is backporting security patches)",
"DatabaseVersionCheckLabel": "Database version",
"MatomoJSCheckFailed": "It seems like matomo.js can't be fetched properly.",
"MatomoJSCheckGzipped": "matomo.js is delivered gzipped.",
"MatomoJSCheckMIMEError": "matomo.js should be delivered with an 'application/javascript' Content-Type. You are using '%s'.",
"MatomoJSCheckFailedCurlTip": "try running %s on your server and see if it is able to fetch the file successfully",
"DatabaseVersionCheckMariaDBEol": "Your MariaDB version (%1$s) does not receive security support by the MariaDB team anymore (since %2$s). You should update to a newer version",
"DatabaseVersionCheckMariaDBNotEol": "Your MariaDB version (%1$s) receives security support by the MariaDB team until %2$s.",
"DatabaseVersionCheckMariaDBLatestVersion": "You are using the latest version of MariaDB %s.",
"DatabaseVersionCheckMariaDBOutdated": "There is a newer MariaDB patch version (%1$s) available (you are using %2$s/%3$s). You should update to it as soon as possible",
"NotificationText": "You have enabled the DiagnosticsExtended plugin. It adds a few more experimental system checks (marked with 🧪) to this page that might help you find issues with your Matomo instance. There might still be a few false positives and false negatives, so if you notice something strange, please report it to the %1$sforum%2$s or %3$screate a GitHub issue%4$s.",
"NotificationTitle": "About DiagnosticsExtended",
"PhpIniCheckIsDisabled": "%s is enabled",
"PhpIniCheckIsEnabled": "%s is enabled",
"PhpIniCheckLabel": "php.ini options",
"PhpIniCheckShouldBeDisabled": "%s should be enabled",
"PhpIniCheckShouldBeEnabled": "%s should be enabled",
"PhpVersionCheckEol": "Your PHP version (%1$s) does not receive security support by the PHP team anymore (since %2$s). You should update to a newer version",
"PhpVersionCheckLabel": "PHP version",
"PhpVersionCheckLatestVersion": "You are using the latest version of PHP %s",
"PhpVersionCheckNoInformation": "No information is know about your PHP version (%s)",
"PhpVersionCheckNotEol": "Your PHP version (%1$s) receives security support by the PHP team until %2$s.",
"PhpVersionCheckNotWorking": "Matomo could not check if your PHP version is up-to-date",
"PhpVersionCheckOutdated": "There is a newer PHP patch version (%1$s) available (you are using %2$s). You should update to it as soon as possible"
}
}

View file

@ -8,22 +8,19 @@
}, },
"authors": [ "authors": [
{ {
"name": "Matomo", "name": "Lukas Winkler",
"email": "", "email": "lukas@matomo.org",
"homepage": "" "homepage": "https://lw1.at"
} }
], ],
"support": { "support": {
"email": "", "email": "lukas@matomo.org",
"issues": "", "issues": "https://github.com/Findus23/plugin-DiagnosticsExtended/issues",
"forum": "", "forum": "https://forum.matomo.org",
"irc": "", "source": "https://github.com/Findus23/plugin-DiagnosticsExtended"
"wiki": "",
"source": "",
"docs": "",
"rss": ""
}, },
"homepage": "", "homepage": "https://lw1.at",
"license": "GPL v3+", "license": "GPL v3+",
"keywords": [] "keywords": [
]
} }