Commit bb13277c13e7aadd46ba4e880d7d75a2abf73302
1 parent
ea5d9965
Exists in
master
and in
7 other branches
Inclusão do link para o curso de i3Geo na página inicial
Ajustes na geração do xml esquema para SAIKU
Showing
3 changed files
with
588 additions
and
518 deletions
Show diff stats
ferramentas/saiku/esquemaxml.php
1 | 1 | <?php |
2 | -//utilize output=xml para debug | |
2 | +// | |
3 | +//utilize &output=xml para ver o xml | |
4 | +// | |
5 | +//utilize &xmlesquema= caso o XML ja exista | |
6 | +// | |
7 | +//http://localhost/i3geo/ferramentas/saiku/esquemaxml.php?output=&xmlesquema=http://localhost/testemondrian.xml | |
8 | +// | |
3 | 9 | //quando o saiku e iniciado de fora do i3geo, e necessario inicializar um mapfile para uso como base dos mapas |
4 | 10 | if(empty($_GET["g_sid"])){ |
5 | 11 | include(dirname(__FILE__)."/../../ms_criamapa.php"); |
6 | 12 | //reinicia a url |
7 | - $urln = "?g_sid=".session_id()."&locaplic=".$_GET["locaplic"]."&mapext=".$mapext."&origem=".$_GET["origem"]."&output=".$_GET["output"]; | |
13 | + $urln = "?g_sid=".session_id()."&locaplic=".$_GET["locaplic"]."&mapext=".$mapext."&origem=".$_GET["origem"]."&output=".$_GET["output"]."&xmlesquema=".$_GET["xmlesquema"]; | |
8 | 14 | header("Location:".$urln); |
9 | 15 | exit; |
10 | 16 | } |
... | ... | @@ -22,11 +28,16 @@ session_name("i3GeoPHP"); |
22 | 28 | session_id($_GET["g_sid"]); |
23 | 29 | session_start(); |
24 | 30 | $map_file = $_SESSION["map_file"]; |
25 | -$urlXmlEsquema = $_SESSION["tmpurl"].basename(dirname($map_file))."/".$nomeConexao.".xml"; | |
31 | +if(empty($_GET["xmlesquema"])){ | |
32 | + $urlXmlEsquema = $_SESSION["tmpurl"].basename(dirname($map_file))."/".$nomeConexao.".xml"; | |
33 | +} | |
34 | +else{ | |
35 | + $urlXmlEsquema = $_GET["xmlesquema"]; | |
36 | +} | |
26 | 37 | $arquivoXmlEsquema = dirname($map_file)."/".$nomeConexao.".xml"; |
27 | 38 | |
28 | 39 | /* |
29 | -$saikuConfigDataSource vem do ms_configura.php | |
40 | + $saikuConfigDataSource vem do ms_configura.php | |
30 | 41 | |
31 | 42 | Exemplo de arquivo de fonte: |
32 | 43 | type=OLAP |
... | ... | @@ -39,15 +50,15 @@ password=postgres |
39 | 50 | Array com os parametros definidos em ms_configura: |
40 | 51 | |
41 | 52 | $saikuConfigDataSource = array( |
42 | - "type"=>"OLAP", | |
43 | - "driver"=>"mondrian.olap4j.MondrianOlap4jDriver", | |
44 | - "location"=>"jdbc:mondrian:Jdbc=jdbc:postgresql", | |
45 | - "serverdb"=>"localhost", | |
46 | - "port"=>"5432", | |
47 | - "database"=>"i3geosaude", | |
48 | - "JdbcDrivers"=>"org.postgresql.Driver", | |
49 | - "username"=>"postgres", | |
50 | - "password"=>"postgres" | |
53 | + "type"=>"OLAP", | |
54 | + "driver"=>"mondrian.olap4j.MondrianOlap4jDriver", | |
55 | + "location"=>"jdbc:mondrian:Jdbc=jdbc:postgresql", | |
56 | + "serverdb"=>"localhost", | |
57 | + "port"=>"5432", | |
58 | + "database"=>"i3geosaude", | |
59 | + "JdbcDrivers"=>"org.postgresql.Driver", | |
60 | + "username"=>"postgres", | |
61 | + "password"=>"postgres" | |
51 | 62 | ); |
52 | 63 | */ |
53 | 64 | $stringDatasource = " |
... | ... | @@ -60,395 +71,415 @@ password={$saikuConfigDataSource["password"]} |
60 | 71 | "; |
61 | 72 | //salva o arquivo com a fonte |
62 | 73 | gravaDados(array($stringDatasource),$nomeDatasource); |
63 | -$m = new Metaestat(); | |
64 | -$selecaoRegiao = array(); | |
65 | -//obtem do mapfile em uso os layers que sao do sistema metaestat, sao regioes e que possuem selecao | |
66 | -$codigo_tipo_regiao = ""; | |
67 | -if($map_file != ""){ | |
68 | - $mapa = ms_newMapObj($map_file); | |
69 | - $c = $mapa->numlayers; | |
70 | - for ($i=0;$i < $c;++$i){ | |
71 | - $l = $mapa->getlayer($i); | |
72 | - //verifica o alias na conexao | |
73 | - if (!empty($postgis_mapa)){ | |
74 | - if ($l->connectiontype == MS_POSTGIS){ | |
75 | - $lcon = $l->connection; | |
76 | - if (($lcon == " ") || ($lcon == "") || (in_array($lcon,array_keys($postgis_mapa)))){ | |
77 | - if(($lcon == " ") || ($lcon == "")) //para efeitos de compatibilidade | |
78 | - {$l->set("connection",$postgis_mapa);} | |
79 | - else{ | |
80 | - $l->set("connection",$postgis_mapa[$lcon]); | |
74 | + | |
75 | +if(empty($_GET["xmlesquema"])){ | |
76 | + $m = new Metaestat(); | |
77 | + | |
78 | + // | |
79 | + //obtem do mapfile em uso os layers que sao do sistema metaestat, sao regioes e que possuem selecao | |
80 | + // | |
81 | + $selecaoRegiao = array(); | |
82 | + $codigo_tipo_regiao = ""; | |
83 | + if($map_file != ""){ | |
84 | + $mapa = ms_newMapObj($map_file); | |
85 | + $c = $mapa->numlayers; | |
86 | + for ($i=0;$i < $c;++$i){ | |
87 | + $l = $mapa->getlayer($i); | |
88 | + //verifica o alias na conexao | |
89 | + if (!empty($postgis_mapa)){ | |
90 | + if ($l->connectiontype == MS_POSTGIS){ | |
91 | + $lcon = $l->connection; | |
92 | + if (($lcon == " ") || ($lcon == "") || (in_array($lcon,array_keys($postgis_mapa)))){ | |
93 | + if(($lcon == " ") || ($lcon == "")) //para efeitos de compatibilidade | |
94 | + {$l->set("connection",$postgis_mapa); | |
95 | + } | |
96 | + else{ | |
97 | + $l->set("connection",$postgis_mapa[$lcon]); | |
98 | + } | |
81 | 99 | } |
82 | 100 | } |
83 | 101 | } |
84 | - } | |
85 | - // | |
86 | - $registros = array(); | |
87 | - if($l->status == MS_DEFAULT && $l->getmetadata("METAESTAT_CODIGO_TIPO_REGIAO") != ""){ | |
88 | - //verifica se tem selecao | |
89 | - $qyfile = dirname($map_file)."/".$l->name.".php"; | |
90 | - if(file_exists($qyfile)){ | |
91 | - $codigo_tipo_regiao = $l->getmetadata("METAESTAT_CODIGO_TIPO_REGIAO"); | |
92 | - //pega os registros | |
93 | - $shapes = retornaShapesSelecionados($l,$map_file,$mapa); | |
94 | - //pega o nome da coluna que identifica cada registro | |
95 | - $regiao = $m->listaTipoRegiao($codigo_tipo_regiao); | |
96 | - $item = $regiao["identificador"]; | |
97 | - foreach($shapes as $shape){ | |
98 | - $registros[] = $shape->values[$item]; | |
102 | + // | |
103 | + $registros = array(); | |
104 | + if($l->status == MS_DEFAULT && $l->getmetadata("METAESTAT_CODIGO_TIPO_REGIAO") != ""){ | |
105 | + //verifica se tem selecao | |
106 | + $qyfile = dirname($map_file)."/".$l->name.".php"; | |
107 | + if(file_exists($qyfile)){ | |
108 | + $codigo_tipo_regiao = $l->getmetadata("METAESTAT_CODIGO_TIPO_REGIAO"); | |
109 | + //pega os registros | |
110 | + $shapes = retornaShapesSelecionados($l,$map_file,$mapa); | |
111 | + //pega o nome da coluna que identifica cada registro | |
112 | + $regiao = $m->listaTipoRegiao($codigo_tipo_regiao); | |
113 | + $item = $regiao["identificador"]; | |
114 | + foreach($shapes as $shape){ | |
115 | + $registros[] = $shape->values[$item]; | |
116 | + } | |
117 | + $reg = $item." IN ('".implode("','",$registros)."') "; | |
118 | + $selecaoRegiao[$codigo_tipo_regiao] = array( | |
119 | + "item" => $item, | |
120 | + "sql" => $reg | |
121 | + ); | |
122 | + break; //mantem a primeira ocorrencia de regiao que possui selecao | |
123 | + } | |
124 | + else{ | |
125 | + $selecaoRegiao[$codigo_tipo_regiao] = ""; | |
99 | 126 | } |
100 | - $reg = $item." IN ('".implode("','",$registros)."') "; | |
101 | - $selecaoRegiao[$codigo_tipo_regiao] = array( | |
102 | - "item" => $item, | |
103 | - "sql" => $reg | |
104 | - ); | |
105 | - break; //mantem a primeira ocorrencia de regiao que possui selecao | |
106 | - } | |
107 | - else{ | |
108 | - $selecaoRegiao[$codigo_tipo_regiao] = ""; | |
109 | 127 | } |
110 | 128 | } |
111 | 129 | } |
112 | -} | |
113 | -if($codigo_tipo_regiao == ""){ | |
114 | - $regioes = $m->listaTipoRegiao(); | |
115 | -} | |
116 | -else{ | |
117 | - $regioes = array($m->listaTipoRegiao($codigo_tipo_regiao)); | |
118 | -} | |
119 | -//echo "<pre>";var_dump($regioes);exit; | |
120 | -$regiao = ""; | |
121 | -$item = ""; | |
122 | -$registros = ""; | |
123 | -//echo "<pre>";var_dump($regioes);exit; | |
124 | - | |
125 | -$xml = "<Schema name='i3Geo Metaestat'>"; | |
126 | -//cria as dimensoes de tipo temporal | |
127 | -if(empty($saikuConfigDataSource['tabelaDimensaoTempo'])){ | |
128 | - $saikuConfigDataSource['tabelaDimensaoTempo'] = "i3geo_metaestat.dim_tempo"; | |
129 | -} | |
130 | -$sqlAno = "select nu_ano from ".$saikuConfigDataSource['tabelaDimensaoTempo']." group by nu_ano order by nu_ano"; | |
131 | -$sqlMes = "select nu_ano::text,nu_mes::text,ds_mes_abreviado as mes,COALESCE (nu_ano::text||'-'||nu_mes::text,nu_ano::text) as nu_anomes from ".$saikuConfigDataSource['tabelaDimensaoTempo']." group by nu_ano,nu_mes,mes,nu_anomes order by nu_ano,nu_mes"; | |
132 | -//dimensoes temporais | |
133 | -$xml .= " | |
130 | + if($codigo_tipo_regiao == ""){ | |
131 | + $regioes = $m->listaTipoRegiao(); | |
132 | + } | |
133 | + else{ | |
134 | + $regioes = array($m->listaTipoRegiao($codigo_tipo_regiao)); | |
135 | + } | |
136 | + //echo "<pre>";var_dump($regioes);exit; | |
137 | + $regiao = ""; | |
138 | + $item = ""; | |
139 | + $registros = ""; | |
140 | + //echo "<pre>";var_dump($regioes);exit; | |
141 | + | |
142 | + $xml = "<Schema name='i3Geo Metaestat'>"; | |
143 | + //cria as dimensoes de tipo temporal | |
144 | + if(empty($saikuConfigDataSource['tabelaDimensaoTempo'])){ | |
145 | + $saikuConfigDataSource['tabelaDimensaoTempo'] = "i3geo_metaestat.dim_tempo"; | |
146 | + } | |
147 | + $sqlAno = "select nu_ano from ".$saikuConfigDataSource['tabelaDimensaoTempo']." group by nu_ano order by nu_ano"; | |
148 | + $sqlMes = "select nu_ano::text,nu_mes::text,ds_mes_abreviado as mes,COALESCE (nu_ano::text||'-'||nu_mes::text,nu_ano::text) as nu_anomes from ".$saikuConfigDataSource['tabelaDimensaoTempo']." group by nu_ano,nu_mes,mes,nu_anomes order by nu_ano,nu_mes"; | |
149 | + //dimensoes temporais | |
150 | + $xml .= " | |
134 | 151 | <Dimension name='Anual' type='TimeDimension' caption='Tempo: Anual'> |
135 | - <Hierarchy hasAll='true' primaryKey='nu_ano'> | |
136 | - <view alias='tempo_ano' ><SQL dialect='generic' >$sqlAno</SQL></view> | |
137 | - <Level name='Ano' column='nu_ano' type='Numeric' uniqueMembers='true' levelType='TimeYears'/> | |
138 | - </Hierarchy> | |
152 | + <Hierarchy hasAll='true' primaryKey='nu_ano'> | |
153 | + <view alias='tempo_ano' ><SQL dialect='generic' >$sqlAno</SQL></view> | |
154 | + <Level name='Ano' column='nu_ano' type='Numeric' uniqueMembers='true' levelType='TimeYears'/> | |
155 | + </Hierarchy> | |
139 | 156 | </Dimension> |
140 | 157 | <Dimension name='Mensal' type='TimeDimension' caption='Tempo: Mensal'> |
141 | - <Hierarchy hasAll='true' primaryKey='nu_anomes'> | |
142 | - <view alias='tempo_ano' ><SQL dialect='generic' >$sqlMes</SQL></view> | |
143 | - <Level name='Ano' column='nu_ano' type='Numeric' uniqueMembers='true' levelType='TimeYears'/> | |
144 | - <Level nameColumn='mes' name='Mes' column='nu_mes' type='Numeric' uniqueMembers='false' levelType='TimeMonths'/> | |
145 | - </Hierarchy> | |
158 | + <Hierarchy hasAll='true' primaryKey='nu_anomes'> | |
159 | + <view alias='tempo_ano' ><SQL dialect='generic' >$sqlMes</SQL></view> | |
160 | + <Level name='Ano' column='nu_ano' type='Numeric' uniqueMembers='true' levelType='TimeYears'/> | |
161 | + <Level nameColumn='mes' name='Mes' column='nu_mes' type='Numeric' uniqueMembers='false' levelType='TimeMonths'/> | |
162 | + </Hierarchy> | |
146 | 163 | </Dimension> |
147 | 164 | <Dimension name='Tempo' type='TimeDimension' caption='Tempo'> |
148 | - <Hierarchy hasAll='true' primaryKey='nu_anomes'> | |
149 | - <view alias='tempo' ><SQL dialect='generic' >$sqlMes</SQL></view> | |
150 | - <Level name='Ano' column='nu_ano' type='String' uniqueMembers='true' levelType='TimeYears'/> | |
151 | - <Level nameColumn='mes' name='Mes' column='nu_mes' type='String' uniqueMembers='false' levelType='TimeMonths'/> | |
152 | - </Hierarchy> | |
165 | + <Hierarchy hasAll='true' primaryKey='nu_anomes'> | |
166 | + <view alias='tempo' ><SQL dialect='generic' >$sqlMes</SQL></view> | |
167 | + <Level name='Ano' column='nu_ano' type='String' uniqueMembers='true' levelType='TimeYears'/> | |
168 | + <Level nameColumn='mes' name='Mes' column='nu_mes' type='String' uniqueMembers='false' levelType='TimeMonths'/> | |
169 | + </Hierarchy> | |
153 | 170 | </Dimension> |
154 | -"; | |
155 | -//dimensoes geograficas | |
156 | -//as dimensoes sao duplicadas | |
157 | -//uma delas contem o geocodigo que permite a geracao do mapa | |
158 | - | |
159 | -//guarda as regioes filhas de uma determinada regiao (chave) | |
160 | -$filhosDaRegiao = array(); | |
161 | -$VirtualCubeDimensionDaRegiao = array(); | |
162 | -$VirtualCubeMeasureDaRegiao = array(); | |
163 | -foreach($regioes as $regiao){ | |
164 | - $filhosDaRegiao[$regiao["codigo_tipo_regiao"]] = array(); | |
165 | - $VirtualCubeDimensionDaRegiao[$regiao["codigo_tipo_regiao"]] = array(); | |
166 | - $VirtualCubeMeasureDaRegiao[$regiao["codigo_tipo_regiao"]] = array(); | |
167 | -} | |
168 | -$xml1 = ""; | |
169 | -$xml2 = ""; | |
170 | -foreach($regioes as $regiao){ | |
171 | - $caminho = $m->hierarquiaPath($regiao["codigo_tipo_regiao"]); | |
172 | - $xml1 .= " | |
173 | - <Dimension name='codigo_tipo_regiao_".$regiao["codigo_tipo_regiao"]."' caption='Onde:".converte($regiao["nome_tipo_regiao"])."'> | |
174 | - <Hierarchy hasAll='true' primaryKey='codigo'> | |
175 | 171 | "; |
176 | - $xml2 .= " | |
172 | + //dimensoes geograficas | |
173 | + //as dimensoes sao duplicadas | |
174 | + //uma delas contem o geocodigo que permite a geracao do mapa | |
175 | + | |
176 | + //guarda as regioes filhas de uma determinada regiao (chave) | |
177 | + $filhosDaRegiao = array(); | |
178 | + $VirtualCubeDimensionDaRegiao = array(); | |
179 | + $VirtualCubeMeasureDaRegiao = array(); | |
180 | + foreach($regioes as $regiao){ | |
181 | + $filhosDaRegiao[$regiao["codigo_tipo_regiao"]] = array(); | |
182 | + $VirtualCubeDimensionDaRegiao[$regiao["codigo_tipo_regiao"]] = array(); | |
183 | + $VirtualCubeMeasureDaRegiao[$regiao["codigo_tipo_regiao"]] = array(); | |
184 | + } | |
185 | + $xml1 = ""; | |
186 | + $xml2 = ""; | |
187 | + foreach($regioes as $regiao){ | |
188 | + $caminho = $m->hierarquiaPath($regiao["codigo_tipo_regiao"]); | |
189 | + $xml1 .= " | |
190 | + <Dimension name='codigo_tipo_regiao_".$regiao["codigo_tipo_regiao"]."' caption='Onde:".converte($regiao["nome_tipo_regiao"])."'> | |
191 | + <Hierarchy hasAll='true' primaryKey='{$regiao['identificador']}'> | |
192 | + "; | |
193 | + $xml2 .= " | |
177 | 194 | <Dimension name='codigo_tipo_regiao_".$regiao["codigo_tipo_regiao"]."_geocod' caption='GeoCod:".converte($regiao["nome_tipo_regiao"])."'> |
178 | - <Hierarchy hasAll='true' primaryKey='codigo'> | |
179 | - "; | |
180 | - //cria uma view juntando as tabelas da hierarquia de regioes | |
181 | - $n = count($caminho); | |
182 | - $colunas = array(); | |
183 | - $niveis1 = array(); | |
184 | - $niveis2 = array(); | |
185 | - $sql = "SELECT __COLUNAS__ FROM {$regiao['esquemadb']}.{$regiao['tabela']} AS regiao "; | |
186 | - $colunas[] = "regiao.{$regiao['identificador']} AS codigo "; | |
187 | - $colunas[] = "regiao.{$regiao['colunanomeregiao']} AS nome"; | |
188 | - //$colunas[] = "regiao".$regiao['identificador']; | |
189 | - $tabelaAnt = "regiao"; | |
190 | - | |
191 | - for($i=0;$i<$n;$i++){ | |
192 | - $r = $m->listaTipoRegiao($caminho[$i]); | |
193 | - | |
194 | - array_push($filhosDaRegiao[$caminho[$i]],$regiao["codigo_tipo_regiao"]); | |
195 | - | |
196 | - $colunas[] = "j$i.{$r['colunanomeregiao']} AS j$i{$r['colunanomeregiao']}"; | |
197 | - $colunas[] = "j$i.{$r['identificador']} AS j$i{$r['identificador']}"; | |
198 | - $sql .= "INNER JOIN {$r['esquemadb']}.{$r['tabela']} | |
199 | - AS j$i ON j$i.{$r['identificador']}::text = {$tabelaAnt}.{$r['identificador']}::text | |
195 | + <Hierarchy hasAll='true' primaryKey='{$regiao['identificador']}'> | |
200 | 196 | "; |
201 | - $tabelaAnt = "j".$i; | |
202 | - $niveis1[] = " | |
197 | + //cria uma view juntando as tabelas da hierarquia de regioes | |
198 | + $n = count($caminho); | |
199 | + $colunas = array(); | |
200 | + $niveis1 = array(); | |
201 | + $niveis2 = array(); | |
202 | + $sql = "SELECT __COLUNAS__ FROM {$regiao['esquemadb']}.{$regiao['tabela']} AS regiao "; | |
203 | + $colunas[] = "regiao.{$regiao['identificador']} as codigo "; | |
204 | + $colunas[] = "regiao.{$regiao['colunanomeregiao']} AS nome"; | |
205 | + //$colunas[] = "regiao".$regiao['identificador']; | |
206 | + $tabelaAnt = "regiao"; | |
207 | + | |
208 | + for($i=0;$i<$n;$i++){ | |
209 | + $r = $m->listaTipoRegiao($caminho[$i]); | |
210 | + | |
211 | + array_push($filhosDaRegiao[$caminho[$i]],$regiao["codigo_tipo_regiao"]); | |
212 | + | |
213 | + $colunas[] = "j$i.{$r['colunanomeregiao']} AS j$i{$r['colunanomeregiao']}"; | |
214 | + $colunas[] = "j$i.{$r['identificador']} AS j$i{$r['identificador']}"; | |
215 | + $sql .= "INNER JOIN {$r['esquemadb']}.{$r['tabela']} | |
216 | + AS j$i ON j$i.{$r['identificador']}::text = {$tabelaAnt}.{$r['identificador']}::text | |
217 | + "; | |
218 | + $tabelaAnt = "j".$i; | |
219 | + $niveis1[] = " | |
203 | 220 | <Level name='".converte($r["nome_tipo_regiao"])."' |
204 | - column='{$r['identificador']}' | |
205 | - nameColumn='j$i{$r["colunanomeregiao"]}' uniqueMembers='false'/> | |
206 | - "; | |
207 | - $niveis2[] = " | |
221 | + column='j$i{$r['identificador']}' | |
222 | + nameColumn='j$i{$r["colunanomeregiao"]}' uniqueMembers='false'/> | |
223 | + "; | |
224 | + $niveis2[] = " | |
208 | 225 | <Level name='".converte($r["nome_tipo_regiao"])." - GeoCod #{$caminho[$i]}' |
209 | - column='{$r['identificador']}' | |
210 | - nameColumn='j$i{$r["identificador"]}' uniqueMembers='false'/> | |
211 | - "; | |
212 | - } | |
213 | - $niveis1[] = " | |
226 | + column='j$i{$r['identificador']}' | |
227 | + nameColumn='j$i{$r["identificador"]}' uniqueMembers='false'/> | |
228 | + "; | |
229 | + } | |
230 | + $niveis1[] = " | |
214 | 231 | <Level name='".converte($regiao["nome_tipo_regiao"])."' |
215 | - column='codigo' | |
216 | - nameColumn='nome' uniqueMembers='true' > | |
232 | + column='codigo' | |
233 | + nameColumn='nome' uniqueMembers='true' > | |
217 | 234 | </Level> |
218 | - "; | |
219 | - $niveis2[] = " | |
235 | + "; | |
236 | + $niveis2[] = " | |
220 | 237 | <Level name='".converte($regiao["nome_tipo_regiao"])." - GeoCod #{$regiao["codigo_tipo_regiao"]}' |
221 | - column='codigo' | |
222 | - nameColumn='codigo' uniqueMembers='true' /> | |
223 | - "; | |
224 | - //verifica outras colunas | |
225 | - $vis = $regiao['colunasvisiveis']; | |
226 | - if($vis != ""){ | |
227 | - $vis = str_replace(";",",",$vis); | |
228 | - $vis = str_replace(",,",",",$vis); | |
229 | - $vis = explode(",",$vis); | |
230 | - foreach($vis as $v){ | |
231 | - $colunas[] = "regiao.".$v." as ".$v; | |
238 | + column='codigo' | |
239 | + nameColumn='codigo' uniqueMembers='true' /> | |
240 | + "; | |
241 | + //verifica outras colunas | |
242 | + $vis = $regiao['colunasvisiveis']; | |
243 | + if($vis != ""){ | |
244 | + $vis = str_replace(";",",",$vis); | |
245 | + $vis = str_replace(",,",",",$vis); | |
246 | + $vis = explode(",",$vis); | |
247 | + foreach($vis as $v){ | |
248 | + $colunas[] = "regiao.".$v." as ".$v; | |
249 | + } | |
250 | + $colunas = array_unique($colunas); | |
232 | 251 | } |
233 | - $colunas = array_unique($colunas); | |
234 | - } | |
235 | - $colunas = implode($colunas,","); | |
236 | - $sql = str_replace("__COLUNAS__",$colunas,$sql); | |
237 | - //inclui a selecao se houver | |
238 | - if(!empty($selecaoRegiao[$regiao["codigo_tipo_regiao"]])) | |
239 | - $rs = $selecaoRegiao[$regiao["codigo_tipo_regiao"]]; | |
240 | - $pos = strpos($sql, "regiao.".$rs["item"]." "); | |
241 | - if($rs != "" || !$pos === false){ | |
242 | - $sql .= " WHERE regiao.".$rs["sql"]; | |
243 | - } | |
244 | - | |
245 | - $xml1 .= " | |
246 | - <view alias='view_codigo_tipo_regiao_".$regiao["codigo_tipo_regiao"]."' ><SQL dialect='generic' >$sql</SQL></view> | |
247 | - "; | |
248 | - $xml2 .= " | |
249 | - <view alias='view_codigo_tipo_regiao_".$regiao["codigo_tipo_regiao"]."_GeoCod' ><SQL dialect='generic' >$sql</SQL></view> | |
250 | - "; | |
251 | - $xml1 .= implode(" ",$niveis1); | |
252 | - $xml2 .= implode(" ",$niveis2); | |
253 | - $xml1 .= " | |
254 | - </Hierarchy> | |
252 | + $colunas = implode($colunas,","); | |
253 | + $sql = str_replace("__COLUNAS__",$colunas,$sql); | |
254 | + //inclui a selecao se houver | |
255 | + if(!empty($selecaoRegiao[$regiao["codigo_tipo_regiao"]])) | |
256 | + $rs = $selecaoRegiao[$regiao["codigo_tipo_regiao"]]; | |
257 | + $pos = strpos($sql, "regiao.".$rs["item"]." "); | |
258 | + if($rs != "" || !$pos === false){ | |
259 | + $sql .= " WHERE regiao.".$rs["sql"]; | |
260 | + } | |
261 | + | |
262 | + $xml1 .= " | |
263 | + <view alias='view_codigo_tipo_regiao_".$regiao["codigo_tipo_regiao"]."' ><SQL dialect='generic' >$sql</SQL></view> | |
264 | + "; | |
265 | + $xml2 .= " | |
266 | + <view alias='view_codigo_tipo_regiao_".$regiao["codigo_tipo_regiao"]."_GeoCod' ><SQL dialect='generic' >$sql</SQL></view> | |
267 | + "; | |
268 | + $xml1 .= implode(" ",$niveis1); | |
269 | + $xml2 .= implode(" ",$niveis2); | |
270 | + $xml1 .= " | |
271 | + </Hierarchy> | |
255 | 272 | </Dimension> |
256 | - "; | |
257 | - $xml2 .= " | |
258 | - </Hierarchy> | |
273 | + "; | |
274 | + $xml2 .= " | |
275 | + </Hierarchy> | |
259 | 276 | </Dimension> |
260 | - "; | |
261 | -} | |
262 | -//echo "<pre>";var_dump($filhosDaRegiao);exit; | |
263 | -//outras dimensoes definidas nos parametros e que nao sejam do tipo tempo | |
264 | -$parametros = $m->listaTodosParametros(); | |
265 | -$dimOutras = array(); | |
266 | -foreach($parametros as $p){ | |
267 | - //apenas as nao tempo | |
268 | - if($p["tipo"] < 1 || $p["tipo"] > 5){ | |
269 | - $k = $p["esquema"]."_".$p["tabela"]."_".$p["coluna"]; | |
270 | - if(empty($tbs[$k])){ | |
271 | - $dimOutras[$k] = $p; | |
272 | - } | |
273 | - else{ | |
274 | - array_push($dimOutras[$k],$p); | |
277 | + "; | |
278 | + } | |
279 | + //echo "<pre>";var_dump($filhosDaRegiao);exit; | |
280 | + //outras dimensoes definidas nos parametros e que nao sejam do tipo tempo | |
281 | + $parametros = $m->listaTodosParametros(); | |
282 | + $dimOutras = array(); | |
283 | + foreach($parametros as $p){ | |
284 | + //apenas as nao tempo | |
285 | + if($p["tipo"] < 1 || $p["tipo"] > 5){ | |
286 | + $k = $p["esquema"]."_".$p["tabela"]."_".$p["coluna"]; | |
287 | + if(empty($tbs[$k])){ | |
288 | + $dimOutras[$k] = $p; | |
289 | + } | |
290 | + else{ | |
291 | + array_push($dimOutras[$k],$p); | |
292 | + } | |
275 | 293 | } |
276 | 294 | } |
277 | -} | |
278 | -$xml3 = ""; | |
279 | -foreach($dimOutras as $d){ | |
280 | - $k = $p["esquemadb"]."_".$d["tabela"]."_".$d["coluna"]; | |
281 | - $xml3 .= " | |
295 | + $xml3 = ""; | |
296 | + foreach($dimOutras as $d){ | |
297 | + $k = $p["esquemadb"]."_".$d["tabela"]."_".$d["coluna"]; | |
298 | + $xml3 .= " | |
282 | 299 | <Dimension name='".$k."' caption='".converte($d["nome"])."'> |
283 | - <Hierarchy hasAll='true' primaryKey='codigo'> | |
284 | - "; | |
285 | - //cria uma view juntando as tabelas da hierarquia de regioes | |
286 | - $colunas = "dim.{$d['coluna']} as codigo, "; | |
287 | - $colunas .= "dim.{$d['coluna']} AS nome"; | |
288 | - $sql = "SELECT {$colunas} FROM ".$d['esquemadb'].".".$d['tabela']." as dim group by codigo"; | |
289 | - $xml3 .= "<view alias='".$k."' ><SQL dialect='generic' >$sql</SQL></view>"; | |
290 | - $xml3 .= "<Level name='".converte($d["nome"])."' | |
291 | - column='codigo' | |
292 | - nameColumn='nome' uniqueMembers='true' /> | |
293 | - "; | |
294 | - $xml3 .= "</Hierarchy> | |
300 | + <Hierarchy hasAll='true' primaryKey='codigo'> | |
301 | + "; | |
302 | + //cria uma view juntando as tabelas da hierarquia de regioes | |
303 | + $colunas = "dim.{$d['coluna']} as codigo, "; | |
304 | + $colunas .= "dim.{$d['coluna']} AS nome"; | |
305 | + $sql = "SELECT {$colunas} FROM ".$d['esquemadb'].".".$d['tabela']." as dim group by codigo"; | |
306 | + $xml3 .= "<view alias='".$k."' ><SQL dialect='generic' >$sql</SQL></view>"; | |
307 | + $xml3 .= "<Level name='".converte($d["nome"])."' | |
308 | + column='codigo' | |
309 | + nameColumn='nome' uniqueMembers='true' /> | |
310 | + "; | |
311 | + $xml3 .= "</Hierarchy> | |
295 | 312 | </Dimension>"; |
296 | -} | |
297 | -$xml .= $xml1.$xml2.$xml3; | |
298 | -//junta as medidas conforme o nome da tabela utilizada | |
299 | -$medidas = $m->listaMedidaVariavel(); | |
300 | -//var_dump($medidas);exit; | |
301 | -$tbs = array(); | |
302 | -//echo $codigo_tipo_regiao;exit; | |
303 | -foreach($medidas as $medida){ | |
304 | - if($codigo_tipo_regiao == "" || $medida["codigo_tipo_regiao"] == $codigo_tipo_regiao){ | |
305 | - $k = $medida["esquemadb"].$medida["tabela"]; | |
306 | - //echo "<pre>".$k; | |
307 | - if(empty($tbs[$k])){ | |
308 | - $tbs[$k] = array($medida); | |
309 | - } | |
310 | - else{ | |
311 | - array_push($tbs[$k],$medida); | |
313 | + } | |
314 | + $xml .= $xml1.$xml2.$xml3; | |
315 | + //junta as medidas conforme o nome da tabela utilizada | |
316 | + $medidas = $m->listaMedidaVariavel(); | |
317 | + //var_dump($medidas);exit; | |
318 | + $tbs = array(); | |
319 | + //echo $codigo_tipo_regiao;exit; | |
320 | + foreach($medidas as $medida){ | |
321 | + if($codigo_tipo_regiao == "" || $medida["codigo_tipo_regiao"] == $codigo_tipo_regiao){ | |
322 | + $k = $medida["esquemadb"].$medida["tabela"]; | |
323 | + //echo "<pre>".$k; | |
324 | + if(empty($tbs[$k])){ | |
325 | + $tbs[$k] = array($medida); | |
326 | + } | |
327 | + else{ | |
328 | + array_push($tbs[$k],$medida); | |
329 | + } | |
312 | 330 | } |
313 | 331 | } |
314 | -} | |
315 | -//monta os cubos para cada esquema.tabela diferente | |
316 | -$VirtualCubeDimension = array(); | |
317 | -$VirtualCubeMeasure = array(); | |
318 | -//echo "<pre>";var_dump($tbs)."<br>";exit; | |
319 | -foreach($tbs as $tb){ | |
320 | - //cabecalho de cada cubo obtido da primeira medida | |
321 | - $c = $tb[0]; | |
322 | - $VirtualCubeDimension[] = " | |
332 | + //monta os cubos para cada esquema.tabela diferente | |
333 | + $VirtualCubeDimension = array(); | |
334 | + $VirtualCubeMeasure = array(); | |
335 | + //echo "<pre>";var_dump($tbs)."<br>";exit; | |
336 | + foreach($tbs as $tb){ | |
337 | + //cabecalho de cada cubo obtido da primeira medida | |
338 | + $c = $tb[0]; | |
339 | + $VirtualCubeDimension[] = " | |
323 | 340 | <VirtualCubeDimension name='codigo_tipo_regiao_{$c["codigo_tipo_regiao"]}' /> |
324 | - "; | |
325 | - $VirtualCubeDimension[] = " | |
341 | + "; | |
342 | + $VirtualCubeDimension[] = " | |
326 | 343 | <VirtualCubeDimension name='codigo_tipo_regiao_{$c["codigo_tipo_regiao"]}_geocod' /> |
327 | - "; | |
328 | - array_push( | |
329 | - $VirtualCubeDimensionDaRegiao[$c["codigo_tipo_regiao"]], | |
330 | - "<VirtualCubeDimension name='codigo_tipo_regiao_{$c["codigo_tipo_regiao"]}' />" | |
331 | - ); | |
332 | - array_push( | |
333 | - $VirtualCubeDimensionDaRegiao[$c["codigo_tipo_regiao"]], | |
334 | - "<VirtualCubeDimension name='codigo_tipo_regiao_{$c["codigo_tipo_regiao"]}_geocod' />" | |
335 | - ); | |
336 | - //verifica as dimensoes do tipo tempo | |
337 | - $dimEnsoes = array(); | |
338 | - //echo "<pre>";var_dump($tb)."<br>"; | |
339 | - foreach($tb as $medida){ | |
340 | - //echo "<pre>";var_dump($medida)."<br>"; | |
341 | - $parametros = $m->listaParametro($medida["id_medida_variavel"],"","",false,false); | |
342 | - $parComposto = array(); //guarda a composicao da chave que liga com a dimensao | |
343 | - $colunaAdicionais = array(); | |
344 | - //parametro do tipo tempo | |
345 | - if(count($parametros) > 0){ | |
346 | - foreach($parametros as $parametro){ | |
347 | - if($parametro["tipo"] < 5 && $parametro["tipo"] > 0){ | |
348 | - $parComposto[] = $parametro["coluna"]; | |
344 | + "; | |
345 | + array_push( | |
346 | + $VirtualCubeDimensionDaRegiao[$c["codigo_tipo_regiao"]], | |
347 | + "<VirtualCubeDimension name='codigo_tipo_regiao_{$c["codigo_tipo_regiao"]}' />" | |
348 | + ); | |
349 | + array_push( | |
350 | + $VirtualCubeDimensionDaRegiao[$c["codigo_tipo_regiao"]], | |
351 | + "<VirtualCubeDimension name='codigo_tipo_regiao_{$c["codigo_tipo_regiao"]}_geocod' />" | |
352 | + ); | |
353 | + //verifica as dimensoes do tipo tempo | |
354 | + $dimEnsoes = array(); | |
355 | + //echo "<pre>";var_dump($tb)."<br>"; | |
356 | + foreach($tb as $medida){ | |
357 | + //echo "<pre>";var_dump($medida)."<br>"; | |
358 | + $parametros = $m->listaParametro($medida["id_medida_variavel"],"","",false,false); | |
359 | + $parComposto = array(); //guarda a composicao da chave que liga com a dimensao | |
360 | + $colunaAdicionais = array(); | |
361 | + //parametro do tipo tempo | |
362 | + if(count($parametros) > 0){ | |
363 | + foreach($parametros as $parametro){ | |
364 | + if($parametro["tipo"] < 5 && $parametro["tipo"] > 0){ | |
365 | + $parComposto[] = $parametro["coluna"]; | |
366 | + } | |
349 | 367 | } |
350 | - } | |
351 | - $VirtualCubeDimension[] = " | |
368 | + $VirtualCubeDimension[] = " | |
352 | 369 | <VirtualCubeDimension name='Tempo' /> |
353 | - "; | |
354 | - $u = " | |
370 | + "; | |
371 | + $u = " | |
355 | 372 | <DimensionUsage foreignKey='".implode("_",$parComposto)."_' name='Tempo' source='Tempo'/> |
356 | - "; | |
357 | - $dimEnsoes[] = $u; | |
358 | - array_push($VirtualCubeDimensionDaRegiao[$c["codigo_tipo_regiao"]],"<VirtualCubeDimension name='Tempo' />"); | |
359 | - } | |
360 | - //outros parametros | |
361 | - $outrosParametros = array(); | |
362 | - //TODO criar as dimensoes aqui | |
363 | - //echo "<pre>";var_dump($parametros); | |
364 | - foreach($parametros as $parametro){ | |
365 | - $k = $parametro["esquemadb"]."_".$parametro["tabela"]."_".$parametro["coluna"]; | |
366 | - if($parametro["tipo"] > 5 || $parametro["tipo"] == 0){ | |
367 | - $outrosParametros[] = $k; | |
368 | - $VirtualCubeDimension[] = "<VirtualCubeDimension name='{$k}' />"; | |
369 | - $u = "<DimensionUsage foreignKey='{$parametro["coluna"]}' name='nome' source='{$k}'/>"; | |
373 | + "; | |
370 | 374 | $dimEnsoes[] = $u; |
371 | - array_push($VirtualCubeDimensionDaRegiao[$c["codigo_tipo_regiao"]],"<VirtualCubeDimension name='{$k}' />"); | |
375 | + array_push($VirtualCubeDimensionDaRegiao[$c["codigo_tipo_regiao"]],"<VirtualCubeDimension name='Tempo' />"); | |
376 | + } | |
377 | + //outros parametros | |
378 | + $outrosParametros = array(); | |
379 | + //echo "<pre>";var_dump($parametros); | |
380 | + foreach($parametros as $parametro){ | |
381 | + $k = $parametro["esquemadb"]."_".$parametro["tabela"]."_".$parametro["coluna"]; | |
382 | + if($parametro["tipo"] > 5 || $parametro["tipo"] == 0){ | |
383 | + $outrosParametros[] = $k; | |
384 | + $VirtualCubeDimension[] = "<VirtualCubeDimension name='{$k}' />"; | |
385 | + $u = "<DimensionUsage foreignKey='{$parametro["coluna"]}' name='nome' source='{$k}'/>"; | |
386 | + $dimEnsoes[] = $u; | |
387 | + array_push($VirtualCubeDimensionDaRegiao[$c["codigo_tipo_regiao"]],"<VirtualCubeDimension name='{$k}' />"); | |
388 | + } | |
372 | 389 | } |
373 | 390 | } |
374 | - } | |
375 | - //$dimEnsoes[] = '<DimensionUsage foreignKey="coduf" name="codigo_tipo_regiao_2" source="codigo_tipo_regiao_2"/>'; | |
376 | - $xml .= " | |
377 | - <Cube cache='false' name='Tabela: {$c["esquemadb"]}{$c["tabela"]}'>"; | |
378 | - $incluirChaves = array("*"); | |
379 | - | |
380 | - if(count($parComposto) > 0){ | |
381 | - //$sql = "select *,".implode("||'-'||",$parComposto)."::text as ".implode("_",$parComposto)."_ from {$c["esquemadb"]}.{$c["tabela"]}"; | |
382 | - $incluirChaves[] = implode("||'-'||",$parComposto)."::text as ".implode("_",$parComposto)."_"; | |
383 | - } | |
384 | - if(count($outrosParametros) > 0){ | |
385 | - foreach($outrosParametros as $o){ | |
386 | - //$incluirChaves[] = $o."::text as ".$o."_"; | |
387 | - } | |
388 | - } | |
389 | - | |
390 | - $sql = "select ".implode(",",$incluirChaves)." from {$c["esquemadb"]}.{$c["tabela"]}"; | |
391 | - | |
392 | - $xml .= " | |
393 | - <view alias='view_{$c["esquemadb"]}{$c["tabela"]}' ><SQL dialect='generic' >$sql</SQL></view> | |
394 | - <DimensionUsage foreignKey='".$c["colunaidgeo"]."' name='codigo_tipo_regiao_".$c["codigo_tipo_regiao"]."' source='codigo_tipo_regiao_".$c["codigo_tipo_regiao"]."'/> | |
395 | - <DimensionUsage foreignKey='".$c["colunaidgeo"]."' name='codigo_tipo_regiao_".$c["codigo_tipo_regiao"]."_geocod' source='codigo_tipo_regiao_".$c["codigo_tipo_regiao"]."_geocod'/> | |
396 | - "; | |
397 | - | |
398 | - $xml .= implode(" ",array_unique($dimEnsoes)); | |
399 | - | |
400 | - //inclui cada elemento em medida | |
401 | - foreach($tb as $medida){ | |
402 | - $agregador = "sum"; | |
403 | - if($medida["permitesoma"] == 0 && $medida["permitemedia"] == 1){ | |
404 | - $agregador = "avg"; | |
391 | + //$dimEnsoes[] = '<DimensionUsage foreignKey="coduf" name="codigo_tipo_regiao_2" source="codigo_tipo_regiao_2"/>'; | |
392 | + $xml .= " | |
393 | + <Cube cache='false' name='Tabela: {$c["esquemadb"]}{$c["tabela"]}'>"; | |
394 | + $incluirChaves = array("*"); | |
395 | + | |
396 | + if(count($parComposto) > 0){ | |
397 | + //$sql = "select *,".implode("||'-'||",$parComposto)."::text as ".implode("_",$parComposto)."_ from {$c["esquemadb"]}.{$c["tabela"]}"; | |
398 | + $incluirChaves[] = implode("||'-'||",$parComposto)."::text as ".implode("_",$parComposto)."_"; | |
405 | 399 | } |
406 | - if($medida["permitesoma"] == 0 && $medida["permitemedia"] == 0){ | |
407 | - $agregador = "count"; | |
400 | + if(count($outrosParametros) > 0){ | |
401 | + foreach($outrosParametros as $o){ | |
402 | + //$incluirChaves[] = $o."::text as ".$o."_"; | |
403 | + } | |
408 | 404 | } |
405 | + | |
406 | + $sql = "select ".implode(",",$incluirChaves)." from {$c["esquemadb"]}.{$c["tabela"]}"; | |
407 | + | |
409 | 408 | $xml .= " |
410 | - <Measure name='id_medida_variavel_".$medida["id_medida_variavel"]."' caption='".converte($medida["nomemedida"])."' column='".$medida["colunavalor"]."' aggregator='".$agregador."' /> | |
409 | + <view alias='view_{$c["esquemadb"]}{$c["tabela"]}' ><SQL dialect='generic' >$sql</SQL></view> | |
410 | + <DimensionUsage foreignKey='".$c["colunaidgeo"]."' name='codigo_tipo_regiao_".$c["codigo_tipo_regiao"]."' source='codigo_tipo_regiao_".$c["codigo_tipo_regiao"]."'/> | |
411 | + <DimensionUsage foreignKey='".$c["colunaidgeo"]."' name='codigo_tipo_regiao_".$c["codigo_tipo_regiao"]."_geocod' source='codigo_tipo_regiao_".$c["codigo_tipo_regiao"]."_geocod'/> | |
411 | 412 | "; |
412 | - $u = " | |
413 | + | |
414 | + $xml .= implode(" ",array_unique($dimEnsoes)); | |
415 | + | |
416 | + //inclui cada elemento em medida | |
417 | + foreach($tb as $medida){ | |
418 | + $agregador = "sum"; | |
419 | + if($medida["permitesoma"] == 0 && $medida["permitemedia"] == 1){ | |
420 | + $agregador = "avg"; | |
421 | + } | |
422 | + if($medida["permitesoma"] == 0 && $medida["permitemedia"] == 0){ | |
423 | + $agregador = "count"; | |
424 | + } | |
425 | + $xml .= " | |
426 | + <Measure name='id_medida_variavel_".$medida["id_medida_variavel"]."' caption='".converte($medida["nomemedida"])."' column='".$medida["colunavalor"]."' aggregator='".$agregador."' /> | |
427 | + "; | |
428 | + $u = " | |
413 | 429 | <VirtualCubeMeasure cubeName='Tabela: {$c["esquemadb"]}{$c["tabela"]}' name='[Measures].[id_medida_variavel_".$medida["id_medida_variavel"]."]'/> |
414 | - "; | |
415 | - $VirtualCubeMeasure[] = $u; | |
416 | - array_push($VirtualCubeMeasureDaRegiao[$c["codigo_tipo_regiao"]],$u); | |
417 | - } | |
418 | - $xml .= " | |
430 | + "; | |
431 | + $VirtualCubeMeasure[] = $u; | |
432 | + array_push($VirtualCubeMeasureDaRegiao[$c["codigo_tipo_regiao"]],$u); | |
433 | + } | |
434 | + $xml .= " | |
419 | 435 | </Cube> |
420 | 436 | "; |
421 | -} | |
422 | -$xml .= '<VirtualCube name="Todas as medidas" >'; | |
423 | -$VirtualCubeDimension = array_unique($VirtualCubeDimension); | |
424 | -$VirtualCubeMeasure = array_unique($VirtualCubeMeasure); | |
425 | -$xml .= implode(" ",$VirtualCubeDimension); | |
426 | -$xml .= implode(" ",$VirtualCubeMeasure); | |
427 | -$xml .= '</VirtualCube>'; | |
428 | -// | |
429 | -//cubos por regiao | |
430 | -// | |
431 | -//$filhosDaRegiao = array(); | |
432 | -//$VirtualCubeDimensionDaRegiao = array(); | |
433 | -//$VirtualCubeMeasureDaRegiao = array(); | |
434 | -foreach($regioes as $regiao){ | |
435 | - $xml .= '<VirtualCube name="'.converte($regiao["nome_tipo_regiao"]).'" >'; | |
436 | - $xml .= implode(" ",array_unique($VirtualCubeDimensionDaRegiao[$regiao["codigo_tipo_regiao"]])); | |
437 | - $xml .= implode(" ",array_unique($VirtualCubeMeasureDaRegiao[$regiao["codigo_tipo_regiao"]])); | |
437 | + } | |
438 | + $xml .= '<VirtualCube name="Todas as medidas" >'; | |
439 | + $VirtualCubeDimension = array_unique($VirtualCubeDimension); | |
440 | + $VirtualCubeMeasure = array_unique($VirtualCubeMeasure); | |
441 | + $xml .= implode(" ",$VirtualCubeDimension); | |
442 | + $xml .= implode(" ",$VirtualCubeMeasure); | |
438 | 443 | $xml .= '</VirtualCube>'; |
444 | + // | |
445 | + //cubos por regiao | |
446 | + // | |
447 | + //$filhosDaRegiao = array(); | |
448 | + //$VirtualCubeDimensionDaRegiao = array(); | |
449 | + //$VirtualCubeMeasureDaRegiao = array(); | |
450 | + | |
451 | + foreach($regioes as $regiao){ | |
452 | + //inclui os parametros para a regiao de acordo com os filhos que possui | |
453 | + $d = $VirtualCubeDimensionDaRegiao[$regiao["codigo_tipo_regiao"]]; | |
454 | + $m = $VirtualCubeMeasureDaRegiao[$regiao["codigo_tipo_regiao"]]; | |
455 | + foreach($filhosDaRegiao[$regiao["codigo_tipo_regiao"]] as $f){ | |
456 | + //$d = array_merge($d,$VirtualCubeDimensionDaRegiao[$f]); | |
457 | + $m = array_merge($m,$VirtualCubeMeasureDaRegiao[$f]); | |
458 | + } | |
459 | + if(count(array_unique($m)) > 0){ | |
460 | + $xml .= '<VirtualCube name="Regi&atilde;o: '.converte($regiao["nome_tipo_regiao"]).'" >'; | |
461 | + $xml .= implode(" ",array_unique($d)); | |
462 | + $xml .= implode(" ",array_unique($m)); | |
463 | + $xml .= '</VirtualCube>'; | |
464 | + } | |
465 | + } | |
466 | + $xml .= "</Schema>"; | |
467 | + error_reporting(0); | |
468 | + ob_end_clean(); | |
469 | + | |
470 | + if($_GET["output"] == "xml"){ | |
471 | + echo header("Content-type: application/xml"); | |
472 | + echo $xml;exit; | |
473 | + } | |
474 | + gravaDados(array($xml),$arquivoXmlEsquema); | |
439 | 475 | } |
440 | -$xml .= "</Schema>"; | |
441 | -error_reporting(0); | |
442 | -ob_end_clean(); | |
443 | - | |
444 | -if($_GET["output"] == "xml"){ | |
445 | - echo header("Content-type: application/xml"); | |
446 | - echo $xml;exit; | |
476 | +if($_GET["output"] == "xml"){ | |
477 | + echo header("Content-type: application/xml"); | |
478 | + header("Location:".$_GET["xmlesquema"]); | |
479 | +} | |
480 | +else{ | |
481 | + header("Location:".$saikuUrl."/?nomeConexao=".$nomeConexao."&locaplic=".$_GET["locaplic"]."&g_sid=".$_GET["g_sid"]."&mapext=".$_GET["mapext"]."&origem=".$_GET["origem"]); | |
447 | 482 | } |
448 | -gravaDados(array($xml),$arquivoXmlEsquema); | |
449 | - | |
450 | -header("Location:".$saikuUrl."/?nomeConexao=".$nomeConexao."&locaplic=".$_GET["locaplic"]."&g_sid=".$_GET["g_sid"]."&mapext=".$_GET["mapext"]."&origem=".$_GET["origem"]); | |
451 | - | |
452 | 483 | function converte($texto){ |
453 | 484 | $texto = str_replace("&","&",htmlentities($texto)); |
454 | 485 | //$texto = htmlentities($texto); | ... | ... |
init/dicionario.js
1 | -g_traducao_init = { | |
2 | -1: [ | |
3 | -{ | |
4 | -pt:"Remover essa tela de apresentação (depois você poderá ir direto para http:// localhost/i3geo/init)", | |
5 | -en:"", | |
6 | -es:"" | |
7 | -}], | |
8 | -2: [ | |
9 | -{ | |
10 | -pt:"Teste da instalação", | |
11 | -en:"", | |
12 | -es:"" | |
13 | -}], | |
14 | -3: [ | |
15 | -{ | |
16 | -pt:"Sistema de administração", | |
17 | -en:"", | |
18 | -es:"" | |
19 | -}], | |
20 | -4: [ | |
21 | -{ | |
22 | -pt:"Mapa com interface Openlayers", | |
23 | -en:"", | |
24 | -es:"" | |
25 | -}], | |
26 | -5: [ | |
27 | -{ | |
28 | -pt:"Mapa com interface Openlayers (modo debug)", | |
29 | -en:"", | |
30 | -es:"" | |
31 | -}], | |
32 | -6: [ | |
33 | -{ | |
34 | -pt:"Mapa com interface Google Maps", | |
35 | -en:"", | |
36 | -es:"" | |
37 | -}], | |
38 | -7: [ | |
39 | -{ | |
40 | -pt:"Mapa com interface Google Earth", | |
41 | -en:"", | |
42 | -es:"" | |
43 | -}], | |
44 | -8: [ | |
45 | -{ | |
46 | -pt:"Cartogramas (METAESTAT)", | |
47 | -en:"", | |
48 | -es:"" | |
49 | -}], | |
50 | -9: [ | |
51 | -{ | |
52 | -pt:"Editor de regiões (METAESTAT)", | |
53 | -en:"", | |
54 | -es:"" | |
55 | -}], | |
56 | -10: [ | |
57 | -{ | |
58 | -pt:"Download de dados geo", | |
59 | -en:"", | |
60 | -es:"" | |
61 | -}], | |
62 | -11: [ | |
63 | -{ | |
64 | -pt:"Serviços OGC (WMS e WFS)", | |
65 | -en:"", | |
66 | -es:"" | |
67 | -}], | |
68 | -12: [ | |
69 | -{ | |
70 | -pt:"Catálogo de temas no formato KML", | |
71 | -en:"", | |
72 | -es:"" | |
73 | -}], | |
74 | -13: [ | |
75 | -{ | |
76 | -pt:"Gerador de links permanentes", | |
77 | -en:"", | |
78 | -es:"" | |
79 | -}], | |
80 | -14: [ | |
81 | -{ | |
82 | -pt:"Exemplos de customização da interface de mapas", | |
83 | -en:"", | |
84 | -es:"" | |
85 | -}], | |
86 | -15: [ | |
87 | -{ | |
88 | -pt:"Manual de uso", | |
89 | -en:"", | |
90 | -es:"" | |
91 | -}], | |
92 | -16: [ | |
93 | -{ | |
94 | -pt:"Registro de bugs", | |
95 | -en:"", | |
96 | -es:"" | |
97 | -}], | |
98 | -17: [ | |
99 | -{ | |
100 | -pt:"Guia de migração", | |
101 | -en:"", | |
102 | -es:"" | |
103 | -}], | |
104 | -18: [ | |
105 | -{ | |
106 | -pt:"Integre mapas em outras aplicações", | |
107 | -en:"", | |
108 | -es:"" | |
109 | -}], | |
110 | -19: [ | |
111 | -{ | |
112 | -pt:"ATENÇÃO!!! Essa instalação está vulnerável: edite o arquivo i3geo/ms_configura.php e altere o login e senha definidos na variável $i3geomaster.<br>Ao acessar o i3Geo em um servidor que não seja o localhost os mapas ficarão bloqueados até que essa edição seja feita.", | |
113 | -en:"", | |
114 | -es:"" | |
115 | -}], | |
116 | -20: [ | |
117 | -{ | |
118 | -pt:"Incluia um link apenas na sua página", | |
119 | -en:"", | |
120 | -es:"" | |
121 | -}], | |
122 | -21: [ | |
123 | -{ | |
124 | -pt:"Manual de administração", | |
125 | -en:"", | |
126 | -es:"" | |
127 | -}], | |
128 | -22: [ | |
129 | -{ | |
130 | -pt:"Google Maps com aplicação de estilo", | |
131 | -en:"", | |
132 | -es:"" | |
133 | -}], | |
134 | -23: [ | |
135 | -{ | |
136 | -pt:"Mapa com Open Street Map (OSM)", | |
137 | -en:"", | |
138 | -es:"" | |
139 | -}], | |
140 | -24: [ | |
141 | -{ | |
142 | -pt:"Documentação da API", | |
143 | -en:"", | |
144 | -es:"" | |
145 | -}], | |
146 | -25: [ | |
147 | -{ | |
148 | -pt:"SAIKU - análise de dados estatísticos", | |
149 | -en:"", | |
150 | -es:"" | |
151 | -}], | |
152 | -26: [ | |
153 | -{ | |
154 | -pt:"Teste do conversor de projeto GVP para Mapfile", | |
155 | -en:"", | |
156 | -es:"" | |
157 | -}], | |
158 | -27: [ | |
159 | -{ | |
160 | -pt:"Lista de Atlas cadastrados", | |
161 | -en:"", | |
162 | -es:"" | |
163 | -}] | |
164 | -}; | |
1 | +g_traducao_init = | |
2 | + { | |
3 | + 1 : [ | |
4 | + { | |
5 | + pt : "Remover essa tela de apresentação (depois você poderá ir direto para http:// localhost/i3geo/init)", | |
6 | + en : "", | |
7 | + es : "" | |
8 | + } | |
9 | + ], | |
10 | + 2 : [ | |
11 | + { | |
12 | + pt : "Teste da instalação", | |
13 | + en : "", | |
14 | + es : "" | |
15 | + } | |
16 | + ], | |
17 | + 3 : [ | |
18 | + { | |
19 | + pt : "Sistema de administração", | |
20 | + en : "", | |
21 | + es : "" | |
22 | + } | |
23 | + ], | |
24 | + 4 : [ | |
25 | + { | |
26 | + pt : "Mapa com interface Openlayers", | |
27 | + en : "", | |
28 | + es : "" | |
29 | + } | |
30 | + ], | |
31 | + 5 : [ | |
32 | + { | |
33 | + pt : "Mapa com interface Openlayers (modo debug)", | |
34 | + en : "", | |
35 | + es : "" | |
36 | + } | |
37 | + ], | |
38 | + 6 : [ | |
39 | + { | |
40 | + pt : "Mapa com interface Google Maps", | |
41 | + en : "", | |
42 | + es : "" | |
43 | + } | |
44 | + ], | |
45 | + 7 : [ | |
46 | + { | |
47 | + pt : "Mapa com interface Google Earth", | |
48 | + en : "", | |
49 | + es : "" | |
50 | + } | |
51 | + ], | |
52 | + 8 : [ | |
53 | + { | |
54 | + pt : "Cartogramas (METAESTAT)", | |
55 | + en : "", | |
56 | + es : "" | |
57 | + } | |
58 | + ], | |
59 | + 9 : [ | |
60 | + { | |
61 | + pt : "Editor de regiões (METAESTAT)", | |
62 | + en : "", | |
63 | + es : "" | |
64 | + } | |
65 | + ], | |
66 | + 10 : [ | |
67 | + { | |
68 | + pt : "Download de dados geo", | |
69 | + en : "", | |
70 | + es : "" | |
71 | + } | |
72 | + ], | |
73 | + 11 : [ | |
74 | + { | |
75 | + pt : "Serviços OGC (WMS e WFS)", | |
76 | + en : "", | |
77 | + es : "" | |
78 | + } | |
79 | + ], | |
80 | + 12 : [ | |
81 | + { | |
82 | + pt : "Catálogo de temas no formato KML", | |
83 | + en : "", | |
84 | + es : "" | |
85 | + } | |
86 | + ], | |
87 | + 13 : [ | |
88 | + { | |
89 | + pt : "Gerador de links permanentes", | |
90 | + en : "", | |
91 | + es : "" | |
92 | + } | |
93 | + ], | |
94 | + 14 : [ | |
95 | + { | |
96 | + pt : "Exemplos de customização da interface de mapas", | |
97 | + en : "", | |
98 | + es : "" | |
99 | + } | |
100 | + ], | |
101 | + 15 : [ | |
102 | + { | |
103 | + pt : "Manual de uso", | |
104 | + en : "", | |
105 | + es : "" | |
106 | + } | |
107 | + ], | |
108 | + 16 : [ | |
109 | + { | |
110 | + pt : "Registro de bugs", | |
111 | + en : "", | |
112 | + es : "" | |
113 | + } | |
114 | + ], | |
115 | + 17 : [ | |
116 | + { | |
117 | + pt : "Guia de migração", | |
118 | + en : "", | |
119 | + es : "" | |
120 | + } | |
121 | + ], | |
122 | + 18 : [ | |
123 | + { | |
124 | + pt : "Integre mapas em outras aplicações", | |
125 | + en : "", | |
126 | + es : "" | |
127 | + } | |
128 | + ], | |
129 | + 19 : [ | |
130 | + { | |
131 | + pt : "ATENÇÃO!!! Essa instalação está vulnerável: edite o arquivo i3geo/ms_configura.php e altere o login e senha definidos na variável $i3geomaster.<br>Ao acessar o i3Geo em um servidor que não seja o localhost os mapas ficarão bloqueados até que essa edição seja feita.", | |
132 | + en : "", | |
133 | + es : "" | |
134 | + } | |
135 | + ], | |
136 | + 20 : [ | |
137 | + { | |
138 | + pt : "Incluia um link apenas na sua página", | |
139 | + en : "", | |
140 | + es : "" | |
141 | + } | |
142 | + ], | |
143 | + 21 : [ | |
144 | + { | |
145 | + pt : "Manual de administração", | |
146 | + en : "", | |
147 | + es : "" | |
148 | + } | |
149 | + ], | |
150 | + 22 : [ | |
151 | + { | |
152 | + pt : "Google Maps com aplicação de estilo", | |
153 | + en : "", | |
154 | + es : "" | |
155 | + } | |
156 | + ], | |
157 | + 23 : [ | |
158 | + { | |
159 | + pt : "Mapa com Open Street Map (OSM)", | |
160 | + en : "", | |
161 | + es : "" | |
162 | + } | |
163 | + ], | |
164 | + 24 : [ | |
165 | + { | |
166 | + pt : "Documentação da API", | |
167 | + en : "", | |
168 | + es : "" | |
169 | + } | |
170 | + ], | |
171 | + 25 : [ | |
172 | + { | |
173 | + pt : "SAIKU - análise de dados estatísticos", | |
174 | + en : "", | |
175 | + es : "" | |
176 | + } | |
177 | + ], | |
178 | + 26 : [ | |
179 | + { | |
180 | + pt : "Teste do conversor de projeto GVP para Mapfile", | |
181 | + en : "", | |
182 | + es : "" | |
183 | + } | |
184 | + ], | |
185 | + 27 : [ | |
186 | + { | |
187 | + pt : "Lista de Atlas cadastrados", | |
188 | + en : "", | |
189 | + es : "" | |
190 | + } | |
191 | + ], | |
192 | + 28 : [ | |
193 | + { | |
194 | + pt : "Curso de i3Geo em Gvsig-training", | |
195 | + en : "", | |
196 | + es : "" | |
197 | + } | |
198 | + ] | |
199 | + }; | ... | ... |
init/index.php
... | ... | @@ -212,6 +212,10 @@ botoesIni.push({ |
212 | 212 | "href":"../documentacao", |
213 | 213 | "titulo":$trad(24,g_traducao_init) |
214 | 214 | },{ |
215 | + "img":"accessories-dictionary.png", | |
216 | + "href":"http://moodle.gvsig-training.com/course/view.php?id=11", | |
217 | + "titulo":$trad(28,g_traducao_init) | |
218 | + },{ | |
215 | 219 | "img":"tools-report-bug.png", |
216 | 220 | "href":"http://svn.softwarepublico.gov.br/trac/i3geo", |
217 | 221 | "titulo":$trad(16,g_traducao_init) | ... | ... |