manutencao.php
3.18 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
<?php
include_once(dirname(__FILE__)."/../../admin/php/login.php");
include(dirname(__FILE__)."/../blacklist.php");
verificaBlFerramentas(basename(dirname(__FILE__)),$i3geoBlFerramentas,false);
$funcoesEdicao = array(
"REMOVETME",
"INCLUITME"
);
if(in_array(strtoupper($funcao),$funcoesEdicao)){
if(verificaOperacaoSessao("admin/html/editormapfile") == false){
retornaJSON("Vc nao pode realizar essa operacao. Tente fazer login novamente.");exit;
}
}
error_reporting(0);
//
//faz a busca da função que deve ser executada
//
$retorno = ""; //string que será retornada ao browser via JSON
switch (strtoupper($funcao))
{
case "REMOVETME":
$mapa = ms_newMapObj($map_file);
$l = $mapa->getlayerbyname($tema);
if($l != ""){
$l->setmetadata("tme","");
$mapa->save($map_file);
}
$arq = $locaplic."/temas/".$tema.".map";
if(file_exists($arq)){
$mapa = ms_newMapObj($arq);
$l = $mapa->getlayerbyname($tema);
if($l != ""){
$l->setmetadata("tme","");
$mapa->save($arq);
removeCabecalho($arq);
}
}
$retorno = "ok";
break;
case "INCLUITME":
$mapa = ms_newMapObj($map_file);
$l = $mapa->getlayerbyname($tema);
if($l != ""){
//$l->setmetadata("tme",base64_decode($tme));
$mapa->save($map_file);
}
$arq = $locaplic."/temas/".$tema.".map";
if(file_exists($arq)){
$mapa = ms_newMapObj($arq);
$l = $mapa->getlayerbyname($tema);
if($l != ""){
//$l->setmetadata("tme",base64_decode($tme));
$mapa->save($arq);
removeCabecalho($arq);
}
}
$retorno = "ok";
break;
}
cpjson($retorno);
//TODO colocar essa funcao em algum lugar que permita reaproveitamento
function removeCabecalho($arq,$symbolset=true)
{
$handle = fopen($arq, "r");
if ($handle)
{
$cabeca = array();
if($symbolset)
{
$cabeca[] = "MAP\n";
}
$grava = false;
while (!feof($handle))
{
$linha = fgets($handle);
if($symbolset)
{
if(strpos(strtoupper($linha),"SYMBOLSET") !== false)
{
$cabeca[] = $linha;
}
if(strpos(strtoupper($linha),"FONTSET") !== false)
{
$cabeca[] = $linha;
}
}
if(strtoupper(trim($linha)) == "LAYER")
{
$grava = true;
}
if($grava)
{
$final[] = rtrim($linha, "\r\n") . PHP_EOL;
}
}
fclose($handle);
}
$final = array_merge($cabeca,$final);
$handle = fopen($arq, "w+");
foreach ($final as $f)
{
//
//remove resultados em branco
//e grava a linha
//
$teste = strtoupper($f);
$teste = trim($teste);
$teste = str_replace(" ","",$teste);
$teste = str_replace("'","",$teste);
$teste = str_replace('"',"",$teste);
$teste = preg_replace('/[\n\r\t ]*/', '', $teste);
$testar = array("KEYIMAGE","TILEINDEX","TILEITEM","SYMBOL","LABELITEM","FILTERITEM","GROUP","ENCODING","TIP","CLASSE","ITENSDESC","CLASSESNOME","ITENSLINK","ESCALA","CLASSESSIMBOLO","MENSAGEM","EXTENSAO","CLASSESITEM","ESCONDIDO","CLASSESCOR","DOWNLOAD","CLASSESTAMANHO","ITENS","TEMA","APLICAEXTENSAO","IDENTIFICA");
$passou = true;
foreach ($testar as $t)
{
if($teste == $t){
$passou = false;
}
}
if($passou)
fwrite($handle,$f);
}
fclose($handle);
chmod($arq, 0666);
}
?>