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/Diagnostics/Controller.php')
-rw-r--r--plugins/Diagnostics/Controller.php72
1 files changed, 72 insertions, 0 deletions
diff --git a/plugins/Diagnostics/Controller.php b/plugins/Diagnostics/Controller.php
new file mode 100644
index 0000000000..be166ccdf9
--- /dev/null
+++ b/plugins/Diagnostics/Controller.php
@@ -0,0 +1,72 @@
+<?php
+/**
+ * Piwik - free/libre analytics platform
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ */
+
+namespace Piwik\Plugins\Diagnostics;
+
+use Piwik\Config;
+use Piwik\Piwik;
+use Piwik\View;
+use Piwik\Settings;
+
+/**
+ * A controller let's you for example create a page that can be added to a menu. For more information read our guide
+ * http://developer.piwik.org/guides/mvc-in-piwik or have a look at the our API references for controller and view:
+ * http://developer.piwik.org/api-reference/Piwik/Plugin/Controller and
+ * http://developer.piwik.org/api-reference/Piwik/View
+ */
+class Controller extends \Piwik\Plugin\ControllerAdmin
+{
+ /**
+ * @var ConfigReader
+ */
+ private $configReader;
+
+ public function __construct(ConfigReader $configReader)
+ {
+ $this->configReader = $configReader;
+ parent::__construct();
+ }
+
+ public function configfile()
+ {
+ Piwik::checkUserHasSuperUserAccess();
+
+ $allSettings = Settings\Manager::getAllPluginSettings();
+
+ $configValues = $this->configReader->getConfigValuesFromFiles();
+ $configValues = $this->configReader->addConfigValuesFromPluginSettings($configValues, $allSettings);
+ $configValues = $this->sortConfigValues($configValues);
+
+ return $this->renderTemplate('configfile', array(
+ 'allConfigValues' => $configValues
+ ));
+ }
+
+ private function sortConfigValues($configValues)
+ {
+ // we sort by sections alphabetically
+ uksort($configValues, function ($section1, $section2) {
+ return strcasecmp($section1, $section2);
+ });
+
+ foreach ($configValues as $category => &$settings) {
+ // we sort keys alphabetically but list the ones that are changed first
+ uksort($settings, function ($setting1, $setting2) use ($settings) {
+ if ($settings[$setting1]['isCustomValue'] && !$settings[$setting2]['isCustomValue']) {
+ return -1;
+ } elseif (!$settings[$setting1]['isCustomValue'] && $settings[$setting2]['isCustomValue']) {
+ return 1;
+ }
+ return strcasecmp($setting1, $setting2);
+ });
+ }
+
+ return $configValues;
+ }
+
+}