Commit e2e0ef616dd12856f2a15fe2e40c870af4f45709

Authored by Edmar Moretti
1 parent 0aac48de

ticket #28 - acrescentada a possibilidade de inclusão de temas dinâmicos (temas …

…que são programas em PHP) no menu de temas
classesphp/classe_mapa.php
@@ -661,66 +661,73 @@ $locaplic - string Diretório onde fica a aplicação. @@ -661,66 +661,73 @@ $locaplic - string Diretório onde fica a aplicação.
661 foreach ($temas as $nome) 661 foreach ($temas as $nome)
662 { 662 {
663 $nomemap = ""; 663 $nomemap = "";
664 - if (file_exists($locaplic."/temas/".$nome.".map"))  
665 - {$nomemap = $locaplic."/temas/".$nome.".map";}  
666 - if (file_exists($nome))  
667 - {$nomemap = $nome;}  
668 - if (file_exists($nome.".map"))  
669 - {$nomemap = $nome.".map";}  
670 - if ($nomemap != "") 664 + //
  665 + //verifica se o tema é um arquivo php
  666 + //
  667 + if (file_exists($locaplic."/temas/".$nome.".php"))
  668 + {include_once($locaplic."/temas/".$nome.".php");}
  669 + else
671 { 670 {
672 - $nmap = ms_newMapObj($nomemap);  
673 - $novosnomes = $nmap->getAllLayerNames();  
674 - //define nomes unicos para os temas  
675 - foreach ($novosnomes as $n)  
676 - {$nomeunico[$n] = nomeRandomico();}  
677 - //altera os temas para incluir o nome unico  
678 - foreach ($novosnomes as $n) 671 + if (file_exists($locaplic."/temas/".$nome.".map"))
  672 + {$nomemap = $locaplic."/temas/".$nome.".map";}
  673 + if (file_exists($nome))
  674 + {$nomemap = $nome;}
  675 + if (file_exists($nome.".map"))
  676 + {$nomemap = $nome.".map";}
  677 + if ($nomemap != "")
679 { 678 {
680 - $nlayer = $nmap->getlayerbyname($n);  
681 - //  
682 - //muda para RGB para melhorar o desenho da imagem raster  
683 - //  
684 - if($nlayer->type == MS_LAYER_RASTER)  
685 - {  
686 - $of = $this->mapa->outputformat;  
687 - $of->set("imagemode",MS_IMAGEMODE_RGB);  
688 - }  
689 - $nlayer->set("status",MS_DEFAULT);  
690 - $nlayer->setmetadata("nomeoriginal",$nlayer->name);  
691 - $nlayer->set("name",$nomeunico[$n]);  
692 - //altera o nome do grupo se existir  
693 - if ($nlayer->group != " ") 679 + $nmap = ms_newMapObj($nomemap);
  680 + $novosnomes = $nmap->getAllLayerNames();
  681 + //define nomes unicos para os temas
  682 + foreach ($novosnomes as $n)
  683 + {$nomeunico[$n] = nomeRandomico();}
  684 + //altera os temas para incluir o nome unico
  685 + foreach ($novosnomes as $n)
694 { 686 {
695 - $lr = $nlayer->group;  
696 - $nlayer->set("group",$nomeunico[$lr]);  
697 - }  
698 - ms_newLayerObj($this->mapa, $nlayer);  
699 - $l = $this->mapa->getlayerbyname($nlayer->name);  
700 - //reposiciona o layer se for o caso  
701 - if ($l->group == "")  
702 - {  
703 - $ltipo = $l->type;  
704 - if (($ltipo == 2) || ($ltipo == 3))//poligono = 2 687 + $nlayer = $nmap->getlayerbyname($n);
  688 + //
  689 + //muda para RGB para melhorar o desenho da imagem raster
  690 + //
  691 + if($nlayer->type == MS_LAYER_RASTER)
705 { 692 {
706 - $indicel = $l->index;  
707 - $numlayers = $this->mapa->numlayers;  
708 - $nummove = 0;  
709 - for ($i = $numlayers-1;$i > 0;$i--)  
710 - {  
711 - $layerAbaixo = $this->mapa->getlayer($i);  
712 - $tipo = $layerAbaixo->type;  
713 - if (($tipo != 2) && ($tipo != 3))  
714 - {$nummove++;}  
715 - }  
716 - if ($nummove > 2) 693 + $of = $this->mapa->outputformat;
  694 + $of->set("imagemode",MS_IMAGEMODE_RGB);
  695 + }
  696 + $nlayer->set("status",MS_DEFAULT);
  697 + $nlayer->setmetadata("nomeoriginal",$nlayer->name);
  698 + $nlayer->set("name",$nomeunico[$n]);
  699 + //altera o nome do grupo se existir
  700 + if ($nlayer->group != " ")
  701 + {
  702 + $lr = $nlayer->group;
  703 + $nlayer->set("group",$nomeunico[$lr]);
  704 + }
  705 + ms_newLayerObj($this->mapa, $nlayer);
  706 + $l = $this->mapa->getlayerbyname($nlayer->name);
  707 + //reposiciona o layer se for o caso
  708 + if ($l->group == "")
  709 + {
  710 + $ltipo = $l->type;
  711 + if (($ltipo == 2) || ($ltipo == 3))//poligono = 2
717 { 712 {
718 - for ($i=0;$i<=($nummove - 3);$i++) 713 + $indicel = $l->index;
  714 + $numlayers = $this->mapa->numlayers;
  715 + $nummove = 0;
  716 + for ($i = $numlayers-1;$i > 0;$i--)
719 { 717 {
720 - $this->mapa->movelayerup($indicel); 718 + $layerAbaixo = $this->mapa->getlayer($i);
  719 + $tipo = $layerAbaixo->type;
  720 + if (($tipo != 2) && ($tipo != 3))
  721 + {$nummove++;}
  722 + }
  723 + if ($nummove > 2)
  724 + {
  725 + for ($i=0;$i<=($nummove - 3);$i++)
  726 + {
  727 + $this->mapa->movelayerup($indicel);
  728 + }
721 } 729 }
722 } 730 }
723 -  
724 } 731 }
725 } 732 }
726 } 733 }
menutemas/menutemas.xml
@@ -112,6 +112,12 @@ File: i3geo/menutemas/menutemas.xml @@ -112,6 +112,12 @@ File: i3geo/menutemas/menutemas.xml
112 <TDESC></TDESC> 112 <TDESC></TDESC>
113 <TLINK></TLINK> 113 <TLINK></TLINK>
114 </TEMA> 114 </TEMA>
  115 + <TEMA>
  116 + <TID>testephp</TID>
  117 + <TNOME>Teste de inclusao de tema PHP</TNOME>
  118 + <TDESC></TDESC>
  119 + <TLINK></TLINK>
  120 + </TEMA>
115 </SGRUPO> 121 </SGRUPO>
116 </GRUPO> 122 </GRUPO>
117 </TEMASGEO> 123 </TEMASGEO>
118 \ No newline at end of file 124 \ No newline at end of file
temas/testephp.php 0 → 100644
@@ -0,0 +1,19 @@ @@ -0,0 +1,19 @@
  1 +<?php
  2 +//
  3 +//esse programa é incluido na classe classesphp/classe_mapa.php
  4 +//herdando os objetos
  5 +//$this->mapa
  6 +//$this->arquivo
  7 +//
  8 +// exemplo
  9 +//
  10 +$layer = $this->mapa->getlayerbyname("copyright");
  11 +$layer->set("status",MS_DEFAULT);
  12 +$shp = ms_newshapeobj(MS_SHAPE_POINT);
  13 +$shp->set("text","teste .... teste");
  14 +$lin = ms_newlineobj();
  15 +$lin->addxy(200,100);
  16 +$shp->add($lin);
  17 +$layer->addfeature($shp);
  18 +$shp->free();
  19 +?>
0 \ No newline at end of file 20 \ No newline at end of file