| [ Index ] |
PHP Cross Reference of Joomla 1.5.26 DE |
[Summary view] [Print] [Text view]
1 <?php 2 /** 3 * @version $Id: pcltrace.lib.php 10381 2008-06-01 03:35:53Z pasamio $ 4 * @package Joomla 5 */ 6 7 // -------------------------------------------------------------------------------- 8 // PhpConcept Library (PCL) Trace 1.0 9 // -------------------------------------------------------------------------------- 10 // License GNU/GPL - Vincent Blavet - Janvier 2001 11 // http://www.phpconcept.net & http://phpconcept.free.fr 12 // -------------------------------------------------------------------------------- 13 // Fran�ais : 14 // La description de l'usage de la librairie PCL Trace 1.0 n'est pas encore 15 // disponible. Celle-ci n'est pour le moment distribu�e qu'avec l'application 16 // et la librairie PhpZip. 17 // Une version ind�pendante sera bientot disponible sur http://www.phpconcept.net 18 // 19 // English : 20 // The PCL Trace 1.0 library description is not available yet. This library is 21 // released only with PhpZip application and library. 22 // An independant release will be soon available on http://www.phpconcept.net 23 // 24 // -------------------------------------------------------------------------------- 25 // 26 // * Avertissement : 27 // 28 // Cette librairie a �t� cr��e de fa�on non professionnelle. 29 // Son usage est au risque et p�ril de celui qui l'utilise, en aucun cas l'auteur 30 // de ce code ne pourra �tre tenu pour responsable des �ventuels d�gats qu'il pourrait 31 // engendrer. 32 // Il est entendu cependant que l'auteur a r�alis� ce code par plaisir et n'y a 33 // cach� aucun virus, ni malveillance. 34 // Cette libairie est distribu�e sous la license GNU/GPL (http://www.gnu.org) 35 // 36 // * Auteur : 37 // 38 // Ce code a �t� �crit par Vincent Blavet (vincent@blavet.net) sur son temps 39 // de loisir. 40 // 41 // -------------------------------------------------------------------------------- 42 43 // ----- Look for double include 44 if (!defined("PCLTRACE_LIB")) 45 { 46 define( "PCLTRACE_LIB", 1 ); 47 48 // ----- Version 49 $g_pcl_trace_version = "1.0"; 50 51 // ----- Internal variables 52 // These values must be change by PclTrace library functions 53 $g_pcl_trace_mode = "memory"; 54 $g_pcl_trace_filename = "trace.txt"; 55 $g_pcl_trace_name = array(); 56 $g_pcl_trace_index = 0; 57 $g_pcl_trace_level = 1; 58 //$g_pcl_trace_entries = array(); 59 60 61 // -------------------------------------------------------------------------------- 62 // Function : TrOn($p_level, $p_mode, $p_filename) 63 // Description : 64 // Parameters : 65 // $p_level : Trace level 66 // $p_mode : Mode of trace displaying : 67 // 'normal' : messages are displayed at function call 68 // 'memory' : messages are memorized in a table and can be display by 69 //TrDisplay() function. (default) 70 // 'log': messages are writed in the file $p_filename 71 // -------------------------------------------------------------------------------- 72 function TrOn($p_level=1, $p_mode="memory", $p_filename="trace.txt") 73 { 74 global $g_pcl_trace_level; 75 global $g_pcl_trace_mode; 76 global $g_pcl_trace_filename; 77 global $g_pcl_trace_name; 78 global $g_pcl_trace_index; 79 global $g_pcl_trace_entries; 80 81 // ----- Enable trace mode 82 $g_pcl_trace_level = $p_level; 83 84 // ----- Memorize mode and filename 85 switch ($p_mode) { 86 case "normal" : 87 case "memory" : 88 case "log" : 89 $g_pcl_trace_mode = $p_mode; 90 break; 91 default : 92 $g_pcl_trace_mode = "logged"; 93 } 94 95 // ----- Memorize filename 96 $g_pcl_trace_filename = $p_filename; 97 } 98 // -------------------------------------------------------------------------------- 99 100 // -------------------------------------------------------------------------------- 101 // Function : IsTrOn() 102 // Description : 103 // Return value : 104 // The trace level (0 for disable). 105 // -------------------------------------------------------------------------------- 106 function IsTrOn() 107 { 108 global $g_pcl_trace_level; 109 110 return($g_pcl_trace_level); 111 } 112 // -------------------------------------------------------------------------------- 113 114 // -------------------------------------------------------------------------------- 115 // Function : TrOff() 116 // Description : 117 // Parameters : 118 // -------------------------------------------------------------------------------- 119 function TrOff() 120 { 121 global $g_pcl_trace_level; 122 global $g_pcl_trace_mode; 123 global $g_pcl_trace_filename; 124 global $g_pcl_trace_name; 125 global $g_pcl_trace_index; 126 127 // ----- Clean 128 $g_pcl_trace_mode = "memory"; 129 unset($g_pcl_trace_entries); 130 unset($g_pcl_trace_name); 131 unset($g_pcl_trace_index); 132 133 // ----- Switch off trace 134 $g_pcl_trace_level = 0; 135 } 136 // -------------------------------------------------------------------------------- 137 138 139 // -------------------------------------------------------------------------------- 140 // Function : TrFctStart() 141 // Description : 142 // Just a trace function for debbugging purpose before I use a better tool !!!! 143 // Start and stop of this function is by $g_pcl_trace_level global variable. 144 // Parameters : 145 // $p_level : Level of trace required. 146 // -------------------------------------------------------------------------------- 147 function TrFctStart($p_file, $p_line, $p_name, $p_param="", $p_message="") 148 { 149 global $g_pcl_trace_level; 150 global $g_pcl_trace_mode; 151 global $g_pcl_trace_filename; 152 global $g_pcl_trace_name; 153 global $g_pcl_trace_index; 154 global $g_pcl_trace_entries; 155 156 // ----- Look for disabled trace 157 if ($g_pcl_trace_level < 1) 158 return; 159 160 // ----- Add the function name in the list 161 if (!isset($g_pcl_trace_name)) 162 $g_pcl_trace_name = $p_name; 163 else 164 $g_pcl_trace_name .= ",".$p_name; 165 166 // ----- Update the function entry 167 $i = sizeof($g_pcl_trace_entries); 168 $g_pcl_trace_entries[$i]["name"] = $p_name; 169 $g_pcl_trace_entries[$i]["param"] = $p_param; 170 $g_pcl_trace_entries[$i]["message"] = ""; 171 $g_pcl_trace_entries[$i]["file"] = $p_file; 172 $g_pcl_trace_entries[$i]["line"] = $p_line; 173 $g_pcl_trace_entries[$i]["index"] = $g_pcl_trace_index; 174 $g_pcl_trace_entries[$i]["type"] = "1"; // means start of function 175 176 // ----- Update the message entry 177 if ($p_message != "") 178 { 179 $i = sizeof($g_pcl_trace_entries); 180 $g_pcl_trace_entries[$i]["name"] = ""; 181 $g_pcl_trace_entries[$i]["param"] = ""; 182 $g_pcl_trace_entries[$i]["message"] = $p_message; 183 $g_pcl_trace_entries[$i]["file"] = $p_file; 184 $g_pcl_trace_entries[$i]["line"] = $p_line; 185 $g_pcl_trace_entries[$i]["index"] = $g_pcl_trace_index; 186 $g_pcl_trace_entries[$i]["type"] = "3"; // means message 187 } 188 189 // ----- Action depending on mode 190 PclTraceAction($g_pcl_trace_entries[$i]); 191 192 // ----- Increment the index 193 $g_pcl_trace_index++; 194 } 195 // -------------------------------------------------------------------------------- 196 197 // -------------------------------------------------------------------------------- 198 // Function : TrFctEnd() 199 // Description : 200 // Just a trace function for debbugging purpose before I use a better tool !!!! 201 // Start and stop of this function is by $g_pcl_trace_level global variable. 202 // Parameters : 203 // $p_level : Level of trace required. 204 // -------------------------------------------------------------------------------- 205 function TrFctEnd($p_file, $p_line, $p_return=1, $p_message="") 206 { 207 global $g_pcl_trace_level; 208 global $g_pcl_trace_mode; 209 global $g_pcl_trace_filename; 210 global $g_pcl_trace_name; 211 global $g_pcl_trace_index; 212 global $g_pcl_trace_entries; 213 214 // ----- Look for disabled trace 215 if ($g_pcl_trace_level < 1) 216 return; 217 218 // ----- Extract the function name in the list 219 // ----- Remove the function name in the list 220 if (!($v_name = strrchr($g_pcl_trace_name, ","))) 221 { 222 $v_name = $g_pcl_trace_name; 223 $g_pcl_trace_name = ""; 224 } 225 else 226 { 227 $g_pcl_trace_name = substr($g_pcl_trace_name, 0, strlen($g_pcl_trace_name)-strlen($v_name)); 228 $v_name = substr($v_name, -strlen($v_name)+1); 229 } 230 231 // ----- Decrement the index 232 $g_pcl_trace_index--; 233 234 // ----- Update the message entry 235 if ($p_message != "") 236 { 237 $i = sizeof($g_pcl_trace_entries); 238 $g_pcl_trace_entries[$i]["name"] = ""; 239 $g_pcl_trace_entries[$i]["param"] = ""; 240 $g_pcl_trace_entries[$i]["message"] = $p_message; 241 $g_pcl_trace_entries[$i]["file"] = $p_file; 242 $g_pcl_trace_entries[$i]["line"] = $p_line; 243 $g_pcl_trace_entries[$i]["index"] = $g_pcl_trace_index; 244 $g_pcl_trace_entries[$i]["type"] = "3"; // means message 245 } 246 247 // ----- Update the function entry 248 $i = sizeof($g_pcl_trace_entries); 249 $g_pcl_trace_entries[$i]["name"] = $v_name; 250 $g_pcl_trace_entries[$i]["param"] = $p_return; 251 $g_pcl_trace_entries[$i]["message"] = ""; 252 $g_pcl_trace_entries[$i]["file"] = $p_file; 253 $g_pcl_trace_entries[$i]["line"] = $p_line; 254 $g_pcl_trace_entries[$i]["index"] = $g_pcl_trace_index; 255 $g_pcl_trace_entries[$i]["type"] = "2"; // means end of function 256 257 // ----- Action depending on mode 258 PclTraceAction($g_pcl_trace_entries[$i]); 259 } 260 // -------------------------------------------------------------------------------- 261 262 // -------------------------------------------------------------------------------- 263 // Function : TrFctMessage() 264 // Description : 265 // Parameters : 266 // -------------------------------------------------------------------------------- 267 function TrFctMessage($p_file, $p_line, $p_level, $p_message="") 268 { 269 global $g_pcl_trace_level; 270 global $g_pcl_trace_mode; 271 global $g_pcl_trace_filename; 272 global $g_pcl_trace_name; 273 global $g_pcl_trace_index; 274 global $g_pcl_trace_entries; 275 276 // ----- Look for disabled trace 277 if ($g_pcl_trace_level < $p_level) 278 return; 279 280 // ----- Update the entry 281 $i = sizeof($g_pcl_trace_entries); 282 $g_pcl_trace_entries[$i]["name"] = ""; 283 $g_pcl_trace_entries[$i]["param"] = ""; 284 $g_pcl_trace_entries[$i]["message"] = $p_message; 285 $g_pcl_trace_entries[$i]["file"] = $p_file; 286 $g_pcl_trace_entries[$i]["line"] = $p_line; 287 $g_pcl_trace_entries[$i]["index"] = $g_pcl_trace_index; 288 $g_pcl_trace_entries[$i]["type"] = "3"; // means message of function 289 290 // ----- Action depending on mode 291 PclTraceAction($g_pcl_trace_entries[$i]); 292 } 293 // -------------------------------------------------------------------------------- 294 295 // -------------------------------------------------------------------------------- 296 // Function : TrMessage() 297 // Description : 298 // Parameters : 299 // -------------------------------------------------------------------------------- 300 function TrMessage($p_file, $p_line, $p_level, $p_message="") 301 { 302 global $g_pcl_trace_level; 303 global $g_pcl_trace_mode; 304 global $g_pcl_trace_filename; 305 global $g_pcl_trace_name; 306 global $g_pcl_trace_index; 307 global $g_pcl_trace_entries; 308 309 // ----- Look for disabled trace 310 if ($g_pcl_trace_level < $p_level) 311 return; 312 313 // ----- Update the entry 314 $i = sizeof($g_pcl_trace_entries); 315 $g_pcl_trace_entries[$i]["name"] = ""; 316 $g_pcl_trace_entries[$i]["param"] = ""; 317 $g_pcl_trace_entries[$i]["message"] = $p_message; 318 $g_pcl_trace_entries[$i]["file"] = $p_file; 319 $g_pcl_trace_entries[$i]["line"] = $p_line; 320 $g_pcl_trace_entries[$i]["index"] = $g_pcl_trace_index; 321 $g_pcl_trace_entries[$i]["type"] = "4"; // means simple message 322 323 // ----- Action depending on mode 324 PclTraceAction($g_pcl_trace_entries[$i]); 325 } 326 // -------------------------------------------------------------------------------- 327 328 329 // -------------------------------------------------------------------------------- 330 // Function : TrDisplay() 331 // Description : 332 // Parameters : 333 // -------------------------------------------------------------------------------- 334 function TrDisplay() 335 { 336 global $g_pcl_trace_level; 337 global $g_pcl_trace_mode; 338 global $g_pcl_trace_filename; 339 global $g_pcl_trace_name; 340 global $g_pcl_trace_index; 341 global $g_pcl_trace_entries; 342 343 // ----- Look for disabled trace 344 if (($g_pcl_trace_level <= 0) || ($g_pcl_trace_mode != "memory")) 345 return; 346 347 $v_font = "\"Verdana, Arial, Helvetica, sans-serif\""; 348 349 // ----- Trace Header 350 echo "<table width=100% border=0 cellspacing=0 cellpadding=0>"; 351 echo "<tr bgcolor=#0000CC>"; 352 echo "<td bgcolor=#0000CC width=1>"; 353 echo "</td>"; 354 echo "<td><div align=center><font size=3 color=#FFFFFF face=$v_font>Trace</font></div></td>"; 355 echo "</tr>"; 356 echo "<tr>"; 357 echo "<td bgcolor=#0000CC width=1>"; 358 echo "</td>"; 359 echo "<td>"; 360 361 // ----- Content header 362 echo "<table width=100% border=0 cellspacing=0 cellpadding=0>"; 363 364 // ----- Display 365 $v_again=0; 366 for ($i=0; $i<sizeof($g_pcl_trace_entries); $i++) 367 { 368 // ---- Row header 369 echo "<tr>"; 370 echo "<td><table width=100% border=0 cellspacing=0 cellpadding=0><tr>"; 371 $n = ($g_pcl_trace_entries[$i]["index"]+1)*10; 372 echo "<td width=".$n."><table width=100% border=0 cellspacing=0 cellpadding=0><tr>"; 373 374 for ($j=0; $j<=$g_pcl_trace_entries[$i]["index"]; $j++) 375 { 376 if ($j==$g_pcl_trace_entries[$i]["index"]) 377 { 378 if (($g_pcl_trace_entries[$i]["type"] == 1) || ($g_pcl_trace_entries[$i]["type"] == 2)) 379 echo "<td width=10><div align=center><font size=2 face=$v_font>+</font></div></td>"; 380 } 381 else 382 echo "<td width=10><div align=center><font size=2 face=$v_font>|</font></div></td>"; 383 } 384 //echo "<td> </td>"; 385 echo "</tr></table></td>"; 386 387 echo "<td width=2></td>"; 388 switch ($g_pcl_trace_entries[$i]["type"]) { 389 case 1: 390 echo "<td><font size=2 face=$v_font>".$g_pcl_trace_entries[$i]["name"]."(".$g_pcl_trace_entries[$i]["param"].")</font></td>"; 391 break; 392 case 2: 393 echo "<td><font size=2 face=$v_font>".$g_pcl_trace_entries[$i]["name"]."()=".$g_pcl_trace_entries[$i]["param"]."</font></td>"; 394 break; 395 case 3: 396 case 4: 397 echo "<td><table width=100% border=0 cellspacing=0 cellpadding=0><td width=20></td><td>"; 398 echo "<font size=2 face=$v_font>".$g_pcl_trace_entries[$i]["message"]."</font>"; 399 echo "</td></table></td>"; 400 break; 401 default: 402 echo "<td><font size=2 face=$v_font>".$g_pcl_trace_entries[$i]["name"]."(".$g_pcl_trace_entries[$i]["param"].")</font></td>"; 403 } 404 echo "</tr></table></td>"; 405 echo "<td width=5></td>"; 406 echo "<td><font size=1 face=$v_font>".basename($g_pcl_trace_entries[$i]["file"])."</font></td>"; 407 echo "<td width=5></td>"; 408 echo "<td><font size=1 face=$v_font>".$g_pcl_trace_entries[$i]["line"]."</font></td>"; 409 echo "</tr>"; 410 } 411 412 // ----- Content footer 413 echo "</table>"; 414 415 // ----- Trace footer 416 echo "</td>"; 417 echo "<td bgcolor=#0000CC width=1>"; 418 echo "</td>"; 419 echo "</tr>"; 420 echo "<tr bgcolor=#0000CC>"; 421 echo "<td bgcolor=#0000CC width=1>"; 422 echo "</td>"; 423 echo "<td><div align=center><font color=#FFFFFF face=$v_font> </font></div></td>"; 424 echo "</tr>"; 425 echo "</table>"; 426 } 427 // -------------------------------------------------------------------------------- 428 429 // -------------------------------------------------------------------------------- 430 // Function : PclTraceAction() 431 // Description : 432 // Parameters : 433 // -------------------------------------------------------------------------------- 434 function PclTraceAction($p_entry) 435 { 436 global $g_pcl_trace_level; 437 global $g_pcl_trace_mode; 438 global $g_pcl_trace_filename; 439 global $g_pcl_trace_name; 440 global $g_pcl_trace_index; 441 global $g_pcl_trace_entries; 442 443 if ($g_pcl_trace_mode == "normal") 444 { 445 for ($i=0; $i<$p_entry["index"]; $i++) 446 echo "---"; 447 if ($p_entry["type"] == 1) 448 echo "<b>".$p_entry["name"]."</b>(".$p_entry["param"].") : ".$p_entry["message"]." [".$p_entry["file"].", ".$p_entry["line"]."]<br>"; 449 else if ($p_entry["type"] == 2) 450 echo "<b>".$p_entry["name"]."</b>()=".$p_entry["param"]." : ".$p_entry["message"]." [".$p_entry["file"].", ".$p_entry["line"]."]<br>"; 451 else 452 echo $p_entry["message"]." [".$p_entry["file"].", ".$p_entry["line"]."]<br>"; 453 } 454 } 455 // -------------------------------------------------------------------------------- 456 457 // ----- End of double include look 458 } 459 ?>
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
| Generated: Wed Mar 28 15:54:07 2012 | Cross-referenced by PHPXref 0.7.1 |