MantisBT: master 3ed60df1

Author Committer Branch Timestamp Parent
dregad dregad master 2016-04-30 03:53 master a5a08a6f
Affected Issues  0016931: PHPUnit tests for admin config functions
 0016932: Move functions defined in adm_config_set.php to a core API
 0020787: Setting of arrays (complex type) in Configuration Page doesn't work
 0020812: Setting of nested arrays in Configuration Page doesn't work
 0020813: Setting Configuration Page of arrays with strings containing escaped quotes does not work
 0020850: Configuration page parsing complex trims quotes incorrectly
 0020851: Configuration page parsing associative keys incorrectly
Changeset

Parse complex configs using PHP tokenizer

Implements 2 classes to parse 'complex' config options in admin
Configuration Report page using PHP tokenizer instead of relying on
regular expressions.

  • Tokenizer calls token_get_all() to build a list of tokens from the
    given code
  • Parser uses a Tokenizer object to convert the code (string) to an
    actual PHP array variable

Includes PHPUnit test cases for the new parser code.

Fixes 0020787, 0020812, 0020813, 0020850, 0020851, 0016931, 0016932
PR https://github.com/mantisbt/mantisbt/pull/761

mod - adm_config_set.php Diff File
add - core/classes/ConfigParser.class.php Diff File
add - core/classes/Tokenizer.class.php Diff File
mod - core/constant_inc.php Diff File
mod - lang/strings_english.txt Diff File
mod - tests/Mantis/AllTests.php Diff File
add - tests/Mantis/ConfigParserTest.php Diff File