Commit ba58cdf9ff9a5268c0de49b8db0c5374c6653c4d

Authored by Edmar Moretti
1 parent 534efd4a

Correcao nos includes

pacotes/.buildpath 0 → 100644
@@ -0,0 +1,5 @@ @@ -0,0 +1,5 @@
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<buildpath>
  3 + <buildpathentry kind="src" path=""/>
  4 + <buildpathentry kind="con" path="org.eclipse.php.core.LANGUAGE"/>
  5 +</buildpath>
pacotes/.project
@@ -6,6 +6,16 @@ @@ -6,6 +6,16 @@
6 </projects> 6 </projects>
7 <buildSpec> 7 <buildSpec>
8 <buildCommand> 8 <buildCommand>
  9 + <name>org.eclipse.wst.validation.validationbuilder</name>
  10 + <arguments>
  11 + </arguments>
  12 + </buildCommand>
  13 + <buildCommand>
  14 + <name>org.eclipse.dltk.core.scriptbuilder</name>
  15 + <arguments>
  16 + </arguments>
  17 + </buildCommand>
  18 + <buildCommand>
9 <name>org.eclipse.wst.jsdt.core.javascriptValidator</name> 19 <name>org.eclipse.wst.jsdt.core.javascriptValidator</name>
10 <arguments> 20 <arguments>
11 </arguments> 21 </arguments>
@@ -13,5 +23,6 @@ @@ -13,5 +23,6 @@
13 </buildSpec> 23 </buildSpec>
14 <natures> 24 <natures>
15 <nature>org.eclipse.wst.jsdt.core.jsNature</nature> 25 <nature>org.eclipse.wst.jsdt.core.jsNature</nature>
  26 + <nature>org.eclipse.php.core.PHPNature</nature>
16 </natures> 27 </natures>
17 </projectDescription> 28 </projectDescription>
pacotes/arvorehiper/index.php
1 <?php 1 <?php
2 -include("../../ms_configura.php"); 2 +include(dirname(__FILE__)."/../../ms_configura.php");
3 $protocolo = explode("/",$_SERVER['SERVER_PROTOCOL']); 3 $protocolo = explode("/",$_SERVER['SERVER_PROTOCOL']);
4 $url = $protocolo[0]."://".$_SERVER['HTTP_HOST']."/".basename($locaplic)."/admin/hiperbolica.php"; 4 $url = $protocolo[0]."://".$_SERVER['HTTP_HOST']."/".basename($locaplic)."/admin/hiperbolica.php";
5 $i3geo = $protocolo[0]."://".$_SERVER['HTTP_HOST']."/".basename($locaplic); 5 $i3geo = $protocolo[0]."://".$_SERVER['HTTP_HOST']."/".basename($locaplic);
@@ -11,8 +11,8 @@ $i3geo = $protocolo[0].&quot;://&quot;.$_SERVER[&#39;HTTP_HOST&#39;].&quot;/&quot;.basename($locaplic); @@ -11,8 +11,8 @@ $i3geo = $protocolo[0].&quot;://&quot;.$_SERVER[&#39;HTTP_HOST&#39;].&quot;/&quot;.basename($locaplic);
11 </head> 11 </head>
12 <STYLE TYPE="text/css"> 12 <STYLE TYPE="text/css">
13 table { 13 table {
14 - width:100%;  
15 - text-align: left; 14 + width:100%;
  15 + text-align: left;
16 } 16 }
17 17
18 body,ul,td { 18 body,ul,td {
@@ -51,30 +51,30 @@ border: 1px solid black; @@ -51,30 +51,30 @@ border: 1px solid black;
51 </STYLE> 51 </STYLE>
52 <body leftmargin="0" topmargin="0" class=" yui-skin-sam"> 52 <body leftmargin="0" topmargin="0" class=" yui-skin-sam">
53 <applet style=z-index:0;" code="tree.HTApplet.class" archive="tree4.jar" width="100%" height="100%" MAYSCRIPT="true"> 53 <applet style=z-index:0;" code="tree.HTApplet.class" archive="tree4.jar" width="100%" height="100%" MAYSCRIPT="true">
54 - <param name="htfile" value="">  
55 - <param name="xmlfile" value="<?php echo $url;?>">  
56 - <param name="xmltipo" value="verbete">  
57 - <param name="htbackcoloredit" value="0xFF00FF">  
58 - <param name="htbackcolor" value="0xFFFFFF">  
59 - <param name="htlinkcolor" value="0x000000">  
60 - <param name="htsearchcolor" value="0xFF0000">  
61 - <param name="hthintcolor" value="0xFFFFD9">  
62 - <param name="colornode" value="0xFFFACD">  
63 - <param name="colortextnode" value="0x000000">  
64 - <param name="colorrelationnode" value="0xE6E6FA">  
65 - <param name="colortextrelationnode" value="0x00FF00">  
66 - <param name="htbordertype" value="rounded">  
67 - <param name="htfont" value="arial" >  
68 - <param name="htfontsize" value="11">  
69 - <param name="htopenwindow" value="self">  
70 - <param name="funcaoJS" value="SelecionaTema">  
71 - </applet> 54 + <param name="htfile" value="">
  55 + <param name="xmlfile" value="<?php echo $url;?>">
  56 + <param name="xmltipo" value="verbete">
  57 + <param name="htbackcoloredit" value="0xFF00FF">
  58 + <param name="htbackcolor" value="0xFFFFFF">
  59 + <param name="htlinkcolor" value="0x000000">
  60 + <param name="htsearchcolor" value="0xFF0000">
  61 + <param name="hthintcolor" value="0xFFFFD9">
  62 + <param name="colornode" value="0xFFFACD">
  63 + <param name="colortextnode" value="0x000000">
  64 + <param name="colorrelationnode" value="0xE6E6FA">
  65 + <param name="colortextrelationnode" value="0x00FF00">
  66 + <param name="htbordertype" value="rounded">
  67 + <param name="htfont" value="arial" >
  68 + <param name="htfontsize" value="11">
  69 + <param name="htopenwindow" value="self">
  70 + <param name="funcaoJS" value="SelecionaTema">
  71 + </applet>
72 <script> 72 <script>
73 YAHOO.namespace("example.container"); 73 YAHOO.namespace("example.container");
74 function SelecionaTema(id) { 74 function SelecionaTema(id) {
75 - var myString = new String(id);  
76 - var myarray = myString.split(',');  
77 - 75 + var myString = new String(id);
  76 + var myarray = myString.split(',');
  77 +
78 if(myarray[0] == "tema") 78 if(myarray[0] == "tema")
79 { 79 {
80 core_montaEditor("","320px","500px") 80 core_montaEditor("","320px","500px")
@@ -88,7 +88,7 @@ function SelecionaTema(id) { @@ -88,7 +88,7 @@ function SelecionaTema(id) {
88 var fechar = function() 88 var fechar = function()
89 { 89 {
90 YAHOO.example.container.panelEditor.destroy(); 90 YAHOO.example.container.panelEditor.destroy();
91 - YAHOO.example.container.panelEditor = null; 91 + YAHOO.example.container.panelEditor = null;
92 } 92 }
93 var i3geo = function() 93 var i3geo = function()
94 { 94 {
@@ -121,7 +121,7 @@ function SelecionaTema(id) { @@ -121,7 +121,7 @@ function SelecionaTema(id) {
121 } 121 }
122 function listaTemasPorTag(dados) 122 function listaTemasPorTag(dados)
123 { 123 {
124 - var ins = "Os seguintes temas contém o TAG clicado:<br><br>"; 124 + var ins = "Os seguintes temas cont�m o TAG clicado:<br><br>";
125 ins += '<input type=button id=fechar value="Fechar" style="left:-5px;" /><br>' 125 ins += '<input type=button id=fechar value="Fechar" style="left:-5px;" /><br>'
126 126
127 for (i=0;i < dados.length; i++) 127 for (i=0;i < dados.length; i++)
@@ -141,7 +141,7 @@ function listaTemasPorTag(dados) @@ -141,7 +141,7 @@ function listaTemasPorTag(dados)
141 var fechar = function() 141 var fechar = function()
142 { 142 {
143 YAHOO.example.container.panelEditor.destroy(); 143 YAHOO.example.container.panelEditor.destroy();
144 - YAHOO.example.container.panelEditor = null; 144 + YAHOO.example.container.panelEditor = null;
145 } 145 }
146 var adiciona = new YAHOO.widget.Button("fechar",{ onclick: { fn: fechar } }); 146 var adiciona = new YAHOO.widget.Button("fechar",{ onclick: { fn: fechar } });
147 var temp = function(e) 147 var temp = function(e)
@@ -150,17 +150,17 @@ function listaTemasPorTag(dados) @@ -150,17 +150,17 @@ function listaTemasPorTag(dados)
150 } 150 }
151 function removeAcentos(palavra) 151 function removeAcentos(palavra)
152 { 152 {
153 - var re = /ã|á|à|â/gi; 153 + var re = /�|�|�|�/gi;
154 palavra = palavra.replace(re,"a"); 154 palavra = palavra.replace(re,"a");
155 - var re = /é/gi; 155 + var re = /�/gi;
156 palavra = palavra.replace(re,"e"); 156 palavra = palavra.replace(re,"e");
157 - var re = /í/gi; 157 + var re = /�/gi;
158 palavra = palavra.replace(re,"i"); 158 palavra = palavra.replace(re,"i");
159 - var re = /ó|õ/gi; 159 + var re = /�|�/gi;
160 palavra = palavra.replace(re,"o"); 160 palavra = palavra.replace(re,"o");
161 - var re = /ç/gi; 161 + var re = /�/gi;
162 palavra = palavra.replace(re,"c"); 162 palavra = palavra.replace(re,"c");
163 - var re = /ú/gi; 163 + var re = /�/gi;
164 palavra = palavra.replace(re,"u"); 164 palavra = palavra.replace(re,"u");
165 return(palavra); 165 return(palavra);
166 } 166 }
pacotes/cpaint/JSON/testsuite.php
1 <?php 1 <?php
2 -/** 2 +/**
3 * The content of this file is (c) 2003-2005 digital media center GmbH 3 * The content of this file is (c) 2003-2005 digital media center GmbH
4 * All rights reserved 4 * All rights reserved
5 * 5 *
@@ -12,49 +12,49 @@ @@ -12,49 +12,49 @@
12 */ 12 */
13 13
14 //---- includes ---------------------------------------------------------------- 14 //---- includes ----------------------------------------------------------------
15 - /** 15 + /**
16 * @include JSON 16 * @include JSON
17 */ 17 */
18 - require_once('../json.php');  
19 - 18 + require_once(dirname(__FILE__).'/../json.php');
  19 +
20 //---- class ------------------------------------------------------------------- 20 //---- class -------------------------------------------------------------------
21 class MyObj { 21 class MyObj {
22 var $id = ''; 22 var $id = '';
23 var $name = ''; 23 var $name = '';
24 var $attribs = array("first",'4'); 24 var $attribs = array("first",'4');
25 - 25 +
26 function setId($id) { 26 function setId($id) {
27 $this->id = $id; 27 $this->id = $id;
28 } 28 }
29 - 29 +
30 function getId() { 30 function getId() {
31 return $this->id; 31 return $this->id;
32 } 32 }
33 - 33 +
34 function setName($name) { 34 function setName($name) {
35 $this->name = $name; 35 $this->name = $name;
36 } 36 }
37 - 37 +
38 function getName() { 38 function getName() {
39 return $this->name; 39 return $this->name;
40 } 40 }
41 } 41 }
42 - 42 +
43 //---- variables --------------------------------------------------------------- 43 //---- variables ---------------------------------------------------------------
44 $JSON = new JSON(); 44 $JSON = new JSON();
45 $myObj = new MyObj(); 45 $myObj = new MyObj();
46 - 46 +
47 //---- logic ------------------------------------------------------------------- 47 //---- logic -------------------------------------------------------------------
48 /* initialize object */ 48 /* initialize object */
49 - $myObj->setId('Äl' . chr(18) . "ie\nn"); 49 + $myObj->setId('�l' . chr(18) . "ie\nn");
50 $myObj->setName('objectName'); 50 $myObj->setName('objectName');
51 - array_push($myObj->attribs, 'øfirst'); 51 + array_push($myObj->attribs, '�first');
52 array_push($myObj->attribs, 'second'); 52 array_push($myObj->attribs, 'second');
53 array_push($myObj->attribs, 3); 53 array_push($myObj->attribs, 3);
54 54
55 /* create JSON representation */ 55 /* create JSON representation */
56 $jsonStr = $JSON->stringify($myObj); 56 $jsonStr = $JSON->stringify($myObj);
57 - 57 +
58 //---- clean-up ---------------------------------------------------------------- 58 //---- clean-up ----------------------------------------------------------------
59 //---- content ----------------------------------------------------------------- 59 //---- content -----------------------------------------------------------------
60 60
@@ -65,159 +65,159 @@ @@ -65,159 +65,159 @@
65 <script type="text/javascript" src="json.js"></script> 65 <script type="text/javascript" src="json.js"></script>
66 <script type="text/javascript"> 66 <script type="text/javascript">
67 JSON.arrayObj = new Array(); 67 JSON.arrayObj = new Array();
68 -JSON.parse2 = function (text)  
69 -{ 68 +JSON.parse2 = function (text)
  69 +{
70 var p = /^\s*(([,:{}\[\]])|"(\\.|[^\x00-\x1f"\\])*"|-?\d+(\.\d*)?([eE][+-]?\d+)?|true|false|null|\/\*Array\*\/)\s*/, 70 var p = /^\s*(([,:{}\[\]])|"(\\.|[^\x00-\x1f"\\])*"|-?\d+(\.\d*)?([eE][+-]?\d+)?|true|false|null|\/\*Array\*\/)\s*/,
71 - token,  
72 - operator;  
73 -  
74 - function error(m, t) {  
75 - throw {  
76 - name: 'JSONError',  
77 - message: m,  
78 - text: t || operator || token  
79 - };  
80 - }  
81 -  
82 - function next() {  
83 - if (text) {  
84 - var t = p.exec(text);  
85 - if (t) {  
86 -  
87 - if (t[2]) {  
88 - token = null;  
89 - operator = t[2];  
90 - } else {  
91 - operator = null;  
92 - if(t[1].search (/^\/\*Array\*\/$/g) > -1)  
93 - {  
94 - token = function(){};  
95 - }  
96 - else  
97 - {  
98 - try {  
99 - token = eval(t[1]);  
100 - } catch (e) {  
101 - error("Bad token", t[1]);  
102 - }  
103 - }  
104 - }  
105 - text = text.substring(t[0].length);  
106 - } else {  
107 - error("Unrecognized token", text);  
108 - }  
109 - } else {  
110 - token = operator = undefined;  
111 - }  
112 - }  
113 -  
114 -  
115 - function arr() {  
116 - var a = [];  
117 -  
118 - next();  
119 - if (operator == ']') {  
120 - next();  
121 - return a;  
122 - }  
123 - for (;;) {  
124 - a.push(val());  
125 - switch (operator) {  
126 - case ']':  
127 - next();  
128 - return a;  
129 - case ',':  
130 - next();  
131 - break;  
132 - default:  
133 - error("Missing ']'");  
134 - }  
135 - }  
136 - }  
137 -  
138 - function obj() {  
139 - var k, o = {};  
140 -  
141 - next();  
142 - if (operator == '}') {  
143 - next();  
144 - return o;  
145 - }  
146 - if (typeof(token) == 'function')  
147 - {  
148 - o = [];  
149 - next();  
150 - }  
151 - for (;;)  
152 - {  
153 -  
154 -  
155 - if (operator ||typeof token != 'string') {  
156 - error("Missing key");  
157 - }  
158 - k = token;  
159 - next();  
160 -  
161 - if (operator != ':') {  
162 - error("Missing ':'");  
163 - }  
164 -  
165 - next();  
166 - o[k] = val();  
167 -  
168 - switch (operator) {  
169 - case '}':  
170 - next();  
171 - return o;  
172 - case ',':  
173 - next();  
174 - break;  
175 - case '#':  
176 - next();  
177 - break;  
178 - default:  
179 - error("Missing '}'");  
180 - }  
181 - }  
182 - }  
183 -  
184 - function val() {  
185 - switch (operator) {  
186 - case '{':  
187 - return obj();  
188 - case '[':  
189 - return arr();  
190 - default:  
191 - if (operator !== null) {  
192 - error("Missing value");  
193 - }  
194 - var t = token;  
195 - next();  
196 - return t;  
197 - }  
198 - }  
199 - next();  
200 - return val(); 71 + token,
  72 + operator;
  73 +
  74 + function error(m, t) {
  75 + throw {
  76 + name: 'JSONError',
  77 + message: m,
  78 + text: t || operator || token
  79 + };
  80 + }
  81 +
  82 + function next() {
  83 + if (text) {
  84 + var t = p.exec(text);
  85 + if (t) {
  86 +
  87 + if (t[2]) {
  88 + token = null;
  89 + operator = t[2];
  90 + } else {
  91 + operator = null;
  92 + if(t[1].search (/^\/\*Array\*\/$/g) > -1)
  93 + {
  94 + token = function(){};
  95 + }
  96 + else
  97 + {
  98 + try {
  99 + token = eval(t[1]);
  100 + } catch (e) {
  101 + error("Bad token", t[1]);
  102 + }
  103 + }
  104 + }
  105 + text = text.substring(t[0].length);
  106 + } else {
  107 + error("Unrecognized token", text);
  108 + }
  109 + } else {
  110 + token = operator = undefined;
  111 + }
  112 + }
  113 +
  114 +
  115 + function arr() {
  116 + var a = [];
  117 +
  118 + next();
  119 + if (operator == ']') {
  120 + next();
  121 + return a;
  122 + }
  123 + for (;;) {
  124 + a.push(val());
  125 + switch (operator) {
  126 + case ']':
  127 + next();
  128 + return a;
  129 + case ',':
  130 + next();
  131 + break;
  132 + default:
  133 + error("Missing ']'");
  134 + }
  135 + }
  136 + }
  137 +
  138 + function obj() {
  139 + var k, o = {};
  140 +
  141 + next();
  142 + if (operator == '}') {
  143 + next();
  144 + return o;
  145 + }
  146 + if (typeof(token) == 'function')
  147 + {
  148 + o = [];
  149 + next();
  150 + }
  151 + for (;;)
  152 + {
  153 +
  154 +
  155 + if (operator ||typeof token != 'string') {
  156 + error("Missing key");
  157 + }
  158 + k = token;
  159 + next();
  160 +
  161 + if (operator != ':') {
  162 + error("Missing ':'");
  163 + }
  164 +
  165 + next();
  166 + o[k] = val();
  167 +
  168 + switch (operator) {
  169 + case '}':
  170 + next();
  171 + return o;
  172 + case ',':
  173 + next();
  174 + break;
  175 + case '#':
  176 + next();
  177 + break;
  178 + default:
  179 + error("Missing '}'");
  180 + }
  181 + }
  182 + }
  183 +
  184 + function val() {
  185 + switch (operator) {
  186 + case '{':
  187 + return obj();
  188 + case '[':
  189 + return arr();
  190 + default:
  191 + if (operator !== null) {
  192 + error("Missing value");
  193 + }
  194 + var t = token;
  195 + next();
  196 + return t;
  197 + }
  198 + }
  199 + next();
  200 + return val();
201 }; 201 };
202 202
203 JSON.stringify2 = function(arg) 203 JSON.stringify2 = function(arg)
204 { 204 {
205 var jsonstring = []; 205 var jsonstring = [];
206 var b = this; 206 var b = this;
207 - function add(str) 207 + function add(str)
208 { 208 {
209 - jsonstring[jsonstring.length] = str;  
210 - }  
211 - function validObj(obj)  
212 - {  
213 - if (typeof(obj) != 'undefined' && typeof(obj) != 'function')  
214 - {  
215 - return true;  
216 - }  
217 - return false;  
218 - } 209 + jsonstring[jsonstring.length] = str;
  210 + }
  211 + function validObj(obj)
  212 + {
  213 + if (typeof(obj) != 'undefined' && typeof(obj) != 'function')
  214 + {
  215 + return true;
  216 + }
  217 + return false;
  218 + }
219 function recurse(obj, prefix) 219 function recurse(obj, prefix)
220 - { 220 + {
221 switch (typeof(obj)) 221 switch (typeof(obj))
222 { 222 {
223 case 'object': 223 case 'object':
@@ -248,7 +248,7 @@ JSON.stringify2 = function(arg) @@ -248,7 +248,7 @@ JSON.stringify2 = function(arg)
248 } 248 }
249 } 249 }
250 return add ('}'); 250 return add ('}');
251 - } 251 + }
252 return add('null'); 252 return add('null');
253 break; 253 break;
254 case 'number': 254 case 'number':
@@ -256,42 +256,42 @@ JSON.stringify2 = function(arg) @@ -256,42 +256,42 @@ JSON.stringify2 = function(arg)
256 break; 256 break;
257 case 'string': 257 case 'string':
258 l = obj.length; 258 l = obj.length;
259 - add('"');  
260 - for (i = 0; i < l; i += 1) {  
261 - c = obj.charAt(i);  
262 - if (c >= ' ') {  
263 - if (c == '\\' || c == '"') {  
264 - add('\\');  
265 - }  
266 - add(c);  
267 - } else {  
268 - switch (c) {  
269 - case '\b':  
270 - add('\\b');  
271 - break;  
272 - case '\f':  
273 - add('\\f');  
274 - break;  
275 - case '\n':  
276 - add('\\n');  
277 - break;  
278 - case '\r':  
279 - add('\\r');  
280 - break;  
281 - case '\t':  
282 - add('\\t');  
283 - break;  
284 - default:  
285 - c = c.charCodeAt();  
286 - add('\\u00' + Math.floor(c / 16).toString(16) + (c % 16).toString(16));  
287 - }  
288 - }  
289 - }  
290 - return add('"'); 259 + add('"');
  260 + for (i = 0; i < l; i += 1) {
  261 + c = obj.charAt(i);
  262 + if (c >= ' ') {
  263 + if (c == '\\' || c == '"') {
  264 + add('\\');
  265 + }
  266 + add(c);
  267 + } else {
  268 + switch (c) {
  269 + case '\b':
  270 + add('\\b');
  271 + break;
  272 + case '\f':
  273 + add('\\f');
  274 + break;
  275 + case '\n':
  276 + add('\\n');
  277 + break;
  278 + case '\r':
  279 + add('\\r');
  280 + break;
  281 + case '\t':
  282 + add('\\t');
  283 + break;
  284 + default:
  285 + c = c.charCodeAt();
  286 + add('\\u00' + Math.floor(c / 16).toString(16) + (c % 16).toString(16));
  287 + }
  288 + }
  289 + }
  290 + return add('"');
291 break; 291 break;
292 case 'boolean': 292 case 'boolean':
293 return add(String(obj)); 293 return add(String(obj));
294 - break; 294 + break;
295 default: 295 default:
296 return add('null'); 296 return add('null');
297 break; 297 break;
@@ -308,16 +308,16 @@ JSON.stringify2 = function(arg) @@ -308,16 +308,16 @@ JSON.stringify2 = function(arg)
308 <!-- 308 <!--
309 /* print JSON representation */ 309 /* print JSON representation */
310 var jsonStr = '<?php echo addslashes($jsonStr); ?>'; 310 var jsonStr = '<?php echo addslashes($jsonStr); ?>';
311 - 311 +
312 document.write('JavaScript JSONstr: ' + jsonStr); 312 document.write('JavaScript JSONstr: ' + jsonStr);
313 313
314 /* create another object from jsonStr */ 314 /* create another object from jsonStr */
315 - try 315 + try
316 { 316 {
317 var myObj2 = JSON.parse(jsonStr); 317 var myObj2 = JSON.parse(jsonStr);
318 -  
319 - var myObj3 = JSON.parse2(jsonStr);  
320 - 318 +
  319 + var myObj3 = JSON.parse2(jsonStr);
  320 +
321 321
322 /* test the clone */ 322 /* test the clone */
323 document.write('<br /><br />Original JSON implementation'); 323 document.write('<br /><br />Original JSON implementation');
@@ -334,12 +334,12 @@ JSON.stringify2 = function(arg) @@ -334,12 +334,12 @@ JSON.stringify2 = function(arg)
334 for (var i = 0; i < myObj3.attribs.length; i++) { 334 for (var i = 0; i < myObj3.attribs.length; i++) {
335 document.write('<br />attrib[' + i + ']: ' + myObj3.attribs[i]); 335 document.write('<br />attrib[' + i + ']: ' + myObj3.attribs[i]);
336 } 336 }
337 - 337 +
338 /* convert newline to JSON */ 338 /* convert newline to JSON */
339 var nl = "\n" + String.fromCharCode(18); 339 var nl = "\n" + String.fromCharCode(18);
340 document.write('<br /><br /> Original JSON <br />newline as JSON: ' + JSON.stringify(nl)); 340 document.write('<br /><br /> Original JSON <br />newline as JSON: ' + JSON.stringify(nl));
341 document.write('<br /><br /> New JSON <br />newline as JSON: ' + JSON.stringify2(nl)); 341 document.write('<br /><br /> New JSON <br />newline as JSON: ' + JSON.stringify2(nl));
342 - 342 +
343 //--> 343 //-->
344 } 344 }
345 catch(e) 345 catch(e)
pacotes/cpaint/JSON/testsuite2.php
@@ -2,17 +2,17 @@ @@ -2,17 +2,17 @@
2 2
3 // New TestSuite 3 // New TestSuite
4 //---- includes ---------------------------------------------------------------- 4 //---- includes ----------------------------------------------------------------
5 - /** 5 + /**
6 * @include JSON 6 * @include JSON
7 */ 7 */
8 - require_once('../json.php'); 8 + require_once(dirname(__FILE__).'/../json.php');
9 require_once('json2.php'); 9 require_once('json2.php');
10 10
11 // ----- PHP Test Objects 11 // ----- PHP Test Objects
12 class object1 12 class object1
13 { 13 {
14 var $firstattr = 'firstvalue'; 14 var $firstattr = 'firstvalue';
15 - var $foreignchars = "ĸ\r\n"; 15 + var $foreignchars = "��\r\n";
16 var $regarray = array("item1", "item2"); 16 var $regarray = array("item1", "item2");
17 var $assocarray = array("item1"=>"value1", "item2"=>"value2"); 17 var $assocarray = array("item1"=>"value1", "item2"=>"value2");
18 var $boolean = true; 18 var $boolean = true;
@@ -66,159 +66,159 @@ class object2 @@ -66,159 +66,159 @@ class object2
66 <script type="text/javascript" src="json.js"></script> 66 <script type="text/javascript" src="json.js"></script>
67 <script type="text/javascript"> 67 <script type="text/javascript">
68 JSON.arrayObj = new Array(); 68 JSON.arrayObj = new Array();
69 -JSON.parse2 = function (text)  
70 -{ 69 +JSON.parse2 = function (text)
  70 +{
71 var p = /^\s*(([,:{}\[\]])|"(\\.|[^\x00-\x1f"\\])*"|-?\d+(\.\d*)?([eE][+-]?\d+)?|true|false|null|\/\*Array\*\/)\s*/, 71 var p = /^\s*(([,:{}\[\]])|"(\\.|[^\x00-\x1f"\\])*"|-?\d+(\.\d*)?([eE][+-]?\d+)?|true|false|null|\/\*Array\*\/)\s*/,
72 - token,  
73 - operator; 72 + token,
  73 + operator;
  74 +
  75 + function error(m, t) {
  76 + throw {
  77 + name: 'JSONError',
  78 + message: m,
  79 + text: t || operator || token
  80 + };
  81 + }
  82 +
  83 + function next() {
  84 + if (text) {
  85 + var t = p.exec(text);
  86 + if (t) {
74 87
75 - function error(m, t) {  
76 - throw {  
77 - name: 'JSONError',  
78 - message: m,  
79 - text: t || operator || token  
80 - };  
81 - } 88 + if (t[2]) {
  89 + token = null;
  90 + operator = t[2];
  91 + } else {
  92 + operator = null;
  93 + if(t[1].search (/^\/\*Array\*\/$/g) > -1)
  94 + {
  95 + token = function(){};
  96 + }
  97 + else
  98 + {
  99 + try {
  100 + token = eval(t[1]);
  101 + } catch (e) {
  102 + error("Bad token", t[1]);
  103 + }
  104 + }
  105 + }
  106 + text = text.substring(t[0].length);
  107 + } else {
  108 + error("Unrecognized token", text);
  109 + }
  110 + } else {
  111 + token = operator = undefined;
  112 + }
  113 + }
82 114
83 - function next() {  
84 - if (text) {  
85 - var t = p.exec(text);  
86 - if (t) {  
87 -  
88 - if (t[2]) {  
89 - token = null;  
90 - operator = t[2];  
91 - } else {  
92 - operator = null;  
93 - if(t[1].search (/^\/\*Array\*\/$/g) > -1)  
94 - {  
95 - token = function(){};  
96 - }  
97 - else  
98 - {  
99 - try {  
100 - token = eval(t[1]);  
101 - } catch (e) {  
102 - error("Bad token", t[1]);  
103 - }  
104 - }  
105 - }  
106 - text = text.substring(t[0].length);  
107 - } else {  
108 - error("Unrecognized token", text);  
109 - }  
110 - } else {  
111 - token = operator = undefined;  
112 - }  
113 - }  
114 115
  116 + function arr() {
  117 + var a = [];
115 118
116 - function arr() {  
117 - var a = []; 119 + next();
  120 + if (operator == ']') {
  121 + next();
  122 + return a;
  123 + }
  124 + for (;;) {
  125 + a.push(val());
  126 + switch (operator) {
  127 + case ']':
  128 + next();
  129 + return a;
  130 + case ',':
  131 + next();
  132 + break;
  133 + default:
  134 + error("Missing ']'");
  135 + }
  136 + }
  137 + }
118 138
119 - next();  
120 - if (operator == ']') {  
121 - next();  
122 - return a;  
123 - }  
124 - for (;;) {  
125 - a.push(val());  
126 - switch (operator) {  
127 - case ']':  
128 - next();  
129 - return a;  
130 - case ',':  
131 - next();  
132 - break;  
133 - default:  
134 - error("Missing ']'");  
135 - }  
136 - }  
137 - } 139 + function obj() {
  140 + var k, o = {};
  141 +
  142 + next();
  143 + if (operator == '}') {
  144 + next();
  145 + return o;
  146 + }
  147 + if (typeof(token) == 'function')
  148 + {
  149 + o = [];
  150 + next();
  151 + }
  152 + for (;;)
  153 + {
138 154
139 - function obj() {  
140 - var k, o = {};  
141 -  
142 - next();  
143 - if (operator == '}') {  
144 - next();  
145 - return o;  
146 - }  
147 - if (typeof(token) == 'function')  
148 - {  
149 - o = [];  
150 - next();  
151 - }  
152 - for (;;)  
153 - {  
154 -  
155 -  
156 - if (operator ||typeof token != 'string') {  
157 - error("Missing key");  
158 - }  
159 - k = token;  
160 - next();  
161 -  
162 - if (operator != ':') {  
163 - error("Missing ':'");  
164 - }  
165 -  
166 - next();  
167 - o[k] = val();  
168 -  
169 - switch (operator) {  
170 - case '}':  
171 - next();  
172 - return o;  
173 - case ',':  
174 - next();  
175 - break;  
176 - case '#':  
177 - next();  
178 - break;  
179 - default:  
180 - error("Missing '}'");  
181 - }  
182 - }  
183 - }  
184 155
185 - function val() {  
186 - switch (operator) {  
187 - case '{':  
188 - return obj();  
189 - case '[':  
190 - return arr();  
191 - default:  
192 - if (operator !== null) {  
193 - error("Missing value");  
194 - }  
195 - var t = token;  
196 - next();  
197 - return t;  
198 - }  
199 - }  
200 - next();  
201 - return val(); 156 + if (operator ||typeof token != 'string') {
  157 + error("Missing key");
  158 + }
  159 + k = token;
  160 + next();
  161 +
  162 + if (operator != ':') {
  163 + error("Missing ':'");
  164 + }
  165 +
  166 + next();
  167 + o[k] = val();
  168 +
  169 + switch (operator) {
  170 + case '}':
  171 + next();
  172 + return o;
  173 + case ',':
  174 + next();
  175 + break;
  176 + case '#':
  177 + next();
  178 + break;
  179 + default:
  180 + error("Missing '}'");
  181 + }
  182 + }
  183 + }
  184 +
  185 + function val() {
  186 + switch (operator) {
  187 + case '{':
  188 + return obj();
  189 + case '[':
  190 + return arr();
  191 + default:
  192 + if (operator !== null) {
  193 + error("Missing value");
  194 + }
  195 + var t = token;
  196 + next();
  197 + return t;
  198 + }
  199 + }
  200 + next();
  201 + return val();
202 }; 202 };
203 203
204 JSON.stringify2 = function(arg) 204 JSON.stringify2 = function(arg)
205 { 205 {
206 var jsonstring = []; 206 var jsonstring = [];
207 var b = this; 207 var b = this;
208 - function add(str) 208 + function add(str)
209 { 209 {
210 - jsonstring[jsonstring.length] = str;  
211 - }  
212 - function validObj(obj)  
213 - {  
214 - if (typeof(obj) != 'undefined' && typeof(obj) != 'function')  
215 - {  
216 - return true;  
217 - }  
218 - return false;  
219 - } 210 + jsonstring[jsonstring.length] = str;
  211 + }
  212 + function validObj(obj)
  213 + {
  214 + if (typeof(obj) != 'undefined' && typeof(obj) != 'function')
  215 + {
  216 + return true;
  217 + }
  218 + return false;
  219 + }
220 function recurse(obj, prefix) 220 function recurse(obj, prefix)
221 - { 221 + {
222 switch (typeof(obj)) 222 switch (typeof(obj))
223 { 223 {
224 case 'object': 224 case 'object':
@@ -249,7 +249,7 @@ JSON.stringify2 = function(arg) @@ -249,7 +249,7 @@ JSON.stringify2 = function(arg)
249 } 249 }
250 } 250 }
251 return add ('}'); 251 return add ('}');
252 - } 252 + }
253 return add('null'); 253 return add('null');
254 break; 254 break;
255 case 'number': 255 case 'number':
@@ -257,42 +257,42 @@ JSON.stringify2 = function(arg) @@ -257,42 +257,42 @@ JSON.stringify2 = function(arg)
257 break; 257 break;
258 case 'string': 258 case 'string':
259 l = obj.length; 259 l = obj.length;
260 - add('"');  
261 - for (i = 0; i < l; i += 1) {  
262 - c = obj.charAt(i);  
263 - if (c >= ' ') {  
264 - if (c == '\\' || c == '"') {  
265 - add('\\');  
266 - }  
267 - add(c);  
268 - } else {  
269 - switch (c) {  
270 - case '\b':  
271 - add('\\b');  
272 - break;  
273 - case '\f':  
274 - add('\\f');  
275 - break;  
276 - case '\n':  
277 - add('\\n');  
278 - break;  
279 - case '\r':  
280 - add('\\r');  
281 - break;  
282 - case '\t':  
283 - add('\\t');  
284 - break;  
285 - default:  
286 - c = c.charCodeAt();  
287 - add('\\u00' + Math.floor(c / 16).toString(16) + (c % 16).toString(16));  
288 - }  
289 - }  
290 - }  
291 - return add('"'); 260 + add('"');
  261 + for (i = 0; i < l; i += 1) {
  262 + c = obj.charAt(i);
  263 + if (c >= ' ') {
  264 + if (c == '\\' || c == '"') {
  265 + add('\\');
  266 + }
  267 + add(c);
  268 + } else {
  269 + switch (c) {
  270 + case '\b':
  271 + add('\\b');
  272 + break;
  273 + case '\f':
  274 + add('\\f');
  275 + break;
  276 + case '\n':
  277 + add('\\n');
  278 + break;
  279 + case '\r':
  280 + add('\\r');
  281 + break;
  282 + case '\t':
  283 + add('\\t');
  284 + break;
  285 + default:
  286 + c = c.charCodeAt();
  287 + add('\\u00' + Math.floor(c / 16).toString(16) + (c % 16).toString(16));
  288 + }
  289 + }
  290 + }
  291 + return add('"');
292 break; 292 break;
293 case 'boolean': 293 case 'boolean':
294 return add(String(obj)); 294 return add(String(obj));
295 - break; 295 + break;
296 default: 296 default:
297 return add('null'); 297 return add('null');
298 break; 298 break;
@@ -311,7 +311,7 @@ JSON.stringify2 = function(arg) @@ -311,7 +311,7 @@ JSON.stringify2 = function(arg)
311 <caption>Original JSON PHP/Javascript</caption> 311 <caption>Original JSON PHP/Javascript</caption>
312 <tr> 312 <tr>
313 <td> 313 <td>
314 - Original PHP object (print_r) 314 + Original PHP object (print_r)
315 <textarea rows="5" cols="50"><?php echo print_r($object1); ?></textarea> 315 <textarea rows="5" cols="50"><?php echo print_r($object1); ?></textarea>
316 </td> 316 </td>
317 </tr> 317 </tr>
@@ -321,7 +321,7 @@ JSON.stringify2 = function(arg) @@ -321,7 +321,7 @@ JSON.stringify2 = function(arg)
321 <tr> 321 <tr>
322 <td>Did it Convert to a Javascript Object origjsobj ?<br /> 322 <td>Did it Convert to a Javascript Object origjsobj ?<br />
323 <script> 323 <script>
324 - try 324 + try
325 { 325 {
326 var origjsobj = JSON.parse('<?php echo addslashes($origjsonstring); ?>'); 326 var origjsobj = JSON.parse('<?php echo addslashes($origjsonstring); ?>');
327 document.write('Successful'); 327 document.write('Successful');
@@ -330,9 +330,9 @@ JSON.stringify2 = function(arg) @@ -330,9 +330,9 @@ JSON.stringify2 = function(arg)
330 { 330 {
331 document.write('Failed'); 331 document.write('Failed');
332 document.write(' Original Parse Failed with this error "' + e.message + '"'); 332 document.write(' Original Parse Failed with this error "' + e.message + '"');
333 - } 333 + }
334 </script> 334 </script>
335 - <br /><button onclick="s=document.body.appendChild(document.createElement('script'));s.id='sst';s.language='javascript';void(s.src='http://snmp-dev.cableaz.com/beta/print_r_0_3.js');">Invoke Print_R</button> 335 + <br /><button onclick="s=document.body.appendChild(document.createElement('script'));s.id='sst';s.language='javascript';void(s.src='http://snmp-dev.cableaz.com/beta/print_r_0_3.js');">Invoke Print_R</button>
336 </td> 336 </td>
337 </tr> 337 </tr>
338 <tr> 338 <tr>
@@ -356,7 +356,7 @@ JSON.stringify2 = function(arg) @@ -356,7 +356,7 @@ JSON.stringify2 = function(arg)
356 <caption>New JSON PHP/Javascript</caption> 356 <caption>New JSON PHP/Javascript</caption>
357 <tr> 357 <tr>
358 <td> 358 <td>
359 - Original PHP object (print_r) 359 + Original PHP object (print_r)
360 <textarea rows="5" cols="50"><?php echo print_r($object1); ?></textarea> 360 <textarea rows="5" cols="50"><?php echo print_r($object1); ?></textarea>
361 </td> 361 </td>
362 </tr> 362 </tr>
@@ -366,7 +366,7 @@ JSON.stringify2 = function(arg) @@ -366,7 +366,7 @@ JSON.stringify2 = function(arg)
366 <tr> 366 <tr>
367 <td>Did it Convert to a Javascript Object newjsobj ?<br /> 367 <td>Did it Convert to a Javascript Object newjsobj ?<br />
368 <script> 368 <script>
369 - try 369 + try
370 { 370 {
371 var newjsobj = JSON.parse2('<?php echo addslashes($newjsonstring); ?>'); 371 var newjsobj = JSON.parse2('<?php echo addslashes($newjsonstring); ?>');
372 document.write('Successful'); 372 document.write('Successful');
@@ -375,9 +375,9 @@ JSON.stringify2 = function(arg) @@ -375,9 +375,9 @@ JSON.stringify2 = function(arg)
375 { 375 {
376 document.write('Failed'); 376 document.write('Failed');
377 document.write(' New Parse Failed with this error "' + e.message + '"'); 377 document.write(' New Parse Failed with this error "' + e.message + '"');
378 - } 378 + }
379 </script> 379 </script>
380 - <br /><button onclick="s=document.body.appendChild(document.createElement('script'));s.id='sst';s.language='javascript';void(s.src='http://snmp-dev.cableaz.com/beta/print_r_0_3.js');">Invoke Print_R</button> 380 + <br /><button onclick="s=document.body.appendChild(document.createElement('script'));s.id='sst';s.language='javascript';void(s.src='http://snmp-dev.cableaz.com/beta/print_r_0_3.js');">Invoke Print_R</button>
381 </td> 381 </td>
382 </tr> 382 </tr>
383 <tr> 383 <tr>
pacotes/cpaint/cpaint2.inc.php
@@ -15,928 +15,927 @@ @@ -15,928 +15,927 @@
15 */ 15 */
16 16
17 //---- includes ---------------------------------------------------------------- 17 //---- includes ----------------------------------------------------------------
18 - /**  
19 - * @include JSON  
20 - */  
21 - require_once(dirname(__FILE__) . '/json.php');  
22 -  
23 - /**  
24 - * @include config  
25 - */  
26 - require_once("cpaint2.config.php"); 18 + /**
  19 + * @include JSON
  20 + */
  21 + require_once(dirname(__FILE__) . '/json.php');
  22 + /**
  23 + * @include config
  24 + */
  25 + require_once("cpaint2.config.php");
27 26
28 //---- variables --------------------------------------------------------------- 27 //---- variables ---------------------------------------------------------------
29 - $GLOBALS['__cpaint_json'] = new JSON(); 28 + $GLOBALS['__cpaint_json'] = new JSON();
30 29
31 //---- error reporting --------------------------------------------------------- 30 //---- error reporting ---------------------------------------------------------
32 error_reporting(E_ALL ^ E_NOTICE ^ E_WARNING); 31 error_reporting(E_ALL ^ E_NOTICE ^ E_WARNING);
33 32
34 //---- classes ----------------------------------------------------------------- 33 //---- classes -----------------------------------------------------------------
35 - /**  
36 - * cpaint base class.  
37 - *  
38 - * @package CPAINT  
39 - * @access public  
40 - * @author Paul Sullivan <wiley14@gmail.com>  
41 - * @author Dominique Stender <dstender@st-webdevelopment.de>  
42 - * @copyright Copyright (c) 2005-2006 Paul Sullivan, Dominique Stender - http://sf.net/projects/cpaint  
43 - * @version 2.0.3  
44 - */  
45 - class cpaint {  
46 - /**  
47 - * version number  
48 - *  
49 - * @access private  
50 - * @var string $version  
51 - */  
52 - var $version = '2.0.3';  
53 -  
54 - /**  
55 - * response type.  
56 - *  
57 - * @access protected  
58 - * @var string $response_type  
59 - */  
60 - var $response_type;  
61 -  
62 - /**  
63 - * the basenode ajaxResponse.  
64 - *  
65 - * @access protected  
66 - * @var object $basenode  
67 - */  
68 - var $basenode;  
69 -  
70 - /**  
71 - * list of registered methods available through the CPAINT API  
72 - *  
73 - * @access protected  
74 - * @var array $api_functions  
75 - */  
76 - var $api_functions;  
77 -  
78 - /**  
79 - * list of registered complex types used in the CPAINT API  
80 - *  
81 - * @access protected  
82 - * @var array $api_datatypes  
83 - */  
84 - var $api_datatypes;  
85 -  
86 - /**  
87 - * whether or not the CPAINT API generates a WSDL when called with ?wsdl querystring  
88 - *  
89 - * @access private  
90 - * @var boolean $use_wsdl  
91 - */  
92 - var $use_wsdl;  
93 -  
94 - /**  
95 - * PHP4 constructor.  
96 - *  
97 - * @access public  
98 - * @return void  
99 - */  
100 - function cpaint() {  
101 - $this->__construct();  
102 - }  
103 -  
104 - /**  
105 - * PHP 5 constructor.  
106 - *  
107 - * @access public  
108 - * @return void  
109 - * -o"Dominique Stender" -ccpaint implement a better debugging  
110 - */  
111 - function __construct() {  
112 - // initialize properties  
113 - $this->basenode = new cpaint_node();  
114 - $this->basenode->set_name('ajaxResponse');  
115 - $this->basenode->set_attribute('id', '');  
116 - $this->basenode->set_encoding('UTF-8');  
117 -  
118 - $this->response_type = 'TEXT';  
119 - $this->api_functions = array();  
120 - $this->api_datatypes = array();  
121 - $this->use_wsdl = true;  
122 -  
123 - $this->complex_type(array(  
124 - 'name' => 'cpaintResponseType',  
125 - 'type' => 'restriction', // (restriction|complex|list)  
126 - 'base_type' => 'string', // scalar type of all values, e.g. 'string', for type = (restriction|list) only  
127 - 'values' => array( // for type = 'restriction' only: list of allowed values  
128 - 'XML', 'TEXT', 'OBJECT', 'E4X', 'JSON',  
129 - ),  
130 - )  
131 - );  
132 - $this->complex_type(array(  
133 - 'name' => 'cpaintDebugLevel',  
134 - 'type' => 'restriction',  
135 - 'base_type' => 'long',  
136 - 'values' => array(  
137 - -1, 0, 1, 2  
138 - ),  
139 - )  
140 - );  
141 - $this->complex_type(array(  
142 - 'name' => 'cpaintDebugMessage',  
143 - 'type' => 'list',  
144 - 'base_type' => 'string',  
145 - )  
146 - );  
147 -  
148 - $this->complex_type(array(  
149 - 'name' => 'cpaintRequestHead',  
150 - 'type' => 'complex',  
151 - 'struct' => array(  
152 - 0 => array('name' => 'functionName', 'type' => 'string'),  
153 - 1 => array('name' => 'responseType', 'type' => 'cpaintResponseType'),  
154 - 2 => array('name' => 'debugLevel', 'type' => 'cpaintDebugLevel'),  
155 - ),  
156 - )  
157 - );  
158 -  
159 - $this->complex_type(array(  
160 - 'name' => 'cpaintResponseHead',  
161 - 'type' => 'complex',  
162 - 'struct' => array(  
163 - 0 => array('name' => 'success', 'type' => 'boolean'),  
164 - 1 => array('name' => 'debugger', 'type' => 'cpaintDebugMessage'),  
165 - ),  
166 - )  
167 - );  
168 -  
169 - // determine response type  
170 - if (isset($_REQUEST['cpaint_response_type'])) {  
171 - $this->response_type = htmlentities(strip_tags(strtoupper((string) $_REQUEST['cpaint_response_type'])));  
172 - } // end: if  
173 - }  
174 -  
175 - /**  
176 - * calls the user function responsible for this specific call.  
177 - *  
178 - * @access public  
179 - * @param string $input_encoding input data character encoding, default is UTF-8  
180 - * @return void  
181 - */  
182 - function start($input_encoding = 'UTF-8') {  
183 - $user_function = '';  
184 - $arguments = array();  
185 -  
186 - // work only if there is no API version request  
187 - if (!isset($_REQUEST['api_query'])  
188 - && !isset($_REQUEST['wsdl'])) {  
189 - $this->basenode->set_encoding($input_encoding);  
190 -  
191 - if ($_REQUEST['cpaint_function'] != '') {  
192 - $user_function = $_REQUEST['cpaint_function'];  
193 - if(@$_REQUEST['cpaint_argument'])  
194 - $arguments = $_REQUEST['cpaint_argument'];  
195 - else  
196 - $arguments = array();  
197 - }  
198 -  
199 - // perform character conversion on every argument  
200 - foreach ($arguments as $key => $value) {  
201 -  
202 - if (get_magic_quotes_gpc() == true) {  
203 - $value = stripslashes($value);  
204 - } // end: if  
205 -  
206 - // convert from JSON string  
207 - // var_dump($GLOBALS['__cpaint_json']);  
208 - $arguments[$key] = $GLOBALS['__cpaint_json']->parse($value);  
209 - } // end: foreach  
210 -  
211 - $arguments = cpaint_transformer::decode_array($arguments, $this->basenode->get_encoding());  
212 - //var_dump($arguments);  
213 - if (is_array($this->api_functions[$user_function])  
214 - && is_callable($this->api_functions[$user_function]['call'])) {  
215 - // a valid API function is to be called  
216 - call_user_func_array($this->api_functions[$user_function]['call'], $arguments);  
217 - } else if ($user_function != '') {  
218 - // desired function is not registered as API function  
219 - $this->basenode->set_data('[CPAINT] A function name was passed that is not allowed to execute on this server.');  
220 - }  
221 - } // end: if  
222 - }  
223 -  
224 - /**  
225 - * generates and prints the response based on response type supplied by the frontend.  
226 - *  
227 - * @access public  
228 - * @return void  
229 - */  
230 - function return_data() {  
231 - // send appropriate headers to avoid caching  
232 - header('Expires: Fri, 14 Mar 1980 20:53:00 GMT');  
233 - header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');  
234 - header('Cache-Control: no-cache, must-revalidate');  
235 - header('Pragma: no-cache');  
236 - header('X-Powered-By: CPAINT v' . $this->version . '/PHP v' . phpversion());  
237 -  
238 - // work only if there is no API version request  
239 -  
240 - if (!isset($_REQUEST['api_query'])  
241 - && !isset($_REQUEST['wsdl'])) {  
242 - // trigger generation of response  
243 - switch (trim($this->response_type)) {  
244 -  
245 - case 'TEXT':  
246 - header('Content-type: text/plain; charset=' . cpaint_transformer::find_output_charset($this->basenode->get_encoding()));  
247 - echo cpaint_transformer::toString($this->basenode);  
248 - break;  
249 -  
250 - case 'JSON':  
251 - header('Content-type: text/plain; charset=' . cpaint_transformer::find_output_charset($this->basenode->get_encoding()));  
252 - echo cpaint_transformer::toJSON($this->basenode);  
253 - break;  
254 -  
255 - case 'OBJECT':  
256 - case 'E4X':  
257 - case 'XML':  
258 - header('Content-type: text/xml; charset=' . cpaint_transformer::find_output_charset($this->basenode->get_encoding()));  
259 - echo '<?xml version="1.0" encoding="' . cpaint_transformer::find_output_charset($this->basenode->get_encoding()) . '"?>'  
260 - . cpaint_transformer::toXML($this->basenode);  
261 - break;  
262 -  
263 - default:  
264 - echo 'ERROR: invalid response type \'' . $this->response_type . '\'';  
265 - } // end: switch  
266 -  
267 - } elseif (isset($_REQUEST['api_query'])) {  
268 - // API version request  
269 - header('Content-type: text/plain; charset=ISO-8859-1');  
270 - echo 'CPAINT v' . $this->version . '/PHP v' . phpversion();  
271 -  
272 - } elseif ($this->use_wsdl == true  
273 - && isset($_REQUEST['wsdl'])) {  
274 -  
275 - if (is_file(dirname(__FILE__) . '/cpaint2.wsdl.php')  
276 - && is_readable(dirname(__FILE__) . '/cpaint2.wsdl.php')) {  
277 -  
278 - require_once(dirname(__FILE__) . '/cpaint2.wsdl.php');  
279 -  
280 - if (class_exists('cpaint_wsdl')) {  
281 - // create new instance of WSDL library  
282 - $wsdl = new cpaint_wsdl();  
283 -  
284 - // build WSDL info  
285 - header('Content-type: text/xml; charset=UTF-8');  
286 - echo $wsdl->generate($this->api_functions, $this->api_datatypes);  
287 -  
288 - } else {  
289 - header('Content-type: text/plain; charset=ISO-8859-1');  
290 - echo 'WSDL generator is unavailable';  
291 - } // end: if  
292 -  
293 - } else {  
294 - header('Content-type: text/plain; charset=ISO-8859-1');  
295 - echo 'WSDL generator is unavailable';  
296 - } // end: if  
297 - } // end: if  
298 - }  
299 -  
300 - /**  
301 - * registers a new function or method as part of the CPAINT API  
302 - *  
303 - * @access public  
304 - * @param mixed $func function name, array(&$object, 'function_name') or array('class', 'function_name')  
305 - * @param array $input function input parameters (not yet used by CPAINT and subject to change)  
306 - * @param array $output function output format (not yed used by CPAINT and subject to change)  
307 - * @param string $comment description of the functionality  
308 - * @return boolean  
309 - */  
310 - function register($func, $input = array(), $output = array(), $comment = '') {  
311 - $return_value = false;  
312 - $input = (array) $input;  
313 - $output = (array) $output;  
314 - $comment = (string) $comment;  
315 -  
316 - if (is_array($func)  
317 - && (is_object($func[0]) || is_string($func[0]))  
318 - && is_string($func[1])  
319 - && is_callable($func)) {  
320 -  
321 - // calling a method of an object  
322 - $this->api_functions[$func[1]] = array(  
323 - 'call' => $func,  
324 - 'input' => $input,  
325 - 'output' => $output,  
326 - 'comment' => $comment,  
327 - );  
328 - $return_value = true;  
329 -  
330 - } elseif (is_string($func)) {  
331 - // calling a standalone function  
332 - $this->api_functions[$func] = array(  
333 - 'call' => $func,  
334 - 'input' => $input,  
335 - 'output' => $output,  
336 - 'comment' => $comment,  
337 - );  
338 - $return_value = true;  
339 - } // end: if  
340 -  
341 - return $return_value;  
342 - }  
343 -  
344 -  
345 -  
346 - /**  
347 - * unregisters a function that is currently part of the CPAINT API.  
348 - *  
349 - * proves useful when the same set of functions is to be used in the  
350 - * frontend and in some kind of administration environment. you might  
351 - * want to unregister a few (admin) functions for the frontend in this  
352 - * case.  
353 - *  
354 - * @access public  
355 - * @param string $func function name  
356 - * @return boolean  
357 - */  
358 - function unregister($func) {  
359 - $retval = false;  
360 -  
361 - if (is_array($this->api_functions[$func])) {  
362 - unset($this->api_functions[$func]);  
363 - } // end: if  
364 -  
365 - return $retval;  
366 - }  
367 -  
368 -  
369 -  
370 - /**  
371 - * registers a complex data type  
372 - *  
373 - * @access public  
374 - * @param array $schema schema definition for the complex type  
375 - * @return boolean  
376 - */  
377 - function complex_type($schema) {  
378 - $return_value = false;  
379 - $schema = (array) $schema;  
380 -  
381 - if ($schema['name'] != ''  
382 - && in_array($schema['type'], array('restriction', 'complex', 'list'))) {  
383 -  
384 - $this->api_datatypes[] = $schema;  
385 - $return_value = true;  
386 - } // end: if  
387 -  
388 - return $return_value;  
389 - }  
390 -  
391 - /**  
392 - * switches the generation of WSDL on/off. default is on  
393 - *  
394 - * @access public  
395 - * @param boolean $state state of WSDL generation  
396 - * @return void  
397 - */  
398 - function use_wsdl($state) {  
399 - $this->use_wsdl = (boolean) $state;  
400 - }  
401 -  
402 - /**  
403 - * adds a new subnode to the basenode.  
404 - *  
405 - * will return a reference to it for further processing.  
406 - *  
407 - * @access public  
408 - * @param string $nodename name of the new node  
409 - * @param string $id id of the new node  
410 - * @return object  
411 - */  
412 - function &add_node($nodename, $id = '') {  
413 - return $this->basenode->add_node($nodename, $id);  
414 - }  
415 -  
416 - /**  
417 - * assigns textual data to the basenode.  
418 - *  
419 - * @access public  
420 - * @param mixed $data data to assign to this node  
421 - * @return void  
422 - */  
423 - function set_data($data) {  
424 - $this->basenode->set_data($data);  
425 - }  
426 -  
427 - /**  
428 - * returns the data assigned to the basenode.  
429 - *  
430 - * @access public  
431 - * @return mixed  
432 - */  
433 - function get_data() {  
434 - return $this->basenode->get_data();  
435 - }  
436 -  
437 - /**  
438 - * sets the id property of the basenode.  
439 - *  
440 - * @deprecated deprecated since version 2.0.0  
441 - * @access public  
442 - * @param string $id the id  
443 - * @return void  
444 - */  
445 - function set_id($id) {  
446 - $this->basenode->set_attribute('id', $id);  
447 - }  
448 -  
449 - /**  
450 - * gets the id property of the basenode.  
451 - *  
452 - * @deprecated deprecated since version 2.0.0  
453 - * @access public  
454 - * @return string  
455 - */  
456 - function get_id() {  
457 - return $this->basenode->get_attribute('id');  
458 - }  
459 -  
460 - /**  
461 - * adds a new attribute to the basenode.  
462 - *  
463 - * @access public  
464 - * @param string $name attribute name  
465 - * @param mixed $value attribute value  
466 - * @return void  
467 - */  
468 - function set_attribute($name, $value) {  
469 - $this->basenode->set_attribute($name, $value);  
470 - }  
471 -  
472 - /**  
473 - * retrieves an attribute of the basenode by name.  
474 - *  
475 - * @access public  
476 - * @param string $name attribute name  
477 - * @return string  
478 - */  
479 - function get_attribute($name) {  
480 - return $this->basenode->get_attributes($name);  
481 - }  
482 -  
483 - /**  
484 - * set name property of the basenode.  
485 - *  
486 - * @access public  
487 - * @param string $name the name  
488 - * @return void  
489 - */  
490 - function set_name($name) {  
491 - $this->basenode->set_name($name);  
492 - }  
493 -  
494 - /**  
495 - * get name property of the basenode.  
496 - *  
497 - * @access public  
498 - * @return string  
499 - */  
500 - function get_name() {  
501 - return $this->basenode->get_name();  
502 - }  
503 -  
504 -  
505 -  
506 - /**  
507 - * returns the response type as requested by the client  
508 - *  
509 - * @access public  
510 - * @return string  
511 - */  
512 - function get_response_type() {  
513 - return $this->response_type;  
514 - }  
515 -  
516 - }  
517 -  
518 - /**  
519 - * a cpaint data node. Data nodes are used to build up the response.  
520 - *  
521 - * @package CPAINT  
522 - * @access public  
523 - * @author Dominique Stender <dstender@st-webdevelopment.de>  
524 - * @copyright 2005-2006 (Dominique Stender); All rights reserved  
525 - * @version 2.0.3  
526 - */  
527 - class cpaint_node {  
528 - /**  
529 - * array of subnodes.  
530 - *  
531 - * @access public  
532 - * @var array $composites  
533 - */  
534 - var $composites;  
535 -  
536 - /**  
537 - * node attributes.  
538 - *  
539 - * @access public  
540 - * @var array $attributes  
541 - */  
542 - var $attributes;  
543 -  
544 - /**  
545 - * name of this node.  
546 - *  
547 - * @access public  
548 - * @var string $nodename  
549 - */  
550 - var $nodename;  
551 -  
552 - /**  
553 - * textual data of this node.  
554 - *  
555 - * @access public  
556 - * @var string $data  
557 - */  
558 - var $data;  
559 -  
560 - /**  
561 - * character encoding for input data  
562 - *  
563 - * @access private  
564 - * @var $input_encoding  
565 - */  
566 - var $input_encoding;  
567 -  
568 - /**  
569 - * PHP4 constructor.  
570 - *  
571 - * @package CPAINT  
572 - * @access public  
573 - * @return void  
574 - */  
575 - function cpaint_node() {  
576 - $this->__construct();  
577 - }  
578 -  
579 - /**  
580 - * PHP 5 constructor.  
581 - *  
582 - * @access public  
583 - * @return void  
584 - */  
585 - function __construct() {  
586 - // initialize properties  
587 - $this->composites = array();  
588 - $this->attributes = array();  
589 - $this->data = '';  
590 -  
591 - $this->set_encoding('UTF-8');  
592 - $this->set_name('');  
593 - $this->set_attribute('id', '');  
594 - }  
595 -  
596 - /**  
597 - * adds a new subnode to this node.  
598 - *  
599 - * will return a reference to it for further processing.  
600 - *  
601 - * @access public  
602 - * @param string $nodename name of the new node  
603 - * @param string $id id of the new node  
604 - * @return object  
605 - */  
606 - function &add_node($nodename, $id = '') {  
607 - $composites = count($this->composites);  
608 -  
609 - // create new node  
610 - $this->composites[$composites] =& new cpaint_node();  
611 - $this->composites[$composites]->set_name($nodename);  
612 - $this->composites[$composites]->set_attribute('id', $id);  
613 - $this->composites[$composites]->set_encoding($this->input_encoding);  
614 -  
615 - return $this->composites[$composites];  
616 - }  
617 -  
618 - /**  
619 - * assigns textual data to this node.  
620 - *  
621 - * @access public  
622 - * @param mixed $data data to assign to this node  
623 - * @return void  
624 - */  
625 - function set_data($data) {  
626 - $this->data = $data;  
627 - }  
628 -  
629 - /**  
630 - * returns the textual data assigned to this node.  
631 - *  
632 - * @access public  
633 - * @return mixed  
634 - */  
635 - function get_data() {  
636 - return $this->data;  
637 - }  
638 -  
639 - /**  
640 - * sets the id property of this node.  
641 - *  
642 - * @deprecated deprecated since version 2.0.0  
643 - * @access public  
644 - * @param string id the id  
645 - * @return void  
646 - */  
647 - function set_id($id) {  
648 - if ($id != '') {  
649 - $this->set_attribute('id', $id);  
650 - } // end: if  
651 - }  
652 -  
653 - /**  
654 - * returns the id property if this node.  
655 - *  
656 - * @deprecated deprecated since version 2.0.0  
657 - * @access public  
658 - * @return string  
659 - */  
660 - function get_id() {  
661 - return $this->get_attribute('id');  
662 - }  
663 -  
664 - /**  
665 - * adds a new attribute to this node.  
666 - *  
667 - * @access public  
668 - * @param string $name attribute name  
669 - * @param mixed $value attribute value  
670 - * @return void  
671 - */  
672 - function set_attribute($name, $value) {  
673 - $this->attributes[$name] = (string) $value;  
674 - }  
675 -  
676 - /**  
677 - * retrieves an attribute by name.  
678 - *  
679 - * @access public  
680 - * @param string $name attribute name  
681 - * @return string  
682 - */  
683 - function get_attribute($name) {  
684 - return $this->attributes[$name];  
685 - }  
686 -  
687 - /**  
688 - * set name property.  
689 - *  
690 - * @access public  
691 - * @param string $name the name  
692 - * @return void  
693 - */  
694 - function set_name($name) {  
695 - $this->nodename = (string) $name;  
696 - }  
697 -  
698 - /**  
699 - * get name property.  
700 - *  
701 - * @access public  
702 - * @return string  
703 - */  
704 - function get_name() {  
705 - return $this->nodename;  
706 - }  
707 -  
708 - /**  
709 - * sets the character encoding for this node  
710 - *  
711 - * @access public  
712 - * @param string $encoding character encoding  
713 - * @return void  
714 - */  
715 - function set_encoding($encoding) {  
716 - $this->input_encoding = strtoupper((string) $encoding);  
717 - }  
718 -  
719 - /**  
720 - * returns the character encoding for this node  
721 - *  
722 - * @access public  
723 - * @return string  
724 - */  
725 - function get_encoding() {  
726 - return $this->input_encoding;  
727 - }  
728 - }  
729 -  
730 - /**  
731 - * static class of output transformers.  
732 - *  
733 - * @package CPAINT  
734 - * @access public  
735 - * @author Dominique Stender <dstender@st-webdevelopment.de>  
736 - * @copyright 2003-2006 (Dominique Stender); All rights reserved  
737 - * @version 2.0.3  
738 - */  
739 - class cpaint_transformer {  
740 - /**  
741 - * toString method, used to generate response of type TEXT.  
742 - * will perform character transformation according to parameters.  
743 - *  
744 - * @access public  
745 - * @param object $node a cpaint_node object  
746 - * @return string  
747 - */  
748 - function toString(&$node) {  
749 - $return_value = '';  
750 -  
751 - foreach ($node->composites as $composite) {  
752 - $return_value .= cpaint_transformer::toString($composite);  
753 - }  
754 -  
755 - $return_value .= cpaint_transformer::encode($node->get_data(), $node->get_encoding());  
756 -  
757 - return $return_value;  
758 - }  
759 -  
760 - /**  
761 - * XML response generator.  
762 - * will perform character transformation according to parameters.  
763 - *  
764 - * @access public  
765 - * @param object $node a cpaint_node object  
766 - * @return string  
767 - */  
768 - function toXML(&$node) {  
769 - $return_value = '<' . $node->get_name();  
770 -  
771 - // handle attributes  
772 - foreach ($node->attributes as $name => $value) {  
773 - if ($value != '') {  
774 - $return_value .= ' ' . $name . '="' . $node->get_attribute($name) . '"';  
775 - }  
776 - } // end: foreach  
777 -  
778 - $return_value .= '>';  
779 -  
780 - // handle subnodes  
781 - foreach ($node->composites as $composite) {  
782 - $return_value .= cpaint_transformer::toXML($composite);  
783 - }  
784 -  
785 - $return_value .= cpaint_transformer::encode($node->get_data(), $node->get_encoding())  
786 - . '</' . $node->get_name() . '>';  
787 -  
788 - return $return_value;  
789 - }  
790 -  
791 - /**  
792 - * JSON response generator.  
793 - * will perform character transformation according to parameters.  
794 - *  
795 - * @access public  
796 - * @param object $node a cpaint_node object  
797 - * @return string  
798 - */  
799 - function toJSON($node) {  
800 - $return_value = '';  
801 - $JSON_node = new stdClass();  
802 -  
803 - // handle attributes  
804 - $JSON_node->attributes = $node->attributes;  
805 -  
806 - // handle subnodes  
807 - foreach ($node->composites as $composite) {  
808 -  
809 - if (!is_array($JSON_node->{$composite->nodename})) {  
810 - $JSON_node->{$composite->nodename} = array();  
811 - } // end: if  
812 -  
813 - // we need to parse the JSON object again to avoid multiple encoding  
814 - $JSON_node->{$composite->nodename}[] = $GLOBALS['__cpaint_json']->parse(cpaint_transformer::toJSON($composite));  
815 - }  
816 -  
817 - // handle data  
818 - $JSON_node->data = $node->data;  
819 -  
820 - return $GLOBALS['__cpaint_json']->stringify($JSON_node);  
821 - }  
822 -  
823 - /**  
824 - * performs conversion to JavaScript-safe UTF-8 characters  
825 - *  
826 - * @access public  
827 - * @param string $data data to convert  
828 - * @param string $encoding character encoding  
829 - * @return string  
830 - */  
831 - function encode($data, $encoding) {  
832 - // convert string  
833 - if (function_exists('iconv')) {  
834 - // iconv is by far the most flexible approach, try this first  
835 - $return_value = iconv($encoding, 'UTF-8', $data);  
836 -  
837 - } elseif ($encoding == 'ISO-8859-1') {  
838 - // for ISO-8859-1 we can use utf8-encode()  
839 - $return_value = utf8_encode($data);  
840 -  
841 - } else {  
842 - // give up. if UTF-8 data was supplied everything is fine!  
843 - $return_value = $data;  
844 - } /* end: if */  
845 -  
846 - // now encode non-printable characters  
847 - for ($i = 0; $i < 32; $i++) {  
848 - $return_value = str_replace(chr($i), '\u00' . sprintf('%02x', $i), $return_value);  
849 - } // end: for  
850 -  
851 - // encode <, >, and & respectively for XML sanity  
852 - $return_value = str_replace(chr(0x26), '\u0026', $return_value);  
853 - $return_value = str_replace(chr(0x3c), '\u003c', $return_value);  
854 - $return_value = str_replace(chr(0x3e), '\u003e', $return_value);  
855 -  
856 - return $return_value;  
857 - }  
858 -  
859 - /**  
860 - * performs conversion from JavaScript encodeURIComponent() string (UTF-8) to  
861 - * the charset in use.  
862 - *  
863 - * @access public  
864 - * @param string $data data to convert  
865 - * @param string $encoding character encoding  
866 - * @return string  
867 - */  
868 - function decode($data, $encoding) {  
869 - // convert string  
870 -  
871 - if (is_string($data)) {  
872 - if (function_exists('iconv')) {  
873 - // iconv is by far the most flexible approach, try this first  
874 - $return_value = iconv('UTF-8', $encoding, $data);  
875 -  
876 - } elseif ($encoding == 'ISO-8859-1') {  
877 - // for ISO-8859-1 we can use utf8-decode()  
878 - $return_value = utf8_decode($data);  
879 -  
880 - } else {  
881 - // give up. if data was supplied in the correct format everything is fine!  
882 - $return_value = $data;  
883 - } // end: if  
884 -  
885 - } else {  
886 - // non-string value  
887 - $return_value = $data;  
888 - } // end: if  
889 -  
890 - return $return_value;  
891 - }  
892 -  
893 - /**  
894 - * decodes a (nested) array of data from UTF-8 into the configured character set  
895 - *  
896 - * @access public  
897 - * @param array $data data to convert  
898 - * @param string $encoding character encoding  
899 - * @return array  
900 - */  
901 - function decode_array($data, $encoding) {  
902 - $return_value = array();  
903 -  
904 - foreach ($data as $key => $value) {  
905 -  
906 - if (!is_array($value)) {  
907 - $return_value[$key] = cpaint_transformer::decode($value, $encoding);  
908 -  
909 - } else {  
910 - $return_value[$key] = cpaint_transformer::decode_array($value, $encoding);  
911 - }  
912 - }  
913 -  
914 - return $return_value;  
915 - }  
916 -  
917 - /**  
918 - * determines the output character set  
919 - * based on input character set  
920 - *  
921 - * @access public  
922 - * @param string $encoding character encoding  
923 - * @return string  
924 - */  
925 - function find_output_charset($encoding) {  
926 - $return_value = 'UTF-8';  
927 -  
928 - if (function_exists('iconv')  
929 - || $encoding == 'UTF-8'  
930 - || $encoding == 'ISO-8859-1') {  
931 -  
932 - $return_value = 'UTF-8';  
933 -  
934 - } else {  
935 - $return_value = $encoding;  
936 - } // end: if  
937 -  
938 - return $return_value;  
939 - }  
940 - } 34 + /**
  35 + * cpaint base class.
  36 + *
  37 + * @package CPAINT
  38 + * @access public
  39 + * @author Paul Sullivan <wiley14@gmail.com>
  40 + * @author Dominique Stender <dstender@st-webdevelopment.de>
  41 + * @copyright Copyright (c) 2005-2006 Paul Sullivan, Dominique Stender - http://sf.net/projects/cpaint
  42 + * @version 2.0.3
  43 + */
  44 + class cpaint {
  45 + /**
  46 + * version number
  47 + *
  48 + * @access private
  49 + * @var string $version
  50 + */
  51 + var $version = '2.0.3';
  52 +
  53 + /**
  54 + * response type.
  55 + *
  56 + * @access protected
  57 + * @var string $response_type
  58 + */
  59 + var $response_type;
  60 +
  61 + /**
  62 + * the basenode ajaxResponse.
  63 + *
  64 + * @access protected
  65 + * @var object $basenode
  66 + */
  67 + var $basenode;
  68 +
  69 + /**
  70 + * list of registered methods available through the CPAINT API
  71 + *
  72 + * @access protected
  73 + * @var array $api_functions
  74 + */
  75 + var $api_functions;
  76 +
  77 + /**
  78 + * list of registered complex types used in the CPAINT API
  79 + *
  80 + * @access protected
  81 + * @var array $api_datatypes
  82 + */
  83 + var $api_datatypes;
  84 +
  85 + /**
  86 + * whether or not the CPAINT API generates a WSDL when called with ?wsdl querystring
  87 + *
  88 + * @access private
  89 + * @var boolean $use_wsdl
  90 + */
  91 + var $use_wsdl;
  92 +
  93 + /**
  94 + * PHP4 constructor.
  95 + *
  96 + * @access public
  97 + * @return void
  98 + */
  99 + function cpaint() {
  100 + $this->__construct();
  101 + }
  102 +
  103 + /**
  104 + * PHP 5 constructor.
  105 + *
  106 + * @access public
  107 + * @return void
  108 + * -o"Dominique Stender" -ccpaint implement a better debugging
  109 + */
  110 + function __construct() {
  111 + // initialize properties
  112 + $this->basenode = new cpaint_node();
  113 + $this->basenode->set_name('ajaxResponse');
  114 + $this->basenode->set_attribute('id', '');
  115 + $this->basenode->set_encoding('UTF-8');
  116 +
  117 + $this->response_type = 'TEXT';
  118 + $this->api_functions = array();
  119 + $this->api_datatypes = array();
  120 + $this->use_wsdl = true;
  121 +
  122 + $this->complex_type(array(
  123 + 'name' => 'cpaintResponseType',
  124 + 'type' => 'restriction', // (restriction|complex|list)
  125 + 'base_type' => 'string', // scalar type of all values, e.g. 'string', for type = (restriction|list) only
  126 + 'values' => array( // for type = 'restriction' only: list of allowed values
  127 + 'XML', 'TEXT', 'OBJECT', 'E4X', 'JSON',
  128 + ),
  129 + )
  130 + );
  131 + $this->complex_type(array(
  132 + 'name' => 'cpaintDebugLevel',
  133 + 'type' => 'restriction',
  134 + 'base_type' => 'long',
  135 + 'values' => array(
  136 + -1, 0, 1, 2
  137 + ),
  138 + )
  139 + );
  140 + $this->complex_type(array(
  141 + 'name' => 'cpaintDebugMessage',
  142 + 'type' => 'list',
  143 + 'base_type' => 'string',
  144 + )
  145 + );
  146 +
  147 + $this->complex_type(array(
  148 + 'name' => 'cpaintRequestHead',
  149 + 'type' => 'complex',
  150 + 'struct' => array(
  151 + 0 => array('name' => 'functionName', 'type' => 'string'),
  152 + 1 => array('name' => 'responseType', 'type' => 'cpaintResponseType'),
  153 + 2 => array('name' => 'debugLevel', 'type' => 'cpaintDebugLevel'),
  154 + ),
  155 + )
  156 + );
  157 +
  158 + $this->complex_type(array(
  159 + 'name' => 'cpaintResponseHead',
  160 + 'type' => 'complex',
  161 + 'struct' => array(
  162 + 0 => array('name' => 'success', 'type' => 'boolean'),
  163 + 1 => array('name' => 'debugger', 'type' => 'cpaintDebugMessage'),
  164 + ),
  165 + )
  166 + );
  167 +
  168 + // determine response type
  169 + if (isset($_REQUEST['cpaint_response_type'])) {
  170 + $this->response_type = htmlentities(strip_tags(strtoupper((string) $_REQUEST['cpaint_response_type'])));
  171 + } // end: if
  172 + }
  173 +
  174 + /**
  175 + * calls the user function responsible for this specific call.
  176 + *
  177 + * @access public
  178 + * @param string $input_encoding input data character encoding, default is UTF-8
  179 + * @return void
  180 + */
  181 + function start($input_encoding = 'UTF-8') {
  182 + $user_function = '';
  183 + $arguments = array();
  184 +
  185 + // work only if there is no API version request
  186 + if (!isset($_REQUEST['api_query'])
  187 + && !isset($_REQUEST['wsdl'])) {
  188 + $this->basenode->set_encoding($input_encoding);
  189 +
  190 + if ($_REQUEST['cpaint_function'] != '') {
  191 + $user_function = $_REQUEST['cpaint_function'];
  192 + if(@$_REQUEST['cpaint_argument'])
  193 + $arguments = $_REQUEST['cpaint_argument'];
  194 + else
  195 + $arguments = array();
  196 + }
  197 +
  198 + // perform character conversion on every argument
  199 + foreach ($arguments as $key => $value) {
  200 +
  201 + if (get_magic_quotes_gpc() == true) {
  202 + $value = stripslashes($value);
  203 + } // end: if
  204 +
  205 + // convert from JSON string
  206 + // var_dump($GLOBALS['__cpaint_json']);
  207 + $arguments[$key] = $GLOBALS['__cpaint_json']->parse($value);
  208 + } // end: foreach
  209 +
  210 + $arguments = cpaint_transformer::decode_array($arguments, $this->basenode->get_encoding());
  211 + //var_dump($arguments);
  212 + if (is_array($this->api_functions[$user_function])
  213 + && is_callable($this->api_functions[$user_function]['call'])) {
  214 + // a valid API function is to be called
  215 + call_user_func_array($this->api_functions[$user_function]['call'], $arguments);
  216 + } else if ($user_function != '') {
  217 + // desired function is not registered as API function
  218 + $this->basenode->set_data('[CPAINT] A function name was passed that is not allowed to execute on this server.');
  219 + }
  220 + } // end: if
  221 + }
  222 +
  223 + /**
  224 + * generates and prints the response based on response type supplied by the frontend.
  225 + *
  226 + * @access public
  227 + * @return void
  228 + */
  229 + function return_data() {
  230 + // send appropriate headers to avoid caching
  231 + header('Expires: Fri, 14 Mar 1980 20:53:00 GMT');
  232 + header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
  233 + header('Cache-Control: no-cache, must-revalidate');
  234 + header('Pragma: no-cache');
  235 + header('X-Powered-By: CPAINT v' . $this->version . '/PHP v' . phpversion());
  236 +
  237 + // work only if there is no API version request
  238 +
  239 + if (!isset($_REQUEST['api_query'])
  240 + && !isset($_REQUEST['wsdl'])) {
  241 + // trigger generation of response
  242 + switch (trim($this->response_type)) {
  243 +
  244 + case 'TEXT':
  245 + header('Content-type: text/plain; charset=' . cpaint_transformer::find_output_charset($this->basenode->get_encoding()));
  246 + echo cpaint_transformer::toString($this->basenode);
  247 + break;
  248 +
  249 + case 'JSON':
  250 + header('Content-type: text/plain; charset=' . cpaint_transformer::find_output_charset($this->basenode->get_encoding()));
  251 + echo cpaint_transformer::toJSON($this->basenode);
  252 + break;
  253 +
  254 + case 'OBJECT':
  255 + case 'E4X':
  256 + case 'XML':
  257 + header('Content-type: text/xml; charset=' . cpaint_transformer::find_output_charset($this->basenode->get_encoding()));
  258 + echo '<?xml version="1.0" encoding="' . cpaint_transformer::find_output_charset($this->basenode->get_encoding()) . '"?>'
  259 + . cpaint_transformer::toXML($this->basenode);
  260 + break;
  261 +
  262 + default:
  263 + echo 'ERROR: invalid response type \'' . $this->response_type . '\'';
  264 + } // end: switch
  265 +
  266 + } elseif (isset($_REQUEST['api_query'])) {
  267 + // API version request
  268 + header('Content-type: text/plain; charset=ISO-8859-1');
  269 + echo 'CPAINT v' . $this->version . '/PHP v' . phpversion();
  270 +
  271 + } elseif ($this->use_wsdl == true
  272 + && isset($_REQUEST['wsdl'])) {
  273 +
  274 + if (is_file(dirname(__FILE__) . '/cpaint2.wsdl.php')
  275 + && is_readable(dirname(__FILE__) . '/cpaint2.wsdl.php')) {
  276 +
  277 + require_once(dirname(__FILE__) . '/cpaint2.wsdl.php');
  278 +
  279 + if (class_exists('cpaint_wsdl')) {
  280 + // create new instance of WSDL library
  281 + $wsdl = new cpaint_wsdl();
  282 +
  283 + // build WSDL info
  284 + header('Content-type: text/xml; charset=UTF-8');
  285 + echo $wsdl->generate($this->api_functions, $this->api_datatypes);
  286 +
  287 + } else {
  288 + header('Content-type: text/plain; charset=ISO-8859-1');
  289 + echo 'WSDL generator is unavailable';
  290 + } // end: if
  291 +
  292 + } else {
  293 + header('Content-type: text/plain; charset=ISO-8859-1');
  294 + echo 'WSDL generator is unavailable';
  295 + } // end: if
  296 + } // end: if
  297 + }
  298 +
  299 + /**
  300 + * registers a new function or method as part of the CPAINT API
  301 + *
  302 + * @access public
  303 + * @param mixed $func function name, array(&$object, 'function_name') or array('class', 'function_name')
  304 + * @param array $input function input parameters (not yet used by CPAINT and subject to change)
  305 + * @param array $output function output format (not yed used by CPAINT and subject to change)
  306 + * @param string $comment description of the functionality
  307 + * @return boolean
  308 + */
  309 + function register($func, $input = array(), $output = array(), $comment = '') {
  310 + $return_value = false;
  311 + $input = (array) $input;
  312 + $output = (array) $output;
  313 + $comment = (string) $comment;
  314 +
  315 + if (is_array($func)
  316 + && (is_object($func[0]) || is_string($func[0]))
  317 + && is_string($func[1])
  318 + && is_callable($func)) {
  319 +
  320 + // calling a method of an object
  321 + $this->api_functions[$func[1]] = array(
  322 + 'call' => $func,
  323 + 'input' => $input,
  324 + 'output' => $output,
  325 + 'comment' => $comment,
  326 + );
  327 + $return_value = true;
  328 +
  329 + } elseif (is_string($func)) {
  330 + // calling a standalone function
  331 + $this->api_functions[$func] = array(
  332 + 'call' => $func,
  333 + 'input' => $input,
  334 + 'output' => $output,
  335 + 'comment' => $comment,
  336 + );
  337 + $return_value = true;
  338 + } // end: if
  339 +
  340 + return $return_value;
  341 + }
  342 +
  343 +
  344 +
  345 + /**
  346 + * unregisters a function that is currently part of the CPAINT API.
  347 + *
  348 + * proves useful when the same set of functions is to be used in the
  349 + * frontend and in some kind of administration environment. you might
  350 + * want to unregister a few (admin) functions for the frontend in this
  351 + * case.
  352 + *
  353 + * @access public
  354 + * @param string $func function name
  355 + * @return boolean
  356 + */
  357 + function unregister($func) {
  358 + $retval = false;
  359 +
  360 + if (is_array($this->api_functions[$func])) {
  361 + unset($this->api_functions[$func]);
  362 + } // end: if
  363 +
  364 + return $retval;
  365 + }
  366 +
  367 +
  368 +
  369 + /**
  370 + * registers a complex data type
  371 + *
  372 + * @access public
  373 + * @param array $schema schema definition for the complex type
  374 + * @return boolean
  375 + */
  376 + function complex_type($schema) {
  377 + $return_value = false;
  378 + $schema = (array) $schema;
  379 +
  380 + if ($schema['name'] != ''
  381 + && in_array($schema['type'], array('restriction', 'complex', 'list'))) {
  382 +
  383 + $this->api_datatypes[] = $schema;
  384 + $return_value = true;
  385 + } // end: if
  386 +
  387 + return $return_value;
  388 + }
  389 +
  390 + /**
  391 + * switches the generation of WSDL on/off. default is on
  392 + *
  393 + * @access public
  394 + * @param boolean $state state of WSDL generation
  395 + * @return void
  396 + */
  397 + function use_wsdl($state) {
  398 + $this->use_wsdl = (boolean) $state;
  399 + }
  400 +
  401 + /**
  402 + * adds a new subnode to the basenode.
  403 + *
  404 + * will return a reference to it for further processing.
  405 + *
  406 + * @access public
  407 + * @param string $nodename name of the new node
  408 + * @param string $id id of the new node
  409 + * @return object
  410 + */
  411 + function &add_node($nodename, $id = '') {
  412 + return $this->basenode->add_node($nodename, $id);
  413 + }
  414 +
  415 + /**
  416 + * assigns textual data to the basenode.
  417 + *
  418 + * @access public
  419 + * @param mixed $data data to assign to this node
  420 + * @return void
  421 + */
  422 + function set_data($data) {
  423 + $this->basenode->set_data($data);
  424 + }
  425 +
  426 + /**
  427 + * returns the data assigned to the basenode.
  428 + *
  429 + * @access public
  430 + * @return mixed
  431 + */
  432 + function get_data() {
  433 + return $this->basenode->get_data();
  434 + }
  435 +
  436 + /**
  437 + * sets the id property of the basenode.
  438 + *
  439 + * @deprecated deprecated since version 2.0.0
  440 + * @access public
  441 + * @param string $id the id
  442 + * @return void
  443 + */
  444 + function set_id($id) {
  445 + $this->basenode->set_attribute('id', $id);
  446 + }
  447 +
  448 + /**
  449 + * gets the id property of the basenode.
  450 + *
  451 + * @deprecated deprecated since version 2.0.0
  452 + * @access public
  453 + * @return string
  454 + */
  455 + function get_id() {
  456 + return $this->basenode->get_attribute('id');
  457 + }
  458 +
  459 + /**
  460 + * adds a new attribute to the basenode.
  461 + *
  462 + * @access public
  463 + * @param string $name attribute name
  464 + * @param mixed $value attribute value
  465 + * @return void
  466 + */
  467 + function set_attribute($name, $value) {
  468 + $this->basenode->set_attribute($name, $value);
  469 + }
  470 +
  471 + /**
  472 + * retrieves an attribute of the basenode by name.
  473 + *
  474 + * @access public
  475 + * @param string $name attribute name
  476 + * @return string
  477 + */
  478 + function get_attribute($name) {
  479 + return $this->basenode->get_attributes($name);
  480 + }
  481 +
  482 + /**
  483 + * set name property of the basenode.
  484 + *
  485 + * @access public
  486 + * @param string $name the name
  487 + * @return void
  488 + */
  489 + function set_name($name) {
  490 + $this->basenode->set_name($name);
  491 + }
  492 +
  493 + /**
  494 + * get name property of the basenode.
  495 + *
  496 + * @access public
  497 + * @return string
  498 + */
  499 + function get_name() {
  500 + return $this->basenode->get_name();
  501 + }
  502 +
  503 +
  504 +
  505 + /**
  506 + * returns the response type as requested by the client
  507 + *
  508 + * @access public
  509 + * @return string
  510 + */
  511 + function get_response_type() {
  512 + return $this->response_type;
  513 + }
  514 +
  515 + }
  516 +
  517 + /**
  518 + * a cpaint data node. Data nodes are used to build up the response.
  519 + *
  520 + * @package CPAINT
  521 + * @access public
  522 + * @author Dominique Stender <dstender@st-webdevelopment.de>
  523 + * @copyright 2005-2006 (Dominique Stender); All rights reserved
  524 + * @version 2.0.3
  525 + */
  526 + class cpaint_node {
  527 + /**
  528 + * array of subnodes.
  529 + *
  530 + * @access public
  531 + * @var array $composites
  532 + */
  533 + var $composites;
  534 +
  535 + /**
  536 + * node attributes.
  537 + *
  538 + * @access public
  539 + * @var array $attributes
  540 + */
  541 + var $attributes;
  542 +
  543 + /**
  544 + * name of this node.
  545 + *
  546 + * @access public
  547 + * @var string $nodename
  548 + */
  549 + var $nodename;
  550 +
  551 + /**
  552 + * textual data of this node.
  553 + *
  554 + * @access public
  555 + * @var string $data
  556 + */
  557 + var $data;
  558 +
  559 + /**
  560 + * character encoding for input data
  561 + *
  562 + * @access private
  563 + * @var $input_encoding
  564 + */
  565 + var $input_encoding;
  566 +
  567 + /**
  568 + * PHP4 constructor.
  569 + *
  570 + * @package CPAINT
  571 + * @access public
  572 + * @return void
  573 + */
  574 + function cpaint_node() {
  575 + $this->__construct();
  576 + }
  577 +
  578 + /**
  579 + * PHP 5 constructor.
  580 + *
  581 + * @access public
  582 + * @return void
  583 + */
  584 + function __construct() {
  585 + // initialize properties
  586 + $this->composites = array();
  587 + $this->attributes = array();
  588 + $this->data = '';
  589 +
  590 + $this->set_encoding('UTF-8');
  591 + $this->set_name('');
  592 + $this->set_attribute('id', '');
  593 + }
  594 +
  595 + /**
  596 + * adds a new subnode to this node.
  597 + *
  598 + * will return a reference to it for further processing.
  599 + *
  600 + * @access public
  601 + * @param string $nodename name of the new node
  602 + * @param string $id id of the new node
  603 + * @return object
  604 + */
  605 + function &add_node($nodename, $id = '') {
  606 + $composites = count($this->composites);
  607 +
  608 + // create new node
  609 + $this->composites[$composites] =& new cpaint_node();
  610 + $this->composites[$composites]->set_name($nodename);
  611 + $this->composites[$composites]->set_attribute('id', $id);
  612 + $this->composites[$composites]->set_encoding($this->input_encoding);
  613 +
  614 + return $this->composites[$composites];
  615 + }
  616 +
  617 + /**
  618 + * assigns textual data to this node.
  619 + *
  620 + * @access public
  621 + * @param mixed $data data to assign to this node
  622 + * @return void
  623 + */
  624 + function set_data($data) {
  625 + $this->data = $data;
  626 + }
  627 +
  628 + /**
  629 + * returns the textual data assigned to this node.
  630 + *
  631 + * @access public
  632 + * @return mixed
  633 + */
  634 + function get_data() {
  635 + return $this->data;
  636 + }
  637 +
  638 + /**
  639 + * sets the id property of this node.
  640 + *
  641 + * @deprecated deprecated since version 2.0.0
  642 + * @access public
  643 + * @param string id the id
  644 + * @return void
  645 + */
  646 + function set_id($id) {
  647 + if ($id != '') {
  648 + $this->set_attribute('id', $id);
  649 + } // end: if
  650 + }
  651 +
  652 + /**
  653 + * returns the id property if this node.
  654 + *
  655 + * @deprecated deprecated since version 2.0.0
  656 + * @access public
  657 + * @return string
  658 + */
  659 + function get_id() {
  660 + return $this->get_attribute('id');
  661 + }
  662 +
  663 + /**
  664 + * adds a new attribute to this node.
  665 + *
  666 + * @access public
  667 + * @param string $name attribute name
  668 + * @param mixed $value attribute value
  669 + * @return void
  670 + */
  671 + function set_attribute($name, $value) {
  672 + $this->attributes[$name] = (string) $value;
  673 + }
  674 +
  675 + /**
  676 + * retrieves an attribute by name.
  677 + *
  678 + * @access public
  679 + * @param string $name attribute name
  680 + * @return string
  681 + */
  682 + function get_attribute($name) {
  683 + return $this->attributes[$name];
  684 + }
  685 +
  686 + /**
  687 + * set name property.
  688 + *
  689 + * @access public
  690 + * @param string $name the name
  691 + * @return void
  692 + */
  693 + function set_name($name) {
  694 + $this->nodename = (string) $name;
  695 + }
  696 +
  697 + /**
  698 + * get name property.
  699 + *
  700 + * @access public
  701 + * @return string
  702 + */
  703 + function get_name() {
  704 + return $this->nodename;
  705 + }
  706 +
  707 + /**
  708 + * sets the character encoding for this node
  709 + *
  710 + * @access public
  711 + * @param string $encoding character encoding
  712 + * @return void
  713 + */
  714 + function set_encoding($encoding) {
  715 + $this->input_encoding = strtoupper((string) $encoding);
  716 + }
  717 +
  718 + /**
  719 + * returns the character encoding for this node
  720 + *
  721 + * @access public
  722 + * @return string
  723 + */
  724 + function get_encoding() {
  725 + return $this->input_encoding;
  726 + }
  727 + }
  728 +
  729 + /**
  730 + * static class of output transformers.
  731 + *
  732 + * @package CPAINT
  733 + * @access public
  734 + * @author Dominique Stender <dstender@st-webdevelopment.de>
  735 + * @copyright 2003-2006 (Dominique Stender); All rights reserved
  736 + * @version 2.0.3
  737 + */
  738 + class cpaint_transformer {
  739 + /**
  740 + * toString method, used to generate response of type TEXT.
  741 + * will perform character transformation according to parameters.
  742 + *
  743 + * @access public
  744 + * @param object $node a cpaint_node object
  745 + * @return string
  746 + */
  747 + function toString(&$node) {
  748 + $return_value = '';
  749 +
  750 + foreach ($node->composites as $composite) {
  751 + $return_value .= cpaint_transformer::toString($composite);
  752 + }
  753 +
  754 + $return_value .= cpaint_transformer::encode($node->get_data(), $node->get_encoding());
  755 +
  756 + return $return_value;
  757 + }
  758 +
  759 + /**
  760 + * XML response generator.
  761 + * will perform character transformation according to parameters.
  762 + *
  763 + * @access public
  764 + * @param object $node a cpaint_node object
  765 + * @return string
  766 + */
  767 + function toXML(&$node) {
  768 + $return_value = '<' . $node->get_name();
  769 +
  770 + // handle attributes
  771 + foreach ($node->attributes as $name => $value) {
  772 + if ($value != '') {
  773 + $return_value .= ' ' . $name . '="' . $node->get_attribute($name) . '"';
  774 + }
  775 + } // end: foreach
  776 +
  777 + $return_value .= '>';
  778 +
  779 + // handle subnodes
  780 + foreach ($node->composites as $composite) {
  781 + $return_value .= cpaint_transformer::toXML($composite);
  782 + }
  783 +
  784 + $return_value .= cpaint_transformer::encode($node->get_data(), $node->get_encoding())
  785 + . '</' . $node->get_name() . '>';
  786 +
  787 + return $return_value;
  788 + }
  789 +
  790 + /**
  791 + * JSON response generator.
  792 + * will perform character transformation according to parameters.
  793 + *
  794 + * @access public
  795 + * @param object $node a cpaint_node object
  796 + * @return string
  797 + */
  798 + function toJSON($node) {
  799 + $return_value = '';
  800 + $JSON_node = new stdClass();
  801 +
  802 + // handle attributes
  803 + $JSON_node->attributes = $node->attributes;
  804 +
  805 + // handle subnodes
  806 + foreach ($node->composites as $composite) {
  807 +
  808 + if (!is_array($JSON_node->{$composite->nodename})) {
  809 + $JSON_node->{$composite->nodename} = array();
  810 + } // end: if
  811 +
  812 + // we need to parse the JSON object again to avoid multiple encoding
  813 + $JSON_node->{$composite->nodename}[] = $GLOBALS['__cpaint_json']->parse(cpaint_transformer::toJSON($composite));
  814 + }
  815 +
  816 + // handle data
  817 + $JSON_node->data = $node->data;
  818 +
  819 + return $GLOBALS['__cpaint_json']->stringify($JSON_node);
  820 + }
  821 +
  822 + /**
  823 + * performs conversion to JavaScript-safe UTF-8 characters
  824 + *
  825 + * @access public
  826 + * @param string $data data to convert
  827 + * @param string $encoding character encoding
  828 + * @return string
  829 + */
  830 + function encode($data, $encoding) {
  831 + // convert string
  832 + if (function_exists('iconv')) {
  833 + // iconv is by far the most flexible approach, try this first
  834 + $return_value = iconv($encoding, 'UTF-8', $data);
  835 +
  836 + } elseif ($encoding == 'ISO-8859-1') {
  837 + // for ISO-8859-1 we can use utf8-encode()
  838 + $return_value = utf8_encode($data);
  839 +
  840 + } else {
  841 + // give up. if UTF-8 data was supplied everything is fine!
  842 + $return_value = $data;
  843 + } /* end: if */
  844 +
  845 + // now encode non-printable characters
  846 + for ($i = 0; $i < 32; $i++) {
  847 + $return_value = str_replace(chr($i), '\u00' . sprintf('%02x', $i), $return_value);
  848 + } // end: for
  849 +
  850 + // encode <, >, and & respectively for XML sanity
  851 + $return_value = str_replace(chr(0x26), '\u0026', $return_value);
  852 + $return_value = str_replace(chr(0x3c), '\u003c', $return_value);
  853 + $return_value = str_replace(chr(0x3e), '\u003e', $return_value);
  854 +
  855 + return $return_value;
  856 + }
  857 +
  858 + /**
  859 + * performs conversion from JavaScript encodeURIComponent() string (UTF-8) to
  860 + * the charset in use.
  861 + *
  862 + * @access public
  863 + * @param string $data data to convert
  864 + * @param string $encoding character encoding
  865 + * @return string
  866 + */
  867 + function decode($data, $encoding) {
  868 + // convert string
  869 +
  870 + if (is_string($data)) {
  871 + if (function_exists('iconv')) {
  872 + // iconv is by far the most flexible approach, try this first
  873 + $return_value = iconv('UTF-8', $encoding, $data);
  874 +
  875 + } elseif ($encoding == 'ISO-8859-1') {
  876 + // for ISO-8859-1 we can use utf8-decode()
  877 + $return_value = utf8_decode($data);
  878 +
  879 + } else {
  880 + // give up. if data was supplied in the correct format everything is fine!
  881 + $return_value = $data;
  882 + } // end: if
  883 +
  884 + } else {
  885 + // non-string value
  886 + $return_value = $data;
  887 + } // end: if
  888 +
  889 + return $return_value;
  890 + }
  891 +
  892 + /**
  893 + * decodes a (nested) array of data from UTF-8 into the configured character set
  894 + *
  895 + * @access public
  896 + * @param array $data data to convert
  897 + * @param string $encoding character encoding
  898 + * @return array
  899 + */
  900 + function decode_array($data, $encoding) {
  901 + $return_value = array();
  902 +
  903 + foreach ($data as $key => $value) {
  904 +
  905 + if (!is_array($value)) {
  906 + $return_value[$key] = cpaint_transformer::decode($value, $encoding);
  907 +
  908 + } else {
  909 + $return_value[$key] = cpaint_transformer::decode_array($value, $encoding);
  910 + }
  911 + }
  912 +
  913 + return $return_value;
  914 + }
  915 +
  916 + /**
  917 + * determines the output character set
  918 + * based on input character set
  919 + *
  920 + * @access public
  921 + * @param string $encoding character encoding
  922 + * @return string
  923 + */
  924 + function find_output_charset($encoding) {
  925 + $return_value = 'UTF-8';
  926 +
  927 + if (function_exists('iconv')
  928 + || $encoding == 'UTF-8'
  929 + || $encoding == 'ISO-8859-1') {
  930 +
  931 + $return_value = 'UTF-8';
  932 +
  933 + } else {
  934 + $return_value = $encoding;
  935 + } // end: if
  936 +
  937 + return $return_value;
  938 + }
  939 + }
941 940
942 ?> 941 ?>
943 \ No newline at end of file 942 \ No newline at end of file
pacotes/facebookoauth/config.php
1 <?php 1 <?php
2 -include("../../ms_configura.php"); 2 +include(dirname(__FILE__)."/../../ms_configura.php");
3 define('FACEBOOK_APP_ID', $facebookoauth["consumerkey"]); 3 define('FACEBOOK_APP_ID', $facebookoauth["consumerkey"]);
4 define('FACEBOOK_SECRET', $facebookoauth["consumersecret"]); 4 define('FACEBOOK_SECRET', $facebookoauth["consumersecret"]);
5 ?> 5 ?>
6 \ No newline at end of file 6 \ No newline at end of file
pacotes/gvsig/gvsig2mapfile/upload.php
1 <?php 1 <?php
2 -require_once("../../../classesphp/pega_variaveis.php");  
3 -require_once("../../../classesphp/funcoes_gerais.php"); 2 +require_once(dirname(__FILE__)."/../../../classesphp/pega_variaveis.php");
  3 +require_once(dirname(__FILE__)."/../../../classesphp/funcoes_gerais.php");
4 $versao = versao(); 4 $versao = versao();
5 $versao = $versao["principal"]; 5 $versao = $versao["principal"];
6 error_reporting(0); 6 error_reporting(0);
7 if (isset($_FILES['i3GEOuploadfile']['name'])) 7 if (isset($_FILES['i3GEOuploadfile']['name']))
8 { 8 {
9 - require_once ("../../../ms_configura.php"); 9 + require_once (dirname(__FILE__)."/../../../ms_configura.php");
10 include_once("class.gvsig2mapfile.php"); 10 include_once("class.gvsig2mapfile.php");
11 if($base == "" or !isset($base)){ 11 if($base == "" or !isset($base)){
12 $base = ""; 12 $base = "";
@@ -70,8 +70,8 @@ if (isset($_FILES[&#39;i3GEOuploadfile&#39;][&#39;name&#39;])) @@ -70,8 +70,8 @@ if (isset($_FILES[&#39;i3GEOuploadfile&#39;][&#39;name&#39;]))
70 $handle = fopen(str_replace(".gvp",".map",$Arquivon), "r"); 70 $handle = fopen(str_replace(".gvp",".map",$Arquivon), "r");
71 echo "<html>#mapfile: <br>"; 71 echo "<html>#mapfile: <br>";
72 while (!feof($handle)) 72 while (!feof($handle))
73 - {  
74 - $linha = fgets($handle); 73 + {
  74 + $linha = fgets($handle);
75 echo $linha."<br>"; 75 echo $linha."<br>";
76 } 76 }
77 fclose($handle); 77 fclose($handle);
@@ -88,7 +88,7 @@ function verificaNome($nome) @@ -88,7 +88,7 @@ function verificaNome($nome)
88 $extensao = $lista[count($lista) - 1]; 88 $extensao = $lista[count($lista) - 1];
89 if($extensao != "gvp") 89 if($extensao != "gvp")
90 { 90 {
91 - echo "Nome de arquivo inválido"; 91 + echo "Nome de arquivo inv�lido";
92 exit; 92 exit;
93 } 93 }
94 } 94 }
pacotes/kmlmapserver/classes/layerserver.class.php
@@ -22,19 +22,19 @@ @@ -22,19 +22,19 @@
22 22
23 This file is part of KMLMAPSERVER. 23 This file is part of KMLMAPSERVER.
24 24
25 - KMLMAPSERVER is free software; you can redistribute it and/or modify  
26 - it under the terms of the GNU Lesser General Public License as published by  
27 - the Free Software Foundation; either version 3 of the License, or  
28 - (at your option) any later version. 25 + KMLMAPSERVER is free software; you can redistribute it and/or modify
  26 + it under the terms of the GNU Lesser General Public License as published by
  27 + the Free Software Foundation; either version 3 of the License, or
  28 + (at your option) any later version.
29 29
30 - KMLMAPSERVER is distributed in the hope that it will be useful,  
31 - but WITHOUT ANY WARRANTY; without even the implied warranty of  
32 - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the  
33 - GNU Lesser General Public License for more details. 30 + KMLMAPSERVER is distributed in the hope that it will be useful,
  31 + but WITHOUT ANY WARRANTY; without even the implied warranty of
  32 + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  33 + GNU Lesser General Public License for more details.
34 34
35 - You should have received a copy of the GNU Lesser General Public License  
36 - along with KMLMAPSERVER; if not, write to the Free Software  
37 - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 35 + You should have received a copy of the GNU Lesser General Public License
  36 + along with KMLMAPSERVER; if not, write to the Free Software
  37 + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
38 38
39 */ 39 */
40 40
@@ -57,232 +57,232 @@ if (!function_exists(&#39;ms_GetVersion&#39;)) @@ -57,232 +57,232 @@ if (!function_exists(&#39;ms_GetVersion&#39;))
57 */ 57 */
58 class LayerServer { 58 class LayerServer {
59 59
60 - /** map file path */  
61 - var $map; 60 + /** map file path */
  61 + var $map;
62 62
63 - /** request */  
64 - var $request; 63 + /** request */
  64 + var $request;
65 65
66 - /** map instance */  
67 - var $map_object; 66 + /** map instance */
  67 + var $map_object;
68 68
69 - /** layer name(s) passed on the request */  
70 - var $typename; 69 + /** layer name(s) passed on the request */
  70 + var $typename;
71 71
72 - /** array of requested layer objects (hash with layer name as key) */  
73 - var $layers; 72 + /** array of requested layer objects (hash with layer name as key) */
  73 + var $layers;
74 74
75 - /** filters */  
76 - var $filter; 75 + /** filters */
  76 + var $filter;
77 77
78 - /** bounding box */  
79 - var $bbox; 78 + /** bounding box */
  79 + var $bbox;
80 80
81 - /** error messages */  
82 - var $errors; 81 + /** error messages */
  82 + var $errors;
83 83
84 - /** send zipped data */  
85 - var $_zipped = false; 84 + /** send zipped data */
  85 + var $_zipped = false;
86 86
87 - /** internal XML buffer */  
88 - var $_xml; 87 + /** internal XML buffer */
  88 + var $_xml;
89 89
90 - /** input projection */  
91 - var $in_proj; 90 + /** input projection */
  91 + var $in_proj;
92 92
93 - /** output projection */  
94 - var $out_proj; 93 + /** output projection */
  94 + var $out_proj;
95 95
96 - /** debug flag */  
97 - var $_debug = false; 96 + /** debug flag */
  97 + var $_debug = false;
98 98
99 - /** end point */  
100 - var $endpoint; 99 + /** end point */
  100 + var $endpoint;
101 101
102 - /** custom style counter */  
103 - var $style_counter = 0; 102 + /** custom style counter */
  103 + var $style_counter = 0;
104 104
105 - /**  
106 - * Mapfile and data encoding encoding  
107 - * XMl output must be UTF-8, attributes and METADATA based strings  
108 - * must be converted to UTF-8, encoding defaults to ISO-8859-1, if  
109 - * your encoding is different, you can set it through CGI style parameters  
110 - */  
111 - var $encoding; 105 + /**
  106 + * Mapfile and data encoding encoding
  107 + * XMl output must be UTF-8, attributes and METADATA based strings
  108 + * must be converted to UTF-8, encoding defaults to ISO-8859-1, if
  109 + * your encoding is different, you can set it through CGI style parameters
  110 + */
  111 + var $encoding;
112 112
113 - /**  
114 - * send networklink  
115 - * wether folder should contain networklinks instead of real geometries  
116 - * it is automatically set when all layers are requested  
117 - */  
118 - var $_networklink; 113 + /**
  114 + * send networklink
  115 + * wether folder should contain networklinks instead of real geometries
  116 + * it is automatically set when all layers are requested
  117 + */
  118 + var $_networklink;
119 119
120 120
121 - /**  
122 - * Initialize  
123 - *  
124 - */  
125 - function LayerServer(){  
126 - $this->errors = array();  
127 - // Load request parameters  
128 - $this->get_request(); 121 + /**
  122 + * Initialize
  123 + *
  124 + */
  125 + function LayerServer(){
  126 + $this->errors = array();
  127 + // Load request parameters
  128 + $this->get_request();
129 129
130 - $this->style_counter = 0; 130 + $this->style_counter = 0;
131 131
132 - // Load map  
133 - if(!$this->has_error()) {  
134 - $this->load_map();  
135 - } 132 + // Load map
  133 + if(!$this->has_error()) {
  134 + $this->load_map();
  135 + }
136 136
137 - } 137 + }
138 138
139 - /**  
140 - * Run the server and sends data  
141 - * @return string or void  
142 - */  
143 - function run(){  
144 - // Check cache  
145 - if(ENABLE_CACHE){  
146 - $cache_file = $this->get_cache_file_name();  
147 - if(file_exists($cache_file)){ 139 + /**
  140 + * Run the server and sends data
  141 + * @return string or void
  142 + */
  143 + function run(){
  144 + // Check cache
  145 + if(ENABLE_CACHE){
  146 + $cache_file = $this->get_cache_file_name();
  147 + if(file_exists($cache_file)){
148 $this->send_header(); 148 $this->send_header();
149 readfile($cache_file); 149 readfile($cache_file);
150 exit; 150 exit;
151 - }  
152 - }  
153 - // If not layer are requested, send all as networklinks  
154 - if(!$this->typename){  
155 - $this->_networklink = true;  
156 - $this->typename = $this->get_layer_list();  
157 - } else {  
158 - $this->_networklink = false;  
159 - } 151 + }
  152 + }
  153 + // If not layer are requested, send all as networklinks
  154 + if(!$this->typename){
  155 + $this->_networklink = true;
  156 + $this->typename = $this->get_layer_list();
  157 + } else {
  158 + $this->_networklink = false;
  159 + }
160 160
161 - $imageObj = $this->map_object->drawlegend();  
162 - $url = $imageObj->saveWebImage();  
163 - $protocolo = explode("/",$_SERVER['SERVER_PROTOCOL']);  
164 - $url = strtolower($protocolo[0]."://".$_SERVER['HTTP_HOST']).$url;  
165 - $legenda = " <ScreenOverlay>" . PHP_EOL  
166 - . " <name>Legenda</name>" . PHP_EOL  
167 - . " <Icon>" . PHP_EOL  
168 - . " <href>".$url."</href>" . PHP_EOL  
169 - . " </Icon>" . PHP_EOL  
170 - . " <overlayXY x='0.01' y='0.14' xunits='fraction' yunits='fraction'/>" . PHP_EOL  
171 - . " <screenXY x='0.01' y='0.14' xunits='fraction' yunits='fraction'/>" . PHP_EOL  
172 - . " <size x='-1' y='-1' xunits='pixels' yunits='pixels'/>" . PHP_EOL  
173 - . " </ScreenOverlay>" . PHP_EOL;  
174 -  
175 - $this->_xml = new SimpleXMLElement('<kml xmlns="http://earth.google.com/kml/2.0"><Document >'.$legenda.'</Document></kml>');  
176 - // Prepare projection  
177 - $this->in_proj = ms_newProjectionObj($this->map_object->getProjection());  
178 - // Set projection to GOOGLE earth's projection  
179 - $this->out_proj = ms_newProjectionObj("init=epsg:4326");  
180 - // Set endpoint  
181 - //die($_SERVER['REQUEST_URI']); 161 + $imageObj = $this->map_object->drawlegend();
  162 + $url = $imageObj->saveWebImage();
  163 + $protocolo = explode("/",$_SERVER['SERVER_PROTOCOL']);
  164 + $url = strtolower($protocolo[0]."://".$_SERVER['HTTP_HOST']).$url;
  165 + $legenda = " <ScreenOverlay>" . PHP_EOL
  166 + . " <name>Legenda</name>" . PHP_EOL
  167 + . " <Icon>" . PHP_EOL
  168 + . " <href>".$url."</href>" . PHP_EOL
  169 + . " </Icon>" . PHP_EOL
  170 + . " <overlayXY x='0.01' y='0.14' xunits='fraction' yunits='fraction'/>" . PHP_EOL
  171 + . " <screenXY x='0.01' y='0.14' xunits='fraction' yunits='fraction'/>" . PHP_EOL
  172 + . " <size x='-1' y='-1' xunits='pixels' yunits='pixels'/>" . PHP_EOL
  173 + . " </ScreenOverlay>" . PHP_EOL;
  174 +
  175 + $this->_xml = new SimpleXMLElement('<kml xmlns="http://earth.google.com/kml/2.0"><Document >'.$legenda.'</Document></kml>');
  176 + // Prepare projection
  177 + $this->in_proj = ms_newProjectionObj($this->map_object->getProjection());
  178 + // Set projection to GOOGLE earth's projection
  179 + $this->out_proj = ms_newProjectionObj("init=epsg:4326");
  180 + // Set endpoint
  181 + //die($_SERVER['REQUEST_URI']);
182 182
183 $protocolo = explode("/",$_SERVER['SERVER_PROTOCOL']); 183 $protocolo = explode("/",$_SERVER['SERVER_PROTOCOL']);
184 $protocolo = strtolower($protocolo[0]); 184 $protocolo = strtolower($protocolo[0]);
185 - $this->endpoint = $protocolo . '://'.$_SERVER['SERVER_NAME'] . ($_SERVER['SERVER_PORT'] ? ':'.$_SERVER['SERVER_PORT'] : '') . $_SERVER['PHP_SELF'];  
186 -  
187 - // Process request  
188 - if(!$this->has_error()) {  
189 - $this->process_request();  
190 - }  
191 - if($this->has_error()){  
192 - $this->add_errors();  
193 - }  
194 -  
195 - return $this->send_stream($this->get_kml());  
196 -  
197 - }  
198 -  
199 - /**  
200 - * Set debug flag  
201 - * @param boolean $value  
202 - */  
203 - function set_debug($value){  
204 - $this->_debug = $value;  
205 - }  
206 -  
207 - /**  
208 - * Get all request parameters  
209 - */  
210 - function get_request(){  
211 - $this->map = $this->load_parm('map');  
212 - $this->bbox = $this->load_parm('bbox');  
213 - $this->filter = $this->load_parm('filter');  
214 - $this->typename = $this->load_parm('typename');  
215 - $this->encoding = $this->load_parm('encoding', 'ISO-8859-1');  
216 - $this->request = $this->load_parm('request', 'kml');  
217 - if($this->request == 'kmz') {  
218 - $this->_zipped = true;  
219 - }  
220 - if(!$this->map){  
221 - $this->set_error('No mapfile specified');  
222 - }  
223 - }  
224 -  
225 - /**  
226 - * Apply filter  
227 - * @return array  
228 - */  
229 - function apply_filter(&$layer, &$filter){  
230 - if($layer->connectiontype == MS_POSTGIS){  
231 - if($filter->PropertyIsEqualTo){  
232 - $searchstring = '"'.$filter->PropertyIsEqualTo->PropertyName . ' = ' . '\''.addslashes($filter->PropertyIsEqualTo->Literal).'\''.'"';  
233 - $searchfield = $filter->PropertyIsEqualTo->PropertyName;  
234 - } elseif($filter->PropertyIsLike){  
235 - $searchfield = $filter->PropertyIsLike->PropertyName;  
236 - $searchstring ='"'.$filter->PropertyIsLike->PropertyName . ' LIKE \'%' . addslashes($filter->PropertyIsLike->Literal) . '%\''.'"';  
237 - }  
238 - } elseif($layer->connectiontype == MS_SHAPEFILE || $layer->connectiontype == MS_OGR){  
239 - if($filter->PropertyIsEqualTo){  
240 - $searchstring = $filter->PropertyIsEqualTo->Literal;  
241 - $searchfield = $filter->PropertyIsEqualTo->PropertyName;  
242 - } elseif($filter->PropertyIsLike){  
243 - $searchstring = $filter->PropertyIsLike->Literal;  
244 - $searchfield = $filter->PropertyIsLike->PropertyName;  
245 - }  
246 - }  
247 - return array($searchfield, $searchstring);  
248 - }  
249 - /**  
250 - * Process request  
251 - */  
252 - function process_request(){  
253 - // Get layer(s)  
254 - $layers = explode(',', $this->typename);  
255 - if($this->_networklink){  
256 - foreach($layers as $layer){  
257 - $this->add_networklink($layer);  
258 - }  
259 - } else {  
260 - foreach($layers as $layer){  
261 - //echo "Oi";exit;  
262 - $this->process_layer_request($layer);  
263 - }  
264 - }  
265 - }  
266 - /**  
267 - * Add a networklink  
268 - */  
269 - function add_networklink(&$layer_name){  
270 - $nl =& $this->_xml->Document->addChild('NetworkLink');  
271 - $layer = @$this->map_object->getLayerByName($layer_name); 185 + $this->endpoint = $protocolo . '://'.$_SERVER['SERVER_NAME'] . ($_SERVER['SERVER_PORT'] ? ':'.$_SERVER['SERVER_PORT'] : '') . $_SERVER['PHP_SELF'];
  186 +
  187 + // Process request
  188 + if(!$this->has_error()) {
  189 + $this->process_request();
  190 + }
  191 + if($this->has_error()){
  192 + $this->add_errors();
  193 + }
  194 +
  195 + return $this->send_stream($this->get_kml());
  196 +
  197 + }
  198 +
  199 + /**
  200 + * Set debug flag
  201 + * @param boolean $value
  202 + */
  203 + function set_debug($value){
  204 + $this->_debug = $value;
  205 + }
  206 +
  207 + /**
  208 + * Get all request parameters
  209 + */
  210 + function get_request(){
  211 + $this->map = $this->load_parm('map');
  212 + $this->bbox = $this->load_parm('bbox');
  213 + $this->filter = $this->load_parm('filter');
  214 + $this->typename = $this->load_parm('typename');
  215 + $this->encoding = $this->load_parm('encoding', 'ISO-8859-1');
  216 + $this->request = $this->load_parm('request', 'kml');
  217 + if($this->request == 'kmz') {
  218 + $this->_zipped = true;
  219 + }
  220 + if(!$this->map){
  221 + $this->set_error('No mapfile specified');
  222 + }
  223 + }
  224 +
  225 + /**
  226 + * Apply filter
  227 + * @return array
  228 + */
  229 + function apply_filter(&$layer, &$filter){
  230 + if($layer->connectiontype == MS_POSTGIS){
  231 + if($filter->PropertyIsEqualTo){
  232 + $searchstring = '"'.$filter->PropertyIsEqualTo->PropertyName . ' = ' . '\''.addslashes($filter->PropertyIsEqualTo->Literal).'\''.'"';
  233 + $searchfield = $filter->PropertyIsEqualTo->PropertyName;
  234 + } elseif($filter->PropertyIsLike){
  235 + $searchfield = $filter->PropertyIsLike->PropertyName;
  236 + $searchstring ='"'.$filter->PropertyIsLike->PropertyName . ' LIKE \'%' . addslashes($filter->PropertyIsLike->Literal) . '%\''.'"';
  237 + }
  238 + } elseif($layer->connectiontype == MS_SHAPEFILE || $layer->connectiontype == MS_OGR){
  239 + if($filter->PropertyIsEqualTo){
  240 + $searchstring = $filter->PropertyIsEqualTo->Literal;
  241 + $searchfield = $filter->PropertyIsEqualTo->PropertyName;
  242 + } elseif($filter->PropertyIsLike){
  243 + $searchstring = $filter->PropertyIsLike->Literal;
  244 + $searchfield = $filter->PropertyIsLike->PropertyName;
  245 + }
  246 + }
  247 + return array($searchfield, $searchstring);
  248 + }
  249 + /**
  250 + * Process request
  251 + */
  252 + function process_request(){
  253 + // Get layer(s)
  254 + $layers = explode(',', $this->typename);
  255 + if($this->_networklink){
  256 + foreach($layers as $layer){
  257 + $this->add_networklink($layer);
  258 + }
  259 + } else {
  260 + foreach($layers as $layer){
  261 + //echo "Oi";exit;
  262 + $this->process_layer_request($layer);
  263 + }
  264 + }
  265 + }
  266 + /**
  267 + * Add a networklink
  268 + */
  269 + function add_networklink(&$layer_name){
  270 + $nl =& $this->_xml->Document->addChild('NetworkLink');
  271 + $layer = @$this->map_object->getLayerByName($layer_name);
272 if(!$layer) 272 if(!$layer)
273 {$layer = $this->map_object->getlayer(0);} 273 {$layer = $this->map_object->getlayer(0);}
274 - $nl->addChild('name', $this->get_layer_description($layer));  
275 - $nl->addChild('visibility', 0);  
276 - $link =& $nl->addChild('Link');  
277 - $link->addChild('href', $this->endpoint . '?map=' . $this->map . '&amp;typename=' . urlencode($layer_name) . '&amp;request=' . ($this->_zipped ? 'kmz' : 'kml'));  
278 - }  
279 -  
280 -  
281 - /**  
282 - * Process a single layer  
283 - * @return boolean false on error  
284 - */  
285 - function process_layer_request(&$layer_name){ 274 + $nl->addChild('name', $this->get_layer_description($layer));
  275 + $nl->addChild('visibility', 0);
  276 + $link =& $nl->addChild('Link');
  277 + $link->addChild('href', $this->endpoint . '?map=' . $this->map . '&amp;typename=' . urlencode($layer_name) . '&amp;request=' . ($this->_zipped ? 'kmz' : 'kml'));
  278 + }
  279 +
  280 +
  281 + /**
  282 + * Process a single layer
  283 + * @return boolean false on error
  284 + */
  285 + function process_layer_request(&$layer_name){
286 error_reporting(0); 286 error_reporting(0);
287 $v = "5.0.0"; 287 $v = "5.0.0";
288 $vs = explode(" ",ms_GetVersion()); 288 $vs = explode(" ",ms_GetVersion());
@@ -294,116 +294,116 @@ class LayerServer { @@ -294,116 +294,116 @@ class LayerServer {
294 $v = explode(".",$v); 294 $v = explode(".",$v);
295 $versao = $v[0]; 295 $versao = $v[0];
296 296
297 - $layer = @$this->map_object->getLayerByName($layer_name); 297 + $layer = @$this->map_object->getLayerByName($layer_name);
298 if(!$layer) 298 if(!$layer)
299 {$layer = $this->map_object->getlayer(0);} 299 {$layer = $this->map_object->getlayer(0);}
300 - if(!$layer){  
301 - $this->set_error('Nenhum layer com esse nome foi encontrado no mapfile ' . $layer_name, $layer_name);  
302 - return false;  
303 - }  
304 - // Add to layer list  
305 - $this->layers[$layer_name] =& $layer;  
306 - // Get custom template if any  
307 - $description_template = $layer->getMetadata('DESCRIPTION_TEMPLATE');  
308 - // Set on  
309 - $layer->set( 'status', MS_DEFAULT );  
310 - // Set kml title from layer description (default to layer name)  
311 - $layer_desc = $this->get_layer_description($layer);  
312 -  
313 - // Now switch raster layers  
314 - //var_dump($layer->type == MS_LAYER_RASTER);  
315 - if($layer->type == MS_LAYER_RASTER){  
316 - // Check if wms_onlineresource metadata is set  
317 - $wms_link = $this->map_object->getMetadata('wms_onlineresource');  
318 - if(!$wms_link){  
319 - $wms_link = $this->map_object->getMetadata('ows_onlineresource');  
320 - }  
321 - if(!$wms_link){  
322 - $this->set_error('No WMS server available for ' . $layer_name, $layer_name);  
323 - return false;  
324 - }  
325 - // Add parameters to OGC server call  
326 - // Fix &  
327 - $wms_link = preg_replace('/&/', '&amp;', $wms_link);  
328 - $wms_link .= 'VERSION=1.1.1&amp;REQUEST=GetMap&amp;SRS=EPSG:4618&amp;STYLES=&amp;FORMAT=image/jpeg&amp;TRANSPARENT=TRUE&amp;';  
329 - // Link ok, create folder  
330 - //$folder =& $this->_xml->Document->addChild('GroundOverlay');  
331 - $folder =& $this->simplexml_addChild($this->_xml->Document,'GroundOverlay');  
332 - //simplexml_addChild($parent, $name, $value='')  
333 - //$folder->addChild('description', $this->get_layer_description($layer));  
334 - $this->simplexml_addChild($folder,'name',$layer_desc);  
335 -  
336 - //$folder->addChild('name', $layer_desc);  
337 - $this->add_wms_link($folder, $layer, $wms_link);  
338 - } else {  
339 - // Apply filter  
340 - if($this->filter){  
341 - // Try loading as XML  
342 - try {  
343 - $filter = @new SimpleXMLElement($this->filter);  
344 - list($searchfield, $searchstring) = $this->apply_filter($layer, $filter);  
345 - if(! ($searchfield && $searchstring)){  
346 - $this->set_error('Error parsing filter', $layer_name);  
347 - return false;  
348 - }  
349 - } catch (Exception $e) {  
350 - $this->set_error('Wrong XML filter', $layer_name);  
351 - $this->filter = null;  
352 - return false;  
353 - }  
354 - }  
355 -  
356 - // Get results  
357 - if(MS_SUCCESS == $layer->open()){  
358 - // Search which column to use to identify the feature  
359 - $namecol = $layer->getMetadata("itens");  
360 - if($namecol == ""){  
361 - $cols = array_values($layer->getItems());  
362 - $namecol = $cols[0];  
363 - }  
364 - else  
365 - {$namecol = explode(",",$namecol);$namecol = $namecol[0];}  
366 - // Add classes  
367 - $folder =& $this->_xml->Document->addChild('Folder');  
368 -  
369 - $class_list = $this->parse_classes($layer, $folder, $namecol, $title_field, $description_template);  
370 -  
371 - //die(print_r($class_list, true));  
372 - $folder->addChild('description', $this->get_layer_description($layer));  
373 - $folder->addChild('name', $layer_desc);  
374 -  
375 - //print("$searchfield && $searchstring");  
376 - if(!isset($searchfield)){$searchfield = false;}  
377 - if(!isset($searchstring)){$searchstring = false;}  
378 -  
379 - if($searchfield && $searchstring){  
380 - if(@$layer->queryByAttributes($searchfield, $searchstring, MS_MULTIPLE) == MS_SUCCESS){  
381 - $layer->open();  
382 - //var_dump($layer->getItems()); die();  
383 - for ($j=0; $j < $layer->getNumResults(); $j++)  
384 - {  
385 - // get next shape row 300 + if(!$layer){
  301 + $this->set_error('Nenhum layer com esse nome foi encontrado no mapfile ' . $layer_name, $layer_name);
  302 + return false;
  303 + }
  304 + // Add to layer list
  305 + $this->layers[$layer_name] =& $layer;
  306 + // Get custom template if any
  307 + $description_template = $layer->getMetadata('DESCRIPTION_TEMPLATE');
  308 + // Set on
  309 + $layer->set( 'status', MS_DEFAULT );
  310 + // Set kml title from layer description (default to layer name)
  311 + $layer_desc = $this->get_layer_description($layer);
  312 +
  313 + // Now switch raster layers
  314 + //var_dump($layer->type == MS_LAYER_RASTER);
  315 + if($layer->type == MS_LAYER_RASTER){
  316 + // Check if wms_onlineresource metadata is set
  317 + $wms_link = $this->map_object->getMetadata('wms_onlineresource');
  318 + if(!$wms_link){
  319 + $wms_link = $this->map_object->getMetadata('ows_onlineresource');
  320 + }
  321 + if(!$wms_link){
  322 + $this->set_error('No WMS server available for ' . $layer_name, $layer_name);
  323 + return false;
  324 + }
  325 + // Add parameters to OGC server call
  326 + // Fix &
  327 + $wms_link = preg_replace('/&/', '&amp;', $wms_link);
  328 + $wms_link .= 'VERSION=1.1.1&amp;REQUEST=GetMap&amp;SRS=EPSG:4618&amp;STYLES=&amp;FORMAT=image/jpeg&amp;TRANSPARENT=TRUE&amp;';
  329 + // Link ok, create folder
  330 + //$folder =& $this->_xml->Document->addChild('GroundOverlay');
  331 + $folder =& $this->simplexml_addChild($this->_xml->Document,'GroundOverlay');
  332 + //simplexml_addChild($parent, $name, $value='')
  333 + //$folder->addChild('description', $this->get_layer_description($layer));
  334 + $this->simplexml_addChild($folder,'name',$layer_desc);
  335 +
  336 + //$folder->addChild('name', $layer_desc);
  337 + $this->add_wms_link($folder, $layer, $wms_link);
  338 + } else {
  339 + // Apply filter
  340 + if($this->filter){
  341 + // Try loading as XML
  342 + try {
  343 + $filter = @new SimpleXMLElement($this->filter);
  344 + list($searchfield, $searchstring) = $this->apply_filter($layer, $filter);
  345 + if(! ($searchfield && $searchstring)){
  346 + $this->set_error('Error parsing filter', $layer_name);
  347 + return false;
  348 + }
  349 + } catch (Exception $e) {
  350 + $this->set_error('Wrong XML filter', $layer_name);
  351 + $this->filter = null;
  352 + return false;
  353 + }
  354 + }
  355 +
  356 + // Get results
  357 + if(MS_SUCCESS == $layer->open()){
  358 + // Search which column to use to identify the feature
  359 + $namecol = $layer->getMetadata("itens");
  360 + if($namecol == ""){
  361 + $cols = array_values($layer->getItems());
  362 + $namecol = $cols[0];
  363 + }
  364 + else
  365 + {$namecol = explode(",",$namecol);$namecol = $namecol[0];}
  366 + // Add classes
  367 + $folder =& $this->_xml->Document->addChild('Folder');
  368 +
  369 + $class_list = $this->parse_classes($layer, $folder, $namecol, $title_field, $description_template);
  370 +
  371 + //die(print_r($class_list, true));
  372 + $folder->addChild('description', $this->get_layer_description($layer));
  373 + $folder->addChild('name', $layer_desc);
  374 +
  375 + //print("$searchfield && $searchstring");
  376 + if(!isset($searchfield)){$searchfield = false;}
  377 + if(!isset($searchstring)){$searchstring = false;}
  378 +
  379 + if($searchfield && $searchstring){
  380 + if(@$layer->queryByAttributes($searchfield, $searchstring, MS_MULTIPLE) == MS_SUCCESS){
  381 + $layer->open();
  382 + //var_dump($layer->getItems()); die();
  383 + for ($j=0; $j < $layer->getNumResults(); $j++)
  384 + {
  385 + // get next shape row
386 if($versao == 6) 386 if($versao == 6)
387 {$shape = $layer->getShape($layer->getResult($j));} 387 {$shape = $layer->getShape($layer->getResult($j));}
388 else{ 388 else{
389 $result = $layer->getResult($j); 389 $result = $layer->getResult($j);
390 $shape = $layer->getFeature($result->shapeindex,$result->tileindex); 390 $shape = $layer->getFeature($result->shapeindex,$result->tileindex);
391 } 391 }
392 - $this->process_shape($layer, $shape, $class_list, $folder, $namecol);  
393 - // end for loop  
394 - }  
395 - } else {  
396 - $this->set_error('Query returned no data', $layer_name);  
397 - return false;  
398 - }  
399 - } else { // Get all shapes  
400 - $layer->set("template","none.htm");  
401 - $layer->queryByrect($this->map_object->extent);  
402 - $layer->open();  
403 - $n = $layer->getNumResults();  
404 - for ($j=0; $j < $n; $j++)  
405 - {  
406 - // get next shape row 392 + $this->process_shape($layer, $shape, $class_list, $folder, $namecol);
  393 + // end for loop
  394 + }
  395 + } else {
  396 + $this->set_error('Query returned no data', $layer_name);
  397 + return false;
  398 + }
  399 + } else { // Get all shapes
  400 + $layer->set("template","none.htm");
  401 + $layer->queryByrect($this->map_object->extent);
  402 + $layer->open();
  403 + $n = $layer->getNumResults();
  404 + for ($j=0; $j < $n; $j++)
  405 + {
  406 + // get next shape row
407 if($versao == 6) 407 if($versao == 6)
408 { 408 {
409 $result = $layer->getResult($j); 409 $result = $layer->getResult($j);
@@ -414,465 +414,465 @@ class LayerServer { @@ -414,465 +414,465 @@ class LayerServer {
414 $shape = $layer->getFeature($result->shapeindex,$result->tileindex); 414 $shape = $layer->getFeature($result->shapeindex,$result->tileindex);
415 } 415 }
416 $shape->classindex = $result->classindex; 416 $shape->classindex = $result->classindex;
417 - $this->process_shape($layer, $shape, $class_list, $folder, $namecol);  
418 - }  
419 - if($n == 0) {  
420 - $this->set_error('QueryByRect returned no data', $layer_name);  
421 - return false;  
422 - }  
423 - }  
424 - $layer->close();  
425 - } else {  
426 - $this->set_error('Layer cannot be opened', $layer_name);  
427 - return false;  
428 - }  
429 - }  
430 - return true;  
431 - }  
432 -  
433 - /**  
434 - * Process the shape  
435 - */  
436 - function process_shape(&$layer, &$shape, &$class_list, &$folder, &$namecol){ 417 + $this->process_shape($layer, $shape, $class_list, $folder, $namecol);
  418 + }
  419 + if($n == 0) {
  420 + $this->set_error('QueryByRect returned no data', $layer_name);
  421 + return false;
  422 + }
  423 + }
  424 + $layer->close();
  425 + } else {
  426 + $this->set_error('Layer cannot be opened', $layer_name);
  427 + return false;
  428 + }
  429 + }
  430 + return true;
  431 + }
  432 +
  433 + /**
  434 + * Process the shape
  435 + */
  436 + function process_shape(&$layer, &$shape, &$class_list, &$folder, &$namecol){
437 $permite = $layer->getmetadata("permitekmz"); 437 $permite = $layer->getmetadata("permitekmz");
438 if($permite == "nao"){return;} 438 if($permite == "nao"){return;}
439 - $itens = $layer->getmetadata("itens"); 439 + $itens = $layer->getmetadata("itens");
440 $itensdesc = $layer->getmetadata("itensdesc"); 440 $itensdesc = $layer->getmetadata("itensdesc");
441 - $shape->project($this->in_proj, $this->out_proj);  
442 - // Assign style  
443 - if($layer->classitem){  
444 - //$style_id = $this->get_shape_class($layer->classitem, $shape->values, $class_list);  
445 - }  
446 - if(!isset($style_id)){  
447 - // Get first class  
448 - $class_keys = array_keys($class_list); 441 + $shape->project($this->in_proj, $this->out_proj);
  442 + // Assign style
  443 + if($layer->classitem){
  444 + //$style_id = $this->get_shape_class($layer->classitem, $shape->values, $class_list);
  445 + }
  446 + if(!isset($style_id)){
  447 + // Get first class
  448 + $class_keys = array_keys($class_list);
449 $indice = $shape->classindex; 449 $indice = $shape->classindex;
450 - $classe = $layer->getclass($indice);  
451 - $nome= $classe->name;  
452 - $style_id = preg_replace('/[^A-z0-9]/', '_', $layer->name . $nome);  
453 - }  
454 - // Add the feature  
455 - if(array_key_exists('folder', $class_list[$style_id])) {  
456 - $feature_folder =& $class_list[$style_id]['folder'];  
457 - } else {  
458 - //die('missing folder for ' . $style_id);  
459 - $feature_folder =& $folder;  
460 - }  
461 - if(!is_object($feature_folder)){  
462 - $folder_name = $feature_folder;  
463 - $feature_folder =& $folder ->addChild('Folder');  
464 - $feature_folder->addChild('name', $folder_name);  
465 - }  
466 - // Add style class  
467 - $style_url =& $this->add_style($layer, $feature_folder, $style_id, $class_list[$style_id], $namecol, $shape->values);  
468 - $wkt = $shape->toWkt();  
469 - $description_template = $layer->getMetadata('DESCRIPTION_TEMPLATE');//false;  
470 - if($description_template == "")  
471 - {$description_template = false;}  
472 - $placemark =& $this->add_feature($feature_folder, $wkt, $shape->values[$namecol], $shape->values, $description_template, $class_list[$style_id],$itens,$itensdesc);  
473 -  
474 - $placemark->addChild('styleUrl', '#'. $style_url);  
475 -  
476 - }  
477 - /**  
478 - * Add the feature to the result set  
479 - * @return reference to placemark object  
480 - */  
481 - function &add_feature(&$folder, &$wkt, $featurename, $attributes, $description_template, $style_data,$itens,$itensdesc){  
482 - $pm = $folder->addChild('Placemark');  
483 - $fname = mb_convert_encoding($featurename,"UTF-8",mb_detect_encoding($featurename,'UTF-8, UTF-7, ASCII, ISO-8859-1'));  
484 - $pm->addChild('name',$fname);  
485 - $pm->addChild('description', $this->get_feature_description($fname, $attributes, $description_template,$itens,$itensdesc));  
486 - // Now parse the wkt  
487 - if(strpos($wkt, 'MULTILINESTRING') !== false){  
488 - $this->add_multilinestring($wkt, $pm, $featurename, $style_data['icon']);  
489 - } elseif(strpos($wkt, 'LINESTRING') !== false){  
490 - $this->add_linestring($wkt, $pm, $featurename, $style_data['icon']);  
491 - } elseif(strpos($wkt, 'POINT') !== false){  
492 - $this->add_point($wkt, $pm, $featurename);  
493 - } elseif(strpos($wkt, 'MULTIPOLYGON') !== false){  
494 - if(TREAT_POLY_AS_LINE){  
495 - $ml = $pm->addChild('MultiGeometry');  
496 - foreach(split('\), \(', $wkt) as $line){  
497 - $this->add_multilinestring($line, $ml, $featurename );  
498 - }  
499 - } else {  
500 - $this->add_multipolygon($wkt, $pm, $featurename);  
501 - }  
502 - } elseif(strpos($wkt, 'POLYGON') !== false){  
503 - if(TREAT_POLY_AS_LINE){  
504 - $this->add_multilinestring($wkt, $pm, $featurename);  
505 - } else {  
506 - $this->add_polygon($wkt, $pm, $featurename);  
507 - }  
508 - } else {  
509 - // Error?  
510 - }  
511 - return $pm;  
512 - }  
513 -  
514 - /**  
515 - * Add a linestring  
516 - */  
517 - function add_linestring(&$wkt, &$element, $featurename, $add_points){  
518 - preg_match('/(\d+[^\(\)]*\d)/', $wkt, $data);  
519 - $data = str_replace(', ', '#', $data[1]);  
520 - $data = str_replace(' ', ',', $data);  
521 - $data = str_replace('#', ' ', $data);  
522 - if($add_points){  
523 - preg_match('/^(\d+\.\d+,\d+\.\d+).*(\d+\.\d+,\d+\.\d+)$/', $data, $points);  
524 - if(count($points) == 3){  
525 - $mg = $element->addChild('MultiGeometry');  
526 - $ls = $mg->addChild('LineString');  
527 - $pt1 = $mg->addChild('Point');  
528 - $pt1->addChild('coordinates', $points[1]);  
529 - $pt2 = $mg->addChild('Point');  
530 - $pt2->addChild('coordinates', $points[2]);  
531 - } else {  
532 - die('errore');  
533 - $ls = $element->addChild('LineString');  
534 - }  
535 - //print_r($points);die();  
536 - } else {  
537 - $ls = $element->addChild('LineString');  
538 - }  
539 - $ls->addChild('coordinates', $data);  
540 - }  
541 -  
542 - /**  
543 - * Add a multilinestring  
544 - */  
545 - function add_multilinestring(&$wkt, &$element, $featurename, $add_points){  
546 - $ml = $element->addChild('MultiGeometry');  
547 - foreach(split('\), \(', $wkt) as $line){  
548 - $this->add_linestring($line, $ml, $featurename, $add_points );  
549 - }  
550 - }  
551 -  
552 - /**  
553 - * Add a point  
554 - */  
555 - function add_point(&$wkt, &$element, $featurename){  
556 - $pt = $element->addChild('Point');  
557 - /*  
558 - preg_match('/(\d\.?\d+\s\d+\.?\d+)/', $wkt, $data);  
559 - //var_dump($data);exit;  
560 - $data = str_replace(' ', ',', $data[1]);  
561 - */  
562 - $data = str_replace("(","",$wkt);  
563 - $data = str_replace(")","",$data);  
564 - $data = str_replace("POINT","",$data);  
565 - $data = str_replace(" ",",",trim($data));  
566 - //echo $data;exit;  
567 - $pt->addChild('coordinates', $data);  
568 - }  
569 -  
570 -  
571 - /**  
572 - * Add a polygon  
573 - */  
574 - function add_polygon(&$wkt, &$element, $featurename){  
575 - $ml = $element->addChild('Polygon');  
576 - foreach(split('\), \(', $wkt) as $line){  
577 - preg_match('/(\d+[^\(\)]*\d)/', $wkt, $data);  
578 - $data = str_replace(', ', '#', $data[1]);  
579 - $data = str_replace(' ', ',', $data);  
580 - // Add 1 meter height  
581 - $data = str_replace('#', ',1 ', $data) . ',1';  
582 - $ml->addChild('tessellate', 1);  
583 - //$element->addChild('altitudeMode', 'relativeToGround');  
584 - $element->addChild('altitudeMode', 'clampToGround');  
585 - $ob = $ml->addChild('outerBoundaryIs');  
586 - $ls = $ob->addChild('LinearRing');  
587 - $ls->addChild('coordinates', $data);  
588 - }  
589 - }  
590 -  
591 -  
592 - /**  
593 - * Add a multipolygon  
594 - * fixme: untested, should take holes into account  
595 - */  
596 - function add_multipolygon(&$wkt, &$element, $featurename){  
597 - $ml = $element->addChild('MultiGeometry');  
598 - foreach(split('\), \(', $wkt) as $line){  
599 - $this->add_polygon($line, $ml, $featurename );  
600 - }  
601 - }  
602 -  
603 -  
604 - /**  
605 - * Get the feature description  
606 - */  
607 - function get_feature_description($featurename, $attributes, $description_template,$itens,$itensdesc){  
608 - // Compute hyperlink  
609 - //var_dump($attributes);exit;  
610 - //if($description_template != ""){return $description_template;}  
611 - $n = "";  
612 - if($description_template != "")  
613 - {  
614 - foreach($attributes as $k => $val)  
615 - {$description_template = str_replace("%".$k."%",$attributes[$k],$description_template);}  
616 - $n = $description_template;  
617 - } 450 + $classe = $layer->getclass($indice);
  451 + $nome= $classe->name;
  452 + $style_id = preg_replace('/[^A-z0-9]/', '_', $layer->name . $nome);
  453 + }
  454 + // Add the feature
  455 + if(array_key_exists('folder', $class_list[$style_id])) {
  456 + $feature_folder =& $class_list[$style_id]['folder'];
  457 + } else {
  458 + //die('missing folder for ' . $style_id);
  459 + $feature_folder =& $folder;
  460 + }
  461 + if(!is_object($feature_folder)){
  462 + $folder_name = $feature_folder;
  463 + $feature_folder =& $folder ->addChild('Folder');
  464 + $feature_folder->addChild('name', $folder_name);
  465 + }
  466 + // Add style class
  467 + $style_url =& $this->add_style($layer, $feature_folder, $style_id, $class_list[$style_id], $namecol, $shape->values);
  468 + $wkt = $shape->toWkt();
  469 + $description_template = $layer->getMetadata('DESCRIPTION_TEMPLATE');//false;
  470 + if($description_template == "")
  471 + {$description_template = false;}
  472 + $placemark =& $this->add_feature($feature_folder, $wkt, $shape->values[$namecol], $shape->values, $description_template, $class_list[$style_id],$itens,$itensdesc);
  473 +
  474 + $placemark->addChild('styleUrl', '#'. $style_url);
  475 +
  476 + }
  477 + /**
  478 + * Add the feature to the result set
  479 + * @return reference to placemark object
  480 + */
  481 + function &add_feature(&$folder, &$wkt, $featurename, $attributes, $description_template, $style_data,$itens,$itensdesc){
  482 + $pm = $folder->addChild('Placemark');
  483 + $fname = mb_convert_encoding($featurename,"UTF-8",mb_detect_encoding($featurename,'UTF-8, UTF-7, ASCII, ISO-8859-1'));
  484 + $pm->addChild('name',$fname);
  485 + $pm->addChild('description', $this->get_feature_description($fname, $attributes, $description_template,$itens,$itensdesc));
  486 + // Now parse the wkt
  487 + if(strpos($wkt, 'MULTILINESTRING') !== false){
  488 + $this->add_multilinestring($wkt, $pm, $featurename, $style_data['icon']);
  489 + } elseif(strpos($wkt, 'LINESTRING') !== false){
  490 + $this->add_linestring($wkt, $pm, $featurename, $style_data['icon']);
  491 + } elseif(strpos($wkt, 'POINT') !== false){
  492 + $this->add_point($wkt, $pm, $featurename);
  493 + } elseif(strpos($wkt, 'MULTIPOLYGON') !== false){
  494 + if(TREAT_POLY_AS_LINE){
  495 + $ml = $pm->addChild('MultiGeometry');
  496 + foreach(split('\), \(', $wkt) as $line){
  497 + $this->add_multilinestring($line, $ml, $featurename );
  498 + }
  499 + } else {
  500 + $this->add_multipolygon($wkt, $pm, $featurename);
  501 + }
  502 + } elseif(strpos($wkt, 'POLYGON') !== false){
  503 + if(TREAT_POLY_AS_LINE){
  504 + $this->add_multilinestring($wkt, $pm, $featurename);
  505 + } else {
  506 + $this->add_polygon($wkt, $pm, $featurename);
  507 + }
  508 + } else {
  509 + // Error?
  510 + }
  511 + return $pm;
  512 + }
  513 +
  514 + /**
  515 + * Add a linestring
  516 + */
  517 + function add_linestring(&$wkt, &$element, $featurename, $add_points){
  518 + preg_match('/(\d+[^\(\)]*\d)/', $wkt, $data);
  519 + $data = str_replace(', ', '#', $data[1]);
  520 + $data = str_replace(' ', ',', $data);
  521 + $data = str_replace('#', ' ', $data);
  522 + if($add_points){
  523 + preg_match('/^(\d+\.\d+,\d+\.\d+).*(\d+\.\d+,\d+\.\d+)$/', $data, $points);
  524 + if(count($points) == 3){
  525 + $mg = $element->addChild('MultiGeometry');
  526 + $ls = $mg->addChild('LineString');
  527 + $pt1 = $mg->addChild('Point');
  528 + $pt1->addChild('coordinates', $points[1]);
  529 + $pt2 = $mg->addChild('Point');
  530 + $pt2->addChild('coordinates', $points[2]);
  531 + } else {
  532 + die('errore');
  533 + $ls = $element->addChild('LineString');
  534 + }
  535 + //print_r($points);die();
  536 + } else {
  537 + $ls = $element->addChild('LineString');
  538 + }
  539 + $ls->addChild('coordinates', $data);
  540 + }
  541 +
  542 + /**
  543 + * Add a multilinestring
  544 + */
  545 + function add_multilinestring(&$wkt, &$element, $featurename, $add_points){
  546 + $ml = $element->addChild('MultiGeometry');
  547 + foreach(split('\), \(', $wkt) as $line){
  548 + $this->add_linestring($line, $ml, $featurename, $add_points );
  549 + }
  550 + }
  551 +
  552 + /**
  553 + * Add a point
  554 + */
  555 + function add_point(&$wkt, &$element, $featurename){
  556 + $pt = $element->addChild('Point');
  557 + /*
  558 + preg_match('/(\d\.?\d+\s\d+\.?\d+)/', $wkt, $data);
  559 + //var_dump($data);exit;
  560 + $data = str_replace(' ', ',', $data[1]);
  561 + */
  562 + $data = str_replace("(","",$wkt);
  563 + $data = str_replace(")","",$data);
  564 + $data = str_replace("POINT","",$data);
  565 + $data = str_replace(" ",",",trim($data));
  566 + //echo $data;exit;
  567 + $pt->addChild('coordinates', $data);
  568 + }
  569 +
  570 +
  571 + /**
  572 + * Add a polygon
  573 + */
  574 + function add_polygon(&$wkt, &$element, $featurename){
  575 + $ml = $element->addChild('Polygon');
  576 + foreach(split('\), \(', $wkt) as $line){
  577 + preg_match('/(\d+[^\(\)]*\d)/', $wkt, $data);
  578 + $data = str_replace(', ', '#', $data[1]);
  579 + $data = str_replace(' ', ',', $data);
  580 + // Add 1 meter height
  581 + $data = str_replace('#', ',1 ', $data) . ',1';
  582 + $ml->addChild('tessellate', 1);
  583 + //$element->addChild('altitudeMode', 'relativeToGround');
  584 + $element->addChild('altitudeMode', 'clampToGround');
  585 + $ob = $ml->addChild('outerBoundaryIs');
  586 + $ls = $ob->addChild('LinearRing');
  587 + $ls->addChild('coordinates', $data);
  588 + }
  589 + }
  590 +
  591 +
  592 + /**
  593 + * Add a multipolygon
  594 + * fixme: untested, should take holes into account
  595 + */
  596 + function add_multipolygon(&$wkt, &$element, $featurename){
  597 + $ml = $element->addChild('MultiGeometry');
  598 + foreach(split('\), \(', $wkt) as $line){
  599 + $this->add_polygon($line, $ml, $featurename );
  600 + }
  601 + }
  602 +
  603 +
  604 + /**
  605 + * Get the feature description
  606 + */
  607 + function get_feature_description($featurename, $attributes, $description_template,$itens,$itensdesc){
  608 + // Compute hyperlink
  609 + //var_dump($attributes);exit;
  610 + //if($description_template != ""){return $description_template;}
  611 + $n = "";
  612 + if($description_template != "")
  613 + {
  614 + foreach($attributes as $k => $val)
  615 + {$description_template = str_replace("%".$k."%",$attributes[$k],$description_template);}
  616 + $n = $description_template;
  617 + }
618 else 618 else
619 { 619 {
620 - if($itens == "")  
621 - {  
622 - foreach($attributes as $k => $val){  
623 - $n .= $k." - ".$attributes[$k]."\n";  
624 - }  
625 - }  
626 - else  
627 - {  
628 - $itens = explode(",",$itens);  
629 - $itensdesc = explode(",",$itensdesc);  
630 - for($i=0;$i<count($itens);$i++)  
631 - {$n .= $itensdesc[$i]." - ".$attributes[$itens[$i]]."\n";}  
632 - } 620 + if($itens == "")
  621 + {
  622 + foreach($attributes as $k => $val){
  623 + $n .= $k." - ".$attributes[$k]."\n";
  624 + }
  625 + }
  626 + else
  627 + {
  628 + $itens = explode(",",$itens);
  629 + $itensdesc = explode(",",$itensdesc);
  630 + for($i=0;$i<count($itens);$i++)
  631 + {$n .= $itensdesc[$i]." - ".$attributes[$itens[$i]]."\n";}
  632 + }
633 } 633 }
634 - $description = mb_convert_encoding($n,"UTF-8",mb_detect_encoding($n,"UTF-8,ISO-8859-1")); 634 + $description = mb_convert_encoding($n,"UTF-8",mb_detect_encoding($n,"UTF-8,ISO-8859-1"));
635 return $description; 635 return $description;
636 - }  
637 - /**  
638 - * Parse classes  
639 - * @return array hash of 'style_id' => style_data)  
640 - */  
641 - function parse_classes(&$layer, &$folder, &$namecol, &$title_field, &$description_template ){  
642 - $style_ar = array();  
643 - $numclasses = $layer->numclasses;  
644 - $versao = $this->versao();  
645 - $vi = $versao["inteiro"];  
646 - for($i = 0; $i < $numclasses; $i++){  
647 - $class = $layer->getClass($i);  
648 - if($vi >= 60200){ 636 + }
  637 + /**
  638 + * Parse classes
  639 + * @return array hash of 'style_id' => style_data)
  640 + */
  641 + function parse_classes(&$layer, &$folder, &$namecol, &$title_field, &$description_template ){
  642 + $style_ar = array();
  643 + $numclasses = $layer->numclasses;
  644 + $versao = $this->versao();
  645 + $vi = $versao["inteiro"];
  646 + for($i = 0; $i < $numclasses; $i++){
  647 + $class = $layer->getClass($i);
  648 + if($vi >= 60200){
649 if($class->numlabels > 0) 649 if($class->numlabels > 0)
650 - $label = $class->getLabel(0);  
651 - }  
652 - else{  
653 - $label = $class->label;  
654 - }  
655 - if($label){  
656 - $style['label_color'] = $label->color;  
657 - $style['label_size'] = $label->size;  
658 - }  
659 - // Get styles  
660 - for($j = 0; $j < $class->numstyles; $j++){  
661 - $_style = $class->getStyle($j);  
662 - $style['color'] = $_style->color;  
663 - $style['outlinecolor'] = $_style->outlinecolor;  
664 - $style['width'] = $_style->size; // Lines  
665 - $style['backgroundcolor'] = $_style->backgroundcolor;  
666 - if($layer->type == MS_LAYER_POINT)  
667 - $style['icon'] = $this->get_icon_url($layer, $class->name,$i);  
668 - $style['icon_width'] = $_style->size; // Points  
669 - }  
670 - $style['expression'] = $class->getExpressionString();  
671 - // Set description_template if any  
672 - $style['description_template'] = $description_template;  
673 - // Get icon for lines if any  
674 - if($icon = $layer->getMetadata('KML_ADD_POINT')){  
675 - $style['icon'] = $icon;  
676 - $style['icon_width'] = 32;  
677 - }  
678 - // Create style element  
679 - $style_id = preg_replace('/[^A-z0-9]/', '_', $layer->name . $class->name);  
680 - $this->add_style($layer, $folder, $style_id, $style, $namecol, $title_field );  
681 - // create folder if more than one class  
682 - if($numclasses > 1){  
683 - //$style['folder'] =& $class->name;  
684 - //$folder->addChild('Folder');  
685 - //$style['folder']->addChild('name', $class->name);  
686 - }  
687 - $style_ar[$style_id] = $style;  
688 - }  
689 - return $style_ar;  
690 - }  
691 -  
692 - /**  
693 - * Return a CSV list of all layer names in the mapfile  
694 - * fixme: filter out ANNOTATIONS and other "strange" layers  
695 - */  
696 - function get_layer_list(){  
697 - $layer_list = array();  
698 - for($i = 0; $i < $this->map_object->numlayers; $i++){  
699 - $layer =& $this->map_object->getLayer($i);  
700 - $kml_skip = $layer->getMetadata('KML_SKIP');  
701 - if(strtolower($kml_skip) !== 'true'){  
702 - $layer_list[] = $layer->name;  
703 - }  
704 - }  
705 - return join(',', $layer_list);  
706 - }  
707 -  
708 -  
709 - /**  
710 - * Return the class for the shape, default to last class if not match  
711 - */  
712 - function get_shape_class(&$classitem, &$values, &$class_list){  
713 - //var_dump($class_list); die();  
714 - foreach($class_list as $style_id => $style_data){  
715 - if($style_data['expression'] && preg_match($style_data['expression'], $values[$classitem])){  
716 - //print "get_shape_class($classitem) ".$values[$classitem]." matches<br>";  
717 - return $style_id;  
718 - }  
719 - }  
720 - //print "get_shape_class($classitem) ".$values[$classitem]." no matches<br>";  
721 - return $style_id;  
722 - }  
723 -  
724 - /**  
725 - * Add the style  
726 - * @return the style URL  
727 - */  
728 - function add_style(&$layer, &$folder, $style_id, &$style_data){  
729 - // Calculare style URL  
730 -  
731 - if($style_data['description_template']){  
732 - $this->style_counter++;  
733 - $style_id .= '_'.$this->style_counter;  
734 - $balloon_data = $this->get_feature_description($attributes[$namecol], $attributes, $style_data['description_template']);  
735 - }  
736 -  
737 - // Check if the style already exists  
738 - $expr = '//*[@id=\''.$style_id.'\']';  
739 - if($folder->xpath($expr)) {  
740 - return $style_id;  
741 - }  
742 - $new_style =& $folder->addChild('Style');  
743 - $new_style['id'] = $style_id;  
744 - // Switch layer type  
745 - switch($layer->type){  
746 - case MS_LAYER_POINT:  
747 - $this->add_style_point($new_style, $style_data);  
748 - break;  
749 - case MS_LAYER_POLYGON:  
750 - $this->add_style_polygon($new_style, $style_data);  
751 - break;  
752 - case MS_LAYER_LINE:  
753 - $this->add_style_line($new_style, $style_data);  
754 - // Add KML_ADD_POINT icon  
755 - if($style_data['icon']){  
756 - $this->add_style_point($new_style, $style_data);  
757 - }  
758 - break;  
759 - }  
760 - return $style_id;  
761 - }  
762 -  
763 - /**  
764 - * Add style for lines  
765 - */  
766 - function add_style_line(&$new_style, &$style_data){  
767 - if($style_data['outlinecolor']->red != -1){  
768 - $st =& $new_style->addChild('LineStyle');  
769 - $st->addChild('color', sprintf('FF%02X%02X%02X', $style_data['outlinecolor']->blue, $style_data['outlinecolor']->green, $style_data['outlinecolor']->red));  
770 - if($width) {  
771 - $st->addChild('width', $width);  
772 - }  
773 - } elseif($style_data['color']->red != -1){  
774 - $st =& $new_style->addChild('LineStyle');  
775 - $st->addChild('color', sprintf('FF%02X%02X%02X', $style_data['color']->blue, $style_data['color']->green, $style_data['color']->red));  
776 - if($width) {  
777 - $st->addChild('width', $width);  
778 - }  
779 - }  
780 - }  
781 -  
782 - /**  
783 - * Add style for points  
784 - */  
785 - function add_style_point(&$new_style, &$style_data){  
786 - if($style_data['icon']){  
787 - $st =& $new_style->addChild('IconStyle'); 650 + $label = $class->getLabel(0);
  651 + }
  652 + else{
  653 + $label = $class->label;
  654 + }
  655 + if($label){
  656 + $style['label_color'] = $label->color;
  657 + $style['label_size'] = $label->size;
  658 + }
  659 + // Get styles
  660 + for($j = 0; $j < $class->numstyles; $j++){
  661 + $_style = $class->getStyle($j);
  662 + $style['color'] = $_style->color;
  663 + $style['outlinecolor'] = $_style->outlinecolor;
  664 + $style['width'] = $_style->size; // Lines
  665 + $style['backgroundcolor'] = $_style->backgroundcolor;
  666 + if($layer->type == MS_LAYER_POINT)
  667 + $style['icon'] = $this->get_icon_url($layer, $class->name,$i);
  668 + $style['icon_width'] = $_style->size; // Points
  669 + }
  670 + $style['expression'] = $class->getExpressionString();
  671 + // Set description_template if any
  672 + $style['description_template'] = $description_template;
  673 + // Get icon for lines if any
  674 + if($icon = $layer->getMetadata('KML_ADD_POINT')){
  675 + $style['icon'] = $icon;
  676 + $style['icon_width'] = 32;
  677 + }
  678 + // Create style element
  679 + $style_id = preg_replace('/[^A-z0-9]/', '_', $layer->name . $class->name);
  680 + $this->add_style($layer, $folder, $style_id, $style, $namecol, $title_field );
  681 + // create folder if more than one class
  682 + if($numclasses > 1){
  683 + //$style['folder'] =& $class->name;
  684 + //$folder->addChild('Folder');
  685 + //$style['folder']->addChild('name', $class->name);
  686 + }
  687 + $style_ar[$style_id] = $style;
  688 + }
  689 + return $style_ar;
  690 + }
  691 +
  692 + /**
  693 + * Return a CSV list of all layer names in the mapfile
  694 + * fixme: filter out ANNOTATIONS and other "strange" layers
  695 + */
  696 + function get_layer_list(){
  697 + $layer_list = array();
  698 + for($i = 0; $i < $this->map_object->numlayers; $i++){
  699 + $layer =& $this->map_object->getLayer($i);
  700 + $kml_skip = $layer->getMetadata('KML_SKIP');
  701 + if(strtolower($kml_skip) !== 'true'){
  702 + $layer_list[] = $layer->name;
  703 + }
  704 + }
  705 + return join(',', $layer_list);
  706 + }
  707 +
  708 +
  709 + /**
  710 + * Return the class for the shape, default to last class if not match
  711 + */
  712 + function get_shape_class(&$classitem, &$values, &$class_list){
  713 + //var_dump($class_list); die();
  714 + foreach($class_list as $style_id => $style_data){
  715 + if($style_data['expression'] && preg_match($style_data['expression'], $values[$classitem])){
  716 + //print "get_shape_class($classitem) ".$values[$classitem]." matches<br>";
  717 + return $style_id;
  718 + }
  719 + }
  720 + //print "get_shape_class($classitem) ".$values[$classitem]." no matches<br>";
  721 + return $style_id;
  722 + }
  723 +
  724 + /**
  725 + * Add the style
  726 + * @return the style URL
  727 + */
  728 + function add_style(&$layer, &$folder, $style_id, &$style_data){
  729 + // Calculare style URL
  730 +
  731 + if($style_data['description_template']){
  732 + $this->style_counter++;
  733 + $style_id .= '_'.$this->style_counter;
  734 + $balloon_data = $this->get_feature_description($attributes[$namecol], $attributes, $style_data['description_template']);
  735 + }
  736 +
  737 + // Check if the style already exists
  738 + $expr = '//*[@id=\''.$style_id.'\']';
  739 + if($folder->xpath($expr)) {
  740 + return $style_id;
  741 + }
  742 + $new_style =& $folder->addChild('Style');
  743 + $new_style['id'] = $style_id;
  744 + // Switch layer type
  745 + switch($layer->type){
  746 + case MS_LAYER_POINT:
  747 + $this->add_style_point($new_style, $style_data);
  748 + break;
  749 + case MS_LAYER_POLYGON:
  750 + $this->add_style_polygon($new_style, $style_data);
  751 + break;
  752 + case MS_LAYER_LINE:
  753 + $this->add_style_line($new_style, $style_data);
  754 + // Add KML_ADD_POINT icon
  755 + if($style_data['icon']){
  756 + $this->add_style_point($new_style, $style_data);
  757 + }
  758 + break;
  759 + }
  760 + return $style_id;
  761 + }
  762 +
  763 + /**
  764 + * Add style for lines
  765 + */
  766 + function add_style_line(&$new_style, &$style_data){
  767 + if($style_data['outlinecolor']->red != -1){
  768 + $st =& $new_style->addChild('LineStyle');
  769 + $st->addChild('color', sprintf('FF%02X%02X%02X', $style_data['outlinecolor']->blue, $style_data['outlinecolor']->green, $style_data['outlinecolor']->red));
  770 + if($width) {
  771 + $st->addChild('width', $width);
  772 + }
  773 + } elseif($style_data['color']->red != -1){
  774 + $st =& $new_style->addChild('LineStyle');
  775 + $st->addChild('color', sprintf('FF%02X%02X%02X', $style_data['color']->blue, $style_data['color']->green, $style_data['color']->red));
  776 + if($width) {
  777 + $st->addChild('width', $width);
  778 + }
  779 + }
  780 + }
  781 +
  782 + /**
  783 + * Add style for points
  784 + */
  785 + function add_style_point(&$new_style, &$style_data){
  786 + if($style_data['icon']){
  787 + $st =& $new_style->addChild('IconStyle');
788 if($style_data['width'] && $style_data['icon_width'] != 32){ 788 if($style_data['width'] && $style_data['icon_width'] != 32){
789 /** 789 /**
790 * 790 *
791 */ 791 */
792 //$st->addChild('scale', $style_data['icon_width'] / 32); 792 //$st->addChild('scale', $style_data['icon_width'] / 32);
793 $st->addChild('scale', 1); 793 $st->addChild('scale', 1);
794 - } 794 + }
795 else 795 else
796 {$st->addChild('scale', 1);} 796 {$st->addChild('scale', 1);}
797 - $icon =& $st->addChild('Icon');  
798 - $icon->addChild('href', htmlentities($style_data['icon']));  
799 -  
800 - }  
801 - $ls =& $new_style->addChild('LabelStyle');  
802 - $ls->addChild('scale', $style_data['label_size'] / 32);  
803 - // Add the balloon style if description_template is set  
804 - /*  
805 - if($style_data['description_template']){  
806 - $this->add_balloon_style($new_style, $balloon_data);  
807 - }  
808 - */  
809 - // Label size and color  
810 - /*  
811 - if($style_data['label_size'] || $style_data['label_color']){  
812 - $ls =& $new_style->addChild('LabelStyle');  
813 - if($style_data['label_size'] != -1 && $style_data['label_size'] != 32){  
814 - $ls->addChild('scale', $style_data['label_size'] / 32);  
815 - }  
816 - if($style_data['label_color']->red != -1){  
817 - $ls->addChild('color', sprintf('FF%02X%02X%02X', $style_data['label_color']->blue, $style_data['label_color']->green, $style_data['label_color']->red));  
818 - }  
819 - }  
820 - */  
821 - }  
822 -  
823 - /**  
824 - * Add style for polygons  
825 - */  
826 - function add_style_polygon(&$new_style, &$style_data){  
827 - // Get also outline styles  
828 - $this->add_style_line($new_style, $style_data);  
829 - $st =& $new_style->addChild('PolyStyle');  
830 - //die(print_r($backgroundcolor, true));  
831 - if($style_data['color']->red != -1){  
832 - $st->addChild('color', sprintf('FF%02X%02X%02X', $style_data['color']->blue, $style_data['color']->green, $style_data['color']->red));  
833 - $st->addChild('fill', 1);  
834 - } else {  
835 - $st->addChild('fill', 0);  
836 - }  
837 - $st->addChild('outline', 1);  
838 - }  
839 -  
840 - /**  
841 - * Add a WMS raster link  
842 - */  
843 - function add_wms_link(&$folder, &$layer, &$link){  
844 - // Build up the KML response document.  
845 - //$icon =& $folder->addChild('Icon');  
846 - $icon =& $this->simplexml_addChild($folder,'Icon');  
847 - //$icon->addChild('href', $link . 'layers=' . $layer->name);  
848 - $this->simplexml_addChild($icon,'href', $link . 'layers=' . $layer->name);  
849 - //$icon->addChild('viewRefreshMode', 'onStop');  
850 - $this->simplexml_addChild($icon,'viewRefreshMode', 'onStop');  
851 - //$llbox =& $folder->addChild('LatLonBox');  
852 - $llbox =& $this->simplexml_addChild($folder,'LatLonBox');  
853 - $ext = $this->map_object->extent;  
854 - $ext->project($this->in_proj, $this->out_proj);  
855 - //$llbox->north = $ext->maxy;  
856 - $this->simplexml_addChild($llbox,'north', $ext->maxy);  
857 - //$llbox->south = $ext->miny;  
858 - $this->simplexml_addChild($llbox,'south', $ext->miny);  
859 - //$llbox->east = $ext->maxx;  
860 - $this->simplexml_addChild($llbox,'east', $ext->maxx);  
861 - //$llbox->west = $ext->minx;  
862 - $this->simplexml_addChild($llbox,'west', $ext->minx);  
863 - // Reset original projection  
864 - $ext->project($this->out_proj, $this->in_proj);  
865 - }  
866 -  
867 - /**  
868 - * Get the url for a point icon  
869 - */  
870 - function get_icon_url($layer, $classname, $classindex){  
871 - $classe = $layer->getclass($classindex);  
872 - $estilo = $classe->getstyle(0);  
873 - $url = "";  
874 - $imageObj = $classe->createLegendIcon(30,30);  
875 - if($imageObj) 797 + $icon =& $st->addChild('Icon');
  798 + $icon->addChild('href', htmlentities($style_data['icon']));
  799 +
  800 + }
  801 + $ls =& $new_style->addChild('LabelStyle');
  802 + $ls->addChild('scale', $style_data['label_size'] / 32);
  803 + // Add the balloon style if description_template is set
  804 + /*
  805 + if($style_data['description_template']){
  806 + $this->add_balloon_style($new_style, $balloon_data);
  807 + }
  808 + */
  809 + // Label size and color
  810 + /*
  811 + if($style_data['label_size'] || $style_data['label_color']){
  812 + $ls =& $new_style->addChild('LabelStyle');
  813 + if($style_data['label_size'] != -1 && $style_data['label_size'] != 32){
  814 + $ls->addChild('scale', $style_data['label_size'] / 32);
  815 + }
  816 + if($style_data['label_color']->red != -1){
  817 + $ls->addChild('color', sprintf('FF%02X%02X%02X', $style_data['label_color']->blue, $style_data['label_color']->green, $style_data['label_color']->red));
  818 + }
  819 + }
  820 + */
  821 + }
  822 +
  823 + /**
  824 + * Add style for polygons
  825 + */
  826 + function add_style_polygon(&$new_style, &$style_data){
  827 + // Get also outline styles
  828 + $this->add_style_line($new_style, $style_data);
  829 + $st =& $new_style->addChild('PolyStyle');
  830 + //die(print_r($backgroundcolor, true));
  831 + if($style_data['color']->red != -1){
  832 + $st->addChild('color', sprintf('FF%02X%02X%02X', $style_data['color']->blue, $style_data['color']->green, $style_data['color']->red));
  833 + $st->addChild('fill', 1);
  834 + } else {
  835 + $st->addChild('fill', 0);
  836 + }
  837 + $st->addChild('outline', 1);
  838 + }
  839 +
  840 + /**
  841 + * Add a WMS raster link
  842 + */
  843 + function add_wms_link(&$folder, &$layer, &$link){
  844 + // Build up the KML response document.
  845 + //$icon =& $folder->addChild('Icon');
  846 + $icon =& $this->simplexml_addChild($folder,'Icon');
  847 + //$icon->addChild('href', $link . 'layers=' . $layer->name);
  848 + $this->simplexml_addChild($icon,'href', $link . 'layers=' . $layer->name);
  849 + //$icon->addChild('viewRefreshMode', 'onStop');
  850 + $this->simplexml_addChild($icon,'viewRefreshMode', 'onStop');
  851 + //$llbox =& $folder->addChild('LatLonBox');
  852 + $llbox =& $this->simplexml_addChild($folder,'LatLonBox');
  853 + $ext = $this->map_object->extent;
  854 + $ext->project($this->in_proj, $this->out_proj);
  855 + //$llbox->north = $ext->maxy;
  856 + $this->simplexml_addChild($llbox,'north', $ext->maxy);
  857 + //$llbox->south = $ext->miny;
  858 + $this->simplexml_addChild($llbox,'south', $ext->miny);
  859 + //$llbox->east = $ext->maxx;
  860 + $this->simplexml_addChild($llbox,'east', $ext->maxx);
  861 + //$llbox->west = $ext->minx;
  862 + $this->simplexml_addChild($llbox,'west', $ext->minx);
  863 + // Reset original projection
  864 + $ext->project($this->out_proj, $this->in_proj);
  865 + }
  866 +
  867 + /**
  868 + * Get the url for a point icon
  869 + */
  870 + function get_icon_url($layer, $classname, $classindex){
  871 + $classe = $layer->getclass($classindex);
  872 + $estilo = $classe->getstyle(0);
  873 + $url = "";
  874 + $imageObj = $classe->createLegendIcon(30,30);
  875 + if($imageObj)
876 { 876 {
877 $url = $imageObj->saveWebImage(); 877 $url = $imageObj->saveWebImage();
878 $protocolo = explode("/",$_SERVER['SERVER_PROTOCOL']); 878 $protocolo = explode("/",$_SERVER['SERVER_PROTOCOL']);
@@ -884,77 +884,77 @@ class LayerServer { @@ -884,77 +884,77 @@ class LayerServer {
884 imagecolortransparent($img, $index); 884 imagecolortransparent($img, $index);
885 imagepng($img, $nome); 885 imagepng($img, $nome);
886 } 886 }
887 - return $url; //$this->endpoint . '?service=icon&map=' . $this->map . '&typename=' . urlencode($layer->name) . '&classname=' . urlencode($classname);  
888 - }  
889 -  
890 - /**  
891 - * Get the layer description  
892 - */  
893 - function get_layer_description(&$layer){  
894 - $description = $layer->getMetadata('DESCRIPTION');  
895 - if(!$description){  
896 - $description = $layer->getMetadata('OWS_TITLE');  
897 - }  
898 - if(!$description){  
899 - $description = $layer->getMetadata('WFS_TITLE');  
900 - }  
901 - if(!$description){  
902 - $description = $layer->getMetadata('WMS_TITLE');  
903 - }  
904 - if(!$description){  
905 - $description = $layer->getMetadata('TEMA');  
906 - }  
907 - if(!$description){  
908 - $description = $layer->name;  
909 - }  
910 - $description = mb_convert_encoding($description,"UTF-8",mb_detect_encoding($description,"UTF-8,ISO-8859-1"));  
911 - return $description;  
912 - }  
913 -  
914 -  
915 -  
916 - /**  
917 - * Add style for balloon  
918 - * @param string style XML id  
919 - * @param string column name for title  
920 - */  
921 - function add_balloon_style(&$style, $balloon_data){  
922 - $balloon =& $style->addChild('BalloonStyle');  
923 - $balloon->addChild('text', htmlentities($balloon_data));  
924 - }  
925 -  
926 -  
927 - /**  
928 - * Get a request parameter  
929 - * @param string $name  
930 - * @param string $default parameter optional  
931 - * @return string the parameter value or empty string if null  
932 - */  
933 - function load_parm($name, $default = ''){  
934 - if(!isset($_REQUEST[$name])) return $default;  
935 - $value = $_REQUEST[$name];  
936 - if(get_magic_quotes_gpc() != 1) $value = addslashes($value);  
937 - //$value = escapeshellcmd($value);  
938 - return $value;  
939 - }  
940 -  
941 - /**  
942 - * Set error message  
943 - * @param string $message  
944 - * @param string $layer name  
945 - */  
946 - function set_error($message, $layer = 'Error'){  
947 - $this->errors[$layer][] = $message;  
948 - }  
949 -  
950 -  
951 - /**  
952 - * Load the map and create the map instance  
953 - */  
954 - function load_map(){  
955 - if(!file_exists($this->map) && is_readable($this->map)){  
956 - $this->set_error('Cannot read mapfile '. $this->map);  
957 - } else { 887 + return $url; //$this->endpoint . '?service=icon&map=' . $this->map . '&typename=' . urlencode($layer->name) . '&classname=' . urlencode($classname);
  888 + }
  889 +
  890 + /**
  891 + * Get the layer description
  892 + */
  893 + function get_layer_description(&$layer){
  894 + $description = $layer->getMetadata('DESCRIPTION');
  895 + if(!$description){
  896 + $description = $layer->getMetadata('OWS_TITLE');
  897 + }
  898 + if(!$description){
  899 + $description = $layer->getMetadata('WFS_TITLE');
  900 + }
  901 + if(!$description){
  902 + $description = $layer->getMetadata('WMS_TITLE');
  903 + }
  904 + if(!$description){
  905 + $description = $layer->getMetadata('TEMA');
  906 + }
  907 + if(!$description){
  908 + $description = $layer->name;
  909 + }
  910 + $description = mb_convert_encoding($description,"UTF-8",mb_detect_encoding($description,"UTF-8,ISO-8859-1"));
  911 + return $description;
  912 + }
  913 +
  914 +
  915 +
  916 + /**
  917 + * Add style for balloon
  918 + * @param string style XML id
  919 + * @param string column name for title
  920 + */
  921 + function add_balloon_style(&$style, $balloon_data){
  922 + $balloon =& $style->addChild('BalloonStyle');
  923 + $balloon->addChild('text', htmlentities($balloon_data));
  924 + }
  925 +
  926 +
  927 + /**
  928 + * Get a request parameter
  929 + * @param string $name
  930 + * @param string $default parameter optional
  931 + * @return string the parameter value or empty string if null
  932 + */
  933 + function load_parm($name, $default = ''){
  934 + if(!isset($_REQUEST[$name])) return $default;
  935 + $value = $_REQUEST[$name];
  936 + if(get_magic_quotes_gpc() != 1) $value = addslashes($value);
  937 + //$value = escapeshellcmd($value);
  938 + return $value;
  939 + }
  940 +
  941 + /**
  942 + * Set error message
  943 + * @param string $message
  944 + * @param string $layer name
  945 + */
  946 + function set_error($message, $layer = 'Error'){
  947 + $this->errors[$layer][] = $message;
  948 + }
  949 +
  950 +
  951 + /**
  952 + * Load the map and create the map instance
  953 + */
  954 + function load_map(){
  955 + if(!file_exists($this->map) && is_readable($this->map)){
  956 + $this->set_error('Cannot read mapfile '. $this->map);
  957 + } else {
958 $protocolo = explode("/",$_SERVER['SERVER_PROTOCOL']); 958 $protocolo = explode("/",$_SERVER['SERVER_PROTOCOL']);
959 $servidor = strtolower($protocolo[0])."://".$_SERVER['HTTP_HOST']; 959 $servidor = strtolower($protocolo[0])."://".$_SERVER['HTTP_HOST'];
960 $temp = $this->map; 960 $temp = $this->map;
@@ -962,7 +962,7 @@ class LayerServer { @@ -962,7 +962,7 @@ class LayerServer {
962 include(dirname(__FILE__)."/ms_configura.php"); 962 include(dirname(__FILE__)."/ms_configura.php");
963 } 963 }
964 else{ 964 else{
965 - include("../../ms_configura.php"); 965 + include(dirname(__FILE__)."/../../ms_configura.php");
966 } 966 }
967 if(!file_exists($this->map)){ 967 if(!file_exists($this->map)){
968 $maptemp = ms_newMapObj($locaplic."/temas/".$this->map.".map"); 968 $maptemp = ms_newMapObj($locaplic."/temas/".$this->map.".map");
@@ -994,13 +994,13 @@ class LayerServer { @@ -994,13 +994,13 @@ class LayerServer {
994 } 994 }
995 $this->map = $base; 995 $this->map = $base;
996 996
997 - $this->map_object = ms_newMapObj($this->map);  
998 - if(!$this->_zipped){  
999 - $this->map_object->setmetadata('wms_onlineresource',$servidor.":80/i3geo/ogc.php?tema=".$temp."&width=1500&height=1500&");  
1000 - $this->map_object->setmetadata("ows_enable_request","*");  
1001 - }  
1002 - $n = $this->map_object->numlayers;  
1003 - for ($i=0;$i < $n;$i++) 997 + $this->map_object = ms_newMapObj($this->map);
  998 + if(!$this->_zipped){
  999 + $this->map_object->setmetadata('wms_onlineresource',$servidor.":80/i3geo/ogc.php?tema=".$temp."&width=1500&height=1500&");
  1000 + $this->map_object->setmetadata("ows_enable_request","*");
  1001 + }
  1002 + $n = $this->map_object->numlayers;
  1003 + for ($i=0;$i < $n;$i++)
1004 { 1004 {
1005 $l = $this->map_object->getlayer($i); 1005 $l = $this->map_object->getlayer($i);
1006 $l->set("status",MS_DELETE); 1006 $l->set("status",MS_DELETE);
@@ -1036,58 +1036,58 @@ class LayerServer { @@ -1036,58 +1036,58 @@ class LayerServer {
1036 //ms_newLayerObj($this->map_object, $l); 1036 //ms_newLayerObj($this->map_object, $l);
1037 } 1037 }
1038 } 1038 }
1039 - if(!$this->map_object){  
1040 - $this->set_error('Cannot load mapfile '. $this->map);  
1041 - }  
1042 - }  
1043 - }  
1044 -  
1045 - /**  
1046 - * Test if has errors  
1047 - * @return boolean  
1048 - */  
1049 - function has_error(){  
1050 - return count($this->errors) > 0;  
1051 - }  
1052 -  
1053 - /**  
1054 - * Add error messages to folders TAGS  
1055 - */  
1056 - function add_errors(){  
1057 - foreach($this->errors as $layer => $errors){  
1058 - $folder =& $this->_xml->Document->addChild('Folder');  
1059 - $folder->addChild('name', $layer);  
1060 - $folder->addChild('description', '<p>' . join("</p>\n<p>", $errors) . "</p>");  
1061 - }  
1062 - return $errorxml;  
1063 - }  
1064 -  
1065 - /**  
1066 - * Fetch XML and format it  
1067 - */  
1068 - function get_kml(){  
1069 - $doc = new DOMDocument('1.0');  
1070 - $doc->formatOutput = true;  
1071 - $domnode = dom_import_simplexml($this->_xml);  
1072 - $domnode = $doc->importNode($domnode, true);  
1073 - $domnode = $doc->appendChild($domnode);  
1074 - return $doc->saveXML();  
1075 - }  
1076 -  
1077 - /**  
1078 - * Send header  
1079 - */  
1080 - function send_header(){  
1081 - header('Content-Disposition: attachment; filename=kml.km'.($this->_zipped ? 'z' : 'l'));  
1082 - header('Content-type: application/vnd.google-earth.km'.($this->_zipped ? 'z' : 'l').'+XML');  
1083 - }  
1084 -  
1085 - /**  
1086 - * Calculate cache file name  
1087 - */  
1088 - function get_cache_file_name(){  
1089 - //obtem o arquivo do metadata do layer se existir  
1090 - $layer = @$this->map_object->getlayerbyname($this->typename); 1039 + if(!$this->map_object){
  1040 + $this->set_error('Cannot load mapfile '. $this->map);
  1041 + }
  1042 + }
  1043 + }
  1044 +
  1045 + /**
  1046 + * Test if has errors
  1047 + * @return boolean
  1048 + */
  1049 + function has_error(){
  1050 + return count($this->errors) > 0;
  1051 + }
  1052 +
  1053 + /**
  1054 + * Add error messages to folders TAGS
  1055 + */
  1056 + function add_errors(){
  1057 + foreach($this->errors as $layer => $errors){
  1058 + $folder =& $this->_xml->Document->addChild('Folder');
  1059 + $folder->addChild('name', $layer);
  1060 + $folder->addChild('description', '<p>' . join("</p>\n<p>", $errors) . "</p>");
  1061 + }
  1062 + return $errorxml;
  1063 + }
  1064 +
  1065 + /**
  1066 + * Fetch XML and format it
  1067 + */
  1068 + function get_kml(){
  1069 + $doc = new DOMDocument('1.0');
  1070 + $doc->formatOutput = true;
  1071 + $domnode = dom_import_simplexml($this->_xml);
  1072 + $domnode = $doc->importNode($domnode, true);
  1073 + $domnode = $doc->appendChild($domnode);
  1074 + return $doc->saveXML();
  1075 + }
  1076 +
  1077 + /**
  1078 + * Send header
  1079 + */
  1080 + function send_header(){
  1081 + header('Content-Disposition: attachment; filename=kml.km'.($this->_zipped ? 'z' : 'l'));
  1082 + header('Content-type: application/vnd.google-earth.km'.($this->_zipped ? 'z' : 'l').'+XML');
  1083 + }
  1084 +
  1085 + /**
  1086 + * Calculate cache file name
  1087 + */
  1088 + function get_cache_file_name(){
  1089 + //obtem o arquivo do metadata do layer se existir
  1090 + $layer = @$this->map_object->getlayerbyname($this->typename);
1091 if(!$layer) 1091 if(!$layer)
1092 {$layer = $this->map_object->getlayer(0);} 1092 {$layer = $this->map_object->getlayer(0);}
1093 $k = $layer->getmetadata("arquivokmz"); 1093 $k = $layer->getmetadata("arquivokmz");
@@ -1095,40 +1095,40 @@ class LayerServer { @@ -1095,40 +1095,40 @@ class LayerServer {
1095 return $k; 1095 return $k;
1096 } 1096 }
1097 include(dirname(__FILE__)."/../../ms_configura.php"); 1097 include(dirname(__FILE__)."/../../ms_configura.php");
1098 - return $dir_tmp.'/'. md5($_SERVER['QUERY_STRING']) . ($this->_zipped ? '.kmz' : '.kml');  
1099 - } 1098 + return $dir_tmp.'/'. md5($_SERVER['QUERY_STRING']) . ($this->_zipped ? '.kmz' : '.kml');
  1099 + }
1100 1100
1101 - /**  
1102 - * Send stream  
1103 - */  
1104 - function send_stream($data){ 1101 + /**
  1102 + * Send stream
  1103 + */
  1104 + function send_stream($data){
1105 $this->send_header(); 1105 $this->send_header();
1106 - // Compress data  
1107 -  
1108 - if($this->_zipped){  
1109 - include("zip.class.php");  
1110 - $ziper = new zipfile();  
1111 - $ziper->addFile($data, 'doc.kml');  
1112 - $data = $ziper->file();  
1113 - }  
1114 -  
1115 - // Create cache if needed  
1116 - if(ENABLE_CACHE && count($this->layers) == 1) {  
1117 - //error_log( 'creating cache ' . $this->get_cache_file_name() );  
1118 - file_put_contents($this->get_cache_file_name(), $data);  
1119 - }  
1120 - print $data;  
1121 - exit();  
1122 - } 1106 + // Compress data
  1107 +
  1108 + if($this->_zipped){
  1109 + include("zip.class.php");
  1110 + $ziper = new zipfile();
  1111 + $ziper->addFile($data, 'doc.kml');
  1112 + $data = $ziper->file();
  1113 + }
  1114 +
  1115 + // Create cache if needed
  1116 + if(ENABLE_CACHE && count($this->layers) == 1) {
  1117 + //error_log( 'creating cache ' . $this->get_cache_file_name() );
  1118 + file_put_contents($this->get_cache_file_name(), $data);
  1119 + }
  1120 + print $data;
  1121 + exit();
  1122 + }
1123 // phpversion <= 5.1.2 1123 // phpversion <= 5.1.2
1124 1124
1125 function simplexml_addChild($parent, $name, $value=''){ 1125 function simplexml_addChild($parent, $name, $value=''){
1126 - $new_child = new SimpleXMLElement("<$name>$value</$name>");  
1127 - $node1 = dom_import_simplexml($parent);  
1128 - $dom_sxe = dom_import_simplexml($new_child);  
1129 - $node2 = $node1->ownerDocument->importNode($dom_sxe, true);  
1130 - $node1->appendChild($node2);  
1131 - return simplexml_import_dom($node2); 1126 + $new_child = new SimpleXMLElement("<$name>$value</$name>");
  1127 + $node1 = dom_import_simplexml($parent);
  1128 + $dom_sxe = dom_import_simplexml($new_child);
  1129 + $node2 = $node1->ownerDocument->importNode($dom_sxe, true);
  1130 + $node1->appendChild($node2);
  1131 + return simplexml_import_dom($node2);
1132 } 1132 }
1133 function versao() 1133 function versao()
1134 { 1134 {
pacotes/linkedinoauth/example/common.inc.php
1 <?php 1 <?php
2 -require_once("../OAuth.php");  
3 -require_once("../OAuth_TestServer.php"); 2 +require_once(dirname(__FILE__)."/../OAuth.php");
  3 +require_once(dirname(__FILE__)."/../OAuth_TestServer.php");
4 4
5 /* 5 /*
6 * Config Section 6 * Config Section
pacotes/linkedinoauth/example/index.php
1 <?php 1 <?php
2 require_once("common.inc.php"); 2 require_once("common.inc.php");
3 -include("../../../ms_configura.php"); 3 +include(dirname(__FILE__)."/../../../ms_configura.php");
4 4
5 $test_consumer = new OAuthConsumer($linkedinoauth["consumerkey"], $linkedinoauth["consumersecret"], NULL); 5 $test_consumer = new OAuthConsumer($linkedinoauth["consumerkey"], $linkedinoauth["consumersecret"], NULL);
6 $req_token = new OAuthConsumer($linkedinoauth["consumerkey"], $linkedinoauth["consumersecret"], 1); 6 $req_token = new OAuthConsumer($linkedinoauth["consumerkey"], $linkedinoauth["consumersecret"], 1);
@@ -9,7 +9,7 @@ $acc_token = new OAuthConsumer($linkedinoauth[&quot;consumerkey&quot;], $linkedinoauth[&quot;co @@ -9,7 +9,7 @@ $acc_token = new OAuthConsumer($linkedinoauth[&quot;consumerkey&quot;], $linkedinoauth[&quot;co
9 $sig_method = $hmac_method; 9 $sig_method = $hmac_method;
10 $user_sig_method = @$_GET['sig_method']; 10 $user_sig_method = @$_GET['sig_method'];
11 if ($user_sig_method) { 11 if ($user_sig_method) {
12 - $sig_method = $sig_methods[$user_sig_method]; 12 + $sig_method = $sig_methods[$user_sig_method];
13 } 13 }
14 14
15 $req_req = OAuthRequest::from_consumer_and_token($test_consumer, NULL, "GET", $base_url . "/request_token.php"); 15 $req_req = OAuthRequest::from_consumer_and_token($test_consumer, NULL, "GET", $base_url . "/request_token.php");
@@ -86,19 +86,19 @@ A successful request will echo the non-OAuth parameters sent to it, for example: @@ -86,19 +86,19 @@ A successful request will echo the non-OAuth parameters sent to it, for example:
86 <?php 86 <?php
87 $sig_methods = $test_server->get_signature_methods(); 87 $sig_methods = $test_server->get_signature_methods();
88 foreach ($sig_methods as $key => $method) { 88 foreach ($sig_methods as $key => $method) {
89 - print "<li>$key";  
90 - if ($key != $sig_method->get_name()) {  
91 - print "(<a href='?sig_method=$key'>switch</a>)";  
92 - }  
93 - print "</li>\n"; 89 + print "<li>$key";
  90 + if ($key != $sig_method->get_name()) {
  91 + print "(<a href='?sig_method=$key'>switch</a>)";
  92 + }
  93 + print "</li>\n";
94 } 94 }
95 ?> 95 ?>
96 </ul> 96 </ul>
97 97
98 -<?php 98 +<?php
99 if ("RSA-SHA1" == $sig_method->get_name()) { 99 if ("RSA-SHA1" == $sig_method->get_name()) {
100 - print "<pre>" . $sig_method->fetch_private_cert($req_req) . "</pre>\n";  
101 - print "<pre>" . $sig_method->fetch_public_cert($req_req) . "</pre>\n"; 100 + print "<pre>" . $sig_method->fetch_private_cert($req_req) . "</pre>\n";
  101 + print "<pre>" . $sig_method->fetch_public_cert($req_req) . "</pre>\n";
102 } 102 }
103 ?> 103 ?>
104 104
pacotes/linkedinoauth/testLinkedinOauth.php
1 <?php 1 <?php
2 require_once 'linkedin.php'; 2 require_once 'linkedin.php';
3 -include("../../ms_configura.php"); 3 +include(dirname(__FILE__)."/../../ms_configura.php");
4 $consumer_key = $linkedinoauth["consumerkey"]; 4 $consumer_key = $linkedinoauth["consumerkey"];
5 $consumer_secret = $linkedinoauth["consumersecret"]; 5 $consumer_secret = $linkedinoauth["consumersecret"];
6 echo "<pre>"; 6 echo "<pre>";
pacotes/openid/login.php
@@ -9,7 +9,7 @@ img @@ -9,7 +9,7 @@ img
9 //http://localhost/i3geo/pacotes/openid/login.php?g_sid=dqpk71kh6ei121s4u5g1qb9vi1 9 //http://localhost/i3geo/pacotes/openid/login.php?g_sid=dqpk71kh6ei121s4u5g1qb9vi1
10 session_name("openid"); 10 session_name("openid");
11 session_start(); 11 session_start();
12 -include("../../ms_configura.php"); 12 +include(dirname(__FILE__)."/../../ms_configura.php");
13 if($_SESSION["openid"] == false) 13 if($_SESSION["openid"] == false)
14 { 14 {
15 $dadosurl = array_merge($_GET,$_POST); 15 $dadosurl = array_merge($_GET,$_POST);
@@ -17,15 +17,15 @@ if($_SESSION[&quot;openid&quot;] == false) @@ -17,15 +17,15 @@ if($_SESSION[&quot;openid&quot;] == false)
17 echo "<span style=color:red >Ocorreu algum erro</span><br><br>"; 17 echo "<span style=color:red >Ocorreu algum erro</span><br><br>";
18 } 18 }
19 19
20 -} 20 +}
21 require 'openid.php'; 21 require 'openid.php';
22 try { 22 try {
23 - $openid = new LightOpenID; 23 + $openid = new LightOpenID;
24 if(!$openid->mode && $_SESSION["openid"] == false) { 24 if(!$openid->mode && $_SESSION["openid"] == false) {
25 - if(isset($dadosurl['openid_identifier']) && empty($dadosurl["erro"])) { 25 + if(isset($dadosurl['openid_identifier']) && empty($dadosurl["erro"])) {
26 $openid->identity = $dadosurl['openid_identifier']; 26 $openid->identity = $dadosurl['openid_identifier'];
27 - header('Location: ' . $openid->authUrl());  
28 - } 27 + header('Location: ' . $openid->authUrl());
  28 + }
29 ?> 29 ?>
30 30
31 <body> 31 <body>
@@ -63,19 +63,19 @@ function submete(quem){ @@ -63,19 +63,19 @@ function submete(quem){
63 } 63 }
64 if(quem == "google") 64 if(quem == "google")
65 { 65 {
66 - var u = window.prompt("Usuário",""); 66 + var u = window.prompt("Usu�rio","");
67 if(!u){return;} 67 if(!u){return;}
68 var url = 'http://www.google.com/profiles/'+u; 68 var url = 'http://www.google.com/profiles/'+u;
69 } 69 }
70 if(quem == "myopenid") 70 if(quem == "myopenid")
71 { 71 {
72 - var u = window.prompt("Usuário",""); 72 + var u = window.prompt("Usu�rio","");
73 if(!u){return;} 73 if(!u){return;}
74 var url = "http://"+u+".myopenid.com/"; 74 var url = "http://"+u+".myopenid.com/";
75 - } 75 + }
76 if(quem == "myspace") 76 if(quem == "myspace")
77 { 77 {
78 - var u = window.prompt("Usuário",""); 78 + var u = window.prompt("Usu�rio","");
79 if(!u){return;} 79 if(!u){return;}
80 var url = 'http://myspace.com/'+u; 80 var url = 'http://myspace.com/'+u;
81 } 81 }
@@ -85,13 +85,13 @@ function submete(quem){ @@ -85,13 +85,13 @@ function submete(quem){
85 } 85 }
86 if(quem == "wordpress") 86 if(quem == "wordpress")
87 { 87 {
88 - var u = window.prompt("Usuário",""); 88 + var u = window.prompt("Usu�rio","");
89 if(!u){return;} 89 if(!u){return;}
90 var url = 'http://'+u+'wordpress.com'; 90 var url = 'http://'+u+'wordpress.com';
91 } 91 }
92 if(quem == "blogger") 92 if(quem == "blogger")
93 { 93 {
94 - var u = window.prompt("Usuário",""); 94 + var u = window.prompt("Usu�rio","");
95 if(!u){return;} 95 if(!u){return;}
96 var url = 'http://'+u+'.blogspot.com'; 96 var url = 'http://'+u+'.blogspot.com';
97 } 97 }
@@ -108,9 +108,9 @@ function submete(quem){ @@ -108,9 +108,9 @@ function submete(quem){
108 } 108 }
109 </script> 109 </script>
110 <?php 110 <?php
111 - } elseif($openid->mode == 'cancel') {  
112 - echo 'User has canceled authentication!';  
113 - } else { 111 + } elseif($openid->mode == 'cancel') {
  112 + echo 'User has canceled authentication!';
  113 + } else {
114 if($_SESSION["openidservico"] != "twitter" && $_SESSION["openidservico"] != "facebook" && $_SESSION["openidservico"] != "linkedin"){ 114 if($_SESSION["openidservico"] != "twitter" && $_SESSION["openidservico"] != "facebook" && $_SESSION["openidservico"] != "linkedin"){
115 $valido = $openid->validate(); 115 $valido = $openid->validate();
116 $_SESSION["openid"] = false; 116 $_SESSION["openid"] = false;
@@ -133,9 +133,9 @@ function submete(quem){ @@ -133,9 +133,9 @@ function submete(quem){
133 $url = "login.php?login&erro=ok"; 133 $url = "login.php?login&erro=ok";
134 header('Location: ' . $url); 134 header('Location: ' . $url);
135 } 135 }
136 - } 136 + }
137 } catch(ErrorException $e) { 137 } catch(ErrorException $e) {
138 - echo $e->getMessage(); 138 + echo $e->getMessage();
139 echo "<br>O nome de usuario pode estar errado."; 139 echo "<br>O nome de usuario pode estar errado.";
140 } 140 }
141 ?> 141 ?>
142 \ No newline at end of file 142 \ No newline at end of file
pacotes/phpliteadmin/phpliteadmin.php
@@ -28,7 +28,7 @@ @@ -28,7 +28,7 @@
28 // 28 //
29 /////////////////////////////////////////////////////////////////////////// 29 ///////////////////////////////////////////////////////////////////////////
30 //adicionado por edmar 30 //adicionado por edmar
31 -include_once ("../../ms_configura.php"); 31 +include_once (dirname(__FILE__)."/../../ms_configura.php");
32 $editor = false; 32 $editor = false;
33 if (strtolower($_SERVER['HTTP_HOST']) !== "localhost") 33 if (strtolower($_SERVER['HTTP_HOST']) !== "localhost")
34 {echo "Acesso permitido apenas via localhost";exit;} 34 {echo "Acesso permitido apenas via localhost";exit;}
@@ -1790,7 +1790,7 @@ else //user is authorized - display the main application @@ -1790,7 +1790,7 @@ else //user is authorized - display the main application
1790 echo "<table border='0' cellpadding='2' cellspacing='1' class='viewTable'>"; 1790 echo "<table border='0' cellpadding='2' cellspacing='1' class='viewTable'>";
1791 echo "<tr>"; 1791 echo "<tr>";
1792 $headings = array("Field", "Type", "Primary Key", "Autoincrement", "Not NULL", "Default Value"); 1792 $headings = array("Field", "Type", "Primary Key", "Autoincrement", "Not NULL", "Default Value");
1793 - for($k=0; $k<count($headings); $k++) 1793 + for($k=0; $k<count($headings); $k++)
1794 echo "<td class='tdheader'>" . $headings[$k] . "</td>"; 1794 echo "<td class='tdheader'>" . $headings[$k] . "</td>";
1795 echo "</tr>"; 1795 echo "</tr>";
1796 1796
@@ -2106,47 +2106,47 @@ else //user is authorized - display the main application @@ -2106,47 +2106,47 @@ else //user is authorized - display the main application
2106 2106
2107 for($i=0; $i<sizeof($result); $i++) 2107 for($i=0; $i<sizeof($result); $i++)
2108 { 2108 {
2109 - $field = $result[$i][1];  
2110 - $type = $result[$i][2];  
2111 - $tdWithClass = "<td class='td".($i%2 ? "1" : "2")."'>";  
2112 - $tdWithClassLeft = "<td class='td".($i%2 ? "1" : "2")."' style='text-align:left;'>";  
2113 - echo "<tr>";  
2114 - echo $tdWithClassLeft;  
2115 - echo $field;  
2116 - echo "</td>";  
2117 - echo $tdWithClassLeft;  
2118 - echo $type;  
2119 - echo "</td>";  
2120 - echo $tdWithClassLeft;  
2121 - echo "<select name='".$field.":operator'>";  
2122 - echo "<option value='='>=</option>";  
2123 - if($type=="INTEGER" || $type=="REAL")  
2124 - {  
2125 - echo "<option value='>'>></option>";  
2126 - echo "<option value='>='>>=</option>";  
2127 - echo "<option value='<'><</option>";  
2128 - echo "<option value='<='><=</option>";  
2129 - }  
2130 - else if($type=="TEXT" || $type=="BLOB")  
2131 - {  
2132 - echo "<option value='= '''>= ''</option>";  
2133 - echo "<option value='!= '''>!= ''</option>";  
2134 - }  
2135 - echo "<option value='!='>!=</option>";  
2136 - if($type=="TEXT" || $type=="BLOB")  
2137 - echo "<option value='LIKE' selected='selected'>LIKE</option>";  
2138 - else  
2139 - echo "<option value='LIKE'>LIKE</option>";  
2140 - echo "<option value='NOT LIKE'>NOT LIKE</option>";  
2141 - echo "</select>";  
2142 - echo "</td>";  
2143 - echo $tdWithClassLeft;  
2144 - if($type=="INTEGER" || $type=="REAL" || $type=="NULL")  
2145 - echo "<input type='text' name='".$field."'/>";  
2146 - else  
2147 - echo "<textarea name='".$field."' wrap='hard' rows='1' cols='60'></textarea>";  
2148 - echo "</td>";  
2149 - echo "</tr>"; 2109 + $field = $result[$i][1];
  2110 + $type = $result[$i][2];
  2111 + $tdWithClass = "<td class='td".($i%2 ? "1" : "2")."'>";
  2112 + $tdWithClassLeft = "<td class='td".($i%2 ? "1" : "2")."' style='text-align:left;'>";
  2113 + echo "<tr>";
  2114 + echo $tdWithClassLeft;
  2115 + echo $field;
  2116 + echo "</td>";
  2117 + echo $tdWithClassLeft;
  2118 + echo $type;
  2119 + echo "</td>";
  2120 + echo $tdWithClassLeft;
  2121 + echo "<select name='".$field.":operator'>";
  2122 + echo "<option value='='>=</option>";
  2123 + if($type=="INTEGER" || $type=="REAL")
  2124 + {
  2125 + echo "<option value='>'>></option>";
  2126 + echo "<option value='>='>>=</option>";
  2127 + echo "<option value='<'><</option>";
  2128 + echo "<option value='<='><=</option>";
  2129 + }
  2130 + else if($type=="TEXT" || $type=="BLOB")
  2131 + {
  2132 + echo "<option value='= '''>= ''</option>";
  2133 + echo "<option value='!= '''>!= ''</option>";
  2134 + }
  2135 + echo "<option value='!='>!=</option>";
  2136 + if($type=="TEXT" || $type=="BLOB")
  2137 + echo "<option value='LIKE' selected='selected'>LIKE</option>";
  2138 + else
  2139 + echo "<option value='LIKE'>LIKE</option>";
  2140 + echo "<option value='NOT LIKE'>NOT LIKE</option>";
  2141 + echo "</select>";
  2142 + echo "</td>";
  2143 + echo $tdWithClassLeft;
  2144 + if($type=="INTEGER" || $type=="REAL" || $type=="NULL")
  2145 + echo "<input type='text' name='".$field."'/>";
  2146 + else
  2147 + echo "<textarea name='".$field."' wrap='hard' rows='1' cols='60'></textarea>";
  2148 + echo "</td>";
  2149 + echo "</tr>";
2150 } 2150 }
2151 echo "<tr>"; 2151 echo "<tr>";
2152 echo "<td class='tdheader' style='text-align:right;' colspan='4'>"; 2152 echo "<td class='tdheader' style='text-align:right;' colspan='4'>";
@@ -2704,7 +2704,7 @@ else //user is authorized - display the main application @@ -2704,7 +2704,7 @@ else //user is authorized - display the main application
2704 echo "<table border='0' cellpadding='2' cellspacing='1' class='viewTable'>"; 2704 echo "<table border='0' cellpadding='2' cellspacing='1' class='viewTable'>";
2705 echo "<tr>"; 2705 echo "<tr>";
2706 $headings = array("Field", "Type", "Primary Key", "Autoincrement", "Not NULL", "Default Value"); 2706 $headings = array("Field", "Type", "Primary Key", "Autoincrement", "Not NULL", "Default Value");
2707 - for($k=0; $k<count($headings); $k++) 2707 + for($k=0; $k<count($headings); $k++)
2708 echo "<td class='tdheader'>" . $headings[$k] . "</td>"; 2708 echo "<td class='tdheader'>" . $headings[$k] . "</td>";
2709 echo "</tr>"; 2709 echo "</tr>";
2710 2710
pacotes/qrcode/php/qr_html.php
@@ -13,12 +13,12 @@ p @@ -13,12 +13,12 @@ p
13 </style> 13 </style>
14 <body> 14 <body>
15 <?php 15 <?php
16 -include("../../../classesphp/carrega_ext.php");  
17 -include("../../../classesphp/pega_variaveis.php"); 16 +include(dirname(__FILE__)."/../../../classesphp/carrega_ext.php");
  17 +include(dirname(__FILE__)."/../../../classesphp/pega_variaveis.php");
18 18
19 echo "<p>O c&oacute;digo de barras abaixo pode ser lido por dispositivos m&oacute;veis, como os celulares ou pdas."; 19 echo "<p>O c&oacute;digo de barras abaixo pode ser lido por dispositivos m&oacute;veis, como os celulares ou pdas.";
20 echo "<p>Se o seu dispositivo possuir o software adequado, fotografe o c&oacute;digo para abrir o navegador de internet ou clique no link."; 20 echo "<p>Se o seu dispositivo possuir o software adequado, fotografe o c&oacute;digo para abrir o navegador de internet ou clique no link.";
21 $d = $d."&temasa=".$temasa."&layers=".$layers; 21 $d = $d."&temasa=".$temasa."&layers=".$layers;
22 -echo "<p><a href='$d' >$d</a><br>"; 22 +echo "<p><a href='$d' >$d</a><br>";
23 echo "<img src='qr_img.php?d=$d' />"; 23 echo "<img src='qr_img.php?d=$d' />";
24 ?> 24 ?>
25 \ No newline at end of file 25 \ No newline at end of file
pacotes/tme/TME_Engine.php
@@ -171,7 +171,7 @@ class ThematicMap @@ -171,7 +171,7 @@ class ThematicMap
171 exit("cannot open <$file>\n"); 171 exit("cannot open <$file>\n");
172 } 172 }
173 */ 173 */
174 - include(__DIR__."/../kmlmapserver/classes/zip.class.php"); 174 + include(dirname(__FILE__)."/../kmlmapserver/classes/zip.class.php");
175 $zip = new zipfile(); 175 $zip = new zipfile();
176 // Add balloon logo to archieve (300 x 30 px) 176 // Add balloon logo to archieve (300 x 30 px)
177 $zip->addFile($this->logoline, 'files/balloonlogo.png'); 177 $zip->addFile($this->logoline, 'files/balloonlogo.png');
pacotes/twitteroauth/config.php
@@ -4,7 +4,7 @@ @@ -4,7 +4,7 @@
4 * @file 4 * @file
5 * A single location to store configuration. 5 * A single location to store configuration.
6 */ 6 */
7 -include("../../ms_configura.php"); 7 +include(dirname(__FILE__)."/../../ms_configura.php");
8 define('CONSUMER_KEY', $twitteroauth["consumerkey"]); 8 define('CONSUMER_KEY', $twitteroauth["consumerkey"]);
9 define('CONSUMER_SECRET', $twitteroauth["consumersecret"]); 9 define('CONSUMER_SECRET', $twitteroauth["consumersecret"]);
10 $protocolo = explode("/",$_SERVER['SERVER_PROTOCOL']); 10 $protocolo = explode("/",$_SERVER['SERVER_PROTOCOL']);