Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/CoreUpdater/SystemSettings.php')
-rw-r--r--plugins/CoreUpdater/SystemSettings.php26
1 files changed, 26 insertions, 0 deletions
diff --git a/plugins/CoreUpdater/SystemSettings.php b/plugins/CoreUpdater/SystemSettings.php
index 8bf13a03b9..e8de1fb493 100644
--- a/plugins/CoreUpdater/SystemSettings.php
+++ b/plugins/CoreUpdater/SystemSettings.php
@@ -8,6 +8,8 @@
namespace Piwik\Plugins\CoreUpdater;
+use Piwik\Db\Settings;
+use Piwik\DbHelper;
use Piwik\Piwik;
use Piwik\Plugin\ReleaseChannels;
use Piwik\Plugins\CoreAdminHome\Controller as CoreAdminController;
@@ -31,6 +33,9 @@ class SystemSettings extends \Piwik\Settings\Plugin\SystemSettings
/** @var Setting */
public $sendPluginUpdateEmail;
+ /** @var Setting */
+ public $updateToUtf8mb4;
+
/**
* @var ReleaseChannels
*/
@@ -54,6 +59,12 @@ class SystemSettings extends \Piwik\Settings\Plugin\SystemSettings
$isWritable = $isWritable && PluginUpdateCommunication::canBeEnabled();
$this->sendPluginUpdateEmail = $this->createSendPluginUpdateEmail();
$this->sendPluginUpdateEmail->setIsWritableByCurrentUser($isWritable);
+
+ $isWritable = Piwik::hasUserSuperUserAccess() && CoreAdminController::isGeneralSettingsAdminEnabled();
+ $dbSettings = new Settings();
+ if ($isWritable && $dbSettings->getUsedCharset() !== 'utf8mb4' && DbHelper::getDefaultCharset() === 'utf8mb4') {
+ $this->updateToUtf8mb4 = $this->createUpdateToUtf8mb4();
+ }
}
private function createReleaseChannel()
@@ -104,4 +115,19 @@ class SystemSettings extends \Piwik\Settings\Plugin\SystemSettings
});
}
+ private function createUpdateToUtf8mb4()
+ {
+ return $this->makeSetting('update_to_utf8mb4', $default = false, FieldConfig::TYPE_BOOL, function (FieldConfig $field) {
+ $field->introduction = Piwik::translate('CoreUpdater_ConvertToUtf8mb4');
+ $field->title = Piwik::translate('CoreUpdater_TriggerDatabaseConversion');
+ $field->uiControl = FieldConfig::UI_CONTROL_CHECKBOX;
+ $field->inlineHelp = Piwik::translate('CoreUpdater_Utf8mb4ConversionHelp', [
+ '�',
+ '<code>' . PIWIK_INCLUDE_PATH . '/console core:convert-to-utf8mb4</code>',
+ '<a href="https://matomo.org/faq/how-to-update/how-to-convert-the-database-to-utf8mb4-charset/" rel="noreferrer noopener" target="_blank">',
+ '</a>'
+ ]);
+ });
+ }
+
}