| 3011 | | if ($amp_conf["AMPDBENGINE"] == "sqlite3") |
|---|
| 3012 | | { |
|---|
| 3013 | | // TODO: sqlite work arround - diego |
|---|
| 3014 | | // TODO: WILL NOT WORK, need to remove the usage of SUBSTRING |
|---|
| 3015 | | // need to reorder the trunks in PHP code |
|---|
| 3016 | | $sqlstr = "SELECT t.variable, t.value, d.value state FROM `globals` t "; |
|---|
| 3017 | | $sqlstr .= "JOIN (SELECT x.variable, x.value FROM globals x WHERE x.variable LIKE 'OUTDISABLE\_%') d "; |
|---|
| 3018 | | $sqlstr .= "ON substring(t.variable,5) = substring(d.variable,12) WHERE t.variable LIKE 'OUT\_%' "; |
|---|
| 3019 | | $sqlstr .= "UNION ALL "; |
|---|
| 3020 | | $sqlstr .= "SELECT v.variable, v.value, concat(substring(v.value,1,0),'off') state FROM `globals` v "; |
|---|
| 3021 | | $sqlstr .= "WHERE v.variable LIKE 'OUT\_%' AND concat('OUTDISABLE_',substring(v.variable,5)) NOT IN "; |
|---|
| 3022 | | $sqlstr .= " ( SELECT variable from globals WHERE variable LIKE 'OUTDISABLE\_%' ) "; |
|---|
| 3023 | | $sqlstr .= "ORDER BY variable"; |
|---|
| 3024 | | |
|---|
| 3025 | | //$unique_trunks = sql("SELECT * FROM globals WHERE variable LIKE 'OUT_%' ORDER BY variable","getAll"); |
|---|
| 3026 | | $unique_trunks = sql($sqlstr,"getAll"); |
|---|
| 3027 | | } |
|---|
| 3028 | | else |
|---|
| 3029 | | { |
|---|
| 3030 | | // we have to escape _ for mysql: normally a wildcard |
|---|
| 3031 | | $sqlstr = "SELECT t.variable, t.value, d.value state FROM `globals` t "; |
|---|
| 3032 | | $sqlstr .= "JOIN (SELECT x.variable, x.value FROM globals x WHERE x.variable LIKE 'OUTDISABLE\\\_%') d "; |
|---|
| 3033 | | $sqlstr .= "ON substring(t.variable,5) = substring(d.variable,12) WHERE t.variable LIKE 'OUT\\\_%' "; |
|---|
| 3034 | | $sqlstr .= "UNION ALL "; |
|---|
| 3035 | | $sqlstr .= "SELECT v.variable, v.value, concat(substring(v.value,1,0),'off') state FROM `globals` v "; |
|---|
| 3036 | | $sqlstr .= "WHERE v.variable LIKE 'OUT\\\_%' AND concat('OUTDISABLE_',substring(v.variable,5)) NOT IN "; |
|---|
| 3037 | | $sqlstr .= " ( SELECT variable from globals WHERE variable LIKE 'OUTDISABLE\\\_%' ) "; |
|---|
| 3038 | | $sqlstr .= "ORDER BY RIGHT( variable, LENGTH( variable ) - 4 )+0"; |
|---|
| 3039 | | |
|---|
| 3040 | | //$unique_trunks = sql("SELECT * FROM globals WHERE variable LIKE 'OUT\\\_%' ORDER BY RIGHT( variable, LENGTH( variable ) - 4 )+0","getAll"); |
|---|
| 3041 | | $unique_trunks = sql($sqlstr,"getAll"); |
|---|
| 3042 | | } |
|---|
| | 3019 | // sqlite doesn't support the syntax required for the SQL so we have to do it the hard way |
|---|
| | 3020 | if ($amp_conf["AMPDBENGINE"] == "sqlite3") |
|---|
| | 3021 | { |
|---|
| | 3022 | $sqlstr = "SELECT variable, value FROM globals WHERE variable LIKE 'OUT_%'"; |
|---|
| | 3023 | $my_unique_trunks = sql($sqlstr,"getAll",DB_FETCHMODE_ASSOC); |
|---|
| | 3024 | |
|---|
| | 3025 | $sqlstr = "SELECT variable, value FROM globals WHERE variable LIKE 'OUTDISABLE_%'"; |
|---|
| | 3026 | $disable_states = sql($sqlstr,"getAll",DB_FETCHMODE_ASSOC); |
|---|
| | 3027 | |
|---|
| | 3028 | foreach($disable_states as $arr) { |
|---|
| | 3029 | $disable_states_assoc[$arr['variable']] = $arr['value']; |
|---|
| | 3030 | } |
|---|
| | 3031 | global $unique_trunks; |
|---|
| | 3032 | $unique_trunks = array(); |
|---|
| | 3033 | |
|---|
| | 3034 | foreach ($my_unique_trunks as $this_trunk) { |
|---|
| | 3035 | |
|---|
| | 3036 | $trunk_num = substr($this_trunk['variable'],4); |
|---|
| | 3037 | $this_state = (isset($disable_states_assoc['OUTDISABLE_'.$trunk_num]) ? $disable_states_assoc['OUTDISABLE_'.$trunk_num] : 'off'); |
|---|
| | 3038 | $unique_trunks[] = array($this_trunk['variable'], $this_trunk['value'], $this_state); |
|---|
| | 3039 | } |
|---|
| | 3040 | // sort this array using a custom function sort_trunks(), defined above |
|---|
| | 3041 | uksort($unique_trunks,"sort_trunks"); |
|---|
| | 3042 | // re-index the newly sorted array |
|---|
| | 3043 | foreach($unique_trunks as $arr) { |
|---|
| | 3044 | $unique_trunks_t[] = array($arr[0],$arr[1],$arr[2]); |
|---|
| | 3045 | } |
|---|
| | 3046 | $unique_trunks = $unique_trunks_t; |
|---|
| | 3047 | |
|---|
| | 3048 | } |
|---|
| | 3049 | else |
|---|
| | 3050 | { |
|---|
| | 3051 | $sqlstr = "SELECT t.variable, t.value, d.value state FROM `globals` t "; |
|---|
| | 3052 | $sqlstr .= "JOIN (SELECT x.variable, x.value FROM globals x WHERE x.variable LIKE 'OUTDISABLE\_%') d "; |
|---|
| | 3053 | $sqlstr .= "ON substring(t.variable,5) = substring(d.variable,12) WHERE t.variable LIKE 'OUT\_%' "; |
|---|
| | 3054 | $sqlstr .= "UNION ALL "; |
|---|
| | 3055 | $sqlstr .= "SELECT v.variable, v.value, concat(substring(v.value,1,0),'off') state FROM `globals` v "; |
|---|
| | 3056 | $sqlstr .= "WHERE v.variable LIKE 'OUT\_%' AND concat('OUTDISABLE_',substring(v.variable,5)) NOT IN "; |
|---|
| | 3057 | $sqlstr .= " ( SELECT variable from globals WHERE variable LIKE 'OUTDISABLE\_%' ) "; |
|---|
| | 3058 | $sqlstr .= "ORDER BY variable"; |
|---|
| | 3059 | //$unique_trunks = sql("SELECT * FROM globals WHERE variable LIKE 'OUT_%' ORDER BY variable","getAll"); |
|---|
| | 3060 | $unique_trunks = sql($sqlstr,"getAll"); |
|---|
| | 3061 | } |
|---|