Commit 1b0616f38f968cd4b9f53aaf0e54742bae260820

Authored by Edmar Moretti
1 parent 1a4ac69d

Otimização do uso de funções reaproveitáveis

classesphp/classe_alteraclasse.php
@@ -4,7 +4,6 @@ Title: classe_alteraclasse.php @@ -4,7 +4,6 @@ Title: classe_alteraclasse.php
4 4
5 Manipulação de classes e estilos de um layer 5 Manipulação de classes e estilos de um layer
6 6
7 -  
8 Licenca: 7 Licenca:
9 8
10 GPL2 9 GPL2
@@ -241,7 +240,7 @@ $ignorar - valor que será ignorado na listagem final @@ -241,7 +240,7 @@ $ignorar - valor que será ignorado na listagem final
241 function intervalosiguais($item,$nclasses,$ignorar) 240 function intervalosiguais($item,$nclasses,$ignorar)
242 { 241 {
243 if(!$this->layer){return "erro";} 242 if(!$this->layer){return "erro";}
244 - $valores = pegaValores($this->mapa,$this->layer,$item,true,$ignorar); 243 + $valores = $this->pegaValores($this->mapa,$this->layer,$item,true,$ignorar);
245 if (count($valores) > 0) 244 if (count($valores) > 0)
246 { 245 {
247 //calcula o menor valor e o maior valor 246 //calcula o menor valor e o maior valor
@@ -306,7 +305,7 @@ Include: @@ -306,7 +305,7 @@ Include:
306 { 305 {
307 if(!$this->layer){return "erro";} 306 if(!$this->layer){return "erro";}
308 307
309 - $valores = pegaValores($this->mapa,$this->layer,$item,true,$ignorar); 308 + $valores = $this->pegaValores($this->mapa,$this->layer,$item,true,$ignorar);
310 if (count($valores) > 0) 309 if (count($valores) > 0)
311 { 310 {
312 if(file_exists($this->locaplic."/classe_estatistica.php")) 311 if(file_exists($this->locaplic."/classe_estatistica.php"))
@@ -383,11 +382,11 @@ $itemNome - item que será usado para definir os nomes das classes (por de @@ -383,11 +382,11 @@ $itemNome - item que será usado para definir os nomes das classes (por de
383 if($itemNome == "" || $ignorar != "") 382 if($itemNome == "" || $ignorar != "")
384 {$itemNome = $item;} 383 {$itemNome = $item;}
385 // pega valores 384 // pega valores
386 - $vs = pegaValores($this->mapa,$this->layer,$item,false,$ignorar); 385 + $vs = $this->pegaValores($this->mapa,$this->layer,$item,false,$ignorar);
387 if ($item == $itemNome) 386 if ($item == $itemNome)
388 {$ns = $vs;} 387 {$ns = $vs;}
389 else 388 else
390 - {$ns = pegaValores($this->mapa,$this->layer,$itemNome,false,$ignorar);} 389 + {$ns = $this->pegaValores($this->mapa,$this->layer,$itemNome,false,$ignorar);}
391 $lista = array(); 390 $lista = array();
392 for ($i = 0; $i < count($vs); ++$i){ 391 for ($i = 0; $i < count($vs); ++$i){
393 $temp[$vs[$i]] = $ns[$i]; 392 $temp[$vs[$i]] = $ns[$i];
@@ -700,5 +699,89 @@ $classe - id da classe @@ -700,5 +699,89 @@ $classe - id da classe
700 $this->layer->setMetaData("cache",""); 699 $this->layer->setMetaData("cache","");
701 return("ok"); 700 return("ok");
702 } 701 }
  702 + /*
  703 + Function: pegaValores
  704 +
  705 + Pega os valores de um item de um tema.
  706 +
  707 + Parametros:
  708 +
  709 + $layer {objeto} - Layer que ser&aacute; processado.
  710 +
  711 + $item {string} - Item que ser&aacute; processado.
  712 +
  713 + $numerico {boleano} - O item e numerico (true ou false).
  714 +
  715 + $ignorar {string} - valor que ser&aacute; ignorado na listagem final
  716 +
  717 + Retorno:
  718 +
  719 + {array}
  720 + */
  721 + function pegaValores($mapa,$layer,$item,$numerico=false,$ignorar="")
  722 + {
  723 + $layer->set("template","none.htm");
  724 + $layer->setfilter("");
  725 + $versao = versao();
  726 + $versao = $versao["principal"];
  727 + $ignorararray = explode(",",$ignorar);
  728 + if (@$layer->queryByrect($mapa->extent) == MS_SUCCESS)
  729 + {
  730 + $sopen = $layer->open();
  731 + if($sopen == MS_FAILURE){
  732 + return "erro";
  733 + }
  734 + $res_count = $layer->getNumresults();
  735 + $valitem = array();
  736 + for ($i=0;$i<$res_count;++$i)
  737 + {
  738 + if($versao == 6)
  739 + {
  740 + $shape = $layer->getShape($layer->getResult($i));
  741 + }
  742 + else{
  743 + $result = $layer->getResult($i);
  744 + $shp_index = $result->shapeindex;
  745 + $shape = $layer->getfeature($shp_index,-1);
  746 + }
  747 + $v = trim($shape->values[$item]);
  748 + if ($numerico)
  749 + {
  750 + if (is_numeric($v))
  751 + {
  752 + if ($ignorar == "")
  753 + {
  754 + $valitem[] = $v;
  755 + }
  756 + else
  757 + {
  758 + //if ($v != $ignorar)
  759 + if(!in_array($v,$ignorararray))
  760 + {
  761 + $valitem[] = $v;
  762 + }
  763 + }
  764 + }
  765 + }
  766 + else
  767 + {
  768 + if ($ignorar == "")
  769 + {
  770 + $valitem[] = $v;
  771 + }
  772 + else
  773 + {
  774 + if(!in_array($v,$ignorararray))
  775 + {
  776 + $valitem[] = $v;
  777 + }
  778 + }
  779 + }
  780 + }
  781 + $fechou = $layer->close();
  782 + }
  783 + $layer->close();
  784 + return ($valitem);
  785 + }
703 } 786 }
704 ?> 787 ?>
705 \ No newline at end of file 788 \ No newline at end of file
classesphp/classe_analise.php
@@ -102,10 +102,7 @@ $ext - Extens&amp;atilde;o geogr&amp;aacute;fica do mapa @@ -102,10 +102,7 @@ $ext - Extens&amp;atilde;o geogr&amp;aacute;fica do mapa
102 { 102 {
103 //error_reporting(E_ALL); 103 //error_reporting(E_ALL);
104 $this->qyfile = str_replace(".map",".qy",$map_file); 104 $this->qyfile = str_replace(".map",".qy",$map_file);
105 - if(file_exists($locaplic."/funcoes_gerais.php"))  
106 - include_once($locaplic."/funcoes_gerais.php");  
107 - else  
108 - include_once("funcoes_gerais.php"); 105 + include_once(__DIR__."/funcoes_gerais.php");
109 $this->v = versao(); 106 $this->v = versao();
110 $this->v = $this->v["principal"]; 107 $this->v = $this->v["principal"];
111 $this->dbaseExiste = false; 108 $this->dbaseExiste = false;
@@ -254,14 +251,14 @@ Include: @@ -254,14 +251,14 @@ Include:
254 break; 251 break;
255 } 252 }
256 //cria a imagem 253 //cria a imagem
257 - $minmax = criaImagemR($nomearq); 254 + $minmax = $this->criaImagemR($nomearq);
258 //cria as cores 255 //cria as cores
259 include_once("class.palette.php"); 256 include_once("class.palette.php");
260 $cori = RGB2hex(explode(",",$cori)); 257 $cori = RGB2hex(explode(",",$cori));
261 $corf = RGB2hex(explode(",",$corf)); 258 $corf = RGB2hex(explode(",",$corf));
262 $myPalette=new palette(array($cori,$corf),($numclasses + 1)); 259 $myPalette=new palette(array($cori,$corf),($numclasses + 1));
263 //cria os parametros das classes 260 //cria os parametros das classes
264 - $cls = classesRasterI($minmax[0],$minmax[1],$numclasses,$myPalette->colorRGB); 261 + $cls = $this->classesRasterI($minmax[0],$minmax[1],$numclasses,$myPalette->colorRGB);
265 if (count($cls) != $numclasses){return("erro.");} 262 if (count($cls) != $numclasses){return("erro.");}
266 //adiciona o novo tema 263 //adiciona o novo tema
267 if (file_exists($nomearq.".png")) 264 if (file_exists($nomearq.".png"))
@@ -447,7 +444,7 @@ $locaplic - Onde fica o I3Geo. @@ -447,7 +444,7 @@ $locaplic - Onde fica o I3Geo.
447 $rcode[] = 'cat("<br><img src=contordensidade.png />\n", file = zz)'; 444 $rcode[] = 'cat("<br><img src=contordensidade.png />\n", file = zz)';
448 $rcode[] = 'sink()'; 445 $rcode[] = 'sink()';
449 $rcode[] = 'close(zz)'; 446 $rcode[] = 'close(zz)';
450 - $r = executaR($rcode,$dir_tmp,$R_path); 447 + $r = $this->executaR($rcode,$dir_tmp,$R_path);
451 } 448 }
452 /* 449 /*
453 function: mapaCluster 450 function: mapaCluster
@@ -500,7 +497,7 @@ $sigma - Bandwidth for kernel smoother in &quot;smooth&quot; option. @@ -500,7 +497,7 @@ $sigma - Bandwidth for kernel smoother in &quot;smooth&quot; option.
500 $rcode[] = 'library(spatclus)'; 497 $rcode[] = 'library(spatclus)';
501 $rcode[] = 'RES <- clus(d1,d2,limx='.$dimx.',limy='.$dimy.',eps=0.2)'; 498 $rcode[] = 'RES <- clus(d1,d2,limx='.$dimx.',limy='.$dimy.',eps=0.2)';
502 //var_dump($rcode); 499 //var_dump($rcode);
503 - $r = executaR($rcode,$dir_tmp,$R_path,$gfile_name); 500 + $r = $this->executaR($rcode,$dir_tmp,$R_path,$gfile_name);
504 return "ok"; 501 return "ok";
505 } 502 }
506 503
@@ -561,7 +558,7 @@ $sigma - Bandwidth for kernel smoother in &quot;smooth&quot; option. @@ -561,7 +558,7 @@ $sigma - Bandwidth for kernel smoother in &quot;smooth&quot; option.
561 $rcode[] = 'cat(img$yrange,file="'.$arqpt.'h",append=TRUE,fill=TRUE)'; 558 $rcode[] = 'cat(img$yrange,file="'.$arqpt.'h",append=TRUE,fill=TRUE)';
562 $rcode[] = 'cat(img$dim,file="'.$arqpt.'h",append=TRUE,fill=TRUE)'; 559 $rcode[] = 'cat(img$dim,file="'.$arqpt.'h",append=TRUE,fill=TRUE)';
563 //var_dump($rcode); 560 //var_dump($rcode);
564 - $r = executaR($rcode,$dir_tmp,$R_path,$gfile_name); 561 + $r = $this->executaR($rcode,$dir_tmp,$R_path,$gfile_name);
565 return "ok"; 562 return "ok";
566 } 563 }
567 /* 564 /*
@@ -614,7 +611,7 @@ $locaplic - Onde fica o I3Geo. @@ -614,7 +611,7 @@ $locaplic - Onde fica o I3Geo.
614 $rcode[] = 'cat(img$xrange,file="'.$arqpt.'h",append=TRUE,fill=TRUE)'; 611 $rcode[] = 'cat(img$xrange,file="'.$arqpt.'h",append=TRUE,fill=TRUE)';
615 $rcode[] = 'cat(img$yrange,file="'.$arqpt.'h",append=TRUE,fill=TRUE)'; 612 $rcode[] = 'cat(img$yrange,file="'.$arqpt.'h",append=TRUE,fill=TRUE)';
616 $rcode[] = 'cat(img$dim,file="'.$arqpt.'h",append=TRUE,fill=TRUE)'; 613 $rcode[] = 'cat(img$dim,file="'.$arqpt.'h",append=TRUE,fill=TRUE)';
617 - $r = executaR($rcode,$dir_tmp,$R_path,$gfile_name); 614 + $r = $this->executaR($rcode,$dir_tmp,$R_path,$gfile_name);
618 return "ok"; 615 return "ok";
619 } 616 }
620 /* 617 /*
@@ -668,7 +665,7 @@ $locaplic - Onde fica o I3Geo. @@ -668,7 +665,7 @@ $locaplic - Onde fica o I3Geo.
668 $rcode[] = 'cat(img$xrange,file="'.$arqpt.'h",append=TRUE,fill=TRUE)'; 665 $rcode[] = 'cat(img$xrange,file="'.$arqpt.'h",append=TRUE,fill=TRUE)';
669 $rcode[] = 'cat(img$yrange,file="'.$arqpt.'h",append=TRUE,fill=TRUE)'; 666 $rcode[] = 'cat(img$yrange,file="'.$arqpt.'h",append=TRUE,fill=TRUE)';
670 $rcode[] = 'cat(img$dim,file="'.$arqpt.'h",append=TRUE,fill=TRUE)'; 667 $rcode[] = 'cat(img$dim,file="'.$arqpt.'h",append=TRUE,fill=TRUE)';
671 - $r = executaR($rcode,$dir_tmp,$R_path,$gfile_name); 668 + $r = $this->executaR($rcode,$dir_tmp,$R_path,$gfile_name);
672 return "ok"; 669 return "ok";
673 } 670 }
674 /* 671 /*
@@ -713,7 +710,7 @@ $locaplic - Onde fica o I3Geo. @@ -713,7 +710,7 @@ $locaplic - Onde fica o I3Geo.
713 $rcode[] = 'pt <- deldir(dadosx, dadosy)'; 710 $rcode[] = 'pt <- deldir(dadosx, dadosy)';
714 $rcode[] = 'write.csv(pt$delsgs,file="'.$arqpt.'delsgs")'; 711 $rcode[] = 'write.csv(pt$delsgs,file="'.$arqpt.'delsgs")';
715 $rcode[] = 'write.csv(pt$dirsgs,file="'.$arqpt.'dirsgs")'; 712 $rcode[] = 'write.csv(pt$dirsgs,file="'.$arqpt.'dirsgs")';
716 - $r = executaR($rcode,$dir_tmp,$R_path,$gfile_name); 713 + $r = $this->executaR($rcode,$dir_tmp,$R_path,$gfile_name);
717 return "ok"; 714 return "ok";
718 } 715 }
719 /* 716 /*
@@ -2733,5 +2730,141 @@ $geos - array com os dados @@ -2733,5 +2730,141 @@ $geos - array com os dados
2733 fwrite($fp,$r); 2730 fwrite($fp,$r);
2734 fclose($fp); 2731 fclose($fp);
2735 } 2732 }
  2733 +/*
  2734 +Function: classesRasterI
  2735 +
  2736 +Gera par&acirc;metros para classifica&ccedil;&atilde;o de imagens.
  2737 +
  2738 +Gera a express&atilde;o e as cores para uso em classes com intervalos iguais para representa&ccedil;&atilde;o de imagens raster.
  2739 +
  2740 +Parametros:
  2741 +
  2742 +$minvalor {numeric} - Menor valor existente na s&eacute;rie
  2743 +
  2744 +$maxvalor {numeric} - Maior valor
  2745 +
  2746 +$nclasses {numeric} - N&uacute;mero de classes
  2747 +
  2748 +$cores {array} - Cores. Array de array de cores cores[0] = array(r,g,b)
  2749 +
  2750 +Retorno:
  2751 +
  2752 +(start code)
  2753 +array(
  2754 + array(
  2755 + "nomeclasse"=>,
  2756 + "expressao"=>,
  2757 + "cores"=>
  2758 + )
  2759 +)
  2760 +(end)
  2761 +*/
  2762 +//error_reporting(0);
  2763 + function classesRasterI($minvalor,$maxvalor,$nclasses,$cores)
  2764 + {
  2765 + $resultado = array();
  2766 + $intervalo = intval(250 / $nclasses);
  2767 + $trans = 250 / ($maxvalor - $minvalor);
  2768 + $intervalo = (($maxvalor*$trans) - ($minvalor*$trans)) / $nclasses;
  2769 + $conta = 0;
  2770 + for ($i=0; $i < $nclasses; ++$i)
  2771 + {
  2772 + $expressao = "([pixel]>=".$conta." and [pixel]<".($conta+$intervalo).")";
  2773 + $nomeclasse = ">= ".($conta/$trans)." e < que ".(($conta + $intervalo)/$trans);
  2774 + $resultado[] = array("nomeclasse"=>$nomeclasse,"expressao"=>$expressao,"cores"=>$cores[$i]);
  2775 + $conta = $conta + $intervalo;
  2776 + }
  2777 + return $resultado;
  2778 + }
  2779 + function executaR($rcode,$dir_tmp,$R_path,$gfile_name="")
  2780 + {
  2781 + $R_options = "--slave --no-save";
  2782 + $r_name = nomeRandomico(20);
  2783 + $r_input = $dir_tmp."/".$r_name.".R";
  2784 + $r_output = $dir_tmp."/".$r_name.".Rout";
  2785 + gravaDados($rcode,$r_input);
  2786 + $command = $R_path." $R_options < $r_input > $r_output";
  2787 + $result = "";
  2788 + $error = "";
  2789 + $exec_result = exec($command,$result,$error);
  2790 + //corta a imagem final
  2791 + //include_once("classe_imagem.php");
  2792 + //$m = new Imagem($dir_tmp."/".$gfile_name.".png");
  2793 + //$i = $m->cortaBorda();
  2794 + //imagepng($i,$dir_tmp."/".$gfile_name.".png");
  2795 + return($r_input);
  2796 + }
  2797 + /*
  2798 + Function: criaImagemR
  2799 +
  2800 + Cria uma imagem png a partir de dados armazenados em disco.
  2801 +
  2802 + Utilizado para gerar uma imagem com base nos resultados de comandos R.
  2803 +
  2804 + O nome da imagem criada ser&aacute; o mesmo nome de $nomearq, por&eacute;m com extens&atilde;o .png
  2805 +
  2806 + Parametros:
  2807 +
  2808 + $nomearq {string} - Nome do arquivo no servidor que ser&aacute; utilizado para gerar a imagem.
  2809 +
  2810 + Retorno:
  2811 +
  2812 + {array($minpixel,$maxpixel)} - tamanho da imagem gerada.
  2813 + */
  2814 + function criaImagemR($nomearq)
  2815 + {
  2816 + if (!file_exists($nomearq."img"))
  2817 + {return "erro";}
  2818 + //pega os parametros
  2819 + $abre = fopen($nomearq."h", "r");
  2820 + while (!feof($abre))
  2821 + {
  2822 + $buffer = fgets($abre);
  2823 + $pararray[] = $buffer;
  2824 + }
  2825 + fclose($abre);
  2826 + $xsize = $pararray[0];
  2827 + $ysize = $pararray[1];
  2828 + $xdim = $pararray[2];
  2829 + $ydim = $pararray[3];
  2830 + $wh = explode(" ",$pararray[4]);
  2831 + // pega os valores dos pixels
  2832 + $abre = fopen($nomearq."img", "r");
  2833 + $buffer = fgets($abre);
  2834 + fclose($abre);
  2835 + $pixelimg = explode(" ",$buffer);
  2836 + $minpixel = min($pixelimg);
  2837 + $maxpixel = max($pixelimg);
  2838 + $trans = 250 / ($maxpixel - $minpixel);
  2839 + $img = imagecreatetruecolor($wh[0],$wh[1]);
  2840 + $celula = 0;
  2841 + for ($x = 0; $x < $wh[0]; ++$x)
  2842 + {
  2843 + for ($y = ($wh[1] - 1); $y >= 0; $y--)
  2844 + {
  2845 + $cor = imagecolorresolve($img,$pixelimg[$celula] * $trans, $pixelimg[$celula] * $trans, $pixelimg[$celula] * $trans);
  2846 + imagesetpixel($img, $x, $y,$cor);
  2847 + $celula = $celula + 1;
  2848 + }
  2849 + }
  2850 + Imagepng($img,$nomearq.".png");
  2851 + ImageDestroy($nomearq.".png");
  2852 + $dadosw[] = trim($xsize);
  2853 + $dadosw[] = 0;
  2854 + $dadosw[] = 0;
  2855 + $dadosw[] = trim($ysize * -1);
  2856 + $temp = explode(" ",$xdim);
  2857 + $dadosw[] = trim($temp[0]);
  2858 + $temp = explode(" ",$ydim);
  2859 + $dadosw[] = trim($temp[1]);
  2860 + $fp = fopen($nomearq.".wld","w");
  2861 + foreach ($dadosw as $dado)
  2862 + {
  2863 + fwrite($fp,$dado."\n");
  2864 + }
  2865 + fclose($fp);
  2866 + $retorno = array($minpixel,$maxpixel);
  2867 + return $retorno;
  2868 + }
2736 } 2869 }
2737 ?> 2870 ?>
2738 \ No newline at end of file 2871 \ No newline at end of file
classesphp/classe_legenda.php
@@ -710,7 +710,7 @@ $opacidade - Opacidade @@ -710,7 +710,7 @@ $opacidade - Opacidade
710 if ($this->layer->getmetadata("sld") != "") 710 if ($this->layer->getmetadata("sld") != "")
711 { 711 {
712 $sld = $this->layer->getmetadata("sld"); 712 $sld = $this->layer->getmetadata("sld");
713 - reSLD($this->arquivo,$this->nome,$sld); 713 + $this->reSLD($this->arquivo,$this->nome,$sld);
714 } 714 }
715 $this->layer->setMetaData("cache",""); 715 $this->layer->setMetaData("cache","");
716 return "ok"; 716 return "ok";
@@ -832,5 +832,36 @@ $width @@ -832,5 +832,36 @@ $width
832 } 832 }
833 return("ok"); 833 return("ok");
834 } 834 }
  835 + /*
  836 + Function: reSLD
  837 +
  838 + Gera o SLD de um tema WMS.
  839 +
  840 + Parametros:
  841 +
  842 + $map_file {string} - arquivo map_file
  843 +
  844 + $tema {string} - código do tema
  845 +
  846 + $sld {string} - arquivo onde o sld ser&aacute; gravado
  847 + */
  848 + function reSLD($map_file,$tema,$sld)
  849 + {
  850 + $map = ms_newMapObj($map_file);
  851 + $layer = $map->getlayerbyname($tema);
  852 + $layer->set("name",$layer->getmetadata("nomeoriginal"));
  853 + $tiporep = $layer->getmetadata("tipooriginal");
  854 + $layer->set("type",MS_LAYER_POLYGON);
  855 + if ($tiporep == "linear")
  856 + {$layer->set("type",MS_LAYER_LINE);}
  857 + if ($tiporep == "pontual")
  858 + {$layer->set("type",MS_LAYER_POINT);}
  859 + $sldf = $layer->generateSLD();
  860 + if (file_exists($sld))
  861 + {unlink($sld);}
  862 + $fp = fopen($sld, "a");
  863 + fputs( $fp, $sldf );
  864 + fclose($fp);
  865 + }
835 } 866 }
836 ?> 867 ?>
837 \ No newline at end of file 868 \ No newline at end of file
classesphp/funcoes_gerais.php
@@ -32,207 +32,6 @@ Arquivo: @@ -32,207 +32,6 @@ Arquivo:
32 i3geo/classesphp/funcoes_gerais.php 32 i3geo/classesphp/funcoes_gerais.php
33 */ 33 */
34 /* 34 /*
35 -Section: Imagens  
36 -*/  
37 -/*  
38 -Function: classesRasterI  
39 -  
40 -Gera par&acirc;metros para classifica&ccedil;&atilde;o de imagens.  
41 -  
42 -Gera a express&atilde;o e as cores para uso em classes com intervalos iguais para representa&ccedil;&atilde;o de imagens raster.  
43 -  
44 -Parametros:  
45 -  
46 -$minvalor {numeric} - Menor valor existente na s&eacute;rie  
47 -  
48 -$maxvalor {numeric} - Maior valor  
49 -  
50 -$nclasses {numeric} - N&uacute;mero de classes  
51 -  
52 -$cores {array} - Cores. Array de array de cores cores[0] = array(r,g,b)  
53 -  
54 -Retorno:  
55 -  
56 -(start code)  
57 -array(  
58 - array(  
59 - "nomeclasse"=>,  
60 - "expressao"=>,  
61 - "cores"=>  
62 - )  
63 -)  
64 -(end)  
65 -*/  
66 -//error_reporting(0);  
67 -function classesRasterI($minvalor,$maxvalor,$nclasses,$cores)  
68 -{  
69 - $resultado = array();  
70 - $intervalo = intval(250 / $nclasses);  
71 - $trans = 250 / ($maxvalor - $minvalor);  
72 - $intervalo = (($maxvalor*$trans) - ($minvalor*$trans)) / $nclasses;  
73 - $conta = 0;  
74 - for ($i=0; $i < $nclasses; ++$i)  
75 - {  
76 - $expressao = "([pixel]>=".$conta." and [pixel]<".($conta+$intervalo).")";  
77 - $nomeclasse = ">= ".($conta/$trans)." e < que ".(($conta + $intervalo)/$trans);  
78 - $resultado[] = array("nomeclasse"=>$nomeclasse,"expressao"=>$expressao,"cores"=>$cores[$i]);  
79 - $conta = $conta + $intervalo;  
80 - }  
81 - return $resultado;  
82 -}  
83 -/*  
84 -Function: fusaoGrafico  
85 -  
86 -Faz a fusao de uma imagem com outra grafico+imagem.  
87 -  
88 -Globais:  
89 -  
90 -$imagem {objeto} - imagem base, caso $map_file for ""  
91 -  
92 -$grafico {objeto} - imagem do grafico  
93 -  
94 -$dir_tmp {string} - diretorio onde estao as imagens  
95 -  
96 -$cp {CPAINT} - Objeto CPAINT  
97 -  
98 -$map_file [string} - arquivo mapfile que ser&aacute; utilizado para gerar a imagem base. Se for "", ser&aacute; utilizado a imagem definida em $imagem  
99 -  
100 -Retorno:  
101 -  
102 -{string} - endere&ccedil;o da imagem criada  
103 -  
104 -*/  
105 -function fusaoGrafico()  
106 -{  
107 - global $imagem,$grafico,$dir_tmp,$map_file;  
108 - include_once("classe_imagem.php");  
109 - if($map_file != "")  
110 - {  
111 - $mapa = ms_newMapObj($map_file);  
112 - $imgo = $mapa->draw();  
113 - $nome = ($imgo->imagepath).nomeRandomico().".png";  
114 - $imgo->saveImage($nome);  
115 - $imagem = ($imgo->imageurl).basename($nome);  
116 - //$imgo->free();  
117 - }  
118 - $m = new Imagem(dirname($dir_tmp).$imagem);  
119 - $i = $m->fundeIm(dirname($dir_tmp).$grafico);  
120 - imagepng($i,dirname($dir_tmp).$imagem);  
121 - return ($imagem);  
122 -}  
123 -/*  
124 -Section: R  
125 -*/  
126 -/*  
127 -Function: executaR  
128 -  
129 -Executa comandos do R.  
130 -  
131 -Parametros:  
132 -  
133 -$rcode {array} - Código que ser&aacute; executado.  
134 -  
135 -$dir_tmp {string} - Diretório tempor&aacute;rio onde ficar&atilde;o os arquivos para processamento.  
136 -  
137 -$R_path {string} - Execut&aacute;vel do R.  
138 -  
139 -$gfile_name {string} - nome da imagem que ser&aacute; criada  
140 -  
141 -Retorno:  
142 -  
143 -{string} - nome do arquivo com o código R que foi executado  
144 -*/  
145 -function executaR($rcode,$dir_tmp,$R_path,$gfile_name="")  
146 -{  
147 - $R_options = "--slave --no-save";  
148 - $r_name = nomeRandomico(20);  
149 - $r_input = $dir_tmp."/".$r_name.".R";  
150 - $r_output = $dir_tmp."/".$r_name.".Rout";  
151 - gravaDados($rcode,$r_input);  
152 - $command = $R_path." $R_options < $r_input > $r_output";  
153 - $result = "";  
154 - $error = "";  
155 - $exec_result = exec($command,$result,$error);  
156 - //corta a imagem final  
157 - //include_once("classe_imagem.php");  
158 - //$m = new Imagem($dir_tmp."/".$gfile_name.".png");  
159 - //$i = $m->cortaBorda();  
160 - //imagepng($i,$dir_tmp."/".$gfile_name.".png");  
161 - return($r_input);  
162 -}  
163 -/*  
164 -Function: criaImagemR  
165 -  
166 -Cria uma imagem png a partir de dados armazenados em disco.  
167 -  
168 -Utilizado para gerar uma imagem com base nos resultados de comandos R.  
169 -  
170 -O nome da imagem criada ser&aacute; o mesmo nome de $nomearq, por&eacute;m com extens&atilde;o .png  
171 -  
172 -Parametros:  
173 -  
174 -$nomearq {string} - Nome do arquivo no servidor que ser&aacute; utilizado para gerar a imagem.  
175 -  
176 -Retorno:  
177 -  
178 -{array($minpixel,$maxpixel)} - tamanho da imagem gerada.  
179 -*/  
180 -function criaImagemR($nomearq)  
181 -{  
182 - if (!file_exists($nomearq."img"))  
183 - {return "erro";}  
184 - //pega os parametros  
185 - $abre = fopen($nomearq."h", "r");  
186 - while (!feof($abre))  
187 - {  
188 - $buffer = fgets($abre);  
189 - $pararray[] = $buffer;  
190 - }  
191 - fclose($abre);  
192 - $xsize = $pararray[0];  
193 - $ysize = $pararray[1];  
194 - $xdim = $pararray[2];  
195 - $ydim = $pararray[3];  
196 - $wh = explode(" ",$pararray[4]);  
197 - // pega os valores dos pixels  
198 - $abre = fopen($nomearq."img", "r");  
199 - $buffer = fgets($abre);  
200 - fclose($abre);  
201 - $pixelimg = explode(" ",$buffer);  
202 - $minpixel = min($pixelimg);  
203 - $maxpixel = max($pixelimg);  
204 - $trans = 250 / ($maxpixel - $minpixel);  
205 - $img = imagecreatetruecolor($wh[0],$wh[1]);  
206 - $celula = 0;  
207 - for ($x = 0; $x < $wh[0]; ++$x)  
208 - {  
209 - for ($y = ($wh[1] - 1); $y >= 0; $y--)  
210 - {  
211 - $cor = imagecolorresolve($img,$pixelimg[$celula] * $trans, $pixelimg[$celula] * $trans, $pixelimg[$celula] * $trans);  
212 - imagesetpixel($img, $x, $y,$cor);  
213 - $celula = $celula + 1;  
214 - }  
215 - }  
216 - Imagepng($img,$nomearq.".png");  
217 - ImageDestroy($nomearq.".png");  
218 - $dadosw[] = trim($xsize);  
219 - $dadosw[] = 0;  
220 - $dadosw[] = 0;  
221 - $dadosw[] = trim($ysize * -1);  
222 - $temp = explode(" ",$xdim);  
223 - $dadosw[] = trim($temp[0]);  
224 - $temp = explode(" ",$ydim);  
225 - $dadosw[] = trim($temp[1]);  
226 - $fp = fopen($nomearq.".wld","w");  
227 - foreach ($dadosw as $dado)  
228 - {  
229 - fwrite($fp,$dado."\n");  
230 - }  
231 - fclose($fp);  
232 - $retorno = array($minpixel,$maxpixel);  
233 - return $retorno;  
234 -}  
235 -/*  
236 Section: cor 35 Section: cor
237 */ 36 */
238 /* 37 /*
@@ -1016,7 +815,7 @@ function desligamargem($objmapa) @@ -1016,7 +815,7 @@ function desligamargem($objmapa)
1016 return $objmapa; 815 return $objmapa;
1017 } 816 }
1018 /* 817 /*
1019 -Function: desligaTemas 818 +Function: desligaTemas (depreciado na versao 4.7)
1020 819
1021 Desliga todos os temas de um mapa. 820 Desliga todos os temas de um mapa.
1022 821
@@ -1097,281 +896,6 @@ function gravaImagemMapa($mapa) @@ -1097,281 +896,6 @@ function gravaImagemMapa($mapa)
1097 Section: atributos 896 Section: atributos
1098 */ 897 */
1099 /* 898 /*
1100 -Function: pegaValores  
1101 -  
1102 -Pega os valores de um item de um tema.  
1103 -  
1104 -Parametros:  
1105 -  
1106 -$layer {objeto} - Layer que ser&aacute; processado.  
1107 -  
1108 -$item {string} - Item que ser&aacute; processado.  
1109 -  
1110 -$numerico {boleano} - O item e numerico (true ou false).  
1111 -  
1112 -$ignorar {string} - valor que ser&aacute; ignorado na listagem final  
1113 -  
1114 -Retorno:  
1115 -  
1116 -{array}  
1117 -*/  
1118 -function pegaValores($mapa,$layer,$item,$numerico=false,$ignorar="")  
1119 -{  
1120 - $layer->set("template","none.htm");  
1121 - $layer->setfilter("");  
1122 - $versao = versao();  
1123 - $versao = $versao["principal"];  
1124 - $ignorararray = explode(",",$ignorar);  
1125 - if (@$layer->queryByrect($mapa->extent) == MS_SUCCESS)  
1126 - {  
1127 - $sopen = $layer->open();  
1128 - if($sopen == MS_FAILURE){  
1129 - return "erro";  
1130 - }  
1131 - $res_count = $layer->getNumresults();  
1132 - $valitem = array();  
1133 - for ($i=0;$i<$res_count;++$i)  
1134 - {  
1135 - if($versao == 6)  
1136 - {  
1137 - $shape = $layer->getShape($layer->getResult($i));  
1138 - }  
1139 - else{  
1140 - $result = $layer->getResult($i);  
1141 - $shp_index = $result->shapeindex;  
1142 - $shape = $layer->getfeature($shp_index,-1);  
1143 - }  
1144 - $v = trim($shape->values[$item]);  
1145 - if ($numerico)  
1146 - {  
1147 - if (is_numeric($v))  
1148 - {  
1149 - if ($ignorar == "")  
1150 - {  
1151 - $valitem[] = $v;  
1152 - }  
1153 - else  
1154 - {  
1155 - //if ($v != $ignorar)  
1156 - if(!in_array($v,$ignorararray))  
1157 - {  
1158 - $valitem[] = $v;  
1159 - }  
1160 - }  
1161 - }  
1162 - }  
1163 - else  
1164 - {  
1165 - if ($ignorar == "")  
1166 - {  
1167 - $valitem[] = $v;  
1168 - }  
1169 - else  
1170 - {  
1171 - if(!in_array($v,$ignorararray))  
1172 - {  
1173 - $valitem[] = $v;  
1174 - }  
1175 - }  
1176 - }  
1177 - }  
1178 - $fechou = $layer->close();  
1179 - }  
1180 - $layer->close();  
1181 - return ($valitem);  
1182 -}  
1183 -/*  
1184 -Function: pegaValoresM  
1185 -  
1186 -Pega os valores de m&uacute;ltiplos itens de um tema.  
1187 -  
1188 -Se for passado apenas um item, o array de retorno ser&aacute; unidimensional.  
1189 -  
1190 -Parametros:  
1191 -  
1192 -$layer {objeto} - Layer que ser&aacute; processado.  
1193 -  
1194 -$itens {array} - Itens que ser&atilde;o processados.  
1195 -  
1196 -$exclui {string} - O registro n&atilde;o ser&aacute; considerado se um dos valores for igual a esse valor.  
1197 -  
1198 -$selecionados {string} - sim|nao Utiliza apenas os selecionados ou todos  
1199 -  
1200 -$chaves {boolean} - inclui ou n&atilde;o os nomes dos itens como chave no array resultante  
1201 -  
1202 -$centroide {boolean} - captura ou n&atilde;o o WKT com o centroide do elemento  
1203 -  
1204 -Retorno:  
1205 -  
1206 -{array}  
1207 -*/  
1208 -function pegaValoresM($mapa,$layer,$itens,$exclui="nulo",$selecionados="nao",$chaves=false,$centroide=false)  
1209 -{  
1210 - $versao = versao();  
1211 - $versao = $versao["principal"];  
1212 - $prjMapa = $mapa->getProjection();  
1213 - $prjTema = $layer->getProjection();  
1214 - $layer->set("template","none.htm");  
1215 - $layer->setfilter("");  
1216 -  
1217 - $indicesel = array();  
1218 - //pega os valores dos indices dos elementos selecionados para comparacao posterior  
1219 - if ($selecionados == "sim")  
1220 - {  
1221 - $sopen = $layer->open();  
1222 - if($sopen == MS_FAILURE){return "erro";}  
1223 - $res_count = $layer->getNumresults();  
1224 - for ($i = 0; $i < $res_count; ++$i)  
1225 - {  
1226 - $result = $layer->getResult($i);  
1227 - $indicesel[] = $result->shapeindex;  
1228 - }  
1229 - $layer->close();  
1230 - }  
1231 - $valores = array();  
1232 - $nclasses = $layer->numclasses;  
1233 - if (@$layer->queryByrect($mapa->extent) == MS_SUCCESS)  
1234 - {  
1235 - //$layer->draw();  
1236 - $sopen = $layer->open();  
1237 - if($sopen == MS_FAILURE){return "erro";}  
1238 - $res_count = $layer->getNumresults();  
1239 -  
1240 - for ($i=0;$i<$res_count;++$i)  
1241 - {  
1242 - if($versao == 6){  
1243 - $shape = $layer->getShape($layer->getResult($i));  
1244 - $shp_index = $shape->index;  
1245 - }  
1246 - else{  
1247 - $result = $layer->getResult($i);  
1248 - $shp_index = $result->shapeindex;  
1249 - $shape = $layer->getfeature($shp_index,-1);  
1250 - }  
1251 - if (($selecionados == "sim") && (array_search($shp_index,$indicesel) === FALSE))  
1252 - {continue;}  
1253 - $considera = "sim";  
1254 - //verifica se no registro deve ser considerado  
1255 - if ($exclui != "nulo")  
1256 - {  
1257 - foreach ($itens as $item)  
1258 - {if($shape->values[$item] == $exclui){$considera = "nao";}}  
1259 - }  
1260 - //pega os valores  
1261 - $v = array();  
1262 - if ($considera == "sim")  
1263 - {  
1264 - foreach ($itens as $item){  
1265 - if($chaves == false)  
1266 - {$v[] = $shape->values[$item];}  
1267 - else  
1268 - {$v[$item] = $shape->values[$item];}  
1269 - }  
1270 - if($centroide == true){  
1271 - $c = $shape->getCentroid();  
1272 - if (($prjTema != "") && ($prjMapa != $prjTema))  
1273 - {  
1274 - $projOutObj = ms_newprojectionobj($prjTema);  
1275 - $projInObj = ms_newprojectionobj($prjMapa);  
1276 - $c->project($projInObj, $projOutObj);  
1277 - }  
1278 - $v["centroide"] = "POINT(".$c->x." ".$c->y.")";  
1279 - }  
1280 - if($nclasses > 0){  
1281 - $classe = $layer->getclass($shape->classindex);  
1282 - $cor = $classe->getstyle(0)->color;  
1283 - $v["cores"] = $cor->red." ".$cor->green." ".$cor->blue;  
1284 - }  
1285 - if (count($v) == 1)  
1286 - {$valores[] = $v[0];}  
1287 - else  
1288 - {$valores[] = $v;}  
1289 - }  
1290 - }  
1291 - $layer->close();  
1292 - }  
1293 - return ($valores);  
1294 -}  
1295 -/*  
1296 -Function: agrupaValores  
1297 -  
1298 -Agrupa os valores de um array por um m&eacute;todo de c&aacute;lculo.  
1299 -  
1300 -No caso de soma e m&eacute;dia, ser&aacute; considerado apenas um item e uma chave.  
1301 -  
1302 -Parametros:  
1303 -  
1304 -$lista {array} - Lista com os arrays contendo os dados que ser&atilde;o processados.  
1305 -  
1306 -$indiceChave {string} - &Iacute;ndice do array da lista que ser&aacute; considerado como a chave do array.  
1307 -  
1308 -$indiceValor {string} - &Iacute;ndice do array da lista que ser&aacute; considerado como o valor.  
1309 -  
1310 -$tipo {string} - Tipo de processamento soma|media|contagem|nenhum.  
1311 -  
1312 -Retorno:  
1313 -  
1314 -{array}  
1315 -*/  
1316 -function agrupaValores($lista,$indiceChave,$indiceValor,$tipo)  
1317 -{  
1318 - $valores = null;  
1319 - foreach ($lista as $linha)  
1320 - {  
1321 - $c = $linha[$indiceChave];  
1322 - $v = $linha[$indiceValor];  
1323 - if ($tipo == "conta")  
1324 - {  
1325 - if(@$valores[$c])  
1326 - $valores[$c] = $valores[$c] + 1;  
1327 - else  
1328 - $valores[$c] = 1;  
1329 - }  
1330 - if (($tipo == "soma"))  
1331 - {  
1332 - if (($v != "") && (is_numeric($v)))  
1333 - {  
1334 - if(@$valores[$c])  
1335 - $valores[$c] = $valores[$c] + $v;  
1336 - else  
1337 - $valores[$c] = $v;  
1338 - }  
1339 - }  
1340 - if ($tipo == "media")  
1341 - {  
1342 - if (($v != "") && (is_numeric($v)))  
1343 - {  
1344 - if(@$soma[$c])  
1345 - $soma[$c] = $soma[$c] + $v;  
1346 - else  
1347 - $soma[$c] = $v;  
1348 -  
1349 - if(@$conta[$c])  
1350 - $conta[$c] = $conta[$c] + 1;  
1351 - else  
1352 - $conta[$c] = 1;  
1353 - }  
1354 - }  
1355 - if ($tipo == "nenhum")  
1356 - {  
1357 - //if (($v != "") && (is_numeric($v)))  
1358 - //{  
1359 - $valoresn[] = $v;  
1360 - //}  
1361 - $valores = $valoresn;  
1362 - }  
1363 - }  
1364 - if ($tipo == "media")  
1365 - {  
1366 - $chaves = array_keys($conta);  
1367 - foreach ($chaves as $c)  
1368 - {  
1369 - $valores[$c] = $soma[$c] / $conta[$c];  
1370 - }  
1371 - }  
1372 - return ($valores);  
1373 -}  
1374 -/*  
1375 Function: pegaItens 899 Function: pegaItens
1376 900
1377 Pega os itens da tabela de atributos de um tema. 901 Pega os itens da tabela de atributos de um tema.
@@ -1566,7 +1090,6 @@ function imagem2xy($map_file,$xy) @@ -1566,7 +1090,6 @@ function imagem2xy($map_file,$xy)
1566 $y = ($e->maxy) - $xy[1] * $c; 1090 $y = ($e->maxy) - $xy[1] * $c;
1567 return array($x,$y); 1091 return array($x,$y);
1568 } 1092 }
1569 -  
1570 /* 1093 /*
1571 Function: xy2wkt 1094 Function: xy2wkt
1572 1095
@@ -1675,37 +1198,6 @@ function geo2utm($x,$y,$zona) @@ -1675,37 +1198,6 @@ function geo2utm($x,$y,$zona)
1675 Section: web services 1198 Section: web services
1676 */ 1199 */
1677 /* 1200 /*
1678 -Function: reSLD  
1679 -  
1680 -Gera o SLD de um tema WMS.  
1681 -  
1682 -Parametros:  
1683 -  
1684 -$map_file {string} - arquivo map_file  
1685 -  
1686 -$tema {string} - código do tema  
1687 -  
1688 -$sld {string} - arquivo onde o sld ser&aacute; gravado  
1689 -*/  
1690 -function reSLD($map_file,$tema,$sld)  
1691 -{  
1692 - $map = ms_newMapObj($map_file);  
1693 - $layer = $map->getlayerbyname($tema);  
1694 - $layer->set("name",$layer->getmetadata("nomeoriginal"));  
1695 - $tiporep = $layer->getmetadata("tipooriginal");  
1696 - $layer->set("type",MS_LAYER_POLYGON);  
1697 - if ($tiporep == "linear")  
1698 - {$layer->set("type",MS_LAYER_LINE);}  
1699 - if ($tiporep == "pontual")  
1700 - {$layer->set("type",MS_LAYER_POINT);}  
1701 - $sldf = $layer->generateSLD();  
1702 - if (file_exists($sld))  
1703 - {unlink($sld);}  
1704 - $fp = fopen($sld, "a");  
1705 - fputs( $fp, $sldf );  
1706 - fclose($fp);  
1707 -}  
1708 -/*  
1709 georssCanais (depreciado) 1201 georssCanais (depreciado)
1710 1202
1711 Lista os canais de um GeoRss. 1203 Lista os canais de um GeoRss.
@@ -2644,50 +2136,6 @@ function removeAcentos($var) @@ -2644,50 +2136,6 @@ function removeAcentos($var)
2644 return str_replace($a, $b, $var); 2136 return str_replace($a, $b, $var);
2645 } 2137 }
2646 /* 2138 /*
2647 -Function: criaDirMapa  
2648 -  
2649 -Cria os diretórios tempor&aacute;rios para a aplica&ccedil;&atilde;o.  
2650 -  
2651 -Parametro:  
2652 -  
2653 -$dir_tmp {string} - Diretório tempor&aacute;rio (no servidor) utilizado pelo mapserver.  
2654 -  
2655 -$$cachedir {string} - Diretório de cache tempor&aacute;rio definido no ms_configura.php  
2656 -  
2657 -Retorno:  
2658 -  
2659 -{boleano}  
2660 -*/  
2661 -function criaDirMapa($dir_tmp,$cachedir="")  
2662 -{  
2663 - if(!file_exists($dir_tmp)){  
2664 - @mkdir ($dir_tmp,0777);  
2665 - }  
2666 - if(file_exists($dir_tmp))  
2667 - {  
2668 - $tmpdirname = nomeRandomico();  
2669 - $crdir = @mkdir ($dir_tmp."/".$tmpdirname,0777);  
2670 - $crdiri = @mkdir ($dir_tmp."/img".$tmpdirname,0777);  
2671 - $mapfile = $dir_tmp."/".$tmpdirname."/".$tmpdirname.".map";  
2672 - $tmpimgname = "img".$tmpdirname;  
2673 - @mkdir($dir_tmp."/comum",0777);  
2674 - if($cachedir == ""){  
2675 - @mkdir($dir_tmp."/cache",0777);  
2676 - @mkdir($dir_tmp."/cache/googlemaps",0777);  
2677 - }  
2678 - else{  
2679 - @mkdir($cachedir,0777);  
2680 - @mkdir($cachedir."/googlemaps",0777);  
2681 - }  
2682 - if(file_exists($dir_tmp."/".$tmpdirname))  
2683 - return array($mapfile,$tmpdirname,$tmpimgname);  
2684 - else  
2685 - {return false;}  
2686 - }  
2687 - else  
2688 - {return false;}  
2689 -}  
2690 -/*  
2691 Function: array2json 2139 Function: array2json
2692 2140
2693 Converte um array em uma string no formato JSON. Utiliza as fun&ccedil;&otilde;es nativas do PHP para gerar o objeto. 2141 Converte um array em uma string no formato JSON. Utiliza as fun&ccedil;&otilde;es nativas do PHP para gerar o objeto.
@@ -2867,6 +2315,7 @@ Return: @@ -2867,6 +2315,7 @@ Return:
2867 2315
2868 {string} - sim|nao 2316 {string} - sim|nao
2869 */ 2317 */
  2318 +//TODO remover
2870 function verificaEditores($editores) 2319 function verificaEditores($editores)
2871 { 2320 {
2872 if (strtolower($_SERVER['HTTP_HOST']) == "localhost") 2321 if (strtolower($_SERVER['HTTP_HOST']) == "localhost")
@@ -2989,67 +2438,6 @@ function retornaShapesSelecionados($objLayer,$map_file,$objMapa){ @@ -2989,67 +2438,6 @@ function retornaShapesSelecionados($objLayer,$map_file,$objMapa){
2989 return $shapes; 2438 return $shapes;
2990 } 2439 }
2991 /* 2440 /*
2992 -Function: permissoesarquivo  
2993 -  
2994 -Retorna as permiss&otilde;es de um arquivo  
2995 -  
2996 -Parametros:  
2997 -  
2998 -$arquivo  
2999 -*/  
3000 -function permissoesarquivo($arquivo){  
3001 - $perms = fileperms($arquivo);  
3002 -  
3003 - if (($perms & 0xC000) == 0xC000) {  
3004 - // Socket  
3005 - $info = 's';  
3006 - } elseif (($perms & 0xA000) == 0xA000) {  
3007 - // Symbolic Link  
3008 - $info = 'l';  
3009 - } elseif (($perms & 0x8000) == 0x8000) {  
3010 - // Regular  
3011 - $info = '-';  
3012 - } elseif (($perms & 0x6000) == 0x6000) {  
3013 - // Block special  
3014 - $info = 'b';  
3015 - } elseif (($perms & 0x4000) == 0x4000) {  
3016 - // Directory  
3017 - $info = 'd';  
3018 - } elseif (($perms & 0x2000) == 0x2000) {  
3019 - // Character special  
3020 - $info = 'c';  
3021 - } elseif (($perms & 0x1000) == 0x1000) {  
3022 - // FIFO pipe  
3023 - $info = 'p';  
3024 - } else {  
3025 - // Unknown  
3026 - $info = 'u';  
3027 - }  
3028 -  
3029 - // Owner  
3030 - $info .= (($perms & 0x0100) ? 'r' : '-');  
3031 - $info .= (($perms & 0x0080) ? 'w' : '-');  
3032 - $info .= (($perms & 0x0040) ?  
3033 - (($perms & 0x0800) ? 's' : 'x' ) :  
3034 - (($perms & 0x0800) ? 'S' : '-'));  
3035 -  
3036 - // Group  
3037 - $info .= (($perms & 0x0020) ? 'r' : '-');  
3038 - $info .= (($perms & 0x0010) ? 'w' : '-');  
3039 - $info .= (($perms & 0x0008) ?  
3040 - (($perms & 0x0400) ? 's' : 'x' ) :  
3041 - (($perms & 0x0400) ? 'S' : '-'));  
3042 -  
3043 - // World  
3044 - $info .= (($perms & 0x0004) ? 'r' : '-');  
3045 - $info .= (($perms & 0x0002) ? 'w' : '-');  
3046 - $info .= (($perms & 0x0001) ?  
3047 - (($perms & 0x0200) ? 't' : 'x' ) :  
3048 - (($perms & 0x0200) ? 'T' : '-'));  
3049 -  
3050 - return $info;  
3051 -}  
3052 -/*  
3053 Function: validaAcessoTemas 2441 Function: validaAcessoTemas
3054 2442
3055 Remocao dos layers com restricoes de acesso registradas no sistema de controle de usuarios 2443 Remocao dos layers com restricoes de acesso registradas no sistema de controle de usuarios
classesphp/graficos.php
@@ -580,4 +580,234 @@ function dadosPerfilRelevo($pontos,$opcao,$amostragem,$item=&quot;&quot;,$map_file=&quot;&quot;){ @@ -580,4 +580,234 @@ function dadosPerfilRelevo($pontos,$opcao,$amostragem,$item=&quot;&quot;,$map_file=&quot;&quot;){
580 } 580 }
581 return $result; 581 return $result;
582 } 582 }
  583 +/*
  584 +Function: executaR
  585 +
  586 +Executa comandos do R.
  587 +
  588 +Parametros:
  589 +
  590 +$rcode {array} - Código que ser&aacute; executado.
  591 +
  592 +$dir_tmp {string} - Diretório tempor&aacute;rio onde ficar&atilde;o os arquivos para processamento.
  593 +
  594 +$R_path {string} - Execut&aacute;vel do R.
  595 +
  596 +$gfile_name {string} - nome da imagem que ser&aacute; criada
  597 +
  598 +Retorno:
  599 +
  600 +{string} - nome do arquivo com o código R que foi executado
  601 +*/
  602 +
  603 +function executaR($rcode,$dir_tmp,$R_path,$gfile_name="")
  604 +{
  605 + $R_options = "--slave --no-save";
  606 + $r_name = nomeRandomico(20);
  607 + $r_input = $dir_tmp."/".$r_name.".R";
  608 + $r_output = $dir_tmp."/".$r_name.".Rout";
  609 + gravaDados($rcode,$r_input);
  610 + $command = $R_path." $R_options < $r_input > $r_output";
  611 + $result = "";
  612 + $error = "";
  613 + $exec_result = exec($command,$result,$error);
  614 + //corta a imagem final
  615 + //include_once("classe_imagem.php");
  616 + //$m = new Imagem($dir_tmp."/".$gfile_name.".png");
  617 + //$i = $m->cortaBorda();
  618 + //imagepng($i,$dir_tmp."/".$gfile_name.".png");
  619 + return($r_input);
  620 +}
  621 +/*
  622 +Function: pegaValoresM
  623 +
  624 +Pega os valores de m&uacute;ltiplos itens de um tema.
  625 +
  626 +Se for passado apenas um item, o array de retorno ser&aacute; unidimensional.
  627 +
  628 +Parametros:
  629 +
  630 +$layer {objeto} - Layer que ser&aacute; processado.
  631 +
  632 +$itens {array} - Itens que ser&atilde;o processados.
  633 +
  634 +$exclui {string} - O registro n&atilde;o ser&aacute; considerado se um dos valores for igual a esse valor.
  635 +
  636 +$selecionados {string} - sim|nao Utiliza apenas os selecionados ou todos
  637 +
  638 +$chaves {boolean} - inclui ou n&atilde;o os nomes dos itens como chave no array resultante
  639 +
  640 +$centroide {boolean} - captura ou n&atilde;o o WKT com o centroide do elemento
  641 +
  642 +Retorno:
  643 +
  644 +{array}
  645 +*/
  646 +function pegaValoresM($mapa,$layer,$itens,$exclui="nulo",$selecionados="nao",$chaves=false,$centroide=false)
  647 +{
  648 + $versao = versao();
  649 + $versao = $versao["principal"];
  650 + $prjMapa = $mapa->getProjection();
  651 + $prjTema = $layer->getProjection();
  652 + $layer->set("template","none.htm");
  653 + $layer->setfilter("");
  654 +
  655 + $indicesel = array();
  656 + //pega os valores dos indices dos elementos selecionados para comparacao posterior
  657 + if ($selecionados == "sim")
  658 + {
  659 + $sopen = $layer->open();
  660 + if($sopen == MS_FAILURE){return "erro";}
  661 + $res_count = $layer->getNumresults();
  662 + for ($i = 0; $i < $res_count; ++$i)
  663 + {
  664 + $result = $layer->getResult($i);
  665 + $indicesel[] = $result->shapeindex;
  666 + }
  667 + $layer->close();
  668 + }
  669 + $valores = array();
  670 + $nclasses = $layer->numclasses;
  671 + if (@$layer->queryByrect($mapa->extent) == MS_SUCCESS)
  672 + {
  673 + //$layer->draw();
  674 + $sopen = $layer->open();
  675 + if($sopen == MS_FAILURE){return "erro";}
  676 + $res_count = $layer->getNumresults();
  677 +
  678 + for ($i=0;$i<$res_count;++$i)
  679 + {
  680 + if($versao == 6){
  681 + $shape = $layer->getShape($layer->getResult($i));
  682 + $shp_index = $shape->index;
  683 + }
  684 + else{
  685 + $result = $layer->getResult($i);
  686 + $shp_index = $result->shapeindex;
  687 + $shape = $layer->getfeature($shp_index,-1);
  688 + }
  689 + if (($selecionados == "sim") && (array_search($shp_index,$indicesel) === FALSE))
  690 + {continue;}
  691 + $considera = "sim";
  692 + //verifica se no registro deve ser considerado
  693 + if ($exclui != "nulo")
  694 + {
  695 + foreach ($itens as $item)
  696 + {if($shape->values[$item] == $exclui){$considera = "nao";}}
  697 + }
  698 + //pega os valores
  699 + $v = array();
  700 + if ($considera == "sim")
  701 + {
  702 + foreach ($itens as $item){
  703 + if($chaves == false)
  704 + {$v[] = $shape->values[$item];}
  705 + else
  706 + {$v[$item] = $shape->values[$item];}
  707 + }
  708 + if($centroide == true){
  709 + $c = $shape->getCentroid();
  710 + if (($prjTema != "") && ($prjMapa != $prjTema))
  711 + {
  712 + $projOutObj = ms_newprojectionobj($prjTema);
  713 + $projInObj = ms_newprojectionobj($prjMapa);
  714 + $c->project($projInObj, $projOutObj);
  715 + }
  716 + $v["centroide"] = "POINT(".$c->x." ".$c->y.")";
  717 + }
  718 + if($nclasses > 0){
  719 + $classe = $layer->getclass($shape->classindex);
  720 + $cor = $classe->getstyle(0)->color;
  721 + $v["cores"] = $cor->red." ".$cor->green." ".$cor->blue;
  722 + }
  723 + if (count($v) == 1)
  724 + {$valores[] = $v[0];}
  725 + else
  726 + {$valores[] = $v;}
  727 + }
  728 + }
  729 + $layer->close();
  730 + }
  731 + return ($valores);
  732 +}
  733 +/*
  734 +Function: agrupaValores
  735 +
  736 +Agrupa os valores de um array por um m&eacute;todo de c&aacute;lculo.
  737 +
  738 +No caso de soma e m&eacute;dia, ser&aacute; considerado apenas um item e uma chave.
  739 +
  740 +Parametros:
  741 +
  742 +$lista {array} - Lista com os arrays contendo os dados que ser&atilde;o processados.
  743 +
  744 +$indiceChave {string} - &Iacute;ndice do array da lista que ser&aacute; considerado como a chave do array.
  745 +
  746 +$indiceValor {string} - &Iacute;ndice do array da lista que ser&aacute; considerado como o valor.
  747 +
  748 +$tipo {string} - Tipo de processamento soma|media|contagem|nenhum.
  749 +
  750 +Retorno:
  751 +
  752 +{array}
  753 +*/
  754 +function agrupaValores($lista,$indiceChave,$indiceValor,$tipo)
  755 +{
  756 + $valores = null;
  757 + foreach ($lista as $linha)
  758 + {
  759 + $c = $linha[$indiceChave];
  760 + $v = $linha[$indiceValor];
  761 + if ($tipo == "conta")
  762 + {
  763 + if(@$valores[$c])
  764 + $valores[$c] = $valores[$c] + 1;
  765 + else
  766 + $valores[$c] = 1;
  767 + }
  768 + if (($tipo == "soma"))
  769 + {
  770 + if (($v != "") && (is_numeric($v)))
  771 + {
  772 + if(@$valores[$c])
  773 + $valores[$c] = $valores[$c] + $v;
  774 + else
  775 + $valores[$c] = $v;
  776 + }
  777 + }
  778 + if ($tipo == "media")
  779 + {
  780 + if (($v != "") && (is_numeric($v)))
  781 + {
  782 + if(@$soma[$c])
  783 + $soma[$c] = $soma[$c] + $v;
  784 + else
  785 + $soma[$c] = $v;
  786 +
  787 + if(@$conta[$c])
  788 + $conta[$c] = $conta[$c] + 1;
  789 + else
  790 + $conta[$c] = 1;
  791 + }
  792 + }
  793 + if ($tipo == "nenhum")
  794 + {
  795 + //if (($v != "") && (is_numeric($v)))
  796 + //{
  797 + $valoresn[] = $v;
  798 + //}
  799 + $valores = $valoresn;
  800 + }
  801 + }
  802 + if ($tipo == "media")
  803 + {
  804 + $chaves = array_keys($conta);
  805 + foreach ($chaves as $c)
  806 + {
  807 + $valores[$c] = $soma[$c] / $conta[$c];
  808 + }
  809 + }
  810 + return ($valores);
  811 +}
  812 +
583 ?> 813 ?>
584 \ No newline at end of file 814 \ No newline at end of file
classesphp/mapa_controle.php
@@ -1802,10 +1802,20 @@ Faz a fus&amp;atilde;o da imagem de um gr&amp;aacute;fico com a imagem do mapa atual. @@ -1802,10 +1802,20 @@ Faz a fus&amp;atilde;o da imagem de um gr&amp;aacute;fico com a imagem do mapa atual.
1802 */ 1802 */
1803 case "FUSAOGRAFICO": 1803 case "FUSAOGRAFICO":
1804 include_once("graficos.php"); 1804 include_once("graficos.php");
1805 - //$_SESSION["utilizacgi"] = "nao";  
1806 - //$utilizacgi = "nao";  
1807 restauraCon($map_file,$postgis_mapa); 1805 restauraCon($map_file,$postgis_mapa);
1808 - $retorno = fusaoGrafico(); 1806 + include_once("classe_imagem.php");
  1807 + if($map_file != "")
  1808 + {
  1809 + $mapa = ms_newMapObj($map_file);
  1810 + $imgo = $mapa->draw();
  1811 + $nome = ($imgo->imagepath).nomeRandomico().".png";
  1812 + $imgo->saveImage($nome);
  1813 + $imagem = ($imgo->imageurl).basename($nome);
  1814 + }
  1815 + $m = new Imagem(dirname($dir_tmp).$imagem);
  1816 + $i = $m->fundeIm(dirname($dir_tmp).$grafico);
  1817 + imagepng($i,dirname($dir_tmp).$imagem);
  1818 + $retorno = $imagem;
1809 break; 1819 break;
1810 /* 1820 /*
1811 Valor: GRAFICOESTRELA 1821 Valor: GRAFICOESTRELA
guia_de_migracao.txt
@@ -26,6 +26,17 @@ Para a versão 4.7 @@ -26,6 +26,17 @@ Para a versão 4.7
26 - Os layers com a ZEE e base raster do MMA foram removidos dos mapfiles de inicialização 26 - Os layers com a ZEE e base raster do MMA foram removidos dos mapfiles de inicialização
27 - ms_configura.php 27 - ms_configura.php
28 - Nova variável de configuração para indicar o local das bibliotecas adicionais do software R: R_libpath 28 - Nova variável de configuração para indicar o local das bibliotecas adicionais do software R: R_libpath
  29 +- Funções removidas de classesphp/funcoes_gerais.php e inseridas nos respectivos programas que as chamam:
  30 + classesRasterI
  31 + fusaoGrafico
  32 + executaR
  33 + criaImagemR
  34 + pegaValores
  35 + pegaValoresM
  36 + agrupaValores
  37 + reSLD
  38 + criaDirMapa
  39 + permissoesarquivo
29 ------------------------------------------------------------------------------------------------- 40 -------------------------------------------------------------------------------------------------
30 Para a versão 4.6 41 Para a versão 4.6
31 42
ms_criamapa.php
@@ -83,7 +83,7 @@ interface - nome da interface que ser&amp;aacute; utilizada para abrir o mapa. As in @@ -83,7 +83,7 @@ interface - nome da interface que ser&amp;aacute; utilizada para abrir o mapa. As in
83 83
84 perfil - perfil utilizado para restringir os menus de temas. ms_criamapa.php?perfil=usu&aacute;rio1 84 perfil - perfil utilizado para restringir os menus de temas. ms_criamapa.php?perfil=usu&aacute;rio1
85 85
86 -caminho - caminho para os programas que ser&atilde;o inclu&iacute;dos com "include". Ao chamar o programa ms_criamapa.php por meio de "include" &eacute; necess&aacute;rio especificar essa vari&aacute;vel para indicar o caminho correto do i3geo. 86 +caminho - caminho relativo que indica o local onde a interface do mapa esta localizada.
87 87
88 pontos - lista de coordenadas x e y que ser&atilde;o adicionadas como pontos no mapa. 88 pontos - lista de coordenadas x e y que ser&atilde;o adicionadas como pontos no mapa.
89 89
@@ -130,14 +130,6 @@ gvsiggvp - endere&amp;ccedil;o no servidor do arquivo de projeto gvSig (gvp) que ser @@ -130,14 +130,6 @@ gvsiggvp - endere&amp;ccedil;o no servidor do arquivo de projeto gvSig (gvp) que ser
130 gvsigview - nome da view do projeto gvSig (http://localhost/i3geo/ms_criamapa.php?gvsiggvp=c:\temp\teste.gvp&gvsigview=Untitled - 0) 130 gvsigview - nome da view do projeto gvSig (http://localhost/i3geo/ms_criamapa.php?gvsiggvp=c:\temp\teste.gvp&gvsigview=Untitled - 0)
131 */ 131 */
132 132
133 -/*  
134 -Verifica a vari&aacute;vel $caminho  
135 -  
136 -Essa vari&aacute;vel deve ser definida em programas que utilizam o ms_criamapa.php via include.  
137 -Indica onde est&aacute; o diretório i3geo para que os includes seguintes possam ser localizados.  
138 -$caminho &eacute; sempre colocada antes do nome dos arquivos que ser&atilde;o inclu&iacute;dos, p.e.,  
139 -require_once ($caminho."classesphp/carrega_ext.php");  
140 -*/  
141 //$_COOKIE = array(); 133 //$_COOKIE = array();
142 // 134 //
143 //quando $funcao existe, &eacute; pq o ms_criamapa.php est&aacute; sendo utilizado como um include em classesphp/mapa_controle.php 135 //quando $funcao existe, &eacute; pq o ms_criamapa.php est&aacute; sendo utilizado como um include em classesphp/mapa_controle.php
@@ -149,28 +141,23 @@ else @@ -149,28 +141,23 @@ else
149 {error_reporting(E_ALL);$debug="sim";} 141 {error_reporting(E_ALL);$debug="sim";}
150 if(!isset($funcao)) 142 if(!isset($funcao))
151 {ob_end_clean();} 143 {ob_end_clean();}
152 -if (!isset($caminho))  
153 -{$caminho = "";}  
154 -if (!file_exists($caminho."classesphp/carrega_ext.php"))  
155 -{echo "<b> Nao foi possivel localizar o diretório classephp. Provavelmente vc precisara definir a variavel $caminho";exit;}  
156 -if (isset($parurl["caminho"]))  
157 -{$caminho = $parurl["caminho"];}  
158 /* 144 /*
159 Carrega as extens&otilde;es PHP 145 Carrega as extens&otilde;es PHP
160 146
161 Carrega as extens&otilde;es utilizadas no programa de inicializa&ccedil;&atilde;o. 147 Carrega as extens&otilde;es utilizadas no programa de inicializa&ccedil;&atilde;o.
162 A carga das extens&otilde;es geralmente &eacute; necess&aacute;ria nas instala&ccedil;&otilde;es windows (ms4w) ou quando as mesmas n&atilde;o s&atilde;o carregadas pela própria inicializa&ccedil;&atilde;o do PHP. 148 A carga das extens&otilde;es geralmente &eacute; necess&aacute;ria nas instala&ccedil;&otilde;es windows (ms4w) ou quando as mesmas n&atilde;o s&atilde;o carregadas pela própria inicializa&ccedil;&atilde;o do PHP.
163 */ 149 */
164 -include_once ($caminho."classesphp/carrega_ext.php"); 150 +include_once (__DIR__."/classesphp/carrega_ext.php");
165 /* 151 /*
166 Include dos arquivos PHP. 152 Include dos arquivos PHP.
167 153
168 Inclui os programas php com fun&ccedil;&otilde;es utilizadas pelo ms_criamapa.php 154 Inclui os programas php com fun&ccedil;&otilde;es utilizadas pelo ms_criamapa.php
169 */ 155 */
170 -include_once ($caminho."classesphp/pega_variaveis.php");  
171 -include_once ($caminho."classesphp/funcoes_gerais.php"); 156 +include_once (__DIR__."/classesphp/pega_variaveis.php");
  157 +include_once (__DIR__."/classesphp/funcoes_gerais.php");
172 $versao = versao(); 158 $versao = versao();
173 $versao = $versao["principal"]; 159 $versao = $versao["principal"];
  160 +
174 // 161 //
175 //verifica a sessao que controla o login do usuario 162 //verifica a sessao que controla o login do usuario
176 // 163 //
@@ -191,7 +178,7 @@ if(empty($_SESSION[&quot;usuario&quot;])){ @@ -191,7 +178,7 @@ if(empty($_SESSION[&quot;usuario&quot;])){
191 if(isset($base)) 178 if(isset($base))
192 {$tempBaseX = $base;} 179 {$tempBaseX = $base;}
193 if(!isset($dir_tmp)) 180 if(!isset($dir_tmp))
194 -{include_once ($caminho."ms_configura.php");} 181 +{include_once (__DIR__."/ms_configura.php");}
195 if(isset($tempBaseX) && $tempBaseX != "") 182 if(isset($tempBaseX) && $tempBaseX != "")
196 {$base = $tempBaseX;} 183 {$base = $tempBaseX;}
197 /* 184 /*
@@ -467,7 +454,7 @@ if(isset($url_wms)) @@ -467,7 +454,7 @@ if(isset($url_wms))
467 adaptaLayers(); 454 adaptaLayers();
468 455
469 if (file_exists($locaplic."/pacotes/geoip") && file_exists($locaplic."/pacotes/geoip/GeoLiteCity.dat")) 456 if (file_exists($locaplic."/pacotes/geoip") && file_exists($locaplic."/pacotes/geoip/GeoLiteCity.dat"))
470 -{require_once($caminho."ms_registraip.php");} 457 +{require_once(__DIR__."/ms_registraip.php");}
471 //echo $tmpfname;exit; 458 //echo $tmpfname;exit;
472 if ($interface != "mashup") 459 if ($interface != "mashup")
473 {abreInterface();} 460 {abreInterface();}
@@ -518,7 +505,7 @@ function abreInterface(){ @@ -518,7 +505,7 @@ function abreInterface(){
518 { 505 {
519 if(file_exists($caminho."interface/".$interface)) 506 if(file_exists($caminho."interface/".$interface))
520 {include_once($caminho."interface/".$interface);} 507 {include_once($caminho."interface/".$interface);}
521 - else 508 + else
522 {include_once($interface);} 509 {include_once($interface);}
523 exit; 510 exit;
524 } 511 }
@@ -526,7 +513,7 @@ function abreInterface(){ @@ -526,7 +513,7 @@ function abreInterface(){
526 { 513 {
527 if(file_exists($caminho."interface/".$interface)) 514 if(file_exists($caminho."interface/".$interface))
528 {$urln = $caminho."interface/".$interface."?".session_id();} 515 {$urln = $caminho."interface/".$interface."?".session_id();}
529 - else 516 + else
530 {$urln = $interface."?".session_id();} 517 {$urln = $interface."?".session_id();}
531 if(!headers_sent()) 518 if(!headers_sent())
532 {header("Location:".$urln);} 519 {header("Location:".$urln);}
@@ -726,7 +713,7 @@ Mostra a mensagem de aguarde @@ -726,7 +713,7 @@ Mostra a mensagem de aguarde
726 */ 713 */
727 function mostraAguarde() 714 function mostraAguarde()
728 { 715 {
729 - global $interface,$caminho,$mensagemInicia,$tituloInstituicao; 716 + global $interface,$mensagemInicia,$tituloInstituicao;
730 if (!isset($interface)) 717 if (!isset($interface))
731 { 718 {
732 echo "<html><head>"; 719 echo "<html><head>";
@@ -735,11 +722,11 @@ function mostraAguarde() @@ -735,11 +722,11 @@ function mostraAguarde()
735 echo '<div id="aguarde"><center>'; 722 echo '<div id="aguarde"><center>';
736 echo '<p class=paguarde style="font-family: Verdana, Arial, Helvetica, sans-serif;color:black;text-align:center;font-size:12pt"><b>'.$mensagemInicia.'</b><br> Aguarde...preparando o mapa</p>'; 723 echo '<p class=paguarde style="font-family: Verdana, Arial, Helvetica, sans-serif;color:black;text-align:center;font-size:12pt"><b>'.$mensagemInicia.'</b><br> Aguarde...preparando o mapa</p>';
737 echo '<table><tr>'; 724 echo '<table><tr>';
738 - echo "<td colspan=3 ><center><img src='".$caminho."imagens/i3geo1.jpg'></td></tr>";  
739 - echo "<tr><td><center><img src='".$caminho."imagens/pspb.png'></td>";  
740 - echo "<td><center><img src='".$caminho."imagens/mapserv.png'></td>";  
741 - echo "<td><center><img src='".$caminho."imagens/yui-logo.png'></td>";  
742 - echo "<td><center><a href='http://mapas.mma.gov.br/download' target=blank ><img src='".$caminho."imagens/somerights20_pt.gif' ></a></td>"; 725 + echo "<td colspan=3 ><center><img src='".__DIR__."/imagens/i3geo1.jpg'></td></tr>";
  726 + echo "<tr><td><center><img src='".__DIR__."/imagens/pspb.png'></td>";
  727 + echo "<td><center><img src='".__DIR__."/imagens/mapserv.png'></td>";
  728 + echo "<td><center><img src='".__DIR__."/imagens/yui-logo.png'></td>";
  729 + echo "<td><center><a href='http://mapas.mma.gov.br/download' target=blank ><img src='".__DIR__."/imagens/somerights20_pt.gif' ></a></td>";
743 echo "</tr></table>"; 730 echo "</tr></table>";
744 echo '<BODY bgcolor="white" style="background-color:white">'; 731 echo '<BODY bgcolor="white" style="background-color:white">';
745 } 732 }
@@ -1128,5 +1115,49 @@ function erroCriacao(){ @@ -1128,5 +1115,49 @@ function erroCriacao(){
1128 } 1115 }
1129 ms_ResetErrorList(); 1116 ms_ResetErrorList();
1130 } 1117 }
  1118 +/*
  1119 +Function: criaDirMapa
  1120 +
  1121 +Cria os diretórios tempor&aacute;rios para a aplica&ccedil;&atilde;o.
  1122 +
  1123 +Parametro:
  1124 +
  1125 +$dir_tmp {string} - Diretório tempor&aacute;rio (no servidor) utilizado pelo mapserver.
  1126 +
  1127 +$$cachedir {string} - Diretório de cache tempor&aacute;rio definido no ms_configura.php
  1128 +
  1129 +Retorno:
  1130 +
  1131 +{boleano}
  1132 +*/
  1133 +function criaDirMapa($dir_tmp,$cachedir="")
  1134 +{
  1135 + if(!file_exists($dir_tmp)){
  1136 + @mkdir ($dir_tmp,0777);
  1137 + }
  1138 + if(file_exists($dir_tmp))
  1139 + {
  1140 + $tmpdirname = nomeRandomico();
  1141 + $crdir = @mkdir ($dir_tmp."/".$tmpdirname,0777);
  1142 + $crdiri = @mkdir ($dir_tmp."/img".$tmpdirname,0777);
  1143 + $mapfile = $dir_tmp."/".$tmpdirname."/".$tmpdirname.".map";
  1144 + $tmpimgname = "img".$tmpdirname;
  1145 + @mkdir($dir_tmp."/comum",0777);
  1146 + if($cachedir == ""){
  1147 + @mkdir($dir_tmp."/cache",0777);
  1148 + @mkdir($dir_tmp."/cache/googlemaps",0777);
  1149 + }
  1150 + else{
  1151 + @mkdir($cachedir,0777);
  1152 + @mkdir($cachedir."/googlemaps",0777);
  1153 + }
  1154 + if(file_exists($dir_tmp."/".$tmpdirname))
  1155 + return array($mapfile,$tmpdirname,$tmpimgname);
  1156 + else
  1157 + {return false;}
  1158 + }
  1159 + else
  1160 + {return false;}
  1161 +}
1131 1162
1132 ?> 1163 ?>
1133 \ No newline at end of file 1164 \ No newline at end of file
testainstal.php
@@ -302,6 +302,68 @@ $nome = ($imgo-&gt;imageurl).basename($nome); @@ -302,6 +302,68 @@ $nome = ($imgo-&gt;imageurl).basename($nome);
302 echo "<p><img src=$nome /></p></body></html>"; 302 echo "<p><img src=$nome /></p></body></html>";
303 303
304 function saindo($men){echo "<span style=color:red ><br><b>Erro. Saindo...".$men;} 304 function saindo($men){echo "<span style=color:red ><br><b>Erro. Saindo...".$men;}
  305 +/*
  306 +Function: permissoesarquivo
  307 +
  308 +Retorna as permiss&otilde;es de um arquivo
  309 +
  310 +Parametros:
  311 +
  312 +$arquivo
  313 +*/
  314 +function permissoesarquivo($arquivo){
  315 + $perms = fileperms($arquivo);
  316 +
  317 + if (($perms & 0xC000) == 0xC000) {
  318 + // Socket
  319 + $info = 's';
  320 + } elseif (($perms & 0xA000) == 0xA000) {
  321 + // Symbolic Link
  322 + $info = 'l';
  323 + } elseif (($perms & 0x8000) == 0x8000) {
  324 + // Regular
  325 + $info = '-';
  326 + } elseif (($perms & 0x6000) == 0x6000) {
  327 + // Block special
  328 + $info = 'b';
  329 + } elseif (($perms & 0x4000) == 0x4000) {
  330 + // Directory
  331 + $info = 'd';
  332 + } elseif (($perms & 0x2000) == 0x2000) {
  333 + // Character special
  334 + $info = 'c';
  335 + } elseif (($perms & 0x1000) == 0x1000) {
  336 + // FIFO pipe
  337 + $info = 'p';
  338 + } else {
  339 + // Unknown
  340 + $info = 'u';
  341 + }
  342 +
  343 + // Owner
  344 + $info .= (($perms & 0x0100) ? 'r' : '-');
  345 + $info .= (($perms & 0x0080) ? 'w' : '-');
  346 + $info .= (($perms & 0x0040) ?
  347 + (($perms & 0x0800) ? 's' : 'x' ) :
  348 + (($perms & 0x0800) ? 'S' : '-'));
  349 +
  350 + // Group
  351 + $info .= (($perms & 0x0020) ? 'r' : '-');
  352 + $info .= (($perms & 0x0010) ? 'w' : '-');
  353 + $info .= (($perms & 0x0008) ?
  354 + (($perms & 0x0400) ? 's' : 'x' ) :
  355 + (($perms & 0x0400) ? 'S' : '-'));
  356 +
  357 + // World
  358 + $info .= (($perms & 0x0004) ? 'r' : '-');
  359 + $info .= (($perms & 0x0002) ? 'w' : '-');
  360 + $info .= (($perms & 0x0001) ?
  361 + (($perms & 0x0200) ? 't' : 'x' ) :
  362 + (($perms & 0x0200) ? 'T' : '-'));
  363 +
  364 + return $info;
  365 +}
  366 +
305 ?> 367 ?>
306 </div> 368 </div>
307 <script> 369 <script>