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 661 foreach ($temas as $nome)
662 662 {
663 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 112 <TDESC></TDESC>
113 113 <TLINK></TLINK>
114 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 121 </SGRUPO>
116 122 </GRUPO>
117 123 </TEMASGEO>
118 124 \ No newline at end of file
... ...
temas/testephp.php 0 → 100644
... ... @@ -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 20 \ No newline at end of file
... ...