| <?php |
|
|
| |
| |
| |
| |
| |
| |
|
|
| namespace Piwik\Plugins\Diagnostics; |
|
|
| use Piwik\Config; |
| use Piwik\Piwik; |
| use Piwik\Plugin\SettingsProvider; |
|
|
| class Controller extends \Piwik\Plugin\ControllerAdmin |
| { |
| |
| |
| |
| private $configReader; |
|
|
| public function __construct(ConfigReader $configReader) |
| { |
| $this->configReader = $configReader; |
| parent::__construct(); |
| } |
|
|
| public function configfile() |
| { |
| Piwik::checkUserHasSuperUserAccess(); |
|
|
| $settings = new SettingsProvider(\Piwik\Plugin\Manager::getInstance()); |
| $allSettings = $settings->getAllSystemSettings(); |
|
|
| $configValues = $this->configReader->getConfigValuesFromFiles(); |
| $configValues = $this->configReader->addConfigValuesFromSystemSettings($configValues, $allSettings); |
| $configValues = $this->sortConfigValues($configValues); |
| $configValues = array_filter($configValues); |
|
|
| return $this->renderTemplate('configfile', array( |
| 'allConfigValues' => $configValues, |
| 'configFilePath' => Config::getInstance()->getLocalPath(), |
| )); |
| } |
|
|
| private function sortConfigValues($configValues) |
| { |
| |
| uksort($configValues, function ($section1, $section2) { |
| return strcasecmp($section1, $section2); |
| }); |
|
|
| foreach ($configValues as $category => &$settings) { |
| |
| 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; |
| } |
| } |
|
|