Commit 0ba1cdec9edfbe4f4efa50b8f054186041f4ca6b
1 parent
2df692e0
Exists in
master
Inclusão do formato JSON na listagem dos dados dos menus
Showing
7 changed files
with
192 additions
and
53 deletions
Show diff stats
admin/dicionario/menup.js
| @@ -136,6 +136,11 @@ i3GEOadmin.menup.dicionario = { | @@ -136,6 +136,11 @@ i3GEOadmin.menup.dicionario = { | ||
| 136 | en : "", | 136 | en : "", |
| 137 | es : "" | 137 | es : "" |
| 138 | } ], | 138 | } ], |
| 139 | + 'rssArvoreJson' : [ { | ||
| 140 | + pt : "Ver JSON com os grupos, subgrupos e temas", | ||
| 141 | + en : "", | ||
| 142 | + es : "" | ||
| 143 | + } ], | ||
| 139 | 'rssComentarios' : [ { | 144 | 'rssComentarios' : [ { |
| 140 | pt : "Ver RSS com os comentários sobre os temas", | 145 | pt : "Ver RSS com os comentários sobre os temas", |
| 141 | en : "", | 146 | en : "", |
admin/menu.html
| @@ -177,11 +177,16 @@ | @@ -177,11 +177,16 @@ | ||
| 177 | enableHighlight: false, | 177 | enableHighlight: false, |
| 178 | 178 | ||
| 179 | },{ | 179 | },{ |
| 180 | - html: "<a href='rssgrupos.php' target='principal'>"+$trad("rssArvore",i3GEOadmin.menup.dicionario)+"</a>", | 180 | + html: "<a href='rssgrupos.php?output=xml' target='principal'>"+$trad("rssArvore",i3GEOadmin.menup.dicionario)+"</a>", |
| 181 | type: "html", | 181 | type: "html", |
| 182 | enableHighlight: false, | 182 | enableHighlight: false, |
| 183 | 183 | ||
| 184 | },{ | 184 | },{ |
| 185 | + html: "<a href='rssgrupos.php?output=json' target='principal'>"+$trad("rssArvoreJson",i3GEOadmin.menup.dicionario)+"</a>", | ||
| 186 | + type: "html", | ||
| 187 | + enableHighlight: false, | ||
| 188 | + | ||
| 189 | + },{ | ||
| 185 | html: "<a href='rsscomentariostemas.php' target='principal'>"+$trad("rssComentarios",i3GEOadmin.menup.dicionario)+"</a>", | 190 | html: "<a href='rsscomentariostemas.php' target='principal'>"+$trad("rssComentarios",i3GEOadmin.menup.dicionario)+"</a>", |
| 186 | type: "html", | 191 | type: "html", |
| 187 | enableHighlight: false, | 192 | enableHighlight: false, |
admin/php/parsemapfile.php
| @@ -85,16 +85,20 @@ if($indevidos == true){ | @@ -85,16 +85,20 @@ if($indevidos == true){ | ||
| 85 | } | 85 | } |
| 86 | // | 86 | // |
| 87 | $mapa = ms_newMapObj($mapfile); | 87 | $mapa = ms_newMapObj($mapfile); |
| 88 | -if(!isset($tipoparse) || $tipoparse=="") | ||
| 89 | -{mapfile();exit;} | 88 | +if(!isset($tipoparse) || $tipoparse==""){ |
| 89 | + mapfile($_GET["output"]); | ||
| 90 | + exit; | ||
| 91 | +} | ||
| 90 | 92 | ||
| 91 | if($tipoparse == "legenda") | 93 | if($tipoparse == "legenda") |
| 92 | { | 94 | { |
| 93 | $tipoLegenda = tipoLegenda($layername); | 95 | $tipoLegenda = tipoLegenda($layername); |
| 94 | - if($tipoLegenda == "simples") | ||
| 95 | - {legendaSimples($layername);} | ||
| 96 | - if($tipoLegenda == "valorunico") | ||
| 97 | - legendaValorUnico($layername); | 96 | + if($tipoLegenda == "simples"){ |
| 97 | + legendaSimples($layername); | ||
| 98 | + } | ||
| 99 | + if($tipoLegenda == "valorunico"){ | ||
| 100 | + legendaValorUnico($layername); | ||
| 101 | + } | ||
| 98 | } | 102 | } |
| 99 | // | 103 | // |
| 100 | //verifica o tipo de legenda | 104 | //verifica o tipo de legenda |
| @@ -279,7 +283,7 @@ function legendaSimples($layername) | @@ -279,7 +283,7 @@ function legendaSimples($layername) | ||
| 279 | // | 283 | // |
| 280 | //gera xml com parâmetros do mapfile | 284 | //gera xml com parâmetros do mapfile |
| 281 | // | 285 | // |
| 282 | -function mapfile() | 286 | +function mapfile($output="xml") |
| 283 | { | 287 | { |
| 284 | global $codigoLayer,$mapfile,$mapa,$objcontype,$objlayertypes,$forcawms,$postgis_mapa,$bloqueiaStringConexao; | 288 | global $codigoLayer,$mapfile,$mapa,$objcontype,$objlayertypes,$forcawms,$postgis_mapa,$bloqueiaStringConexao; |
| 285 | $layers = $mapa->getalllayernames(); | 289 | $layers = $mapa->getalllayernames(); |
| @@ -288,11 +292,15 @@ function mapfile() | @@ -288,11 +292,15 @@ function mapfile() | ||
| 288 | $xml .= "\n<parsemapfile>\n"; | 292 | $xml .= "\n<parsemapfile>\n"; |
| 289 | $xml .= "<tiposconexao>".implode(",",$objcontype)."</tiposconexao>\n"; | 293 | $xml .= "<tiposconexao>".implode(",",$objcontype)."</tiposconexao>\n"; |
| 290 | $xml .= "<tiposlayer>".implode(",",$objlayertypes)."</tiposlayer>\n"; | 294 | $xml .= "<tiposlayer>".implode(",",$objlayertypes)."</tiposlayer>\n"; |
| 295 | + $json = array( | ||
| 296 | + "tiposconexao"=>implode(",",$objcontype), | ||
| 297 | + "tiposlayer"=>implode(",",$objlayertypes), | ||
| 298 | + ); | ||
| 291 | //verifica se tem grupos | 299 | //verifica se tem grupos |
| 292 | $nlayers = array(); | 300 | $nlayers = array(); |
| 293 | - foreach ($layers as $layer) | 301 | + foreach ($layers as $layerName) |
| 294 | { | 302 | { |
| 295 | - $layer = $mapa->getlayerbyname($layer); | 303 | + $layer = $mapa->getlayerbyname($layerName); |
| 296 | if($objcontype[$layer->connectiontype] != MS_WMS ) | 304 | if($objcontype[$layer->connectiontype] != MS_WMS ) |
| 297 | { | 305 | { |
| 298 | if($layer->group == "") | 306 | if($layer->group == "") |
| @@ -305,16 +313,19 @@ function mapfile() | @@ -305,16 +313,19 @@ function mapfile() | ||
| 305 | $layers = $nlayers; | 313 | $layers = $nlayers; |
| 306 | } | 314 | } |
| 307 | } | 315 | } |
| 308 | - foreach ($layers as $layer) | 316 | + foreach ($layers as $layerName) |
| 309 | { | 317 | { |
| 310 | $xml .= "\n<layer>\n"; | 318 | $xml .= "\n<layer>\n"; |
| 311 | - $layer = $mapa->getlayerbyname($layer); | 319 | + $layer = $mapa->getlayerbyname($layerName); |
| 312 | $xml .= "<titulo>".$layer->getmetadata('tema')."</titulo>\n"; | 320 | $xml .= "<titulo>".$layer->getmetadata('tema')."</titulo>\n"; |
| 321 | + $json["layer"] = array(); | ||
| 313 | $d = $layer->data; | 322 | $d = $layer->data; |
| 314 | - if (@$layer->open() == MS_SUCCESS) | ||
| 315 | - {$colunas = implode(",",$layer->getItems());} | ||
| 316 | - else | ||
| 317 | - {$colunas = "*";} | 323 | + if (@$layer->open() == MS_SUCCESS){ |
| 324 | + $colunas = implode(",",$layer->getItems()); | ||
| 325 | + } | ||
| 326 | + else{ | ||
| 327 | + $colunas = "*"; | ||
| 328 | + } | ||
| 318 | $ct = $objcontype[$layer->connectiontype]; | 329 | $ct = $objcontype[$layer->connectiontype]; |
| 319 | $tagLegenda = "parsemapfile.php?id=".$codigoLayer."&layername=".$layer->name."&tipoparse=legenda"; | 330 | $tagLegenda = "parsemapfile.php?id=".$codigoLayer."&layername=".$layer->name."&tipoparse=legenda"; |
| 320 | $nomeLayer = $layer->name; | 331 | $nomeLayer = $layer->name; |
| @@ -323,9 +334,13 @@ function mapfile() | @@ -323,9 +334,13 @@ function mapfile() | ||
| 323 | $ct = "MS_WMS"; | 334 | $ct = "MS_WMS"; |
| 324 | $d = "http://".$_SERVER['HTTP_HOST'].str_replace("/admin/php/parsemapfile.php","",$_SERVER['PHP_SELF'])."/ogc.php?tema=".$codigoLayer; | 335 | $d = "http://".$_SERVER['HTTP_HOST'].str_replace("/admin/php/parsemapfile.php","",$_SERVER['PHP_SELF'])."/ogc.php?tema=".$codigoLayer; |
| 325 | $xml .= "<version>1.1.1</version>"; | 336 | $xml .= "<version>1.1.1</version>"; |
| 326 | - $xml .= "<srs>EPSG:4618</srs>"; | 337 | + $json["layer"]["version"] = "1.1.1"; |
| 338 | + $xml .= "<srs>EPSG:4326</srs>"; | ||
| 339 | + $json["layer"]["srs"] = "EPSG:4326"; | ||
| 327 | $xml .= "<format>image/png</format>"; | 340 | $xml .= "<format>image/png</format>"; |
| 341 | + $json["layer"]["format"] = "image/png"; | ||
| 328 | $xml .= "<style>default</style>"; | 342 | $xml .= "<style>default</style>"; |
| 343 | + $json["layer"]["style"] = "default"; | ||
| 329 | $tagLegenda = ""; | 344 | $tagLegenda = ""; |
| 330 | } | 345 | } |
| 331 | else if($ct == "MS_WMS") | 346 | else if($ct == "MS_WMS") |
| @@ -349,18 +364,27 @@ function mapfile() | @@ -349,18 +364,27 @@ function mapfile() | ||
| 349 | if($s == "") | 364 | if($s == "") |
| 350 | {$s = "default";} | 365 | {$s = "default";} |
| 351 | $xml .= "<version>$v</version>"; | 366 | $xml .= "<version>$v</version>"; |
| 367 | + $json["layer"]["version"] = $v; | ||
| 352 | $xml .= "<srs>$e</srs>"; | 368 | $xml .= "<srs>$e</srs>"; |
| 369 | + $json["layer"]["srs"] = $e; | ||
| 353 | $xml .= "<format>image/png</format>"; | 370 | $xml .= "<format>image/png</format>"; |
| 371 | + $json["layer"]["format"] = "image/png"; | ||
| 354 | $xml .= "<style>$s</style>"; | 372 | $xml .= "<style>$s</style>"; |
| 373 | + $json["layer"]["style"] = $s; | ||
| 355 | $tagLegenda = ""; | 374 | $tagLegenda = ""; |
| 356 | } | 375 | } |
| 357 | - $xml .= "<geraxmllegenda>$tagLegenda</geraxmllegenda>"; | 376 | + $xml .= "<geraxmllegenda><![CDATA[".$tagLegenda."]]></geraxmllegenda>"; |
| 377 | + $json["layer"]["geraxmllegenda"] = $tagLegenda; | ||
| 358 | $xml .= "<connectiontype>".$ct."</connectiontype>\n"; | 378 | $xml .= "<connectiontype>".$ct."</connectiontype>\n"; |
| 379 | + $json["layer"]["connectiontype"] = $ct; | ||
| 359 | $xml .= "<data>$d</data>\n"; | 380 | $xml .= "<data>$d</data>\n"; |
| 381 | + $json["layer"]["data"] = $d; | ||
| 360 | $xml .= "<name>$nomeLayer</name>\n"; | 382 | $xml .= "<name>$nomeLayer</name>\n"; |
| 383 | + $json["layer"]["name"] = $nomeLayer; | ||
| 361 | if($ct != "MS_WMS") | 384 | if($ct != "MS_WMS") |
| 362 | { | 385 | { |
| 363 | $xml .= "<connection>\n"; | 386 | $xml .= "<connection>\n"; |
| 387 | + $json["layer"]["connection"] = array(); | ||
| 364 | $con = $layer->connection; | 388 | $con = $layer->connection; |
| 365 | if (($con == " ") || ($con == "") || (in_array($con,array_keys($postgis_mapa)))) | 389 | if (($con == " ") || ($con == "") || (in_array($con,array_keys($postgis_mapa)))) |
| 366 | { | 390 | { |
| @@ -370,18 +394,32 @@ function mapfile() | @@ -370,18 +394,32 @@ function mapfile() | ||
| 370 | {$con = $postgis_mapa[$con];} | 394 | {$con = $postgis_mapa[$con];} |
| 371 | } | 395 | } |
| 372 | if($bloqueiaStringConexao == true){ | 396 | if($bloqueiaStringConexao == true){ |
| 373 | - $xml .= "<user>bloqueado (veja i3geo/admin/php/parsemapfile)</user>\n"; | ||
| 374 | - $xml .= "<password></password>\n"; | ||
| 375 | - $xml .= "<dbname></dbname>\n"; | ||
| 376 | - $xml .= "<host></host>\n"; | 397 | + $xml .= "<user>bloqueado (veja i3geo/admin/php/parsemapfile)</user>\n"; |
| 398 | + $json["layer"]["connection"]["user"] = "bloqueado (veja i3geo/admin/php/parsemapfile)"; | ||
| 399 | + $xml .= "<password></password>\n"; | ||
| 400 | + $json["layer"]["connection"]["password"] = ""; | ||
| 401 | + $xml .= "<dbname></dbname>\n"; | ||
| 402 | + $json["layer"]["connection"]["dbname"] = ""; | ||
| 403 | + $xml .= "<host></host>\n"; | ||
| 404 | + $json["layer"]["connection"]["host"] = ""; | ||
| 377 | $xml .= "<port></port>\n"; | 405 | $xml .= "<port></port>\n"; |
| 406 | + $json["layer"]["connection"]["port"] = ""; | ||
| 378 | } | 407 | } |
| 379 | else{ | 408 | else{ |
| 380 | $xml .= "<user>".preg_replace('/.*user\s*=\s*([a-zA-Z0-9_.]+).*/i', '\1', $con)."</user>\n"; | 409 | $xml .= "<user>".preg_replace('/.*user\s*=\s*([a-zA-Z0-9_.]+).*/i', '\1', $con)."</user>\n"; |
| 410 | + $json["layer"]["connection"]["user"] = preg_replace('/.*user\s*=\s*([a-zA-Z0-9_.]+).*/i', '\1', $con); | ||
| 411 | + | ||
| 381 | $xml .= "<password>".preg_replace('/.*password\s*=\s*([a-zA-Z0-9_.]+).*/i', '\1', $con)."</password>\n"; | 412 | $xml .= "<password>".preg_replace('/.*password\s*=\s*([a-zA-Z0-9_.]+).*/i', '\1', $con)."</password>\n"; |
| 413 | + $json["layer"]["connection"]["password"] = preg_replace('/.*password\s*=\s*([a-zA-Z0-9_.]+).*/i', '\1', $con); | ||
| 414 | + | ||
| 382 | $xml .= "<dbname>".preg_replace('/.*dbname\s*=\s*([a-zA-Z0-9_.]+).*/i', '\1', $con)."</dbname>\n"; | 415 | $xml .= "<dbname>".preg_replace('/.*dbname\s*=\s*([a-zA-Z0-9_.]+).*/i', '\1', $con)."</dbname>\n"; |
| 416 | + $json["layer"]["connection"]["dbname"] = preg_replace('/.*dbname\s*=\s*([a-zA-Z0-9_.]+).*/i', '\1', $con); | ||
| 417 | + | ||
| 383 | $xml .= "<host>".preg_replace('/.*host\s*=\s*([a-zA-Z0-9_.]+).*/i', '\1', $con)."</host>\n"; | 418 | $xml .= "<host>".preg_replace('/.*host\s*=\s*([a-zA-Z0-9_.]+).*/i', '\1', $con)."</host>\n"; |
| 419 | + $json["layer"]["connection"]["host"] = preg_replace('/.*host\s*=\s*([a-zA-Z0-9_.]+).*/i', '\1', $con); | ||
| 420 | + | ||
| 384 | $xml .= "<port>".preg_replace('/.*port\s*=\s*([a-zA-Z0-9_.]+).*/i', '\1', $con)."</port>\n"; | 421 | $xml .= "<port>".preg_replace('/.*port\s*=\s*([a-zA-Z0-9_.]+).*/i', '\1', $con)."</port>\n"; |
| 422 | + $json["layer"]["connection"]["port"] = preg_replace('/.*port\s*=\s*([a-zA-Z0-9_.]+).*/i', '\1', $con); | ||
| 385 | } | 423 | } |
| 386 | $xml .= "</connection>\n"; | 424 | $xml .= "</connection>\n"; |
| 387 | $d = explode("(",$d); | 425 | $d = explode("(",$d); |
| @@ -390,7 +428,9 @@ function mapfile() | @@ -390,7 +428,9 @@ function mapfile() | ||
| 390 | $dstring = str_replace("the_geom","",$dstring); | 428 | $dstring = str_replace("the_geom","",$dstring); |
| 391 | $dstring = str_replace("*",$colunas,$dstring); | 429 | $dstring = str_replace("*",$colunas,$dstring); |
| 392 | $xml .= "<colunas>$colunas</colunas>"; | 430 | $xml .= "<colunas>$colunas</colunas>"; |
| 431 | + $json["layer"]["colunas"] = $colunas; | ||
| 393 | $xml .= "<select>$dstring</select>\n"; | 432 | $xml .= "<select>$dstring</select>\n"; |
| 433 | + $json["layer"]["select"] = $dstring; | ||
| 394 | $string = preg_replace('/.*from\s*(.+).*/i', '\1', $d[0]); | 434 | $string = preg_replace('/.*from\s*(.+).*/i', '\1', $d[0]); |
| 395 | $s = explode("WHERE",$string); | 435 | $s = explode("WHERE",$string); |
| 396 | if(count($s) == 1) | 436 | if(count($s) == 1) |
| @@ -402,18 +442,35 @@ function mapfile() | @@ -402,18 +442,35 @@ function mapfile() | ||
| 402 | $xml .= "<type>".$objlayertypes[$layer->type]."</type>\n"; | 442 | $xml .= "<type>".$objlayertypes[$layer->type]."</type>\n"; |
| 403 | $xml .= "<filter>".$layer->getfilterstring()."</filter>\n"; | 443 | $xml .= "<filter>".$layer->getfilterstring()."</filter>\n"; |
| 404 | $xml .= "<filteritem>$layer->filteritem</filteritem>\n"; | 444 | $xml .= "<filteritem>$layer->filteritem</filteritem>\n"; |
| 405 | - //$xml .= "<labelangleitem>".$layer->labelangleitem."</labelangleitem>\n"; | ||
| 406 | $xml .= "<labelitem>$layer->labelitem</labelitem>\n"; | 445 | $xml .= "<labelitem>$layer->labelitem</labelitem>\n"; |
| 407 | $xml .= "<labelmaxscale>$layer->labelmaxscaledenom</labelmaxscale>\n"; | 446 | $xml .= "<labelmaxscale>$layer->labelmaxscaledenom</labelmaxscale>\n"; |
| 408 | $xml .= "<labelminscale>$layer->labelminscaledenom</labelminscale>\n"; | 447 | $xml .= "<labelminscale>$layer->labelminscaledenom</labelminscale>\n"; |
| 409 | $xml .= "<labelsizeitem></labelsizeitem>\n"; | 448 | $xml .= "<labelsizeitem></labelsizeitem>\n"; |
| 449 | + | ||
| 450 | + $json["layer"]["esquema"] = $esquemaTabela[0]; | ||
| 451 | + $json["layer"]["tabela"] = $esquemaTabela[1]; | ||
| 452 | + $json["layer"]["where"] = $s[1]; | ||
| 453 | + $json["layer"]["type"] = $objlayertypes[$layer->type]; | ||
| 454 | + $json["layer"]["filter"] = $layer->getfilterstring(); | ||
| 455 | + $json["layer"]["filteritem"] = $layer->filteritem; | ||
| 456 | + $json["layer"]["labelitem"] = $layer->labelitem; | ||
| 457 | + $json["layer"]["labelmaxscale"] = $layer->labelmaxscaledenom; | ||
| 458 | + $json["layer"]["labelminscale"] = $layer->labelminscaledenom; | ||
| 459 | + $json["layer"]["labelsizeitem"] = ""; | ||
| 410 | } | 460 | } |
| 411 | $xml .= "<group>$layer->group</group>\n"; | 461 | $xml .= "<group>$layer->group</group>\n"; |
| 412 | $xml .= "<maxscale>$layer->maxscaledenom</maxscale>\n"; | 462 | $xml .= "<maxscale>$layer->maxscaledenom</maxscale>\n"; |
| 413 | $xml .= "<minscale>$layer->minscaledenom</minscale>\n"; | 463 | $xml .= "<minscale>$layer->minscaledenom</minscale>\n"; |
| 414 | $xml .= "<offsite>".$layer->offsite->red.",".$layer->offsite->green.",".$layer->offsite->blue."</offsite>\n"; | 464 | $xml .= "<offsite>".$layer->offsite->red.",".$layer->offsite->green.",".$layer->offsite->blue."</offsite>\n"; |
| 415 | $xml .= "<opacity>$layer->opacity</opacity>\n"; | 465 | $xml .= "<opacity>$layer->opacity</opacity>\n"; |
| 416 | - if($ct != "MS_WMS") | 466 | + |
| 467 | + $json["layer"]["group"] = $layer->group; | ||
| 468 | + $json["layer"]["maxscale"] = $layer->maxscaledenom; | ||
| 469 | + $json["layer"]["minscale"] = $layer->minscaledenom; | ||
| 470 | + $json["layer"]["offsite"] = $layer->offsite->red.",".$layer->offsite->green.",".$layer->offsite->blue; | ||
| 471 | + $json["layer"]["opacity"] = $layer->opacity; | ||
| 472 | + | ||
| 473 | + if($ct != "xMS_WMS") | ||
| 417 | { | 474 | { |
| 418 | $xml .= "<symbolscale>$layer->symbolscaledenom</symbolscale>\n"; | 475 | $xml .= "<symbolscale>$layer->symbolscaledenom</symbolscale>\n"; |
| 419 | $xml .= "<tileindex>$layer->tileindex</tileindex>\n"; | 476 | $xml .= "<tileindex>$layer->tileindex</tileindex>\n"; |
| @@ -423,18 +480,33 @@ function mapfile() | @@ -423,18 +480,33 @@ function mapfile() | ||
| 423 | $xml .= "<sizeunits>$layer->sizeunits</sizeunits>\n"; | 480 | $xml .= "<sizeunits>$layer->sizeunits</sizeunits>\n"; |
| 424 | $xml .= "<projection>".$layer->getProjection()."</projection>\n"; | 481 | $xml .= "<projection>".$layer->getProjection()."</projection>\n"; |
| 425 | $xml .= "<classes>\n"; | 482 | $xml .= "<classes>\n"; |
| 426 | - $xml = pegaClasses($xml); | 483 | + $xml .= pegaClasses($layer,"xml"); |
| 427 | $xml .= "</classes>\n"; | 484 | $xml .= "</classes>\n"; |
| 485 | + | ||
| 486 | + $json["layer"]["symbolscale"] = $layer->symbolscaledenom; | ||
| 487 | + $json["layer"]["tileindex"] = $layer->tileindex; | ||
| 488 | + $json["layer"]["tileitem"] = $layer->tileitem; | ||
| 489 | + $json["layer"]["tolerance"] = $layer->tolerance; | ||
| 490 | + $json["layer"]["toleranceunits"] = $layer->toleranceunits; | ||
| 491 | + $json["layer"]["sizeunits"] = $layer->sizeunits; | ||
| 492 | + $json["layer"]["projection"] = $layer->getProjection(); | ||
| 493 | + $json["layer"]["classes"] = pegaClasses($layer,"json"); | ||
| 428 | } | 494 | } |
| 429 | $xml .= "</layer>"; | 495 | $xml .= "</layer>"; |
| 430 | } | 496 | } |
| 431 | $xml .= "</parsemapfile>\n"; | 497 | $xml .= "</parsemapfile>\n"; |
| 432 | - echo header("Content-type: application/xml"); | ||
| 433 | - echo $xml; | 498 | + echo header("Content-type: application/".$output); |
| 499 | + if($output=="xml"){ | ||
| 500 | + echo $xml; | ||
| 501 | + } | ||
| 502 | + else{ | ||
| 503 | + echo json_encode($json); | ||
| 504 | + } | ||
| 434 | } | 505 | } |
| 435 | -function pegaClasses($xml) | 506 | +function pegaClasses($layer,$output="xml") |
| 436 | { | 507 | { |
| 437 | - global $layer; | 508 | + $xml = ""; |
| 509 | + $json = array(); | ||
| 438 | $dados = array(); | 510 | $dados = array(); |
| 439 | $nclasses = $layer->numclasses; | 511 | $nclasses = $layer->numclasses; |
| 440 | for($i=0;$i<$nclasses;++$i) | 512 | for($i=0;$i<$nclasses;++$i) |
| @@ -444,20 +516,29 @@ function pegaClasses($xml) | @@ -444,20 +516,29 @@ function pegaClasses($xml) | ||
| 444 | $xml .= "<name>".mb_convert_encoding(($classe->name),"UTF-8","ISO-8859-1")."</name>\n"; | 516 | $xml .= "<name>".mb_convert_encoding(($classe->name),"UTF-8","ISO-8859-1")."</name>\n"; |
| 445 | $xml .= "<expression>".$classe->getExpressionString()."</expression>\n"; | 517 | $xml .= "<expression>".$classe->getExpressionString()."</expression>\n"; |
| 446 | $xml .= "<keyimage>$classe->keyimage</keyimage>\n"; | 518 | $xml .= "<keyimage>$classe->keyimage</keyimage>\n"; |
| 447 | - $xml .= "<size>$classe->size</size>\n"; | ||
| 448 | - $xml .= "<symbolname>$classe->symbolname</symbolname>\n"; | ||
| 449 | - $xml .= "<type>$classe->type</type>\n"; | ||
| 450 | $xml .= "<estilos>\n"; | 519 | $xml .= "<estilos>\n"; |
| 451 | - $xml = pegaEstilos($xml,$classe); | 520 | + $xml .= pegaEstilos($classe,$output); |
| 452 | $xml .= "</estilos>\n"; | 521 | $xml .= "</estilos>\n"; |
| 453 | $xml .= "</classe>\n"; | 522 | $xml .= "</classe>\n"; |
| 523 | + | ||
| 524 | + $j = array(); | ||
| 525 | + $j["name"] = mb_convert_encoding(($classe->name),"UTF-8","ISO-8859-1"); | ||
| 526 | + $j["expression"] = $classe->getExpressionString(); | ||
| 527 | + $j["keyimage"] = $classe->keyimage; | ||
| 528 | + $j["estilos"] = pegaEstilos($classe,$output); | ||
| 529 | + $json[] = $j; | ||
| 530 | + } | ||
| 531 | + if($output == "xml"){ | ||
| 532 | + return $xml; | ||
| 533 | + } | ||
| 534 | + else{ | ||
| 535 | + return $json; | ||
| 454 | } | 536 | } |
| 455 | - return $xml; | ||
| 456 | } | 537 | } |
| 457 | -function pegaEstilos($xml,$classe) | 538 | +function pegaEstilos($classe,$output = "xml") |
| 458 | { | 539 | { |
| 459 | $numestilos = $classe->numstyles; | 540 | $numestilos = $classe->numstyles; |
| 460 | - $estilos = array(); | 541 | + $json = array(); |
| 461 | for($j=0;$j<$numestilos;++$j) | 542 | for($j=0;$j<$numestilos;++$j) |
| 462 | { | 543 | { |
| 463 | $xml .= "<estilo>\n"; | 544 | $xml .= "<estilo>\n"; |
| @@ -468,7 +549,20 @@ function pegaEstilos($xml,$classe) | @@ -468,7 +549,20 @@ function pegaEstilos($xml,$classe) | ||
| 468 | $xml .= "<backgroundcolor>".$estilo->backgroundcolor->red.",".$estilo->backgroundcolor->green.",".$estilo->backgroundcolor->blue."</backgroundcolor>\n"; | 549 | $xml .= "<backgroundcolor>".$estilo->backgroundcolor->red.",".$estilo->backgroundcolor->green.",".$estilo->backgroundcolor->blue."</backgroundcolor>\n"; |
| 469 | $xml .= "<outlinecolor>".$estilo->outlinecolor->red.",".$estilo->outlinecolor->green.",".$estilo->outlinecolor->blue."</outlinecolor>\n"; | 550 | $xml .= "<outlinecolor>".$estilo->outlinecolor->red.",".$estilo->outlinecolor->green.",".$estilo->outlinecolor->blue."</outlinecolor>\n"; |
| 470 | $xml .= "</estilo>\n"; | 551 | $xml .= "</estilo>\n"; |
| 552 | + | ||
| 553 | + $e = array(); | ||
| 554 | + $e["symbolname"] = $estilo->symbolname; | ||
| 555 | + $e["color"] = $estilo->color->red.",".$estilo->color->green.",".$estilo->color->blue; | ||
| 556 | + $e["size"] = $estilo->size; | ||
| 557 | + $e["backgroundcolor"] = $estilo->backgroundcolor->red.",".$estilo->backgroundcolor->green.",".$estilo->backgroundcolor->blue; | ||
| 558 | + $e["outlinecolor"] = $estilo->outlinecolor->red.",".$estilo->outlinecolor->green.",".$estilo->outlinecolor->blue; | ||
| 559 | + $json[] = $e; | ||
| 560 | + } | ||
| 561 | + if($output == "xml"){ | ||
| 562 | + return $xml; | ||
| 563 | + } | ||
| 564 | + else{ | ||
| 565 | + return $json; | ||
| 471 | } | 566 | } |
| 472 | - return $xml; | ||
| 473 | } | 567 | } |
| 474 | ?> | 568 | ?> |
| 475 | \ No newline at end of file | 569 | \ No newline at end of file |
admin/php/xml.php
| @@ -142,7 +142,7 @@ Retorno: | @@ -142,7 +142,7 @@ Retorno: | ||
| 142 | 142 | ||
| 143 | RSS | 143 | RSS |
| 144 | */ | 144 | */ |
| 145 | -function geraRSStemas($locaplic,$id_n2) | 145 | +function geraRSStemas($locaplic,$id_n2,$output="xml") |
| 146 | { | 146 | { |
| 147 | global $esquemaadmin; | 147 | global $esquemaadmin; |
| 148 | $sql = " | 148 | $sql = " |
| @@ -151,7 +151,7 @@ function geraRSStemas($locaplic,$id_n2) | @@ -151,7 +151,7 @@ function geraRSStemas($locaplic,$id_n2) | ||
| 151 | LEFT JOIN ".$esquemaadmin."i3geoadmin_temas ON i3geoadmin_temas.id_tema = n3.id_tema | 151 | LEFT JOIN ".$esquemaadmin."i3geoadmin_temas ON i3geoadmin_temas.id_tema = n3.id_tema |
| 152 | LEFT JOIN ".$esquemaadmin."i3geousr_grupotema ON n3.id_tema = i3geousr_grupotema.id_tema | 152 | LEFT JOIN ".$esquemaadmin."i3geousr_grupotema ON n3.id_tema = i3geousr_grupotema.id_tema |
| 153 | where i3geousr_grupotema.id_grupo is null and i3geoadmin_temas.id_tema = n3.id_tema and n3.id_n2 = '$id_n2' and n3.n3_perfil = '' and n3.publicado != 'NAO' order by nome_ws"; | 153 | where i3geousr_grupotema.id_grupo is null and i3geoadmin_temas.id_tema = n3.id_tema and n3.id_n2 = '$id_n2' and n3.n3_perfil = '' and n3.publicado != 'NAO' order by nome_ws"; |
| 154 | - return geraXmlRSS($locaplic,$sql,"Lista de temas"); | 154 | + return geraXmlRSS($locaplic,$sql,"Lista de temas",$output); |
| 155 | } | 155 | } |
| 156 | /* | 156 | /* |
| 157 | Function: geraRSStemasRaiz | 157 | Function: geraRSStemasRaiz |
| @@ -196,12 +196,12 @@ Retorno: | @@ -196,12 +196,12 @@ Retorno: | ||
| 196 | 196 | ||
| 197 | RSS | 197 | RSS |
| 198 | */ | 198 | */ |
| 199 | -function geraRSSsubgrupos($locaplic,$id_n1) | 199 | +function geraRSSsubgrupos($locaplic,$id_n1,$output="json") |
| 200 | { | 200 | { |
| 201 | global $esquemaadmin; | 201 | global $esquemaadmin; |
| 202 | $sql = "select '' as tipo_ws, n2.id_n2 as id_ws,g.nome_subgrupo as nome_ws,'' as desc_ws,'rsstemas.php?id='||n2.id_n2 as link_ws,'' as autor_ws from ".$esquemaadmin."i3geoadmin_n2 as n2,".$esquemaadmin."i3geoadmin_subgrupos as g "; | 202 | $sql = "select '' as tipo_ws, n2.id_n2 as id_ws,g.nome_subgrupo as nome_ws,'' as desc_ws,'rsstemas.php?id='||n2.id_n2 as link_ws,'' as autor_ws from ".$esquemaadmin."i3geoadmin_n2 as n2,".$esquemaadmin."i3geoadmin_subgrupos as g "; |
| 203 | $sql .= " where g.id_subgrupo = n2.id_subgrupo and n2.id_n1 = '$id_n1' and n2.n2_perfil = '' and n2.publicado != 'NAO' order by nome_ws"; | 203 | $sql .= " where g.id_subgrupo = n2.id_subgrupo and n2.id_n1 = '$id_n1' and n2.n2_perfil = '' and n2.publicado != 'NAO' order by nome_ws"; |
| 204 | - return geraXmlRSS($locaplic,$sql,"Lista de sub-grupos"); | 204 | + return geraXmlRSS($locaplic,$sql,"Lista de sub-grupos",$output); |
| 205 | } | 205 | } |
| 206 | /* | 206 | /* |
| 207 | Function: geraRSSgrupos | 207 | Function: geraRSSgrupos |
| @@ -216,13 +216,13 @@ Retorno: | @@ -216,13 +216,13 @@ Retorno: | ||
| 216 | 216 | ||
| 217 | RSS | 217 | RSS |
| 218 | */ | 218 | */ |
| 219 | -function geraRSSgrupos($locaplic) | 219 | +function geraRSSgrupos($locaplic,$output="xml") |
| 220 | { | 220 | { |
| 221 | global $esquemaadmin; | 221 | global $esquemaadmin; |
| 222 | $sql = "select '' as tipo_ws, n1.id_n1 as id_ws, g.nome_grupo as nome_ws,'rsstemasraiz.php?nivel=1&id='||n1.id_n1 as desc_ws,'rsssubgrupos.php?id='||n1.id_n1 as link_ws,'' as autor_ws "; | 222 | $sql = "select '' as tipo_ws, n1.id_n1 as id_ws, g.nome_grupo as nome_ws,'rsstemasraiz.php?nivel=1&id='||n1.id_n1 as desc_ws,'rsssubgrupos.php?id='||n1.id_n1 as link_ws,'' as autor_ws "; |
| 223 | $sql .= "from ".$esquemaadmin."i3geoadmin_n1 as n1,".$esquemaadmin."i3geoadmin_grupos as g "; | 223 | $sql .= "from ".$esquemaadmin."i3geoadmin_n1 as n1,".$esquemaadmin."i3geoadmin_grupos as g "; |
| 224 | $sql .= "where g.id_grupo = n1.id_grupo and n1.n1_perfil = '' and n1.publicado != 'NAO' group by id_ws,tipo_ws,nome_ws,desc_ws,link_ws,autor_ws order by nome_ws"; | 224 | $sql .= "where g.id_grupo = n1.id_grupo and n1.n1_perfil = '' and n1.publicado != 'NAO' group by id_ws,tipo_ws,nome_ws,desc_ws,link_ws,autor_ws order by nome_ws"; |
| 225 | - return geraXmlRSS($locaplic,$sql,"Lista de grupos"); | 225 | + return geraXmlRSS($locaplic,$sql,"Lista de grupos",$output); |
| 226 | } | 226 | } |
| 227 | /* | 227 | /* |
| 228 | Function: geraXmlDownload | 228 | Function: geraXmlDownload |
| @@ -474,11 +474,13 @@ locaplic {string} - localiza&ccedil;&atilde;o do i3Geo no sistema de arquivos | @@ -474,11 +474,13 @@ locaplic {string} - localiza&ccedil;&atilde;o do i3Geo no sistema de arquivos | ||
| 474 | sql {string} - SQL que será aplicado ao sistema de administração | 474 | sql {string} - SQL que será aplicado ao sistema de administração |
| 475 | 475 | ||
| 476 | descricao {string} - descrição que será inserida no canal RSS | 476 | descricao {string} - descrição que será inserida no canal RSS |
| 477 | + | ||
| 478 | +output {string} - xml|json | ||
| 477 | Retorno: | 479 | Retorno: |
| 478 | 480 | ||
| 479 | RSS | 481 | RSS |
| 480 | */ | 482 | */ |
| 481 | -function geraXmlRSS($locaplic,$sql,$descricao) | 483 | +function geraXmlRSS($locaplic,$sql,$descricao,$output="xml") |
| 482 | { | 484 | { |
| 483 | global $esquemaadmin; | 485 | global $esquemaadmin; |
| 484 | //var_dump($_SERVER);exit; | 486 | //var_dump($_SERVER);exit; |
| @@ -497,6 +499,12 @@ function geraXmlRSS($locaplic,$sql,$descricao) | @@ -497,6 +499,12 @@ function geraXmlRSS($locaplic,$sql,$descricao) | ||
| 497 | $xml .= "<copyright>Gerado pelo i3Geo</copyright>\n"; | 499 | $xml .= "<copyright>Gerado pelo i3Geo</copyright>\n"; |
| 498 | $xml .= "<language>pt-br</language>\n"; | 500 | $xml .= "<language>pt-br</language>\n"; |
| 499 | $xml .= "<webmaster></webmaster>\n"; | 501 | $xml .= "<webmaster></webmaster>\n"; |
| 502 | + $json = array( | ||
| 503 | + "description"=>$descricao, | ||
| 504 | + "copyright"=>"Gerado pelo i3Geo", | ||
| 505 | + "language"=>"pt-br" | ||
| 506 | + ); | ||
| 507 | + $jsonItems = array(); | ||
| 500 | $qatlas = $dbh->query($sql); | 508 | $qatlas = $dbh->query($sql); |
| 501 | foreach($qatlas as $row) | 509 | foreach($qatlas as $row) |
| 502 | { | 510 | { |
| @@ -505,8 +513,9 @@ function geraXmlRSS($locaplic,$sql,$descricao) | @@ -505,8 +513,9 @@ function geraXmlRSS($locaplic,$sql,$descricao) | ||
| 505 | $xml .= "<title>".entity_decode($row["nome_ws"])."</title>\n"; | 513 | $xml .= "<title>".entity_decode($row["nome_ws"])."</title>\n"; |
| 506 | $xml .= "<description>".xmlTexto_prepara(entity_decode($row["desc_ws"]))."</description>\n"; | 514 | $xml .= "<description>".xmlTexto_prepara(entity_decode($row["desc_ws"]))."</description>\n"; |
| 507 | $link = xmlTexto_prepara($row["link_ws"]); | 515 | $link = xmlTexto_prepara($row["link_ws"]); |
| 508 | - if(stristr($link, 'http') === FALSE) | ||
| 509 | - {$link = "http://".$_SERVER["HTTP_HOST"].dirname($_SERVER["REQUEST_URI"])."/".$link;} | 516 | + if(stristr($link, 'http') === FALSE){ |
| 517 | + $link = "http://".$_SERVER["HTTP_HOST"].dirname($_SERVER["REQUEST_URI"])."/".$link; | ||
| 518 | + } | ||
| 510 | $xml .= "<link><![CDATA[".$link."]]></link>\n"; | 519 | $xml .= "<link><![CDATA[".$link."]]></link>\n"; |
| 511 | $xml .= "<pubDate/>\n"; | 520 | $xml .= "<pubDate/>\n"; |
| 512 | $xml .= "<author>".xmlTexto_prepara($row["autor_ws"])."</author>\n"; | 521 | $xml .= "<author>".xmlTexto_prepara($row["autor_ws"])."</author>\n"; |
| @@ -515,11 +524,25 @@ function geraXmlRSS($locaplic,$sql,$descricao) | @@ -515,11 +524,25 @@ function geraXmlRSS($locaplic,$sql,$descricao) | ||
| 515 | $xml .= "<id>".xmlTexto_prepara($row["id_ws"])."</id>\n"; | 524 | $xml .= "<id>".xmlTexto_prepara($row["id_ws"])."</id>\n"; |
| 516 | $xml .= "<tipo>".$row["tipo_ws"]."</tipo>\n"; | 525 | $xml .= "<tipo>".$row["tipo_ws"]."</tipo>\n"; |
| 517 | $xml .= "</item>\n"; | 526 | $xml .= "</item>\n"; |
| 527 | + $jsonItems[] = array( | ||
| 528 | + "title"=>$row["nome_ws"], | ||
| 529 | + "description"=>$row["desc_ws"], | ||
| 530 | + "link"=>$link."&output=json", | ||
| 531 | + "author"=>$row["autor_ws"], | ||
| 532 | + "id"=>$row["id_ws"], | ||
| 533 | + "tipo"=>$row["tipo_ws"] | ||
| 534 | + ); | ||
| 518 | } | 535 | } |
| 536 | + $json["items"] = $jsonItems; | ||
| 519 | $xml .= "</channel></rss>\n"; | 537 | $xml .= "</channel></rss>\n"; |
| 520 | $dbh = null; | 538 | $dbh = null; |
| 521 | $dbhw = null; | 539 | $dbhw = null; |
| 522 | - return $xml; | 540 | + if($output=="xml"){ |
| 541 | + return $xml; | ||
| 542 | + } | ||
| 543 | + else{ | ||
| 544 | + return json_encode($json); | ||
| 545 | + } | ||
| 523 | } | 546 | } |
| 524 | function geraXmlAtlas($locaplic,$editores) | 547 | function geraXmlAtlas($locaplic,$editores) |
| 525 | { | 548 | { |
admin/rssgrupos.php
| @@ -38,6 +38,10 @@ if(!isset($locaplic)){ | @@ -38,6 +38,10 @@ if(!isset($locaplic)){ | ||
| 38 | } | 38 | } |
| 39 | include_once($locaplic."/classesphp/pega_variaveis.php"); | 39 | include_once($locaplic."/classesphp/pega_variaveis.php"); |
| 40 | include_once($locaplic."/admin/php/xml.php"); | 40 | include_once($locaplic."/admin/php/xml.php"); |
| 41 | -echo header("Content-type: application/xml"); | ||
| 42 | -echo geraRSSgrupos($locaplic); | 41 | +$output = "xml"; |
| 42 | +if(strtolower($_GET["output"]) == "json" || strtolower($_POST["output"]) == "json"){ | ||
| 43 | + $output = "json"; | ||
| 44 | +} | ||
| 45 | +echo header("Content-type: application/".$output); | ||
| 46 | +echo geraRSSgrupos($locaplic,$output); | ||
| 43 | ?> | 47 | ?> |
| 44 | \ No newline at end of file | 48 | \ No newline at end of file |
admin/rsssubgrupos.php
| @@ -44,6 +44,10 @@ if(!isset($locaplic)){ | @@ -44,6 +44,10 @@ if(!isset($locaplic)){ | ||
| 44 | } | 44 | } |
| 45 | include_once($locaplic."/classesphp/pega_variaveis.php"); | 45 | include_once($locaplic."/classesphp/pega_variaveis.php"); |
| 46 | include_once($locaplic."/admin/php/xml.php"); | 46 | include_once($locaplic."/admin/php/xml.php"); |
| 47 | -echo header("Content-type: application/xml"); | ||
| 48 | -echo geraRSSsubgrupos($locaplic,$id); | 47 | +$output = "xml"; |
| 48 | +if(strtolower($_GET["output"]) == "json" || strtolower($_POST["output"]) == "json"){ | ||
| 49 | + $output = "json"; | ||
| 50 | +} | ||
| 51 | +echo header("Content-type: application/".$output); | ||
| 52 | +echo geraRSSsubgrupos($locaplic,$id,$output); | ||
| 49 | ?> | 53 | ?> |
admin/rsstemas.php
| @@ -44,6 +44,10 @@ if(!isset($locaplic)){ | @@ -44,6 +44,10 @@ if(!isset($locaplic)){ | ||
| 44 | } | 44 | } |
| 45 | include_once($locaplic."/classesphp/pega_variaveis.php"); | 45 | include_once($locaplic."/classesphp/pega_variaveis.php"); |
| 46 | include_once($locaplic."/admin/php/xml.php"); | 46 | include_once($locaplic."/admin/php/xml.php"); |
| 47 | -echo header("Content-type: application/xml"); | ||
| 48 | -echo geraRSStemas($locaplic,$id); | 47 | +$output = "xml"; |
| 48 | +if(strtolower($_GET["output"]) == "json" || strtolower($_POST["output"]) == "json"){ | ||
| 49 | + $output = "json"; | ||
| 50 | +} | ||
| 51 | +echo header("Content-type: application/".$output); | ||
| 52 | +echo geraRSStemas($locaplic,$id,$output); | ||
| 49 | ?> | 53 | ?> |