6
function __construct(&$req = NULL, &$override = NULL) {
9
if ($req instanceof REQUEST) $props = &$req->props;
12
$this->options = array();
13
if ($override) $this->options[] = &$override;
15
if (($req)&&(isset($props['db_server']))) {
16
$sname = $props['db_server']; $slen = strlen($sname);
18
if (isset($props['db_name'])) {
19
$dname = "__" . $props['db_name']; $dlen = strlen($dname);
21
if (isset($props['db_group'])) {
22
$gname = $props['db_group'];
26
foreach (array_keys($OPTIONS) as $regex) {
27
if (!strncmp($regex, $sname, $slen)) {
28
$len = strlen($regex);
29
if ($len == $slen) $sopts = &$OPTIONS[$regex];
30
elseif (($dname)&&(!strcmp(substr($regex, $slen, $dlen), $dname))) {
31
$pos = strpos($regex, "__", $slen + $dlen);
33
if ($pos === false) $dopts = &$OPTIONS[$regex];
34
else if (($gname)&&(!strcmp(substr($regex, $pos + 2), $gname))) {
35
$gopts = &$OPTIONS[$regex];
36
if (($sopts)&&($dopts)) break;
42
if ($gopts) $this->options[] = &$gopts;
43
if ($dopts) $this->options[] = &$dopts;
44
if ($sopts) $this->options[] = &$sopts;
46
if (isset($OPTIONS['default'])) $this->options[] = &$OPTIONS['default'];
49
function Get($prop, $default=NULL) {
50
foreach ($this->options as &$opts) {
51
if (isset($opts[$prop])) return $opts[$prop];
b'\\ No newline at end of file'