openrat-cms

OpenRat Content Management System
git clone http://git.code.weiherhei.de/openrat-cms.git
Log | Files | Refs | README

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:
Mmodules/cms/action/ConfigurationAction.class.php | 31++++++++++++++-----------------
Mmodules/cms/ui/themes/default/html/views/configuration/show.php | 6+++---
Mmodules/cms/ui/themes/default/html/views/configuration/show.tpl.src.xml | 6+++---
Mmodules/cms/ui/themes/default/html/views/object/info.php | 14+++++++-------
Mmodules/cms/ui/themes/default/html/views/object/info.tpl.src.xml | 6+++---
Mmodules/util/ArrayUtils.class.php | 50+++++++++++---------------------------------------
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; }