commit 262c8a2ce2bf35d0ff300653c7b7a0448979b7c3
parent 65f38abcd36a3d7ceac5fd4d30aa4a48f3829e5d
Author: Jan Dankert <develop@jandankert.de>
Date: Sun, 25 Oct 2020 01:45:39 +0200
Fix: the flattened arrays were missing some values oO
Diffstat:
6 files changed, 41 insertions(+), 72 deletions(-)
diff --git a/modules/cms/action/ConfigurationAction.class.php b/modules/cms/action/ConfigurationAction.class.php
@@ -51,31 +51,28 @@ class ConfigurationAction extends BaseAction
*/
public function showView()
{
- $conf = DefaultConfig::get();
- $conf_default = $conf;
-
- $conf_cms = Session::getConfig();
+ $defaultConfig = DefaultConfig::get();;
+ $currentConfig = Session::getConfig();
+
+ $currentConfig['system'] = $this->getSystemConfiguration();
// Language are to much entries
- unset($conf_cms['language']);
+ unset($currentConfig['language']);
+ $pad = str_repeat("\xC2\xA0",10); // Hard spaces
- $conf_cms['system'] = $this->getSystemConfiguration();
+ $flatDefaultConfig = \util\ArrayUtils::dryFlattenArray( $defaultConfig , $pad );
+ $flatCMSConfig = \util\ArrayUtils::dryFlattenArray( Session::getConfig(), $pad );
+ $flatConfig = \util\ArrayUtils::dryFlattenArray( $currentConfig , $pad );
- //$split = "\xC2\xA0"."\xC2\xA0"."\xC2\xBB"."\xC2\xA0"."\xC2\xA0";
- //$flatDefaultConfig = \ArrayUtils::flattenArray('', $conf_default , $split );
- //$flatCMSConfig = \ArrayUtils::flattenArray('', Session::getConfig(), $split );
- //$flatConfig = \ArrayUtils::flattenArray('', $conf_cms , $split );
+ $config = array_map( function($key,$value) use ($flatConfig,$flatCMSConfig,$flatDefaultConfig) {
- $pad = str_repeat("\xC2\xA0",10); // Hard spaces
+ if ( strpos($key,'password') !== false )
+ $value = '*';
- $flatDefaultConfig = \util\ArrayUtils::dryFlattenArray( $conf_default , $pad );
- $flatCMSConfig = \util\ArrayUtils::dryFlattenArray( Session::getConfig(), $pad );
- $flatConfig = \util\ArrayUtils::dryFlattenArray( $conf_cms , $pad );
+ return ['key'=>$key,'value'=>$value,'class'=>(empty($flatCMSConfig[$key])?'readonly':(isset($flatDefaultConfig[$key]) && $flatDefaultConfig[$key]==$flatConfig[$key]?'default':'changed'))];
- $config = array();
- foreach( $flatConfig as $key=>$val )
- $config[] = array( 'key'=>$key,'value'=>substr($key,-8)=='password'?'*******************':$val,'class'=>(empty($flatCMSConfig[$key])?'readonly':(isset($flatDefaultConfig[$key]) && $flatDefaultConfig[$key]==$flatConfig[$key]?'default':'changed')));
+ },array_keys($flatConfig),$flatConfig);
$this->setTemplateVar('config',$config );
}
diff --git a/modules/cms/ui/themes/default/html/views/configuration/show.php b/modules/cms/ui/themes/default/html/views/configuration/show.php
@@ -15,14 +15,14 @@
</span>
</td>
</tr>
- <?php foreach((array)$config as $list_key=>$list_value) { extract($list_value); ?>
+ <?php foreach((array)$config as $list_key=>$entry) { ?>
<tr class="<?php echo O::escapeHtml('or-data') ?>"><?php echo O::escapeHtml('') ?>
<td><?php echo O::escapeHtml('') ?>
- <span><?php echo O::escapeHtml(''.@$key.'') ?>
+ <span><?php echo O::escapeHtml(''.@$entry['value']['key'].'') ?>
</span>
</td>
<td class="<?php echo O::escapeHtml('or-'.@$class.'') ?>"><?php echo O::escapeHtml('') ?>
- <span class="<?php echo O::escapeHtml('or-'.@$class.'') ?>"><?php echo O::escapeHtml(''.@$value.'') ?>
+ <span class="<?php echo O::escapeHtml('or-'.@$class.'') ?>"><?php echo O::escapeHtml(''.@$entry['value']['value'].'') ?>
</span>
</td>
</tr>
diff --git a/modules/cms/ui/themes/default/html/views/configuration/show.tpl.src.xml b/modules/cms/ui/themes/default/html/views/configuration/show.tpl.src.xml
@@ -8,13 +8,13 @@
<text value="${message:VALUE}"/>
</column>
</row>
- <list list="${config}" extract="true">
+ <list list="${config}" value="entry">
<row class="data">
<column>
- <text value="${key}"/>
+ <text value="${entry.value.key}"/>
</column>
<column class="${class}">
- <text class="${class}" value="${value}"/>
+ <text class="${class}" value="${entry.value.value}"/>
</column>
</row>
</list>
diff --git a/modules/cms/ui/themes/default/html/views/object/info.php b/modules/cms/ui/themes/default/html/views/object/info.php
@@ -132,7 +132,7 @@
<div class="<?php echo O::escapeHtml('or-label') ?>"><?php echo O::escapeHtml('') ?>
</div>
<div class="<?php echo O::escapeHtml('or-value or-clickable') ?>"><?php echo O::escapeHtml('') ?>
- <a target="<?php echo O::escapeHtml('_self') ?>" data-type="<?php echo O::escapeHtml('dialog') ?>" data-action="<?php echo O::escapeHtml('') ?>" data-method="<?php echo O::escapeHtml('size') ?>" data-id="<?php echo O::escapeHtml('') ?>" data-extra-dialogAction="<?php echo O::escapeHtml('') ?>" data-extra-dialogMethod="<?php echo O::escapeHtml('size') ?>" data-extra="<?php echo O::escapeHtml('{\'dialogAction\':null,\'dialogMethod\':\'size\'}') ?>" href="<?php echo O::escapeHtml('#/') ?>" class="<?php echo O::escapeHtml('or-link or-action') ?>"><?php echo O::escapeHtml('') ?>
+ <a target="<?php echo O::escapeHtml('_self') ?>" data-type="<?php echo O::escapeHtml('dialog') ?>" data-action="<?php echo O::escapeHtml('') ?>" data-method="<?php echo O::escapeHtml('size') ?>" data-id="<?php echo O::escapeHtml('') ?>" data-extra-dialogAction="<?php echo O::escapeHtml('') ?>" data-extra-dialogMethod="<?php echo O::escapeHtml('size') ?>" data-extra="<?php echo O::escapeHtml('{\'dialogAction\':null,\'dialogMethod\':\'size\'}') ?>" href="<?php echo O::escapeHtml('') ?>" class="<?php echo O::escapeHtml('or-link or-action') ?>"><?php echo O::escapeHtml('') ?>
<span><?php echo O::escapeHtml(''.@O::lang('menu_file_size').'') ?>
</span>
</a>
@@ -195,7 +195,7 @@
<?php foreach((array)$pages as $list_key=>$list_value) { extract($list_value); ?>
<tr><?php echo O::escapeHtml('') ?>
<td><?php echo O::escapeHtml('') ?>
- <a target="<?php echo O::escapeHtml('_self') ?>" data-url="<?php echo O::escapeHtml(''.@$url.'') ?>" data-action="<?php echo O::escapeHtml('') ?>" data-method="<?php echo O::escapeHtml('') ?>" data-id="<?php echo O::escapeHtml('') ?>" data-extra="<?php echo O::escapeHtml('[]') ?>" href="<?php echo O::escapeHtml('#/') ?>" class="<?php echo O::escapeHtml('or-link') ?>"><?php echo O::escapeHtml('') ?>
+ <a target="<?php echo O::escapeHtml('_self') ?>" data-url="<?php echo O::escapeHtml(''.@$url.'') ?>" data-action="<?php echo O::escapeHtml('') ?>" data-method="<?php echo O::escapeHtml('') ?>" data-id="<?php echo O::escapeHtml('') ?>" data-extra="<?php echo O::escapeHtml('[]') ?>" href="<?php echo O::escapeHtml('') ?>" class="<?php echo O::escapeHtml('or-link') ?>"><?php echo O::escapeHtml('') ?>
<img src="<?php echo O::escapeHtml('./modules/cms/ui/themes/default/images/icon_page.png') ?>" /><?php echo O::escapeHtml('') ?>
<span><?php echo O::escapeHtml(''.@$name.'') ?>
</span>
@@ -224,7 +224,7 @@
</h2>
<div class="<?php echo O::escapeHtml('or-collapsible-value or-group-value') ?>"><?php echo O::escapeHtml('') ?>
<div class="<?php echo O::escapeHtml('or-clickable') ?>"><?php echo O::escapeHtml('') ?>
- <a target="<?php echo O::escapeHtml('_self') ?>" data-type="<?php echo O::escapeHtml('dialog') ?>" data-action="<?php echo O::escapeHtml('') ?>" data-method="<?php echo O::escapeHtml('settings') ?>" data-id="<?php echo O::escapeHtml('') ?>" data-extra-dialogAction="<?php echo O::escapeHtml('') ?>" data-extra-dialogMethod="<?php echo O::escapeHtml('settings') ?>" data-extra="<?php echo O::escapeHtml('{\'dialogAction\':null,\'dialogMethod\':\'settings\'}') ?>" href="<?php echo O::escapeHtml('#/') ?>" class="<?php echo O::escapeHtml('or-link') ?>"><?php echo O::escapeHtml('') ?>
+ <a target="<?php echo O::escapeHtml('_self') ?>" data-type="<?php echo O::escapeHtml('dialog') ?>" data-action="<?php echo O::escapeHtml('') ?>" data-method="<?php echo O::escapeHtml('settings') ?>" data-id="<?php echo O::escapeHtml('') ?>" data-extra-dialogAction="<?php echo O::escapeHtml('') ?>" data-extra-dialogMethod="<?php echo O::escapeHtml('settings') ?>" data-extra="<?php echo O::escapeHtml('{\'dialogAction\':null,\'dialogMethod\':\'settings\'}') ?>" href="<?php echo O::escapeHtml('') ?>" class="<?php echo O::escapeHtml('or-link') ?>"><?php echo O::escapeHtml('') ?>
<section class="<?php echo O::escapeHtml('or-fieldset') ?>"><?php echo O::escapeHtml('') ?>
<h3 class="<?php echo O::escapeHtml('or-fieldset-label') ?>"><?php echo O::escapeHtml('') ?>
</h3>
@@ -366,15 +366,15 @@
</div>
<div class="<?php echo O::escapeHtml('or-table-area') ?>"><?php echo O::escapeHtml('') ?>
<table width="<?php echo O::escapeHtml('100%') ?>"><?php echo O::escapeHtml('') ?>
- <?php foreach((array)$settings as $name=>$value) { ?>
+ <?php foreach((array)$settings as $list_key=>$entry) { ?>
<tr class="<?php echo O::escapeHtml('or-data') ?>"><?php echo O::escapeHtml('') ?>
<td><?php echo O::escapeHtml('') ?>
- <span><?php echo O::escapeHtml(''.@$name.'') ?>
+ <span><?php echo O::escapeHtml(''.@$entry['key'].'') ?>
</span>
</td>
<td class="<?php echo O::escapeHtml('or-clickable') ?>"><?php echo O::escapeHtml('') ?>
- <a target="<?php echo O::escapeHtml('_self') ?>" data-type="<?php echo O::escapeHtml('dialog') ?>" data-action="<?php echo O::escapeHtml('') ?>" data-method="<?php echo O::escapeHtml('settings') ?>" data-id="<?php echo O::escapeHtml('') ?>" data-extra-dialogAction="<?php echo O::escapeHtml('') ?>" data-extra-dialogMethod="<?php echo O::escapeHtml('settings') ?>" data-extra="<?php echo O::escapeHtml('{\'dialogAction\':null,\'dialogMethod\':\'settings\'}') ?>" href="<?php echo O::escapeHtml('#/') ?>" class="<?php echo O::escapeHtml('or-link') ?>"><?php echo O::escapeHtml('') ?>
- <span><?php echo O::escapeHtml(''.@$value.'') ?>
+ <a target="<?php echo O::escapeHtml('_self') ?>" data-type="<?php echo O::escapeHtml('dialog') ?>" data-action="<?php echo O::escapeHtml('') ?>" data-method="<?php echo O::escapeHtml('settings') ?>" data-id="<?php echo O::escapeHtml('') ?>" data-extra-dialogAction="<?php echo O::escapeHtml('') ?>" data-extra-dialogMethod="<?php echo O::escapeHtml('settings') ?>" data-extra="<?php echo O::escapeHtml('{\'dialogAction\':null,\'dialogMethod\':\'settings\'}') ?>" href="<?php echo O::escapeHtml('') ?>" class="<?php echo O::escapeHtml('or-link') ?>"><?php echo O::escapeHtml('') ?>
+ <span><?php echo O::escapeHtml(''.@$entry['value'].'') ?>
</span>
</a>
</td>
diff --git a/modules/cms/ui/themes/default/html/views/object/info.tpl.src.xml b/modules/cms/ui/themes/default/html/views/object/info.tpl.src.xml
@@ -200,14 +200,14 @@
</group>
<group title="${message:settings}">
<table filter="true">
- <list list="${settings}" key="name" value="value">
+ <list list="${settings}" value="entry">
<row class="data">
<column>
- <text value="${name}"/>
+ <text value="${entry.key}"/>
</column>
<column class="clickable">
<link subaction="settings" type="dialog">
- <text value="${value}"/>
+ <text value="${entry.value}"/>
</link>
</column>
</row>
diff --git a/modules/util/ArrayUtils.class.php b/modules/util/ArrayUtils.class.php
@@ -43,41 +43,6 @@ class ArrayUtils
}
- public static function flattenArray($prefix, $arr, $split = '.')
- {
- $new = array();
- foreach ($arr as $key => $val) {
- if (is_array($val)) {
- $new[$prefix . $key] = '';
-
- $new += self::flattenArray($prefix . $key . $split, $val, $split);
- } else
- $new[$prefix . $key] = $val;
- }
- return $new;
- }
-
-
- /**
- * Make a dry flat array.
- *
- * @param $arr
- * @param int $depth
- * @return array
- */
- public static function indentedFlattenArray($arr, $padChar = '', $depth = 0)
- {
- $new = array();
- foreach ($arr as $key => $val) {
- if (is_array($val)) {
-
- $new[] = array('depth' => $depth, 'key' => $key, 'val' => '');
- $new += self::indentedFlattenArray($val, $padChar, $depth + 1);
- } else
- $new[] = array('depth' => $depth, 'key' => $key, 'val' => $val);
- }
- return $new;
- }
/**
@@ -88,15 +53,22 @@ class ArrayUtils
* @param int $depth
* @return array
*/
- public static function dryFlattenArray($arr, $padChar = '', $depth = 0)
+ public static function dryFlattenArray($arr, $padChar = ' ', $depth = 0)
{
$new = array();
+
foreach ($arr as $key => $val) {
if (is_array($val)) {
- $new[str_repeat($padChar, $depth) . $key] = '';
- $new += self::dryFlattenArray($val, $padChar, $depth + 1);
+ $new[] = [
+ 'key' => str_repeat($padChar, $depth).$key,
+ 'value'=> ''
+ ];
+ $new = array_merge($new,self::dryFlattenArray($val, $padChar, $depth + 1));
} else
- $new[str_repeat($padChar, $depth) . $key] = $val;
+ $new[] = [
+ 'key' => str_repeat($padChar, $depth).$key,
+ 'value'=> $val
+ ];
}
return $new;
}