Index: branches/RC/core/units/sections/site_config_eh.php =================================================================== diff -u -N -r11623 -r11685 --- branches/RC/core/units/sections/site_config_eh.php (.../site_config_eh.php) (revision 11623) +++ branches/RC/core/units/sections/site_config_eh.php (.../site_config_eh.php) (revision 11685) @@ -35,7 +35,8 @@ } $change_names = Array ( - 'remove_sections', 'remove_buttons', 'hidden_fields', 'virtual_hidden_fields', + 'remove_sections', 'debug_only_sections', 'remove_buttons', + 'hidden_fields', 'virtual_hidden_fields', 'debug_only_fields', 'debug_only_virtual_fields', 'required_fields', 'virtual_required_fields', 'hide_edit_tabs', 'hide_columns' ); @@ -77,22 +78,45 @@ } } + if (isset($debug_only_sections)) { + // process sections + foreach ($debug_only_sections as $debug_only_section) { + $section_adjustments[$debug_only_section]['show_mode'] = smDEBUG; + } + } + if (isset($remove_buttons)) { // process toolbar buttons foreach ($remove_buttons as $title_preset => $toolbar_buttons) { $title_presets[$title_preset]['toolbar_buttons'] = array_diff($title_presets[$title_preset]['toolbar_buttons'], $toolbar_buttons); } } + $reset_fields = true; + $reset_virtual_fields = true; + // process hidden fields if (isset($hidden_fields)) { - $fields = $this->_setFieldOption($fields, $hidden_fields, 'hidden', 1); + $fields = $this->_setFieldOption($fields, $hidden_fields, 'show_mode', false, $reset_fields); + $reset_fields = false; } if (isset($virtual_hidden_fields)) { - $virtual_fields = $this->_setFieldOption($virtual_fields, $virtual_hidden_fields, 'hidden', 1); + $virtual_fields = $this->_setFieldOption($virtual_fields, $virtual_hidden_fields, 'show_mode', false, $reset_virtual_fields); + $reset_virtual_fields = false; } + // process debug only fields + if (isset($debug_only_fields)) { + $fields = $this->_setFieldOption($fields, $debug_only_fields, 'show_mode', smDEBUG, $reset_fields); + $reset_fields = false; + } + + if (isset($debug_only_virtual_fields)) { + $virtual_fields = $this->_setFieldOption($virtual_fields, $debug_only_virtual_fields, 'show_mode', smDEBUG, $reset_virtual_fields); + $reset_virtual_fields = false; + } + // process required fields if (isset($required_fields)) { $fields = $this->_setFieldOption($fields, $required_fields, 'required', 1); @@ -136,14 +160,17 @@ * @param Array $set_fields * @param string $option_name * @param mixed $option_value + * @param bool $reset */ - function _setFieldOption($fields, $set_fields, $option_name, $option_value) + function _setFieldOption($fields, $set_fields, $option_name, $option_value, $reset = true) { - // unset given option for rest of fields (all except $set_fields) - $unset_fields = array_diff(array_keys($fields), $set_fields); - foreach ($unset_fields as $unset_field) { - if (array_key_exists($option_name, $fields[$unset_field])) { - unset($fields[$unset_field][$option_name]); + if ($reset) { + // unset given option for rest of fields (all except $set_fields) + $unset_fields = array_diff(array_keys($fields), $set_fields); + foreach ($unset_fields as $unset_field) { + if (array_key_exists($option_name, $fields[$unset_field])) { + unset($fields[$unset_field][$option_name]); + } } }