Commit 93b798350da2549ba70272d6dabae21cc6f8eea2

Authored by Edmar Moretti
1 parent c43522f2

--no commit message

admin/html/admin.css
... ... @@ -39,6 +39,15 @@ input
39 39 width: 20px;
40 40 height: 20px;
41 41 }
  42 +.mais
  43 +{
  44 + background-image:URL('../imagens/05.png');
  45 + background-repeat: no-repeat;
  46 + background-position: 0px 0px;
  47 + cursor:pointer;
  48 + width: 20px;
  49 + height: 20px;
  50 +}
42 51 .mostrar
43 52 {
44 53 background-image:URL('../imagens/03.png');
... ...
admin/html/grupos.html 0 → 100644
... ... @@ -0,0 +1,45 @@
  1 +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  2 +<html>
  3 +<head>
  4 + <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
  5 + <title>Grupos</title>
  6 + <style type="text/css">
  7 + /*margin and padding on body element
  8 + can introduce errors in determining
  9 + element position and are not recommended;
  10 + we turn them off as a foundation for YUI
  11 + CSS treatments. */
  12 + body {
  13 + margin:0;
  14 + padding:0;
  15 + }
  16 + </style>
  17 + <script type="text/javascript" src="../js/core.js"></script>
  18 + <script type="text/javascript" src="../js/grupos.js"></script>
  19 +</head>
  20 +<body class=" yui-skin-sam">
  21 +<div style="margin:20px">
  22 +<div style=width:80%;text-align:center;>
  23 +<h1>Administração do i3geo - grupos <img src="../imagens/04.png" style="cursor:pointer" id=botaoAjuda /></h1>
  24 +
  25 +</div>
  26 +<div id="ajuda">
  27 + <div class="hd">Ajuda</div>
  28 + <div class="bd" style="height:144px;overflow:auto">
  29 + Este programa permite editar a lista de grupos.<br><br>
  30 + Você pode criar vários grupos para poder montar a árvore de temas de cada menu.
  31 + Cada grupo é mostrado como nós de um ou mais menus das árvores mostradas na guia de adição de temas do i3geo.<br><br>
  32 + A lista de grupos é baseada no banco admin.db e os usuários que não são editores podem
  33 + ver apenas os grupos publicados.<br><br>
  34 + A lista de IPs dos usuários que podem editar os menu é definida no
  35 + arquivo i3geo/ms_configura.php
  36 + </div>
  37 + <div class="ft"></div>
  38 +</div>
  39 +<input onclick="adicionaLinha()" type=button id=adiciona value="Adicionar um novo grupo" />
  40 +<br>
  41 +<p>Grupos existentes: (clique na célula para editar e salve a linha editada)</p>
  42 +<div id="tabela" style="left:-5px;"></div>
  43 +</div>
  44 +<div id=logajax style="display:block" ></div>
  45 +</body>
... ...
admin/html/i3geoadmin_grupos.html
... ... @@ -1,35 +0,0 @@
1   -<html>
2   -<head>
3   -<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
4   -<link rel="stylesheet" type="text/css" href="admin.css">
5   -<script src="../../pacotes/cpaint/cpaint2.inc.compressed.js" type="text/javascript"></script>
6   -<script src="../js/admin.js" type="text/javascript"></script>
7   -<script src="../js/menutemas.js" type="text/javascript"></script>
8   -</head>
9   -<body>
10   -<div style=width:80%;text-align:center;>
11   -<h1>Administração do i3geo - menu de temas <img src="../imagens/04.png" style="cursor:pointer" onclick="$i('ajuda').style.display='block'"/></h1>
12   -<p><a href="../index.html">Voltar</a></p>
13   -<div id=ajuda style="display:none">
14   -<p>Este programa permite editar a lista de grupos</p>
15   -<p>O menu é baseado no banco admin.db.</p>
16   -<p>A lista de IPs dos usuários que podem editar os arquivos de configuração do i3geo e
17   -dos que podem navegar pelos diretórios do servidor, não são mostradas aqui. Para
18   -alterar essas variáveis, vc deve editar diretamente o arquivo i3geo/ms_configura.php.</p>
19   -</div></div>
20   -<div id=aguarde style="color:red" ><img src="../../imagens/aguarde.gif" /></div>
21   -</body>
22   -<script>
23   -/*
24   -Title: Administração da lista de grupos do menu de temas
25   -
26   -File: i3geo/admin/i3geoadmin_grupos.htm
27   -*/
28   -$parametros = {
29   - "simples": [
30   - { mensagem: "Adicione, altere ou elimine grupos cadastrados",cabeca: "Grupos",variavel:"grupos"}
31   - ]};
32   -iniciaAdmin()
33   -document.getElementById("aguarde").style.display="none"
34   -</script>
35   -</html>
36 0 \ No newline at end of file
admin/html/i3geoadmin_subgrupos.html
... ... @@ -1,36 +0,0 @@
1   -<html>
2   -<head>
3   -<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
4   -<link rel="stylesheet" type="text/css" href="admin.css">
5   -<script src="../../pacotes/cpaint/cpaint2.inc.compressed.js" type="text/javascript"></script>
6   -<script src="../js/admin.js" type="text/javascript"></script>
7   -<script src="../js/menutemas.js" type="text/javascript"></script>
8   -
9   -</head>
10   -<body>
11   -<div style=width:80%;text-align:center;>
12   -<h1>Administração do i3geo - menu de temas <img src="../imagens/04.png" style="cursor:pointer" onclick="$i('ajuda').style.display='block'"/></h1>
13   -<p><a href="../index.html">Voltar</a></p>
14   -<div id=ajuda style="display:none">
15   -<p>Este programa permite editar a lista de sub-grupos</p>
16   -<p>O menu é baseado no banco admin.db.</p>
17   -<p>A lista de IPs dos usuários que podem editar os arquivos de configuração do i3geo e
18   -dos que podem navegar pelos diretórios do servidor, não são mostradas aqui. Para
19   -alterar essas variáveis, vc deve editar diretamente o arquivo i3geo/ms_configura.php.</p>
20   -</div></div>
21   -<div id=aguarde style="color:red" ><img src="../../imagens/aguarde.gif" /></div>
22   -</body>
23   -<script>
24   -/*
25   -Title: Administração da lista de sub-grupos do menu de temas
26   -
27   -File: i3geo/admin/i3geoadmin_subgrupos.htm
28   -*/
29   -$parametros = {
30   - "simples": [
31   - { mensagem: "Adicione, altere ou elimine sub-grupos cadastrados",cabeca: "Sub-grupos",variavel:"subgrupos"}
32   - ]};
33   -iniciaAdmin()
34   -document.getElementById("aguarde").style.display="none"
35   -</script>
36   -</html>
37 0 \ No newline at end of file
admin/html/listatemas.html 0 → 100644
... ... @@ -0,0 +1,45 @@
  1 +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  2 +<html>
  3 +<head>
  4 + <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
  5 + <title>Temas</title>
  6 + <style type="text/css">
  7 + /*margin and padding on body element
  8 + can introduce errors in determining
  9 + element position and are not recommended;
  10 + we turn them off as a foundation for YUI
  11 + CSS treatments. */
  12 + body {
  13 + margin:0;
  14 + padding:0;
  15 + }
  16 + </style>
  17 + <script type="text/javascript" src="../js/core.js"></script>
  18 + <script type="text/javascript" src="../js/listatemas.js"></script>
  19 +</head>
  20 +<body class=" yui-skin-sam">
  21 +<div style="margin:20px">
  22 +<div style=width:80%;text-align:center;>
  23 +<h1>Administração do i3geo - temas <img src="../imagens/04.png" style="cursor:pointer" id=botaoAjuda /></h1>
  24 +
  25 +</div>
  26 +<div id="ajuda">
  27 + <div class="hd">Ajuda</div>
  28 + <div class="bd" style="height:144px;overflow:auto">
  29 + Este programa permite editar a lista de temas.<br><br>
  30 + Você pode criar vários temas para poder montar a árvore de temas de cada menu.
  31 + Cada tema é vínculado a um arquivo mapfile, possuindo um nome e alguns parâmetros,
  32 + como possibilidade de download, geração de Web Services, etc.<br><br>
  33 + A lista de temas é baseada no banco admin.db.<br><br>
  34 + A lista de IPs dos usuários que podem editar os menu é definida no
  35 + arquivo i3geo/ms_configura.php
  36 + </div>
  37 + <div class="ft"></div>
  38 +</div>
  39 +<input onclick="adicionaLinha()" type=button id=adiciona value="Adicionar um novo tema" />
  40 +<br>
  41 +<p>Temas existentes:</p>
  42 +<div id="tabela" style="left:-5px;"></div>
  43 +</div>
  44 +<div id=logajax style="display:block" ></div>
  45 +</body>
... ...
admin/html/subgrupos.html 0 → 100644
... ... @@ -0,0 +1,45 @@
  1 +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  2 +<html>
  3 +<head>
  4 + <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
  5 + <title>Sub-grupos</title>
  6 + <style type="text/css">
  7 + /*margin and padding on body element
  8 + can introduce errors in determining
  9 + element position and are not recommended;
  10 + we turn them off as a foundation for YUI
  11 + CSS treatments. */
  12 + body {
  13 + margin:0;
  14 + padding:0;
  15 + }
  16 + </style>
  17 + <script type="text/javascript" src="../js/core.js"></script>
  18 + <script type="text/javascript" src="../js/subgrupos.js"></script>
  19 +</head>
  20 +<body class=" yui-skin-sam">
  21 +<div style="margin:20px">
  22 +<div style=width:80%;text-align:center;>
  23 +<h1>Administração do i3geo - sub-grupos <img src="../imagens/04.png" style="cursor:pointer" id=botaoAjuda /></h1>
  24 +
  25 +</div>
  26 +<div id="ajuda">
  27 + <div class="hd">Ajuda</div>
  28 + <div class="bd" style="height:144px;overflow:auto">
  29 + Este programa permite editar a lista de sub-grupos.<br><br>
  30 + Você pode criar vários sub-grupos para poder montar a árvore de temas de cada menu.
  31 + Cada sub-grupo é mostrado como nós de um ou mais menus das árvores mostradas na guia de adição de temas do i3geo.<br><br>
  32 + A lista de sub-grupos é baseada no banco admin.db e os usuários que não são editores podem
  33 + ver apenas os sub-grupos publicados.<br><br>
  34 + A lista de IPs dos usuários que podem editar os menu é definida no
  35 + arquivo i3geo/ms_configura.php
  36 + </div>
  37 + <div class="ft"></div>
  38 +</div>
  39 +<input onclick="adicionaLinha()" type=button id=adiciona value="Adicionar um novo sub-grupo" />
  40 +<br>
  41 +<p>Sub-grupos existentes: (clique na célula para editar e salve a linha editada)</p>
  42 +<div id="tabela" style="left:-5px;"></div>
  43 +</div>
  44 +<div id=logajax style="display:block" ></div>
  45 +</body>
... ...
admin/html/teste.htm 0 → 100644
... ... @@ -0,0 +1,68 @@
  1 +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  2 +<html>
  3 +<head>
  4 + <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
  5 + <title>Menus</title>
  6 + <style type="text/css">
  7 + /*margin and padding on body element
  8 + can introduce errors in determining
  9 + element position and are not recommended;
  10 + we turn them off as a foundation for YUI
  11 + CSS treatments. */
  12 + body {
  13 + margin:0;
  14 + padding:0;
  15 + }
  16 +div{color:yellow}
  17 + </style>
  18 + <script type="text/javascript" src="../js/core.js"></script>
  19 +</head>
  20 +<body class=" yui-skin-sam">
  21 +<div id=teste >oi</div>
  22 +<div >oi</div>
  23 +<div >oi</div>
  24 +<div >oi</div>
  25 +<script>
  26 +/*
  27 +var s = "ttttt"
  28 +alert(YAHOO.lang.isNumber(s))
  29 +
  30 +*/
  31 +/*
  32 +alert(YAHOO.lang.substitute('Hello {world}', {'world':'earth'}))
  33 +var processText = function(key, value) {
  34 +return value.toUpperCase();
  35 +};
  36 +alert(YAHOO.lang.substitute('Hello {world}', {'world':'earth'}, processText))
  37 +*/
  38 +/*
  39 +var foo = {
  40 + count :0,
  41 + 'method' : function(data) {
  42 + this.count++;
  43 + if(this.count == 5) {
  44 + timer.cancel();
  45 + }
  46 + document.getElementById("teste").innerHTML += this.count;
  47 + }
  48 +}
  49 +var timer = YAHOO.lang.later(100, foo, 'method', [{data:'bar', data2:'zeta'}], true);
  50 +*/
  51 +//YAHOO.util.Dom.batch(document.getElementsByTagName("div"),function(d){d.style.color="red";})
  52 +/*
  53 + getChildrenBy
  54 +Array getChildrenBy ( node , method )
  55 +Returns an array of HTMLElement childNodes that pass the test method.
  56 +
  57 +Parameters:
  58 + node <HTMLElement> The HTMLElement to start from
  59 + method <Function> A boolean function used to test children that receives the node being tested as its only argument
  60 +
  61 +Returns: Array
  62 + A static array of HTMLElements
  63 +
  64 +*/
  65 +alert(YAHOO.util.Dom.getViewportHeight()) //getViewportWidth
  66 +
  67 +</script>
  68 +</body>
... ...
admin/imagens/05.png 0 → 100644

387 Bytes

admin/index.html
... ... @@ -86,8 +86,8 @@ que por sua vez contém temas.&lt;/p&gt;
86 86 <tr onclick="abre('html/i3geoadmin_perfis.html')"><td><div class=aplicar ></div></td><td>Editar a lista de perfis</td></tr>
87 87 <tr onclick="abre('html/i3geoadmin_tags.html')"><td><div class=aplicar ></div></td><td>Editar a lista de tags (palavras-chave)</td></tr>
88 88 <tr onclick="abre('html/menus.html')"><td><div class=aplicar ></div></td><td>Editar a lista de menus</td></tr>
89   -<tr onclick="abre('html/i3geoadmin_grupos.html')"><td><div class=aplicar ></div></td><td>Editar a lista de grupos</td></tr>
90   -<tr onclick="abre('html/i3geoadmin_subgrupos.html')"><td><div class=aplicar ></div></td><td>Editar a lista de sub-grupos</td></tr>
  89 +<tr onclick="abre('html/grupos.html')"><td><div class=aplicar ></div></td><td>Editar a lista de grupos</td></tr>
  90 +<tr onclick="abre('html/subgrupos.html')"><td><div class=aplicar ></div></td><td>Editar a lista de sub-grupos</td></tr>
91 91 <tr onclick="abre('html/i3geoadmin_temas.html')"><td><div class=aplicar ></div></td><td>Editar a lista de temas</td></tr>
92 92 <tr onclick="abre('html/i3geoadmin_arvore.html')"><td><div class=aplicar ></div></td><td>Editar a árvore dos menus</td></tr>
93 93 <tr onclick="abre('html/i3geoadmin_importarmenu.html')"><td><div class=aplicar ></div></td><td>Importar XML</td></tr>
... ...
admin/js/core.js
... ... @@ -43,6 +43,19 @@ object - objeto javaScript
43 43 var $i = function(id)
44 44 {return document.getElementById(id);};
45 45 /*
  46 +Variable: $mapfiles
  47 +
  48 +Armazena o objeto com a lista de mapfiles
  49 +*/
  50 +var $mapfiles = "";
  51 +/*
  52 +Variable: $tags
  53 +
  54 +Armazena o objeto com a lista de tags
  55 +*/
  56 +var $tags = "";
  57 +
  58 +/*
46 59 Function: core_handleSuccess
47 60  
48 61 Processa o retorno da chamada em ajax quando tiver sucesso. Esta é uma
... ... @@ -82,7 +95,7 @@ function core_handleFailure(o,texto)
82 95 {
83 96 //div onde será mostrado o log
84 97 if(!$i('logajax'))
85   - {document.body.innerHTML += "<div id=logajax ></div>";}
  98 + {return;}
86 99 log = $i('logajax');
87 100 YAHOO.log("The failure handler was called. tId: " + o.tId + ".", "info", "example");
88 101 if(o.responseText !== undefined)
... ... @@ -121,8 +134,12 @@ function core_makeRequest(sUrl,callback)
121 134 Function: core_carregando
122 135  
123 136 Mostra uma janela de aguarde
  137 +
  138 +Parameters:
  139 +
  140 +tipo - ativa|desativa|string com uma mensagem
124 141 */
125   -function core_carregando()
  142 +function core_carregando(tipo)
126 143 {
127 144 if (!YAHOO.example.container.wait)
128 145 {
... ... @@ -131,7 +148,13 @@ function core_carregando()
131 148 YAHOO.example.container.wait.setBody("<img src=\"../../imagens/aguarde.gif\"/>");
132 149 YAHOO.example.container.wait.render(document.body);
133 150 }
134   - YAHOO.example.container.wait.show();
  151 + YAHOO.example.container.wait.setBody("<img src=\"../../imagens/aguarde.gif\"/>");
  152 + if(tipo == "ativa")
  153 + {YAHOO.example.container.wait.show();}
  154 + if(tipo == "desativa")
  155 + {YAHOO.example.container.wait.hide();}
  156 + if(tipo != "ativa" && tipo != "desativa")
  157 + {YAHOO.example.container.wait.setBody("<img src=\"../../imagens/aguarde.gif\"/> "+tipo);}
135 158 }
136 159 /*
137 160 Function: core_dialogoContinua
... ... @@ -150,8 +173,6 @@ largura - largura do diálogo em px
150 173 */
151 174 function core_dialogoContinua(handleYes,handleNo,mensagem,largura)
152 175 {
153   - if(!$i("dialogoContinua"))
154   - {document.body.innerHTML += "<div id='dialogoContinua'></div>";}
155 176 // Instantiate the Dialog
156 177 YAHOO.namespace("continua.container");
157 178 YAHOO.continua.container.simpledialog1 =
... ... @@ -169,7 +190,7 @@ function core_dialogoContinua(handleYes,handleNo,mensagem,largura)
169 190 { text:"N&atilde;o", handler:handleNo } ]
170 191 } );
171 192 YAHOO.continua.container.simpledialog1.setHeader("Tem certeza?");
172   - YAHOO.continua.container.simpledialog1.render("dialogoContinua");
  193 + YAHOO.continua.container.simpledialog1.render(document.body);
173 194 YAHOO.continua.container.simpledialog1.show();
174 195 }
175 196 /*
... ... @@ -210,7 +231,7 @@ function core_pegaPerfis(funcao)
210 231 if(arguments.length == 0)
211 232 {var funcao = "";}
212 233 //pega a lista de perfis
213   - var sUrl = "../php/menutemas.php?funcao=pegaPerfisYUI";
  234 + var sUrl = "../php/menutemas.php?funcao=pegaPerfis";
214 235 var callback =
215 236 {
216 237 success:function(o)
... ... @@ -224,14 +245,133 @@ function core_pegaPerfis(funcao)
224 245 if(funcao != "")
225 246 eval(funcao);
226 247 }
227   - catch(e){core_handleFailure(o,o.responseText);}
  248 + catch(e){core_handleFailure(e,o.responseText);}
228 249 },
229 250 failure:core_handleFailure,
230 251 argument: { foo:"foo", bar:"bar" }
231   - };
  252 + };
  253 + core_carregando("buscando perfis...");
232 254 core_makeRequest(sUrl,callback)
233 255 }
234 256 /*
  257 +function: core_pegaMapfiles
  258 +
  259 +Pega a lista de mapfiles
  260 +
  261 +Parameters:
  262 +
  263 +funcao - (opcional) nome da funcao que será executada ao terminar a busca pelos dados
  264 +*/
  265 +function core_pegaMapfiles(funcaoM)
  266 +{
  267 + if(arguments.length == 0)
  268 + {var funcao = "";}
  269 + var sUrl = "../php/menutemas.php?funcao=listaMapsTemas";
  270 + var callbackM =
  271 + {
  272 + success:function(o)
  273 + {
  274 + try
  275 + {
  276 + $mapfiles = YAHOO.lang.JSON.parse(o.responseText);
  277 + if(funcaoM != "")
  278 + eval(funcaoM);
  279 + }
  280 + catch(e){core_handleFailure(e.responseText);}
  281 + },
  282 + failure:core_handleFailure,
  283 + argument: { foo:"foo", bar:"bar" }
  284 + };
  285 + core_makeRequest(sUrl,callbackM)
  286 +}
  287 +/*
  288 +Function: core_comboMapfiles
  289 +
  290 +Cria um combo para escolha do mapfile
  291 +
  292 +Parameters:
  293 +
  294 +onde - id do elemento que receberá o combo
  295 +
  296 +id - id do combo que será criado
  297 +
  298 +marcar - valor que será marcado como selecionado
  299 +*/
  300 +function core_comboMapfiles(onde,id,marcar)
  301 +{
  302 + if($mapfiles == "")
  303 + {
  304 + core_pegaMapfiles("core_comboMapfiles('"+onde+"','"+id+"','"+marcar+"')")
  305 + }
  306 + else
  307 + {
  308 + ins = "<select id='"+id+"' >"
  309 + ins += core_comboObjeto($mapfiles,"","",marcar)
  310 + ins += "</select></p>"
  311 + $i(onde).innerHTML = ins;
  312 + }
  313 +}
  314 +/*
  315 +function: core_pegaTags
  316 +
  317 +Pega a lista de tags
  318 +
  319 +Parameters:
  320 +
  321 +funcao - (opcional) nome da funcao que será executada ao terminar a busca pelos dados
  322 +*/
  323 +function core_pegaTags(funcao)
  324 +{
  325 + if(arguments.length == 0)
  326 + {var funcao = "";}
  327 + var sUrl = "../php/menutemas.php?funcao=pegaTags";
  328 + var callback =
  329 + {
  330 + success:function(o)
  331 + {
  332 + try
  333 + {
  334 + $tags = YAHOO.lang.JSON.parse(o.responseText);
  335 + if(funcao != "")
  336 + eval(funcao);
  337 + }
  338 + catch(e){core_handleFailure(e,o.responseText);}
  339 + },
  340 + failure:core_handleFailure,
  341 + argument: { foo:"foo", bar:"bar" }
  342 + };
  343 + core_makeRequest(sUrl,callback)
  344 +}
  345 +/*
  346 +Function: core_comboTags
  347 +
  348 +Cria um combo para escolha de tags
  349 +
  350 +Parameters:
  351 +
  352 +onde - id do elemento que receberá o combo
  353 +
  354 +id - id do combo que será criado
  355 +
  356 +marcar - valor que será marcado como selecionado
  357 +
  358 +change - nome da função do evento onchange
  359 +*/
  360 +function core_comboTags(onde,id,change)
  361 +{
  362 + if($tags == "")
  363 + {
  364 + core_pegaTags("core_comboTags('"+onde+"','"+id+"','"+change+"')")
  365 + }
  366 + else
  367 + {
  368 + ins = "<select onchange=\""+change+"(this.value)\" id='"+id+"' >"
  369 + ins += core_comboObjeto($tags,"nome","nome","")
  370 + ins += "</select></p>"
  371 + $i(onde).innerHTML = ins;
  372 + }
  373 +}
  374 +/*
235 375 Function: gera uma janela flutuante com opções de escolha baseadas em checkbox
236 376  
237 377 Parameters:
... ... @@ -243,6 +383,10 @@ textos - array com os nomes de cada checkbox
243 383 selecionados - array com os valores marcados
244 384  
245 385 target - objeto para receber o resultado
  386 +
  387 +record - objeto record
  388 +
  389 +key - chave (nome do item)
246 390 */
247 391 function core_menuCheckBox(valores,textos,selecionados,target,record,key)
248 392 {
... ... @@ -262,8 +406,9 @@ function core_menuCheckBox(valores,textos,selecionados,target,record,key)
262 406 record.setData(key,ins.toString());
263 407 }
264 408 YAHOO.example.container.panelCK.destroy();
  409 + YAHOO.example.container.panelCK = null;
265 410 };
266   - if(!$i("core_menuCK"))
  411 + if(!YAHOO.example.container.panelCK)
267 412 {
268 413 var novoel = document.createElement("div");
269 414 novoel.id = "core_menuCK";
... ... @@ -301,8 +446,54 @@ function core_menuCheckBox(valores,textos,selecionados,target,record,key)
301 446 YAHOO.example.container.panelCK.moveTo(YAHOO.util.Dom.getX(target),YAHOO.util.Dom.getY(target));
302 447 YAHOO.example.container.panelCK.show();
303 448 }
  449 +/*
  450 +Function: core_combosimnao
  451 +
  452 +Retorna os itens option de um combo sim nao
  453 +*/
  454 +function core_combosimnao(marcar)
  455 +{
  456 + var ins = "<option value='' "
  457 + if (marcar == ""){ins += "selected"}
  458 + ins += ">---</option>";
  459 + ins += "<option value='SIM' "
  460 + if (marcar == "sim" || marcar == "SIM"){ins += "selected"}
  461 + ins += ">sim</option>";
  462 + ins += "<option value='NAO' "
  463 + if (marcar == "nao" || marcar == "NAO"){ins += "selected"}
  464 + ins += ">nao</option>";
  465 + return(ins)
  466 +}
  467 +/*
  468 +Function: core_comboObjeto
  469 +
  470 +Retorna os itens option de um combo baseado em um objeto json
  471 +*/
  472 +function core_comboObjeto(obj,valor,texto,marcar)
  473 +{
  474 + var ins = "<option value='' "
  475 + ins += ">---</option>";
  476 + for (var k=0;k<obj.length;k++)
  477 + {
  478 + if(valor != "")
  479 + var v = eval("obj[k]."+valor);
  480 + else
  481 + var v = obj[k];
  482 + if(texto != "")
  483 + var t = eval("obj[k]."+texto);
  484 + else
  485 + var t = obj[k];
  486 + ins += "<option value='"+v+"' "
  487 + if (marcar == v){ins += "selected"}
  488 + ins += ">"+t+"</option>";
  489 + }
  490 + return(ins)
  491 +}
  492 +//
  493 +//carregador de javascript
304 494 //
305 495 //define o local correto dos programas
  496 +//
306 497 var scriptLocation = "";
307 498 var scripts = document.getElementsByTagName('script');
308 499 var i = 0;
... ...
admin/js/grupos.js 0 → 100644
... ... @@ -0,0 +1,203 @@
  1 +YAHOO.namespace("example.container");
  2 +function initMenu()
  3 +{
  4 + ativaBotaoAdicionaGrupo()
  5 + core_carregando("ativa");
  6 + core_ativaPainelAjuda("ajuda","botaoAjuda");
  7 + core_pegaPerfis("pegaGrupos()");
  8 +}
  9 +function ativaBotaoAdicionaGrupo()
  10 +{
  11 + var adicionalinha = function()
  12 + {
  13 + core_carregando("ativa");
  14 + core_carregando(" adicionando um novo registro");
  15 + var sUrl = "../php/menutemas.php?funcao=alteraGrupos";
  16 + var callback =
  17 + {
  18 + success:function(o)
  19 + {
  20 + try
  21 + {
  22 + myDataTable.addRow(YAHOO.lang.JSON.parse(o.responseText)[0],0);
  23 + core_carregando("desativa");
  24 + }
  25 + catch(e){core_handleFailure(o,o.responseText);}
  26 + },
  27 + failure:core_handleFailure,
  28 + argument: { foo:"foo", bar:"bar" }
  29 + };
  30 + core_makeRequest(sUrl,callback)
  31 + };
  32 + //cria o botão de adição de um novo menu
  33 + var adiciona = new YAHOO.widget.Button("adiciona",{ onclick: { fn: adicionalinha } });
  34 +}
  35 +function pegaGrupos()
  36 +{
  37 + core_carregando("buscando grupos...");
  38 + var sUrl = "../php/menutemas.php?funcao=pegaGrupos";
  39 + var callback =
  40 + {
  41 + success:function(o)
  42 + {
  43 + try
  44 + {montaTabela(YAHOO.lang.JSON.parse(o.responseText));}
  45 + catch(e){core_handleFailure(o,o.responseText);}
  46 + },
  47 + failure:core_handleFailure,
  48 + argument: { foo:"foo", bar:"bar" }
  49 + };
  50 + core_makeRequest(sUrl,callback)
  51 +}
  52 +function montaTabela(dados)
  53 +{
  54 + YAHOO.example.InlineCellEditing = new function()
  55 + {
  56 + // Custom formatter for "address" column to preserve line breaks
  57 + var formatTexto = function(elCell, oRecord, oColumn, oData)
  58 + {
  59 + elCell.innerHTML = "<p style=width:250px >" + oData + "</p>";
  60 + };
  61 + var formatTextoId = function(elCell, oRecord, oColumn, oData)
  62 + {
  63 + elCell.innerHTML = "<p style=width:20px >" + oData + "</p>";
  64 + };
  65 +
  66 + var formatSalva = function(elCell, oRecord, oColumn)
  67 + {
  68 + elCell.innerHTML = "<div class=aplicar style='text-align:center' onclick='gravaLinha(\""+oRecord._sId+"\")'></div>";
  69 + };
  70 + var formatExclui = function(elCell, oRecord, oColumn)
  71 + {
  72 + elCell.innerHTML = "<div class=excluir style='text-align:center' ></div>";//onclick='excluiLinha(\""+oRecord.getData("id_menu")+"\",\""+oRecord.getId()+"\")'></div>";
  73 + };
  74 + var myColumnDefs = [
  75 + {key:"excluir",label:"excluir",formatter:formatExclui},
  76 + {label:"salvar",formatter:formatSalva},
  77 + {label:"id",key:"id_grupo", formatter:formatTextoId},
  78 + {label:"nome",resizeable:true,key:"nome_grupo", formatter:formatTexto, editor:"textbox"},
  79 + {label:"descrição",resizeable:true,key:"desc_grupo", formatter:formatTexto, editor:"textbox"}
  80 + ];
  81 + myDataSource = new YAHOO.util.DataSource(dados);
  82 + myDataSource.responseType = YAHOO.util.DataSource.TYPE_JSARRAY;
  83 + myDataSource.responseSchema =
  84 + {
  85 + fields: ["desc_grupo","id_grupo","nome_grupo"]
  86 + };
  87 + myDataTable = new YAHOO.widget.DataTable("tabela", myColumnDefs, myDataSource);
  88 + // Set up editing flow
  89 + myDataTable.highlightEditableCell = function(oArgs)
  90 + {
  91 + var elCell = oArgs.target;
  92 + var column = myDataTable.getColumn(oArgs.target);
  93 + //if(column.editor != "null")
  94 + if(!YAHOO.lang.isNull(column.editor))
  95 + {
  96 + YAHOO.util.Dom.addClass(elCell,'yui-dt-highlighted');
  97 + }
  98 + };
  99 + myDataTable.unhighlightEditableCell = function(oArgs)
  100 + {
  101 + var elCell = oArgs.target;
  102 + if(elCell.style.cursor="pointer")
  103 + {
  104 + YAHOO.util.Dom.removeClass(elCell,'yui-dt-highlighted');
  105 + }
  106 + };
  107 + myDataTable.subscribe("cellMouseoverEvent", myDataTable.highlightEditableCell);
  108 + myDataTable.subscribe("cellMouseoutEvent", myDataTable.unhighlightEditableCell);
  109 + myDataTable.subscribe('cellClickEvent',function(ev)
  110 + {
  111 + var target = YAHOO.util.Event.getTarget(ev);
  112 + var column = this.getColumn(target);
  113 + if(YAHOO.example.container.panelCK)
  114 + {
  115 + YAHOO.example.container.panelCK.destroy();
  116 + YAHOO.example.container.panelCK = null;
  117 + }
  118 + if (column.key == 'excluir')
  119 + {
  120 + var record = this.getRecord(target);
  121 + excluiLinha(record.getData('id_grupo'),target);
  122 + }
  123 + else
  124 + {this.onEventShowCellEditor(ev);}
  125 + });
  126 + // Hook into custom event to customize save-flow of "radio" editor
  127 + myDataTable.subscribe("editorUpdateEvent", function(oArgs)
  128 + {
  129 + if(oArgs.editor.column.key === "active")
  130 + {
  131 + this.saveCellEditor();
  132 +
  133 + }
  134 + });
  135 + myDataTable.subscribe("editorBlurEvent", function(oArgs)
  136 + {
  137 + this.cancelCellEditor();
  138 + });
  139 + };
  140 + core_carregando("desativa");
  141 +}
  142 +function gravaLinha(row)
  143 +{
  144 + var r = myDataTable.getRecordSet().getRecord(row);
  145 + var id_grupo = r.getData("id_grupo");
  146 + var nome_grupo = r.getData("nome_grupo");
  147 + var desc_grupo = r.getData("desc_grupo");
  148 + core_carregando("ativa");
  149 + core_carregando(" gravando registro do id= "+id_grupo);
  150 + var sUrl = "../php/menutemas.php?funcao=alteraGrupos&nome="+nome_grupo+"&desc="+desc_grupo+"&id="+id_grupo;
  151 + var callback =
  152 + {
  153 + success:function(o)
  154 + {
  155 + core_carregando("desativa");
  156 + },
  157 + failure:core_handleFailure,
  158 + argument: { foo:"foo", bar:"bar" }
  159 + };
  160 + core_makeRequest(sUrl,callback)
  161 +}
  162 +function excluiLinha(id,row)
  163 +{
  164 + //dialogo
  165 + // Define various event handlers for Dialog
  166 + var handleYes = function() {
  167 + this.hide();
  168 + core_carregando("ativa");
  169 + core_carregando(" excluindo o registro do id= "+id);
  170 + var sUrl = "../php/menutemas.php?funcao=excluirRegistro&id="+id+"&tabela=grupos";
  171 + var callback =
  172 + {
  173 + success:function(o)
  174 + {
  175 + try
  176 + {
  177 + if(YAHOO.lang.JSON.parse(o.responseText) == "erro")
  178 + {
  179 + core_carregando("<span style=color:red >Não foi possível excluir. Verifique se não existem sub-grupos vinculados a este grupo</span>");
  180 + setTimeout("core_carregando('desativa')",3000)
  181 + }
  182 + else
  183 + {
  184 + myDataTable.deleteRow(row);
  185 + core_carregando("desativa");
  186 + }
  187 + }
  188 + catch(e){core_handleFailure(o,o.responseText);}
  189 + },
  190 + failure:core_handleFailure,
  191 + argument: { foo:"foo", bar:"bar" }
  192 + };
  193 + core_makeRequest(sUrl,callback)
  194 + };
  195 + var handleNo = function()
  196 + {
  197 + this.hide();
  198 + };
  199 + var mensagem = "Exclui o registro?";
  200 + var largura = "300"
  201 + core_dialogoContinua(handleYes,handleNo,mensagem,largura)
  202 +}
  203 +YAHOO.util.Event.addListener(window, "load", initMenu);
0 204 \ No newline at end of file
... ...
admin/js/listatemas.js 0 → 100644
... ... @@ -0,0 +1,333 @@
  1 +YAHOO.namespace("example.container");
  2 +function initMenu()
  3 +{
  4 + ativaBotaoAdicionaTema()
  5 + core_carregando("ativa");
  6 + core_ativaPainelAjuda("ajuda","botaoAjuda");
  7 + core_pegaPerfis("pegaTemas()");
  8 +}
  9 +function ativaBotaoAdicionaTema()
  10 +{
  11 + var adicionalinha = function()
  12 + {
  13 + core_carregando("ativa");
  14 + core_carregando(" adicionando um novo registro");
  15 + var sUrl = "../php/menutemas.php?funcao=alteraTemas";
  16 + var callback =
  17 + {
  18 + success:function(o)
  19 + {
  20 + try
  21 + {
  22 + myDataTable.addRow(YAHOO.lang.JSON.parse(o.responseText)[0],0);
  23 + core_carregando("desativa");
  24 + }
  25 + catch(e){core_handleFailure(e,o.responseText);}
  26 + },
  27 + failure:core_handleFailure,
  28 + argument: { foo:"foo", bar:"bar" }
  29 + };
  30 + core_makeRequest(sUrl,callback)
  31 + };
  32 + //cria o botão de adição de um novo menu
  33 + var adiciona = new YAHOO.widget.Button("adiciona",{ onclick: { fn: adicionalinha } });
  34 +}
  35 +function pegaTemas()
  36 +{
  37 + core_carregando("buscando temas...");
  38 + var sUrl = "../php/menutemas.php?funcao=pegaTemas2";
  39 + var callback =
  40 + {
  41 + success:function(o)
  42 + {
  43 + try
  44 + {montaTabela(YAHOO.lang.JSON.parse(o.responseText));}
  45 + catch(e){core_handleFailure(e,o.responseText);}
  46 + },
  47 + failure:core_handleFailure,
  48 + argument: { foo:"foo", bar:"bar" }
  49 + };
  50 + core_makeRequest(sUrl,callback)
  51 +}
  52 +function montaTabela(dados)
  53 +{
  54 + YAHOO.example.InlineCellEditing = new function()
  55 + {
  56 + // Custom formatter for "address" column to preserve line breaks
  57 + var formatTextoId = function(elCell, oRecord, oColumn, oData)
  58 + {
  59 + elCell.innerHTML = "<p>" + oData + "</p>";
  60 + };
  61 +
  62 + var formatMais = function(elCell, oRecord, oColumn)
  63 + {
  64 + elCell.innerHTML = "<div class=mais style='text-align:center' ></div>";
  65 + };
  66 + var formatExclui = function(elCell, oRecord, oColumn)
  67 + {
  68 + elCell.innerHTML = "<div class=excluir style='text-align:center' ></div>";
  69 + };
  70 + var myColumnDefs = [
  71 + {key:"excluir",label:"excluir",formatter:formatExclui},
  72 + {key:"mais",label:"mais",formatter:formatMais},
  73 + {label:"id",key:"id_tema", formatter:formatTextoId},
  74 + {label:"codigo (mapfile)",key:"codigo_tema", formatter:formatTextoId},
  75 + {label:"nome",key:"nome_tema", formatter:formatTextoId},
  76 + ];
  77 + myDataSource = new YAHOO.util.DataSource(dados);
  78 + myDataSource.responseType = YAHOO.util.DataSource.TYPE_JSARRAY;
  79 + myDataSource.responseSchema =
  80 + {
  81 + fields: ["nome_tema","codigo_tema","id_tema"]
  82 + };
  83 + myDataTable = new YAHOO.widget.DataTable("tabela", myColumnDefs, myDataSource);
  84 + // Set up editing flow
  85 + myDataTable.subscribe('cellClickEvent',function(ev)
  86 + {
  87 + var target = YAHOO.util.Event.getTarget(ev);
  88 + var column = this.getColumn(target);
  89 + if (column.key == 'excluir')
  90 + {
  91 + var record = this.getRecord(target);
  92 + excluiLinha(record.getData('id_tema'),target);
  93 + }
  94 + if (column.key == 'mais')
  95 + {
  96 + var record = this.getRecord(target);
  97 + core_carregando("ativa");
  98 + core_carregando("buscando dados...");
  99 + $clicouId = record.getData('id_tema');
  100 + $recordid = record.getId();
  101 + var sUrl = "../php/menutemas.php?funcao=pegaTemas&id_tema="+record.getData('id_tema');
  102 + var callback =
  103 + {
  104 + success:function(o)
  105 + {
  106 + try
  107 + {
  108 + montaEditorTema(YAHOO.lang.JSON.parse(o.responseText),$clicouId,$recordid);
  109 + }
  110 + catch(e){core_handleFailure(e,o.responseText);}
  111 + },
  112 + failure:core_handleFailure,
  113 + argument: { foo:"foo", bar:"bar" }
  114 + };
  115 + core_makeRequest(sUrl,callback)
  116 + }
  117 +
  118 + });
  119 + // Hook into custom event to customize save-flow of "radio" editor
  120 + myDataTable.subscribe("editorUpdateEvent", function(oArgs)
  121 + {
  122 + if(oArgs.editor.column.key === "active")
  123 + {
  124 + this.saveCellEditor();
  125 + }
  126 + });
  127 + myDataTable.subscribe("editorBlurEvent", function(oArgs)
  128 + {
  129 + this.cancelCellEditor();
  130 + });
  131 + };
  132 + core_carregando("desativa");
  133 +}
  134 +function montaEditorTema(dados,id,recordid)
  135 +{
  136 + function on_editorCheckBoxChange(p_oEvent)
  137 + {
  138 + var ins = "";
  139 + if(p_oEvent.newValue.get("value") == "OK")
  140 + {
  141 + gravaDadosTema(id,recordid);
  142 + }
  143 + else
  144 + {
  145 + YAHOO.example.container.panelEditorTema.destroy();
  146 + YAHOO.example.container.panelEditorTema = null;
  147 + }
  148 + };
  149 + if(!YAHOO.example.container.panelEditorTema)
  150 + {
  151 + var novoel = document.createElement("div");
  152 + novoel.id = "janela_editor";
  153 + var ins = '<div class="hd">Editor</div>';
  154 + ins += "<div class='bd' style='height:354px;overflow:auto'>";
  155 + ins += "<div id='okcancel_checkbox'></div><div id='editor_bd'></div>";
  156 + novoel.innerHTML = ins;
  157 + document.body.appendChild(novoel);
  158 + var editorBotoes = new YAHOO.widget.ButtonGroup({id:"okcancel_checkbox_id", name: "okcancel_checkbox_id", container: "okcancel_checkbox" });
  159 + editorBotoes.addButtons([
  160 + { label: "Salva", value: "OK", checked: false},
  161 + { label: "Cancela", value: "CANCEL", checked: false }
  162 + ]);
  163 + editorBotoes.on("checkedButtonChange", on_editorCheckBoxChange);
  164 + YAHOO.example.container.panelEditorTema = new YAHOO.widget.Panel("janela_editor", { fixedcenter:true,close:false,width:"400px", height:"400px",overflow:"auto", visible:false,constraintoviewport:true } );
  165 + YAHOO.example.container.panelEditorTema.render();
  166 + }
  167 + YAHOO.example.container.panelEditorTema.show();
  168 + //carrega os dados na janela
  169 + $i("editor_bd").innerHTML = montaDivTemas(dados[0])
  170 + core_carregando("desativa");
  171 + //
  172 + //preenche a div com a lista de tags
  173 + //
  174 + core_comboTags("comboTags","Etags_tema","registraTag");
  175 + //
  176 + //preenche a div com a lista de mapfiles
  177 + //
  178 + core_comboMapfiles("comboMapfiles","Ecodigo_tema",dados[0].codigo_tema);
  179 +}
  180 +function registraTag(valor)
  181 +{
  182 + var inp = $i("Etags_tema")
  183 + var tags = inp.value
  184 + if(tags == "")
  185 + inp.value = valor
  186 + else
  187 + inp.value = tags+" "+valor
  188 +}
  189 +function montaDivTemas(i)
  190 +{
  191 + var ins = ""
  192 + ins += "<p>Nome do tema:<br>";
  193 + ins += "<input size=50 type=text id=Enome_tema value='"+i.nome_tema+"' /></p>"
  194 +
  195 + ins += "<p>Mapfile (código do mapfile que será utilizado para criar a camada no i3geo):"
  196 + ins += "<div id=comboMapfiles >Buscando...</div>";
  197 +
  198 + ins += "<p>Descrição:<br>";
  199 + ins += "<input size=50 type=text id=Edesc_tema value='"+i.desc_tema+"' /></p>"
  200 +
  201 + ins += "<p>Link para a fonte:<br>";
  202 + ins += "<input size=50 type=text id=Elink_tema value='"+i.link_tema+"' /></p>"
  203 +
  204 + ins += "<p>Tags (separe com espaço). Você pode digitar novos tags ou pegar da lista abaixo:"
  205 + ins += "<input type=text size=50 value='"+i.tags_tema+"' id='Etags_tema' ><br>"
  206 + ins += "<div id=comboTags >Buscando...</div>";
  207 +
  208 + ins += "<p>Tipo:<br>"
  209 + ins += "<select id='Etipo_tema' />"
  210 + ins += "<option value='' "
  211 + if (i.tipoa_tema == ""){ins += "selected";}
  212 + ins += ">Normal</option>"
  213 + ins += "<option value='WMS' "
  214 + if (i.tipoa_tema == "WMS"){ins += "selected";}
  215 + ins += " >WMS<option></select></p>"
  216 +
  217 + ins += "<p>Permite acesso via WMS/WFS?<br>"
  218 + ins += "<select id='Eogc_tema' >"
  219 + ins += core_combosimnao(i.ogc_tema)
  220 + ins += "</select></p>"
  221 +
  222 + ins += "<p>Permite o download na aplicação datadownload.htm?<br>"
  223 + ins += "<select id='Edownload_tema' >"
  224 + ins += core_combosimnao(i.download_tema)
  225 + ins += "</select></p>"
  226 +
  227 + ins += "<p>Permite acesso via kml?<br>"
  228 + ins += "<select id='Ekml_tema' >"
  229 + ins += core_combosimnao(i.kml_tema)
  230 + ins += "</select></p>"
  231 + return(ins)
  232 +}
  233 +function gravaLinha(row)
  234 +{
  235 + var r = myDataTable.getRecordSet().getRecord(row);
  236 + var id_grupo = r.getData("id_grupo");
  237 + var nome_grupo = r.getData("nome_grupo");
  238 + var desc_grupo = r.getData("desc_grupo");
  239 + core_carregando("ativa");
  240 + core_carregando(" gravando registro do id= "+id_grupo);
  241 + var sUrl = "../php/menutemas.php?funcao=alteraGrupos&nome="+nome_grupo+"&desc="+desc_grupo+"&id="+id_grupo;
  242 + var callback =
  243 + {
  244 + success:function(o)
  245 + {
  246 + core_carregando("desativa");
  247 + },
  248 + failure:core_handleFailure,
  249 + argument: { foo:"foo", bar:"bar" }
  250 + };
  251 + core_makeRequest(sUrl,callback)
  252 +}
  253 +function excluiLinha(id,row)
  254 +{
  255 + //dialogo
  256 + // Define various event handlers for Dialog
  257 + var handleYes = function() {
  258 + this.hide();
  259 + core_carregando("ativa");
  260 + core_carregando(" excluindo o registro do id= "+id);
  261 + var sUrl = "../php/menutemas.php?funcao=excluirRegistro&id="+id+"&tabela=temas";
  262 + var callback =
  263 + {
  264 + success:function(o)
  265 + {
  266 + try
  267 + {
  268 + if(YAHOO.lang.JSON.parse(o.responseText) == "erro")
  269 + {
  270 + core_carregando("<span style=color:red >Não foi possível excluir. Verifique se não existem menus vinculados a este tema</span>");
  271 + setTimeout("core_carregando('desativa')",3000)
  272 + }
  273 + else
  274 + {
  275 + myDataTable.deleteRow(row);
  276 + core_carregando("desativa");
  277 + }
  278 + }
  279 + catch(e){core_handleFailure(e,o.responseText);}
  280 + },
  281 + failure:core_handleFailure,
  282 + argument: { foo:"foo", bar:"bar" }
  283 + };
  284 + core_makeRequest(sUrl,callback)
  285 + };
  286 + var handleNo = function()
  287 + {
  288 + this.hide();
  289 + };
  290 + var mensagem = "Exclui o registro?";
  291 + var largura = "300"
  292 + core_dialogoContinua(handleYes,handleNo,mensagem,largura)
  293 +}
  294 +function gravaDadosTema(id,recordid)
  295 +{
  296 + var campos = new Array("nome","codigo","desc","link","tags","tipo","ogc","download","kml")
  297 + var par = ""
  298 + for (i=0;i<campos.length;i++)
  299 + {
  300 + par += "&"+campos[i]+"="+($i("E"+campos[i]+"_tema").value)
  301 + }
  302 + par += "&id="+id
  303 + core_carregando("ativa");
  304 + core_carregando(" gravando o registro do id= "+id);
  305 + var sUrl = "../php/menutemas.php?funcao=alteraTemas"+par;
  306 + var callback =
  307 + {
  308 + success:function(o)
  309 + {
  310 + try
  311 + {
  312 + if(YAHOO.lang.JSON.parse(o.responseText) == "erro")
  313 + {
  314 + core_carregando("<span style=color:red >Não foi possível excluir. Verifique se não existem menus vinculados a este tema</span>");
  315 + setTimeout("core_carregando('desativa')",3000)
  316 + }
  317 + else
  318 + {
  319 + var rec = myDataTable.getRecordSet().getRecord(recordid);
  320 + myDataTable.updateRow(rec,YAHOO.lang.JSON.parse(o.responseText)[0])
  321 + core_carregando("desativa");
  322 + }
  323 + YAHOO.example.container.panelEditorTema.destroy();
  324 + YAHOO.example.container.panelEditorTema = null;
  325 + }
  326 + catch(e){core_handleFailure(e,o.responseText);}
  327 + },
  328 + failure:core_handleFailure,
  329 + argument: { foo:"foo", bar:"bar" }
  330 + };
  331 + core_makeRequest(sUrl,callback)
  332 +}
  333 +YAHOO.util.Event.addListener(window, "load", initMenu);
0 334 \ No newline at end of file
... ...
admin/js/menu.js
... ... @@ -2,7 +2,7 @@ YAHOO.namespace(&quot;example.container&quot;);
2 2 function initMenu()
3 3 {
4 4 ativaBotaoAdicionaMenu()
5   - core_carregando();
  5 + core_carregando("ativa");
6 6 core_ativaPainelAjuda("ajuda","botaoAjuda");
7 7 core_pegaPerfis("pegaMenus()");
8 8 }
... ... @@ -10,14 +10,18 @@ function ativaBotaoAdicionaMenu()
10 10 {
11 11 var adicionalinha = function()
12 12 {
13   - core_carregando();
  13 + core_carregando("ativa");
  14 + core_carregando(" adicionando um novo registro");
14 15 var sUrl = "../php/menutemas.php?funcao=alteraMenus&publicado_menu=&perfil=&nome=&desc=&id=&aberto=";
15 16 var callback =
16 17 {
17 18 success:function(o)
18 19 {
19 20 try
20   - {pegaMenus();}
  21 + {
  22 + myDataTable.addRow(YAHOO.lang.JSON.parse(o.responseText)[0],0);
  23 + core_carregando("desativa");
  24 + }
21 25 catch(e){core_handleFailure(o,o.responseText);}
22 26 },
23 27 failure:core_handleFailure,
... ... @@ -30,7 +34,8 @@ function ativaBotaoAdicionaMenu()
30 34 }
31 35 function pegaMenus()
32 36 {
33   - var sUrl = "../php/menutemas.php?funcao=pegaMenusYUI";
  37 + core_carregando("buscando menus...");
  38 + var sUrl = "../php/menutemas.php?funcao=pegaMenus";
34 39 var callback =
35 40 {
36 41 success:function(o)
... ... @@ -62,7 +67,7 @@ function montaTabela(dados)
62 67 elCell.innerHTML = "<div class=excluir style='text-align:center' ></div>";//onclick='excluiLinha(\""+oRecord.getData("id_menu")+"\",\""+oRecord.getId()+"\")'></div>";
63 68 };
64 69 var myColumnDefs = [
65   - {key:"excluir",label:"",formatter:formatExclui},
  70 + {key:"excluir",label:"excluir",formatter:formatExclui},
66 71 {label:"salvar",formatter:formatSalva},
67 72 {label:"id",key:"id_menu", formatter:formatTexto},
68 73 {label:"nome",resizeable:true,key:"nome_menu", formatter:formatTexto, editor:"textbox"},
... ... @@ -82,18 +87,32 @@ function montaTabela(dados)
82 87 myDataTable.highlightEditableCell = function(oArgs)
83 88 {
84 89 var elCell = oArgs.target;
85   - if(YAHOO.util.Dom.hasClass(elCell, "yui-dt-editable"))
  90 + var column = myDataTable.getColumn(oArgs.target);
  91 + //if(column.editor != "null")
  92 + if(!YAHOO.lang.isNull(column.editor))
86 93 {
87   - myDataTable.highlightCell(elCell);
  94 + YAHOO.util.Dom.addClass(elCell,'yui-dt-highlighted');
  95 + }
  96 + };
  97 + myDataTable.unhighlightEditableCell = function(oArgs)
  98 + {
  99 + var elCell = oArgs.target;
  100 + if(elCell.style.cursor="pointer")
  101 + {
  102 + YAHOO.util.Dom.removeClass(elCell,'yui-dt-highlighted');
88 103 }
89 104 };
90 105 myDataTable.subscribe("cellMouseoverEvent", myDataTable.highlightEditableCell);
91   - myDataTable.subscribe("cellMouseoutEvent", myDataTable.onEventUnhighlightCell);
92   - //myDataTable.subscribe("cellClickEvent", myDataTable.onEventShowCellEditor);
  106 + myDataTable.subscribe("cellMouseoutEvent", myDataTable.unhighlightEditableCell);
93 107 myDataTable.subscribe('cellClickEvent',function(ev)
94 108 {
95 109 var target = YAHOO.util.Event.getTarget(ev);
96 110 var column = this.getColumn(target);
  111 + if(YAHOO.example.container.panelCK)
  112 + {
  113 + YAHOO.example.container.panelCK.destroy();
  114 + YAHOO.example.container.panelCK = null;
  115 + }
97 116 if (column.key == 'excluir')
98 117 {
99 118 var record = this.getRecord(target);
... ... @@ -112,7 +131,6 @@ function montaTabela(dados)
112 131 {this.onEventShowCellEditor(ev);}
113 132 }
114 133 });
115   -
116 134 // Hook into custom event to customize save-flow of "radio" editor
117 135 myDataTable.subscribe("editorUpdateEvent", function(oArgs)
118 136 {
... ... @@ -127,7 +145,7 @@ function montaTabela(dados)
127 145 this.cancelCellEditor();
128 146 });
129 147 };
130   - YAHOO.example.container.wait.hide();
  148 + core_carregando("desativa");
131 149 }
132 150 function gravaLinha(row)
133 151 {
... ... @@ -138,13 +156,14 @@ function gravaLinha(row)
138 156 var desc_menu = r.getData("desc_menu")
139 157 var id_menu = r.getData("id_menu")
140 158 var nome_menu = r.getData("nome_menu")
141   - core_carregando();
  159 + core_carregando("ativa");
  160 + core_carregando(" gravando registro do id= "+id_menu);
142 161 var sUrl = "../php/menutemas.php?funcao=alteraMenus&publicado_menu="+publicado_menu+"&perfil="+perfil_menu+"&nome="+nome_menu+"&desc="+desc_menu+"&id="+id_menu+"&aberto="+aberto+"";
143 162 var callback =
144 163 {
145 164 success:function(o)
146 165 {
147   - YAHOO.example.container.wait.hide();
  166 + core_carregando("desativa");
148 167 },
149 168 failure:core_handleFailure,
150 169 argument: { foo:"foo", bar:"bar" }
... ... @@ -157,7 +176,8 @@ function excluiLinha(id,row)
157 176 // Define various event handlers for Dialog
158 177 var handleYes = function() {
159 178 this.hide();
160   - core_carregando();
  179 + core_carregando("ativa");
  180 + core_carregando(" excluindo o registro do id= "+id);
161 181 var sUrl = "../php/menutemas.php?funcao=excluirRegistro&id="+id+"&tabela=menus";
162 182 var callback =
163 183 {
... ... @@ -165,8 +185,16 @@ function excluiLinha(id,row)
165 185 {
166 186 try
167 187 {
168   - myDataTable.deleteRow(row);
169   - YAHOO.example.container.wait.hide();
  188 + if(YAHOO.lang.JSON.parse(o.responseText) == "erro")
  189 + {
  190 + core_carregando("<span style=color:red >Não foi possível excluir. Verifique se não existem grupos vinculados a este menu</span>");
  191 + setTimeout("core_carregando('desativa')",3000)
  192 + }
  193 + else
  194 + {
  195 + myDataTable.deleteRow(row);
  196 + core_carregando("desativa");
  197 + }
170 198 }
171 199 catch(e){core_handleFailure(o,o.responseText);}
172 200 },
... ...
admin/js/subgrupos.js 0 → 100644
... ... @@ -0,0 +1,203 @@
  1 +YAHOO.namespace("example.container");
  2 +function initMenu()
  3 +{
  4 + ativaBotaoAdicionaSubGrupo()
  5 + core_carregando("ativa");
  6 + core_ativaPainelAjuda("ajuda","botaoAjuda");
  7 + core_pegaPerfis("pegaSubGrupos()");
  8 +}
  9 +function ativaBotaoAdicionaSubGrupo()
  10 +{
  11 + var adicionalinha = function()
  12 + {
  13 + core_carregando("ativa");
  14 + core_carregando(" adicionando um novo registro");
  15 + var sUrl = "../php/menutemas.php?funcao=alteraSubGrupos";
  16 + var callback =
  17 + {
  18 + success:function(o)
  19 + {
  20 + try
  21 + {
  22 + myDataTable.addRow(YAHOO.lang.JSON.parse(o.responseText)[0],0);
  23 + core_carregando("desativa");
  24 + }
  25 + catch(e){core_handleFailure(o,o.responseText);}
  26 + },
  27 + failure:core_handleFailure,
  28 + argument: { foo:"foo", bar:"bar" }
  29 + };
  30 + core_makeRequest(sUrl,callback)
  31 + };
  32 + //cria o botão de adição de um novo menu
  33 + var adiciona = new YAHOO.widget.Button("adiciona",{ onclick: { fn: adicionalinha } });
  34 +}
  35 +function pegaSubGrupos()
  36 +{
  37 + core_carregando("buscando sub-grupos...");
  38 + var sUrl = "../php/menutemas.php?funcao=pegaSubGrupos";
  39 + var callback =
  40 + {
  41 + success:function(o)
  42 + {
  43 + try
  44 + {montaTabela(YAHOO.lang.JSON.parse(o.responseText));}
  45 + catch(e){core_handleFailure(o,o.responseText);}
  46 + },
  47 + failure:core_handleFailure,
  48 + argument: { foo:"foo", bar:"bar" }
  49 + };
  50 + core_makeRequest(sUrl,callback)
  51 +}
  52 +function montaTabela(dados)
  53 +{
  54 + YAHOO.example.InlineCellEditing = new function()
  55 + {
  56 + // Custom formatter for "address" column to preserve line breaks
  57 + var formatTexto = function(elCell, oRecord, oColumn, oData)
  58 + {
  59 + elCell.innerHTML = "<p style=width:250px >" + oData + "</p>";
  60 + };
  61 + var formatTextoId = function(elCell, oRecord, oColumn, oData)
  62 + {
  63 + elCell.innerHTML = "<p style=width:20px >" + oData + "</p>";
  64 + };
  65 +
  66 + var formatSalva = function(elCell, oRecord, oColumn)
  67 + {
  68 + elCell.innerHTML = "<div class=aplicar style='text-align:center' onclick='gravaLinha(\""+oRecord._sId+"\")'></div>";
  69 + };
  70 + var formatExclui = function(elCell, oRecord, oColumn)
  71 + {
  72 + elCell.innerHTML = "<div class=excluir style='text-align:center' ></div>";//onclick='excluiLinha(\""+oRecord.getData("id_menu")+"\",\""+oRecord.getId()+"\")'></div>";
  73 + };
  74 + var myColumnDefs = [
  75 + {key:"excluir",label:"excluir",formatter:formatExclui},
  76 + {label:"salvar",formatter:formatSalva},
  77 + {label:"id",key:"id_subgrupo", formatter:formatTextoId},
  78 + {label:"nome",resizeable:true,key:"nome_subgrupo", formatter:formatTexto, editor:"textbox"},
  79 + {label:"descrição",resizeable:true,key:"desc_subgrupo", formatter:formatTexto, editor:"textbox"}
  80 + ];
  81 + myDataSource = new YAHOO.util.DataSource(dados);
  82 + myDataSource.responseType = YAHOO.util.DataSource.TYPE_JSARRAY;
  83 + myDataSource.responseSchema =
  84 + {
  85 + fields: ["desc_subgrupo","id_subgrupo","nome_subgrupo"]
  86 + };
  87 + myDataTable = new YAHOO.widget.DataTable("tabela", myColumnDefs, myDataSource);
  88 + // Set up editing flow
  89 + myDataTable.highlightEditableCell = function(oArgs)
  90 + {
  91 + var elCell = oArgs.target;
  92 + var column = myDataTable.getColumn(oArgs.target);
  93 + //if(column.editor != "null")
  94 + if(!YAHOO.lang.isNull(column.editor))
  95 + {
  96 + YAHOO.util.Dom.addClass(elCell,'yui-dt-highlighted');
  97 + }
  98 + };
  99 + myDataTable.unhighlightEditableCell = function(oArgs)
  100 + {
  101 + var elCell = oArgs.target;
  102 + if(elCell.style.cursor="pointer")
  103 + {
  104 + YAHOO.util.Dom.removeClass(elCell,'yui-dt-highlighted');
  105 + }
  106 + };
  107 + myDataTable.subscribe("cellMouseoverEvent", myDataTable.highlightEditableCell);
  108 + myDataTable.subscribe("cellMouseoutEvent", myDataTable.unhighlightEditableCell);
  109 + myDataTable.subscribe('cellClickEvent',function(ev)
  110 + {
  111 + var target = YAHOO.util.Event.getTarget(ev);
  112 + var column = this.getColumn(target);
  113 + if(YAHOO.example.container.panelCK)
  114 + {
  115 + YAHOO.example.container.panelCK.destroy();
  116 + YAHOO.example.container.panelCK = null;
  117 + }
  118 + if (column.key == 'excluir')
  119 + {
  120 + var record = this.getRecord(target);
  121 + excluiLinha(record.getData('id_subgrupo'),target);
  122 + }
  123 + else
  124 + {this.onEventShowCellEditor(ev);}
  125 + });
  126 + // Hook into custom event to customize save-flow of "radio" editor
  127 + myDataTable.subscribe("editorUpdateEvent", function(oArgs)
  128 + {
  129 + if(oArgs.editor.column.key === "active")
  130 + {
  131 + this.saveCellEditor();
  132 +
  133 + }
  134 + });
  135 + myDataTable.subscribe("editorBlurEvent", function(oArgs)
  136 + {
  137 + this.cancelCellEditor();
  138 + });
  139 + };
  140 + core_carregando("desativa");
  141 +}
  142 +function gravaLinha(row)
  143 +{
  144 + var r = myDataTable.getRecordSet().getRecord(row);
  145 + var id_subgrupo = r.getData("id_subgrupo");
  146 + var nome_subgrupo = r.getData("nome_subgrupo");
  147 + var desc_subgrupo = r.getData("desc_subgrupo");
  148 + core_carregando("ativa");
  149 + core_carregando(" gravando registro do id= "+id_subgrupo);
  150 + var sUrl = "../php/menutemas.php?funcao=alteraSubGrupos&nome="+nome_subgrupo+"&desc="+desc_subgrupo+"&id="+id_subgrupo;
  151 + var callback =
  152 + {
  153 + success:function(o)
  154 + {
  155 + core_carregando("desativa");
  156 + },
  157 + failure:core_handleFailure,
  158 + argument: { foo:"foo", bar:"bar" }
  159 + };
  160 + core_makeRequest(sUrl,callback)
  161 +}
  162 +function excluiLinha(id,row)
  163 +{
  164 + //dialogo
  165 + // Define various event handlers for Dialog
  166 + var handleYes = function() {
  167 + this.hide();
  168 + core_carregando("ativa");
  169 + core_carregando(" excluindo o registro do id= "+id);
  170 + var sUrl = "../php/menutemas.php?funcao=excluirRegistro&id="+id+"&tabela=subgrupos";
  171 + var callback =
  172 + {
  173 + success:function(o)
  174 + {
  175 + try
  176 + {
  177 + if(YAHOO.lang.JSON.parse(o.responseText) == "erro")
  178 + {
  179 + core_carregando("<span style=color:red >Não foi possível excluir. Verifique se não existem temas vinculados a este sub-grupo</span>");
  180 + setTimeout("core_carregando('desativa')",3000)
  181 + }
  182 + else
  183 + {
  184 + myDataTable.deleteRow(row);
  185 + core_carregando("desativa");
  186 + }
  187 + }
  188 + catch(e){core_handleFailure(o,o.responseText);}
  189 + },
  190 + failure:core_handleFailure,
  191 + argument: { foo:"foo", bar:"bar" }
  192 + };
  193 + core_makeRequest(sUrl,callback)
  194 + };
  195 + var handleNo = function()
  196 + {
  197 + this.hide();
  198 + };
  199 + var mensagem = "Exclui o registro?";
  200 + var largura = "300"
  201 + core_dialogoContinua(handleYes,handleNo,mensagem,largura)
  202 +}
  203 +YAHOO.util.Event.addListener(window, "load", initMenu);
0 204 \ No newline at end of file
... ...
admin/php/admin.php
... ... @@ -156,4 +156,60 @@ function pegaDados($sql)
156 156 return "Error!: " . $e->getMessage();
157 157 }
158 158 }
  159 +/*
  160 +Function: verificaFilhos
  161 +
  162 +Verifica se o pai tem filhos
  163 +*/
  164 +function verificaFilhos()
  165 +{
  166 + global $tabela,$id;
  167 + try
  168 + {
  169 + $res = false;
  170 + if($tabela == "i3geoadmin_n2")
  171 + {
  172 + $r = pegaDados("select * from i3geoadmin_n3 where id_n2=$id");
  173 + if(count($r) > 0)
  174 + $res = true;
  175 + }
  176 + if($tabela == "i3geoadmin_n1")
  177 + {
  178 + $r = pegaDados("select * from i3geoadmin_n2 where id_n1=$id");
  179 + if(count($r) > 0)
  180 + $res = true;
  181 + }
  182 + if($tabela == "i3geoadmin_menus")
  183 + {
  184 + $r = pegaDados("select * from i3geoadmin_n1 where id_menu=$id");
  185 + if(count($r) > 0)
  186 + $res = true;
  187 + }
  188 + if($tabela == "i3geoadmin_grupos")
  189 + {
  190 + $r = pegaDados("select n1.id_grupo from i3geoadmin_n1 as n1, i3geoadmin_n2 as n2 where n1.id_n1 = n2.id_n1 and n1.id_grupo = '$id'");
  191 + if(count($r) > 0)
  192 + $res = true;
  193 + }
  194 + if($tabela == "i3geoadmin_subgrupos")
  195 + {
  196 + $r = pegaDados("select n2.id_subgrupo from i3geoadmin_n3 as n3, i3geoadmin_n2 as n2 where n2.id_n2 = n3.id_n3 and n2.id_subgrupo = '$id'");
  197 + if(count($r) > 0)
  198 + $res = true;
  199 + }
  200 + if($tabela == "i3geoadmin_temas")
  201 + {
  202 + $r = pegaDados("select id_tema from i3geoadmin_n3 where id_tema = '$id'");
  203 + if(count($r) > 0)
  204 + $res = true;
  205 + }
  206 +
  207 + return $res;
  208 + }
  209 + catch (PDOException $e)
  210 + {
  211 + return "Error!: " . $e->getMessage();
  212 + }
  213 +}
  214 +
159 215 ?>
160 216 \ No newline at end of file
... ...
admin/php/arvore.php
... ... @@ -88,36 +88,6 @@ switch ($funcao)
88 88 break;
89 89 }
90 90 /*
91   -Function: verificaFilhos
92   -
93   -Verifica se o pai tem filhos
94   -*/
95   -function verificaFilhos()
96   -{
97   - global $tabela,$coluna,$id;
98   - try
99   - {
100   - $res = false;
101   - if($tabela == "i3geoadmin_n2")
102   - {
103   - $r = pegaDados("select * from i3geoadmin_n3 where id_n2=$id");
104   - if(count($r) > 0)
105   - $res = true;
106   - }
107   - if($tabela == "i3geoadmin_n1")
108   - {
109   - $r = pegaDados("select * from i3geoadmin_n2 where id_n1=$id");
110   - if(count($r) > 0)
111   - $res = true;
112   - }
113   - return $res;
114   - }
115   - catch (PDOException $e)
116   - {
117   - return "Error!: " . $e->getMessage();
118   - }
119   -}
120   -/*
121 91 Function: alteraN3
122 92  
123 93 Altera o registro de um nível 3 (temas)
... ...
admin/php/menutemas.php
... ... @@ -43,70 +43,75 @@ switch ($funcao)
43 43 $cp->set_data(importarXmlMenu());
44 44 $cp->return_data();
45 45 break;
46   -
47   - case "pegaMenus":
48   - $cp->set_data(pegaDados('SELECT * from i3geoadmin_menus order by nome_menu'));
49   - $cp->return_data();
50   - break;
51 46  
52   - case "pegaMenusYUI":
  47 + case "pegaMenus":
53 48 $dados = pegaDados('SELECT * from i3geoadmin_menus order by nome_menu');
54 49 retornaJSON($dados);
55 50 break;
56 51  
57 52 case "pegaTags":
58   - $cp->set_data(pegaDados('SELECT * from i3geoadmin_tags order by nome'));
59   - $cp->return_data();
  53 + $sql = "SELECT * from i3geoadmin_tags order by nome";
  54 + retornaJSON(pegaDados($sql));
  55 + exit;
60 56 break;
61 57  
62 58 case "pegaPerfis":
63   - $cp->set_data(pegaDados('SELECT * from i3geoadmin_perfis order by perfil'));
64   - $cp->return_data();
65   - break;
66   -
67   - case "pegaPerfisYUI":
68 59 $dados = pegaDados('SELECT * from i3geoadmin_perfis order by perfil');
69 60 retornaJSON($dados);
70 61 break;
71 62  
72 63 case "alteraMenus":
73   - alteraMenus();
  64 + $novo = alteraMenus();
  65 + $sql = "SELECT * from i3geoadmin_menus WHERE id_menu = '".$novo."'";
  66 + retornaJSON(pegaDados($sql));
74 67 exit;
75 68 break;
76 69  
77 70 case "pegaGrupos":
78   - $cp->set_data(pegaDados('SELECT * from i3geoadmin_grupos order by nome_grupo'));
79   - $cp->return_data();
  71 + $dados = pegaDados('SELECT * from i3geoadmin_grupos order by nome_grupo');
  72 + retornaJSON($dados);
  73 + exit;
80 74 break;
81   -
  75 +
82 76 case "alteraGrupos":
83   - $cp->set_data(alteraGrupos());
84   - $cp->return_data();
  77 + $novo = alteraGrupos();
  78 + $sql = "SELECT * from i3geoadmin_grupos WHERE id_grupo = '".$novo."'";
  79 + retornaJSON(pegaDados($sql));
  80 + exit;
85 81 break;
86   -
  82 +
87 83 case "pegaSubGrupos":
88   - $cp->set_data(pegaDados('SELECT * from i3geoadmin_subgrupos order by nome_subgrupo'));
89   - $cp->return_data();
  84 + $dados = pegaDados('SELECT * from i3geoadmin_subgrupos order by nome_subgrupo');
  85 + retornaJSON($dados);
  86 + exit;
90 87 break;
91 88  
92 89 case "alteraSubGrupos":
93   - $cp->set_data(alteraSubGrupos());
94   - $cp->return_data();
  90 + $novo = alteraSubGrupos();
  91 + $sql = "SELECT * from i3geoadmin_subgrupos WHERE id_subgrupo = '".$novo."'";
  92 + retornaJSON(pegaDados($sql));
  93 + exit;
95 94 break;
96 95  
97 96 case "pegaTemas":
98   - $cp->set_data(pegaTemas());
99   - $cp->return_data();
  97 + $sql = "SELECT * from i3geoadmin_temas where id_tema = '$id_tema'";
  98 + retornaJSON(pegaDados($sql));
  99 + exit;
100 100 break;
101 101  
102 102 case "pegaTemas2":
103   - $cp->set_data(pegaTemas2());
104   - $cp->return_data();
105   - break;
  103 + retornaJSON(pegaTemas2());
  104 + exit;
  105 + break;
106 106  
107 107 case "alteraTemas":
108   - $cp->set_data(alteraTemas());
109   - $cp->return_data();
  108 + //$r será igual ao novo id criado, no caso de inserção de um novo tema
  109 + $r = alteraTemas();
  110 + if($id == "")
  111 + retornaJSON($r);
  112 + else
  113 + retornaJSON(pegaDados("select * from i3geoadmin_temas where id_tema = '$id'"));
  114 + exit;
110 115 break;
111 116  
112 117 case "alteraTags":
... ... @@ -118,32 +123,63 @@ switch ($funcao)
118 123 $cp->set_data(alteraPerfis());
119 124 $cp->return_data();
120 125 break;
121   -
122   - case "pegaSubXGrupos":
123   - $cp->set_data(pegaSubXGrupos());
124   - $cp->return_data();
125   - break;
126 126  
127 127 case "excluirRegistro":
128 128 if($tabela == "grupos")
129   - {$tabela = "i3geoadmin_grupos";$coluna = "id_grupo";}
  129 + {
  130 + $tabela = "i3geoadmin_grupos";
  131 + $coluna = "id_grupo";
  132 + $filhos = verificaFilhos();
  133 + if($filhos)
  134 + {
  135 + retornaJSON("erro");
  136 + exit;
  137 + }
  138 + }
130 139 if($tabela == "tags")
131 140 {excluiTagTemas($id);$tabela = "i3geoadmin_tags";$coluna = "id_tag";}
132 141 if($tabela == "perfis")
133 142 {excluiPerfil($perfil);$tabela = "i3geoadmin_perfis";$coluna = "perfil";}
134 143 if($tabela == "subgrupos")
135   - {$tabela = "i3geoadmin_subgrupos";$coluna = "id_subgrupo";}
  144 + {
  145 + $tabela = "i3geoadmin_subgrupos";
  146 + $coluna = "id_subgrupo";
  147 + $filhos = verificaFilhos();
  148 + if($filhos)
  149 + {
  150 + retornaJSON("erro");
  151 + exit;
  152 + }
  153 + }
136 154 if($tabela == "temas")
137   - {$tabela = "i3geoadmin_temas";$coluna = "id_tema";}
  155 + {
  156 + $tabela = "i3geoadmin_temas";
  157 + $coluna = "id_tema";
  158 + $filhos = verificaFilhos();
  159 + if($filhos)
  160 + {
  161 + retornaJSON("erro");
  162 + exit;
  163 + }
  164 + }
138 165 if($tabela == "menus")
139   - {$tabela = "i3geoadmin_menus";$coluna = "id_menu";}
140   - $cp->set_data(exclui());
141   - $cp->return_data();
  166 + {
  167 + $tabela = "i3geoadmin_menus";
  168 + $coluna = "id_menu";
  169 + $filhos = verificaFilhos();
  170 + if($filhos)
  171 + {
  172 + retornaJSON("erro");
  173 + exit;
  174 + }
  175 + }
  176 + retornaJSON(exclui());
  177 + exit;
142 178 break;
143 179  
144 180 case "listaMapsTemas":
145   - $cp->set_data(listaMapsTemas());
146   - $cp->return_data();
  181 + retornaJSON(listaMapsTemas());
  182 + exit;
147 183 break;
148 184 }
149 185 function retornaJSON($obj)
... ... @@ -282,7 +318,7 @@ function pegaTemas2()
282 318 {
283 319 $resultado = array();
284 320 require_once("conexao.php");
285   - foreach($dbh->query('SELECT codigo_tema,nome_tema from i3geoadmin_temas order by nome_tema') as $row)
  321 + foreach($dbh->query('SELECT codigo_tema,nome_tema,id_tema from i3geoadmin_temas order by nome_tema') as $row)
286 322 {
287 323 $continua = true;
288 324 if(isset($filtro) && $filtro != "")
... ... @@ -298,7 +334,8 @@ function pegaTemas2()
298 334 if ($continua)
299 335 $resultado[] = array(
300 336 "nome_tema"=>$row['nome_tema'],
301   - "codigo_tema"=>$row['codigo_tema']
  337 + "codigo_tema"=>$row['codigo_tema'],
  338 + "id_tema"=>$row['id_tema']
302 339 );
303 340 }
304 341 $dbh = null;
... ... @@ -310,26 +347,6 @@ function pegaTemas2()
310 347 return "Error!: " . $e->getMessage();
311 348 }
312 349 }
313   -
314   -/*
315   -Function: pegaSubXGrupos
316   -
317   -Pega a lista de sub-grupos por grupos
318   -*/
319   -function pegaSubXGrupos()
320   -{
321   -/*
322   -select i3geoadmin_subxgrupos.id_subxgrupo,i3geoadmin_grupos.nome_grupo,i3geoadmin_subgrupos.nome_subgrupo
323   -from
324   -i3geoadmin_grupos,i3geoadmin_subgrupos,i3geoadmin_subxgrupos
325   -where
326   -i3geoadmin_grupos.id_grupo = i3geoadmin_subxgrupos.id_grupo
327   -and
328   -i3geoadmin_subgrupos.id_subgrupo = i3geoadmin_subxgrupos.id_subgrupo
329   -order by nome_grupo,nome_subgrupo
330   -*/
331   -
332   -}
333 350 /*
334 351 Function: alteraMenus
335 352  
... ... @@ -340,18 +357,26 @@ function alteraMenus()
340 357 global $nome,$desc,$id,$aberto,$perfil,$publicado_menu;
341 358 try
342 359 {
343   - $nome = mb_convert_encoding($nome,"UTF-8","ISO-8859-1");
344   - $desc = mb_convert_encoding($desc,"UTF-8","ISO-8859-1");
  360 + //$nome = mb_convert_encoding($nome,"UTF-8","ISO-8859-1");
  361 + //$desc = mb_convert_encoding($desc,"UTF-8","ISO-8859-1");
  362 + $retorna = "";
345 363 include("conexao.php");
346 364 if($id != "")
347 365 {
348 366 $dbhw->query("UPDATE i3geoadmin_menus SET publicado_menu = '$publicado_menu',aberto = '$aberto', nome_menu = '$nome', desc_menu = '$desc', perfil_menu = '$perfil' WHERE id_menu = $id");
  367 + $retorna = "ok";
349 368 }
350 369 else
351   - $dbhw->query("INSERT INTO i3geoadmin_menus (publicado_menu, nome_menu, desc_menu, aberto, perfil_menu) VALUES ('','', '','SIM','')");
  370 + {
  371 + $dbhw->query("INSERT INTO i3geoadmin_menus (publicado_menu, nome_menu, desc_menu, aberto, perfil_menu) VALUES ('','', '','SIM','')");
  372 + $id_menu = $dbhw->query("SELECT * FROM i3geoadmin_menus");
  373 + $id_menu = $id_menu->fetchAll();
  374 + $id_menu = intval($id_menu[count($id_menu)-1]['id_menu']);
  375 + $retorna = $id_menu;
  376 + }
352 377 $dbhw = null;
353 378 $dbh = null;
354   - return "ok";
  379 + return $retorna;
355 380 }
356 381 catch (PDOException $e)
357 382 {
... ... @@ -448,7 +473,7 @@ function alteraTags()
448 473 try
449 474 {
450 475 $dbh = "";
451   - $nome = mb_convert_encoding($nome,"UTF-8","ISO-8859-1");
  476 + //$nome = mb_convert_encoding($nome,"UTF-8","ISO-8859-1");
452 477 include("conexao.php");
453 478 if($id != "")
454 479 {
... ... @@ -489,18 +514,26 @@ function alteraGrupos()
489 514 global $nome,$desc,$id;
490 515 try
491 516 {
492   - $nome = mb_convert_encoding($nome,"UTF-8","ISO-8859-1");
493   - $desc = mb_convert_encoding($desc,"UTF-8","ISO-8859-1");
  517 + //$nome = mb_convert_encoding($nome,"UTF-8","ISO-8859-1");
  518 + //$desc = mb_convert_encoding($desc,"UTF-8","ISO-8859-1");
494 519 include("conexao.php");
  520 + $retorna = "";
495 521 if($id != "")
496 522 {
497 523 $dbhw->query("UPDATE i3geoadmin_grupos SET nome_grupo = '$nome', desc_grupo = '$desc' WHERE id_grupo = $id");
  524 + $retorna = "ok";
498 525 }
499 526 else
500   - $dbhw->query("INSERT INTO i3geoadmin_grupos (nome_grupo, desc_grupo) VALUES ('', '')");
  527 + {
  528 + $dbhw->query("INSERT INTO i3geoadmin_grupos (nome_grupo, desc_grupo) VALUES ('', '')");
  529 + $id_grupo = $dbh->query("SELECT * FROM i3geoadmin_grupos");
  530 + $id_grupo = $id_grupo->fetchAll();
  531 + $id_grupo = intval($id_grupo[count($id_grupo)-1]['id_grupo']);
  532 + $retorna = $id_grupo;
  533 + }
501 534 $dbhw = null;
502 535 $dbh = null;
503   - return "ok";
  536 + return $retorna;
504 537 }
505 538 catch (PDOException $e)
506 539 {
... ... @@ -517,18 +550,26 @@ function alteraSubGrupos()
517 550 global $nome,$desc,$id;
518 551 try
519 552 {
520   - $nome = mb_convert_encoding($nome,"UTF-8","ISO-8859-1");
521   - $desc = mb_convert_encoding($desc,"UTF-8","ISO-8859-1");
  553 + //$nome = mb_convert_encoding($nome,"UTF-8","ISO-8859-1");
  554 + //$desc = mb_convert_encoding($desc,"UTF-8","ISO-8859-1");
522 555 require_once("conexao.php");
  556 + $retorna = "";
523 557 if($id != "")
524 558 {
525 559 $dbhw->query("UPDATE i3geoadmin_subgrupos SET nome_subgrupo = '$nome', desc_subgrupo = '$desc' WHERE id_subgrupo = $id");
  560 + $retorna = "ok";
526 561 }
527 562 else
528   - $dbhw->query("INSERT INTO i3geoadmin_subgrupos (nome_subgrupo, desc_subgrupo) VALUES ('', '')");
  563 + {
  564 + $dbhw->query("INSERT INTO i3geoadmin_subgrupos (nome_subgrupo, desc_subgrupo) VALUES ('', '')");
  565 + $id = $dbh->query("SELECT * FROM i3geoadmin_subgrupos");
  566 + $id = $id->fetchAll();
  567 + $id = intval($id[count($id)-1]['id_subgrupo']);
  568 + $retorna = $id;
  569 + }
529 570 $dbhw = null;
530 571 $dbh = null;
531   - return "ok";
  572 + return $retorna;
532 573 }
533 574 catch (PDOException $e)
534 575 {
... ... @@ -545,16 +586,23 @@ function alteraTemas()
545 586 global $nome,$desc,$id,$codigo,$tipoa,$download,$ogc,$kml,$link,$tags;
546 587 try
547 588 {
548   - $nome = mb_convert_encoding($nome,"UTF-8","ISO-8859-1");
549   - $desc = mb_convert_encoding($desc,"UTF-8","ISO-8859-1");
550   - $tags = mb_convert_encoding($tags,"UTF-8","ISO-8859-1");
  589 + $retorna = "ok";
  590 + //$nome = mb_convert_encoding($nome,"UTF-8","ISO-8859-1");
  591 + //$desc = mb_convert_encoding($desc,"UTF-8","ISO-8859-1");
  592 + //$tags = mb_convert_encoding($tags,"UTF-8","ISO-8859-1");
551 593 require_once("conexao.php");
552 594 if($id != "")
553 595 {
554 596 $dbhw->query("UPDATE i3geoadmin_temas SET tags_tema='$tags', link_tema='$link', nome_tema ='$nome',desc_tema='$desc',codigo_tema='$codigo',tipoa_tema='$tipoa',download_tema='$download',ogc_tema='$ogc',kml_tema='$kml' WHERE id_tema = $id");
555 597 }
556 598 else
557   - $dbhw->query("INSERT INTO i3geoadmin_temas (link_tema,kml_tema,ogc_tema,download_tema,nome_tema,desc_tema,codigo_tema,tipoa_tema,tags_tema) VALUES ('','', '','','','','','','')");
  599 + {
  600 + $dbhw->query("INSERT INTO i3geoadmin_temas (link_tema,kml_tema,ogc_tema,download_tema,nome_tema,desc_tema,codigo_tema,tipoa_tema,tags_tema) VALUES ('','', '','','','','','','')");
  601 + $id = $dbh->query("SELECT * FROM i3geoadmin_temas");
  602 + $id = $id->fetchAll();
  603 + $id = intval($id[count($id)-1]['id_tema']);
  604 + $retorna = $id;
  605 + }
558 606 //verifica se é necessário adicionar algum tag novo
559 607 $tags = explode(" ",$tags);
560 608 foreach($tags as $tag)
... ... @@ -566,7 +614,7 @@ function alteraTemas()
566 614 }
567 615 $dbhw = null;
568 616 $dbh = null;
569   - return "ok";
  617 + return $retorna;
570 618 }
571 619 catch (PDOException $e)
572 620 {
... ...
admin/php/parsemapfile.php
1 1 <?php
2 2 include_once("../../ms_configura.php");
3 3 include_once("../../classesphp/funcoes_gerais.php");
4   -
  4 +include_once("../../classesphp/carrega_ext.php");
  5 +include_once("../../classesphp/pega_variaveis.php");
  6 +error_reporting(0);
5 7 $objcontype[0] = "MS_INLINE";
6 8 $objcontype[1] = "MS_SHAPEFILE";
7 9 $objcontype[2] = "MS_TILED_SHAPEFILE";
... ... @@ -27,62 +29,189 @@ $objlayertypes[6] = &quot;MS_LAYER_CIRCLE&quot;;
27 29 $objlayertypes[7] = "MS_LAYER_TILEINDEX";
28 30 $objlayertypes[8] = "MS_LAYER_CHART";
29 31  
30   -$dados = array();
31 32 $codigoLayer = $id;
32 33 $mapfile = "../../temas/".$codigoLayer.".map";
33 34 $mapa = ms_newMapObj($mapfile);
34   -$layers = $mapa->getalllayernames();
35   -$xml = "<"."\x3F"."xml version='1.0' encoding='ISO-8859-1' "."\x3F".">";
36   -$xml .= "\n<parsemapfile>\n";
37   -$xml .= "<tiposconexao>".implode(",",$objcontype)."</tiposconexao>\n";
38   -$xml .= "<tiposlayer>".implode(",",$objlayertypes)."</tiposlayer>\n";
39   -foreach ($layers as $layer)
  35 +if(!isset($tipoparse) || $tipoparse=="")
  36 +{mapfile();exit;}
  37 +
  38 +if($tipoparse == "legenda")
40 39 {
41   - $xml .= "\n<layer>\n";
42   - $layer = $mapa->getlayerbyname($layer);
43   - $xml .= "<titulo>".$layer->getmetadata('tema')."</titulo>\n";
44   - $xml .= "<connection>\n";
45   - $con = $layer->connection;
46   - $xml .= "<user>".preg_replace('/.*user\s*=\s*([a-zA-Z0-9_.]+).*/i', '\1', $con)."</user>\n";
47   - $xml .= "<password>".preg_replace('/.*password\s*=\s*([a-zA-Z0-9_.]+).*/i', '\1', $con)."</password>\n";
48   - $xml .= "<dbname>".preg_replace('/.*dbname\s*=\s*([a-zA-Z0-9_.]+).*/i', '\1', $con)."</dbname>\n";
49   - $xml .= "<host>".preg_replace('/.*host\s*=\s*([a-zA-Z0-9_.]+).*/i', '\1', $con)."</host>\n";
50   - $xml .= "<port>".preg_replace('/.*port\s*=\s*([a-zA-Z0-9_.]+).*/i', '\1', $con)."</port>\n";
51   - $xml .= "</connection>\n";
52   - $xml .= "<connectiontype>".$objcontype[$layer->connectiontype]."</connectiontype>\n";
53   - $d = $layer->data;
54   - $xml .= "<data>$d</data>\n";
55   - $d = explode("(",$d);
56   - $d = explode(")",$d[1]);
57   - $xml .= "<select>$d[0]</select>\n";
58   - $xml .= "<type>".$objlayertypes[$layer->type]."</type>\n";
59   - $xml .= "<filter>".$layer->getfilter()."</filter>\n";
60   - $xml .= "<filteritem>$layer->filteritem</filteritem>\n";
61   - $xml .= "<group>$layer->group</group>\n";
62   - $xml .= "<labelangleitem>$layer->labelangleitem</labelangleitem>\n";
63   - $xml .= "<labelitem>$layer->labelitem</labelitem>\n";
64   - $xml .= "<labelmaxscale>$layer->labelmaxscale</labelmaxscale>\n";
65   - $xml .= "<labelminscale>$layer->labelminscale</labelminscale>\n";
66   - $xml .= "<labelsizeitem>$layer->labelsizeitem</labelsizeitem>\n";
67   - $xml .= "<maxscale>$layer->maxscale</maxscale>\n";
68   - $xml .= "<minscale>$layer->minscale</minscale>\n";
69   - $xml .= "<offsite>".$layer->offsite->red.",".$layer->offsite->green.",".$layer->offsite->blue."</offsite>\n";
70   - $xml .= "<opacity>$layer->opacity</opacity>\n";
71   - $xml .= "<symbolscale>$layer->symbolscale</symbolscale>\n";
72   - $xml .= "<tileindex>$layer->tileindex</tileindex>\n";
73   - $xml .= "<tileitem>$layer->tileitem</tileitem>\n";
74   - $xml .= "<tolerance>$layer->tolerance</tolerance>\n";
75   - $xml .= "<toleranceunits>$layer->toleranceunits</toleranceunits>\n";
76   - $xml .= "<sizeunits>$layer->sizeunits</sizeunits>\n";
77   - $xml .= "<projection>$layer->getProjection</projection>\n";
78   - $xml .= "<name>$layer->name</name>\n";
79   - $xml .= "<classes>\n";
80   - $xml .= pegaClasses(&$xml);
81   - $xml .= "</classes>\n";
82   - $xml .= "</layer>";
  40 + $tipoLegenda = tipoLegenda($layername);
  41 + //if($tipoLegenda == "simples")
  42 + //{legendaSimples($layername);}
  43 + legendaSimples($layername);
  44 +}
  45 +//
  46 +//verifica o tipo de legenda
  47 +//pode retornar:
  48 +//simples - o layer não terá classes
  49 +//valorunico - as classes são definidas por um item
  50 +//intervalo - as classes são definidas por um intervalo do mesmo item
  51 +//
  52 +function tipoLegenda($layername)
  53 +{
  54 + global $mapa;
  55 + $tipolegenda = "";
  56 + $layer = $mapa->getlayerbyname($layername);
  57 + $nclasses = $layer->numclasses;
  58 + if($nclasses == 1)
  59 + {
  60 + $classe = $layer->getclass(0);
  61 + $expressao = $classe->getExpression();
  62 + if($expressao == "")
  63 + {return "simples";exit;}
  64 + }
  65 + $verItem = array();
  66 + for($i=0;$i<$nclasses;++$i)
  67 + {
  68 + $classe = $layer->getclass($i);
  69 + $expressao = $classe->getExpression();
  70 + if(count(explode("[",$expressao)) > 2)
  71 + {
  72 + return "intervalo";
  73 + exit;
  74 + }
  75 + //
  76 + //verifica se os itens são únicos nas expressões
  77 + //
  78 + $item = preg_replace('/.*\[|\].*/i','\1', $expressao);
  79 + $verItem[$item] = 0;
  80 + }
  81 + if(count($verItem) == 1)
  82 + return "valorunico";
  83 + else
  84 + return "simples";
  85 +}
  86 +function legendaSimples($layername)
  87 +{
  88 + global $mapa;
  89 + $tipolegenda = "";
  90 + $layer = $mapa->getlayerbyname($layername);
  91 + $classe = $layer->getclass(0);
  92 + $estilo = $classe->getstyle(0);
  93 + $cor = $estilo->color;
  94 + $outcor = $estilo->outlinecolor;
  95 + $xml = "<"."\x3F"."xml version='1.0' encoding='ISO-8859-1' "."\x3F".">";
  96 + $xml .= "<xml-tag xmlns='http://www.gvsig.gva.es'>\n";
  97 + $xml .= "<property key='className' value='com.iver.cit.gvsig.fmap.rendering.SingleSymbolLegend'/>\n";
  98 + $xml .= "<property key='labelFieldName'/>\n";
  99 + $xml .= "<property key='labelHeightFieldName'/>\n";
  100 + $xml .= "<property key='labelRotationFieldName'/>\n";
  101 + $xml .= "<property key='followHeaderEncoding' value='true'/>\n";
  102 + $xml .= "<xml-tag>\n";
  103 + $xml .= "<property key='className' value='com.iver.cit.gvsig.fmap.core.v02.FSymbol'/>\n";
  104 + $xml .= "<property key='m_symbolType' value='4'/>\n";
  105 + $xml .= "<property key='m_Style' value='1'/>\n";
  106 + $xml .= "<property key='m_useOutline' value='true'/>\n";
  107 + $xml .= "<property key='m_Color' value='".$cor->red.",".$cor->green.",".$cor->blue.",255'/>\n";
  108 + if($outcor->red != -1)
  109 + $xml .= "<property key='m_outlineColor' value='".$outcor->red.",".$outcor->green.",".$outcor->blue.",255'/>\n";
  110 + else
  111 + $xml .= "<property key='m_outlineColor' value='0,0,0,255'/>\n";
  112 + $xml .= "<property key='m_bUseFontSize' value='true'/>\n";
  113 + $xml .= "<property key='m_bDrawShape' value='true'/>\n";
  114 + $xml .= "<property key='m_Size' value='2'/>\n";
  115 + $xml .= "<property key='m_Rotation' value='0'/>\n";
  116 + $xml .= "<property key='m_LinePattern' value='0'/>\n";
  117 + $xml .= "<property key='m_stroke' value='1.0'/>\n";
  118 + $xml .= "<property key='m_bUseSize' value='false'/>\n";
  119 + $xml .= "<property key='m_AlingVert' value='0'/>\n";
  120 + $xml .= "<property key='m_AlingHoriz' value='0'/>\n";
  121 + $xml .= "<property key='m_Descrip'/>\n";
  122 + $xml .= "<property key='rgb' value='-14902251'/>\n";
  123 + $xml .= "</xml-tag>\n";
  124 + $xml .= "</xml-tag>\n";
  125 + echo header("Content-type: application/xml");
  126 + echo $xml;
  127 + exit;
  128 +}
  129 +//
  130 +//gera xml com parâmetros do mapfile
  131 +//
  132 +function mapfile()
  133 +{
  134 + global $codigoLayer,$mapfile,$mapa,$objcontype,$objlayertypes;
  135 + $layers = $mapa->getalllayernames();
  136 + $dados = array();
  137 + $xml = "<"."\x3F"."xml version='1.0' encoding='ISO-8859-1' "."\x3F".">";
  138 + $xml .= "\n<parsemapfile>\n";
  139 + $xml .= "<tiposconexao>".implode(",",$objcontype)."</tiposconexao>\n";
  140 + $xml .= "<tiposlayer>".implode(",",$objlayertypes)."</tiposlayer>\n";
  141 + foreach ($layers as $layer)
  142 + {
  143 + $xml .= "\n<layer>\n";
  144 + $layer = $mapa->getlayerbyname($layer);
  145 + $xml .= "<titulo>".$layer->getmetadata('tema')."</titulo>\n";
  146 + $d = $layer->data;
  147 + $ct = $objcontype[$layer->connectiontype];
  148 + if ($ct == "MS_SHAPEFILE" || $ct == "" || $ct == "MS_RASTER")
  149 + {
  150 + $ct = "MS_WMS";
  151 + $d = "HTTP://mapas.mma.gov.br/i3geo/ogc.php?tema=".$codigoLayer;
  152 + $xml .= "<version>1.1.1</version>";
  153 + $xml .= "<srs>EPSG:4291</srs>";
  154 + $xml .= "<format>image/png</format>";
  155 + }
  156 + else
  157 + {$xml .= "<geraxmllegenda>parsemapfile.php?id=".$codigoLayer."&amp;layername=".$layer->name."&amp;tipoparse=legenda</geraxmllegenda>";}
  158 + $xml .= "<connectiontype>".$ct."</connectiontype>\n";
  159 + $xml .= "<data>$d</data>\n";
  160 + $xml .= "<name>$layer->name</name>\n";
  161 + if($ct != "MS_WMS")
  162 + {
  163 + $xml .= "<connection>\n";
  164 + $con = $layer->connection;
  165 + $xml .= "<user>".preg_replace('/.*user\s*=\s*([a-zA-Z0-9_.]+).*/i', '\1', $con)."</user>\n";
  166 + $xml .= "<password>".preg_replace('/.*password\s*=\s*([a-zA-Z0-9_.]+).*/i', '\1', $con)."</password>\n";
  167 + $xml .= "<dbname>".preg_replace('/.*dbname\s*=\s*([a-zA-Z0-9_.]+).*/i', '\1', $con)."</dbname>\n";
  168 + $xml .= "<host>".preg_replace('/.*host\s*=\s*([a-zA-Z0-9_.]+).*/i', '\1', $con)."</host>\n";
  169 + $xml .= "<port>".preg_replace('/.*port\s*=\s*([a-zA-Z0-9_.]+).*/i', '\1', $con)."</port>\n";
  170 + $xml .= "</connection>\n";
  171 + $d = explode("(",$d);
  172 + $d = explode(")",$d[1]);
  173 + $xml .= "<select>$d[0]</select>\n";
  174 + $string = preg_replace('/.*from\s*(.+).*/i', '\1', $d[0]);
  175 + $s = explode("WHERE",$string);
  176 + if(count($s) == 1)
  177 + $s = explode("where",$string);
  178 + $esquemaTabela = explode(".",$s[0]);
  179 + $xml .= "<esquema>".$esquemaTabela[0]."</esquema>";
  180 + $xml .= "<tabela>".$esquemaTabela[1]."</tabela>";
  181 + $xml .= "<where>".$s[1]."</where>";
  182 + $xml .= "<type>".$objlayertypes[$layer->type]."</type>\n";
  183 + $xml .= "<filter>".$layer->getfilter()."</filter>\n";
  184 + $xml .= "<filteritem>$layer->filteritem</filteritem>\n";
  185 + $xml .= "<labelangleitem>$layer->labelangleitem</labelangleitem>\n";
  186 + $xml .= "<labelitem>$layer->labelitem</labelitem>\n";
  187 + $xml .= "<labelmaxscale>$layer->labelmaxscale</labelmaxscale>\n";
  188 + $xml .= "<labelminscale>$layer->labelminscale</labelminscale>\n";
  189 + $xml .= "<labelsizeitem>$layer->labelsizeitem</labelsizeitem>\n";
  190 + }
  191 + $xml .= "<group>$layer->group</group>\n";
  192 + $xml .= "<maxscale>$layer->maxscale</maxscale>\n";
  193 + $xml .= "<minscale>$layer->minscale</minscale>\n";
  194 + $xml .= "<offsite>".$layer->offsite->red.",".$layer->offsite->green.",".$layer->offsite->blue."</offsite>\n";
  195 + $xml .= "<opacity>$layer->opacity</opacity>\n";
  196 + if($ct != "MS_WMS")
  197 + {
  198 + $xml .= "<symbolscale>$layer->symbolscale</symbolscale>\n";
  199 + $xml .= "<tileindex>$layer->tileindex</tileindex>\n";
  200 + $xml .= "<tileitem>$layer->tileitem</tileitem>\n";
  201 + $xml .= "<tolerance>$layer->tolerance</tolerance>\n";
  202 + $xml .= "<toleranceunits>$layer->toleranceunits</toleranceunits>\n";
  203 + $xml .= "<sizeunits>$layer->sizeunits</sizeunits>\n";
  204 + $xml .= "<projection>$layer->getProjection</projection>\n";
  205 + $xml .= "<classes>\n";
  206 + $xml .= pegaClasses(&$xml);
  207 + $xml .= "</classes>\n";
  208 + }
  209 + $xml .= "</layer>";
  210 + }
  211 + $xml .= "</parsemapfile>\n";
  212 + echo header("Content-type: application/xml");
  213 + echo $xml;
83 214 }
84   -$xml .= "</parsemapfile>\n";
85   -echo $xml;
86 215 function pegaClasses($xml)
87 216 {
88 217 global $layer;
... ...
admin/php/xml.php
... ... @@ -41,18 +41,18 @@ function geraXmlSistemas($perfil,$locaplic,$editores)
41 41 }
42 42 function geraRSStemas($locaplic,$id_n2)
43 43 {
44   - $sql = "select t.nome_tema as nome_ws,'' as desc_ws,'php/parsemapfile.php?id='||t.codigo_tema as link_ws,'' as autor_ws from i3geoadmin_n3 as n3,i3geoadmin_temas as t where t.id_tema = n3.id_tema and n3.id_n2 = '$id_n2' and n3.n3_perfil = ''";
  44 + $sql = "select t.nome_tema as nome_ws,'' as desc_ws,'php/parsemapfile.php?id='||t.codigo_tema as link_ws,t.link_tema as autor_ws from i3geoadmin_n3 as n3,i3geoadmin_temas as t where t.id_tema = n3.id_tema and n3.id_n2 = '$id_n2' and n3.n3_perfil = '' order by nome_ws";
45 45 return geraXmlRSS($locaplic,$sql,"Lista de temas");
46 46 }
47 47 function geraRSSsubgrupos($locaplic,$id_n1)
48 48 {
49   - $sql = "select g.nome_subgrupo as nome_ws,'' as desc_ws,'rsstemas.php?id='||n2.id_n2 as link_ws,'' as autor_ws from i3geoadmin_n2 as n2,i3geoadmin_subgrupos as g where g.id_subgrupo = n2.id_subgrupo and n2.id_n1 = '$id_n1' and n2.n2_perfil = ''";
  49 + $sql = "select g.nome_subgrupo as nome_ws,'' as desc_ws,'rsstemas.php?id='||n2.id_n2 as link_ws,'' as autor_ws from i3geoadmin_n2 as n2,i3geoadmin_subgrupos as g where g.id_subgrupo = n2.id_subgrupo and n2.id_n1 = '$id_n1' and n2.n2_perfil = '' order by nome_ws";
50 50 return geraXmlRSS($locaplic,$sql,"Lista de sub-grupos");
51 51 }
52 52  
53 53 function geraRSSgrupos($locaplic)
54 54 {
55   - $sql = "select g.nome_grupo as nome_ws,'' as desc_ws,'rsssubgrupos.php?id='||n1.id_n1 as link_ws,'' as autor_ws from i3geoadmin_n1 as n1,i3geoadmin_grupos as g where g.id_grupo = n1.id_grupo and n1.n1_perfil = ''";
  55 + $sql = "select g.nome_grupo as nome_ws,'' as desc_ws,'rsssubgrupos.php?id='||n1.id_n1 as link_ws,'' as autor_ws from i3geoadmin_n1 as n1,i3geoadmin_grupos as g where g.id_grupo = n1.id_grupo and n1.n1_perfil = '' order by nome_ws";
56 56 return geraXmlRSS($locaplic,$sql,"Lista de grupos");
57 57 }
58 58  
... ... @@ -101,7 +101,7 @@ function geraXmlRSS($locaplic,$sql,$descricao)
101 101 $xml .= "<description>".entity_decode($row["desc_ws"])."</description>\n";
102 102 $xml .= "<link>".xmlTexto_prepara($row["link_ws"])."</link>\n";
103 103 $xml .= "<pubDate/>\n";
104   - $xml .= "<author>".entity_decode($row["autor_ws"])."</author>\n";
  104 + $xml .= "<author>".xmlTexto_prepara($row["autor_ws"])."</author>\n";
105 105 $xml .= "</item>\n";
106 106 }
107 107 $xml .= "</channel></rss>\n";
... ...
menutemas/admin.db
No preview for this file type