From 63c13ebea021c1467ea208db84a4ac66d127b6d7 Mon Sep 17 00:00:00 2001 From: Edmar Moretti Date: Mon, 26 Mar 2018 14:07:30 -0300 Subject: [PATCH] Correção no gerador de RSS quando o banco de dados de administração utiliza um esquema diferente do public --- classesphp/wscliente.php | 539 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 1 file changed, 272 insertions(+), 267 deletions(-) diff --git a/classesphp/wscliente.php b/classesphp/wscliente.php index a0f898f..4d60162 100755 --- a/classesphp/wscliente.php +++ b/classesphp/wscliente.php @@ -1,267 +1,272 @@ -register('getcapabilities'); - $cp->start(); - $cp->return_data(); - exit; -} -/* -Function: getcapabilities - -Retorna a resposta da função getcapabilities de um serviço WMS. - -Globais: - -$cp {CPAINT} - Objeto CPAINT. - -$onlineresource {string} - Endereço do serviço. - -$tipo {string} - Tipo do serviço WMS|WFS. - -Retorno: - -{JSON} - Objeto JSON com as marcações do XML resultante convertidas para HTML -*/ -function getcapabilities() -{ - global $cp,$onlineresource,$tipo; - $teste = explode("=",$onlineresource); - if ( count($teste) > 1 ){$onlineresource = $onlineresource."&";} - # ------------------------------------------------------------- - # Test that there is a wms service defined before proceding. - # - if ( ! $onlineresource ) { - # No WMS service provided. - wms_fatal("No 'onlineresource' defined."); - } - - $wms_service_request = $onlineresource . "REQUEST=GetCapabilities&SERVICE=".$tipo; - - # ------------------------------------------------------------- - # Test that the capabilites file has successfully downloaded. - # - if( !($wms_capabilities = file($wms_service_request)) ) { - # Cannot download the capabilities file. - wms_fatal("Não foi possível ler o retorno do serviço '$wms_service_request'."); - } - - $wms_capabilities = implode("",$wms_capabilities); - - # ------------------------------------------------------------- - # Test that the capabilites file has successfully parsed. - # - $dom = new DomDocument(); - $dom->loadXML($wms_capabilities); - $cp->set_data(xml2html($wms_capabilities)); -} - - -//le links de RSS para ws -if ($funcao == "listaRSSws") -{ - $cp->register('listaRSSws'); - $cp->start(); - ob_clean; - $cp->return_data(); - exit; -} - -if ($funcao == "listaRSSwsARRAY") -{ - $cp->register('listaRSSwsARRAY'); - $cp->start(); - if(ob_get_contents ()){ - ob_end_clean(); - } - $cp->return_data(); - exit; -} - -/* -Function: listaRSSwsARRAY - -Pega os links de um RSS e retorna o resultado como um array. - -Globais: - -$cp {CPAINT} - Objeto CPAINT. - -$rss {string} - Endereços dos RSS. - -$tipo {string} - Tipo de recurso, permite a escolha do programa PHP que será usado GEORSS|WMS|WS|DOWNLOAD|WMSMETAESTAT - -Retorno: - -{JSON} -*/ -function listaRSSwsARRAY() -{ - global $cp,$rss,$locaplic,$tipo; - - if(!isset($tipo)){$tipo = "GEORSS";} - include_once("$locaplic/classesphp/funcoes_gerais.php"); - include_once("$locaplic/classesphp/xml.php"); - include_once("$locaplic/ms_configura.php"); - $rsss = explode("|",$rss); - if(count($rsss) == 0){ - $rsss = array(" "); - } - $erro = "Erro. Nao foi possivel ler o arquivo"; - $protocolo = explode("/",$_SERVER['SERVER_PROTOCOL']); - $urli3geo = strtolower($protocolo[0])."://".$_SERVER['HTTP_HOST']."/".basename($locaplic); - foreach ($rsss as $r){ - if($r == "" || $r == " "){ - - if($tipo == "GEORSS"){ - $canali = simplexml_load_string(geraXmlGeorss($locaplic)); - $linkrss = $urli3geo."/rss/xmlgeorss.php"; - } - if($tipo == "WMS" || $tipo == "WMS-Tile"){ - $canali = simplexml_load_string(geraXmlWMS($locaplic)); - $linkrss = $urli3geo."/rss/xmlservicoswms.php"; - } - if($tipo == "WMSMETAESTAT") { - $canali = simplexml_load_string(geraXmlWMSmetaestat($locaplic)); - $linkrss = $urli3geo."/rss/xmlservicoswms.php"; - } - if($tipo == "WS"){ - $canali = simplexml_load_string(geraXmlWS($locaplic)); - $linkrss = $urli3geo."/rss/xmlservicosws.php"; - } - } else { - $canali = simplexml_load_file($rss); - } - if($r != "") - $linhas["rss"] = ""; - else{ - $linhas["rss"] = ""; - } - //var_dump($canali); - $canais = array(); - foreach ($canali->channel->item as $item){ - $canais[] = array("id_ws"=>(ixml($item,"id")),"title"=>(ixml($item,"title")),"description"=>(ixml($item,"description")),"link"=>(ixml($item,"link")),"author"=>(ixml($item,"author")),"nacessos"=>(ixml($item,"nacessos")),"nacessosok"=>(ixml($item,"nacessosok")),"tipo_ws"=>(ixml($item,"tipo"))); - } - $linhas["canais"] = $canais; - } - $cp->set_data($linhas); -} - -/* -Function: listaRSSws - -Pega os links de um RSS usando a biblioteca magpierss (depreciado). - -Globais: - -$cp {CPAINT} - Objeto CPAINT. - -$rss {string} - Endereços dos RSS. - -Retorno: - -{JSON} -*/ -function listaRSSws() -{ - global $cp,$rss; - require(dirname(__FILE__).'/../pacotes/magpierss/rss_fetch.inc'); - $rsss = explode("|",$rss); - $erro = "Erro. Nao foi possivel ler o arquivo"; - foreach ($rsss as $r) - { - $rss = fetch_rss($r); - if ($rss) - { - $erro = ""; - $linhas[] = "####"; - foreach ( $rss->items as $item ) - { - $linha[] = $item['title']; - $linha[] = $item['description']; - $linha[] = $item['link']; - $linha[] = $item['author']; - $linha[] = $item['ranking']; - $linha[] = $item['tempo']; - $linhas[] = implode("#",$linha); - $linha = array(); - } - } - } - if ($erro == "") - { - $retorna = implode("|",$linhas); - $retorna = str_replace("\n","",$retorna); - if (function_exists("mb_convert_encoding")) - {$retorna = mb_convert_encoding($retorna,"UTF-8","ISO-88591");} - else - {$retorna = $retorna;} - } - else {$retorna = $erro;} - $cp->set_data($retorna); -} -?> +register('getcapabilities'); + $cp->start(); + $cp->return_data(); + exit; +} +/* +Function: getcapabilities + +Retorna a resposta da função getcapabilities de um serviço WMS. + +Globais: + +$cp {CPAINT} - Objeto CPAINT. + +$onlineresource {string} - Endereço do serviço. + +$tipo {string} - Tipo do serviço WMS|WFS. + +Retorno: + +{JSON} - Objeto JSON com as marcações do XML resultante convertidas para HTML +*/ +function getcapabilities() +{ + global $cp,$onlineresource,$tipo; + $teste = explode("=",$onlineresource); + if ( count($teste) > 1 ){$onlineresource = $onlineresource."&";} + # ------------------------------------------------------------- + # Test that there is a wms service defined before proceding. + # + if ( ! $onlineresource ) { + # No WMS service provided. + wms_fatal("No 'onlineresource' defined."); + } + + $wms_service_request = $onlineresource . "REQUEST=GetCapabilities&SERVICE=".$tipo; + + # ------------------------------------------------------------- + # Test that the capabilites file has successfully downloaded. + # + if( !($wms_capabilities = file($wms_service_request)) ) { + # Cannot download the capabilities file. + wms_fatal("Não foi possível ler o retorno do serviço '$wms_service_request'."); + } + + $wms_capabilities = implode("",$wms_capabilities); + + # ------------------------------------------------------------- + # Test that the capabilites file has successfully parsed. + # + $dom = new DomDocument(); + $dom->loadXML($wms_capabilities); + $cp->set_data(xml2html($wms_capabilities)); +} + + +//le links de RSS para ws +if ($funcao == "listaRSSws") +{ + $cp->register('listaRSSws'); + $cp->start(); + ob_clean; + $cp->return_data(); + exit; +} + +if ($funcao == "listaRSSwsARRAY") +{ + $cp->register('listaRSSwsARRAY'); + $cp->start(); + if(ob_get_contents ()){ + ob_end_clean(); + } + $cp->return_data(); + exit; +} + +/* +Function: listaRSSwsARRAY + +Pega os links de um RSS e retorna o resultado como um array. + +Globais: + +$cp {CPAINT} - Objeto CPAINT. + +$rss {string} - Endereços dos RSS. + +$tipo {string} - Tipo de recurso, permite a escolha do programa PHP que será usado GEORSS|WMS|WS|DOWNLOAD|WMSMETAESTAT + +Retorno: + +{JSON} +*/ +function listaRSSwsARRAY() +{ + global $cp,$rss,$locaplic,$tipo,$esquemaadmin; + + if(!isset($tipo)){$tipo = "GEORSS";} + include_once("$locaplic/classesphp/funcoes_gerais.php"); + include_once("$locaplic/classesphp/xml.php"); + include("$locaplic/ms_configura.php"); + + if($esquemaadmin != ""){ + $esquemaadmin = $esquemaadmin."."; + } + + $rsss = explode("|",$rss); + if(count($rsss) == 0){ + $rsss = array(" "); + } + $erro = "Erro. Nao foi possivel ler o arquivo"; + $protocolo = explode("/",$_SERVER['SERVER_PROTOCOL']); + $urli3geo = strtolower($protocolo[0])."://".$_SERVER['HTTP_HOST']."/".basename($locaplic); + foreach ($rsss as $r){ + if($r == "" || $r == " "){ + + if($tipo == "GEORSS"){ + $canali = simplexml_load_string(geraXmlGeorss($locaplic)); + $linkrss = $urli3geo."/rss/xmlgeorss.php"; + } + if($tipo == "WMS" || $tipo == "WMS-Tile"){ + $canali = simplexml_load_string(geraXmlWMS($locaplic)); + $linkrss = $urli3geo."/rss/xmlservicoswms.php"; + } + if($tipo == "WMSMETAESTAT") { + $canali = simplexml_load_string(geraXmlWMSmetaestat($locaplic)); + $linkrss = $urli3geo."/rss/xmlservicoswms.php"; + } + if($tipo == "WS"){ + $canali = simplexml_load_string(geraXmlWS($locaplic)); + $linkrss = $urli3geo."/rss/xmlservicosws.php"; + } + } else { + $canali = simplexml_load_file($rss); + } + if($r != "") + $linhas["rss"] = ""; + else{ + $linhas["rss"] = ""; + } + //var_dump($canali); + $canais = array(); + foreach ($canali->channel->item as $item){ + $canais[] = array("id_ws"=>(ixml($item,"id")),"title"=>(ixml($item,"title")),"description"=>(ixml($item,"description")),"link"=>(ixml($item,"link")),"author"=>(ixml($item,"author")),"nacessos"=>(ixml($item,"nacessos")),"nacessosok"=>(ixml($item,"nacessosok")),"tipo_ws"=>(ixml($item,"tipo"))); + } + $linhas["canais"] = $canais; + } + $cp->set_data($linhas); +} + +/* +Function: listaRSSws + +Pega os links de um RSS usando a biblioteca magpierss (depreciado). + +Globais: + +$cp {CPAINT} - Objeto CPAINT. + +$rss {string} - Endereços dos RSS. + +Retorno: + +{JSON} +*/ +function listaRSSws() +{ + global $cp,$rss; + require(dirname(__FILE__).'/../pacotes/magpierss/rss_fetch.inc'); + $rsss = explode("|",$rss); + $erro = "Erro. Nao foi possivel ler o arquivo"; + foreach ($rsss as $r) + { + $rss = fetch_rss($r); + if ($rss) + { + $erro = ""; + $linhas[] = "####"; + foreach ( $rss->items as $item ) + { + $linha[] = $item['title']; + $linha[] = $item['description']; + $linha[] = $item['link']; + $linha[] = $item['author']; + $linha[] = $item['ranking']; + $linha[] = $item['tempo']; + $linhas[] = implode("#",$linha); + $linha = array(); + } + } + } + if ($erro == "") + { + $retorna = implode("|",$linhas); + $retorna = str_replace("\n","",$retorna); + if (function_exists("mb_convert_encoding")) + {$retorna = mb_convert_encoding($retorna,"UTF-8","ISO-88591");} + else + {$retorna = $retorna;} + } + else {$retorna = $erro;} + $cp->set_data($retorna); +} +?> -- libgit2 0.21.2