Commit e2e0ef616dd12856f2a15fe2e40c870af4f45709
1 parent
0aac48de
Exists in
master
and in
7 other branches
ticket #28 - acrescentada a possibilidade de inclusão de temas dinâmicos (temas …
…que são programas em PHP) no menu de temas
Showing
3 changed files
with
84 additions
and
52 deletions
Show diff stats
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 |
| @@ -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 |