Michael Save
12 years ago
1 changed files with 75 additions and 0 deletions
@ -0,0 +1,75 @@ |
|||||
|
<?php |
||||
|
|
||||
|
function config_vars() { |
||||
|
global $config; |
||||
|
|
||||
|
$config_file = file('inc/config.php', FILE_IGNORE_NEW_LINES); |
||||
|
$conf = array(); |
||||
|
|
||||
|
$var = array( |
||||
|
'name' => false, |
||||
|
'comment' => array(), |
||||
|
'default' => false, |
||||
|
'default_temp' => false |
||||
|
); |
||||
|
$temp_comment = false; |
||||
|
foreach ($config_file as $line) { |
||||
|
if ($temp_comment) { |
||||
|
$var['comment'][] = $temp_comment; |
||||
|
$temp_comment = false; |
||||
|
} |
||||
|
|
||||
|
if (preg_match('!^\s*// (.*)$!', $line, $matches)) { |
||||
|
if ($var['default'] !== false) { |
||||
|
$line = ''; |
||||
|
$temp_comment = $matches[1]; |
||||
|
} else { |
||||
|
$var['comment'][] = $matches[1]; |
||||
|
} |
||||
|
} else if ($var['default_temp'] !== false) { |
||||
|
$var['default_temp'] .= "\n" . $line; |
||||
|
} elseif (preg_match('!^\s*\$config\[(.+?)\] = (.+?)(;( //.+)?)?$!', $line, $matches)) { |
||||
|
$var['name'] = explode('][', $matches[1]); |
||||
|
if (count($var['name']) == 1) { |
||||
|
$var['name'] = preg_replace('/^\'(.*)\'$/', '$1', end($var['name'])); |
||||
|
} else { |
||||
|
foreach ($var['name'] as &$i) |
||||
|
$i = preg_replace('/^\'(.*)\'$/', '$1', $i); |
||||
|
} |
||||
|
|
||||
|
if (isset($matches[3])) |
||||
|
$var['default'] = $matches[2]; |
||||
|
else |
||||
|
$var['default_temp'] = $matches[2]; |
||||
|
} |
||||
|
|
||||
|
if (trim($line) === '') { |
||||
|
if ($var['name'] !== false) { |
||||
|
if ($var['default_temp']) |
||||
|
$var['default'] = $var['default_temp']; |
||||
|
|
||||
|
$temp = eval('return ' . $var['default'] . ';'); |
||||
|
if (!isset($temp)) |
||||
|
$var['type'] = 'unknown'; |
||||
|
else |
||||
|
$var['type'] = gettype($temp); |
||||
|
|
||||
|
unset($var['default_temp']); |
||||
|
|
||||
|
if (!is_array($var['name']) || (end($var['name']) != '' && !in_array(reset($var['name']), array('stylesheets')))) { |
||||
|
$conf[] = $var; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
$var = array( |
||||
|
'name' => false, |
||||
|
'comment' => array(), |
||||
|
'default' => false, |
||||
|
'default_temp' => false |
||||
|
); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
return $conf; |
||||
|
} |
||||
|
|
Loading…
Reference in new issue