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