1
0

pcltrace.lib.php 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735
  1. <?php
  2. // --------------------------------------------------------------------------------
  3. // PhpConcept Library (PCL) Trace 2.0-beta1
  4. // --------------------------------------------------------------------------------
  5. // License GNU/GPL - Vincent Blavet - August 2003
  6. // http://www.phpconcept.net
  7. // --------------------------------------------------------------------------------
  8. //
  9. // The PCL Trace library description is not available yet.
  10. // This library was first released only with PclZip library.
  11. // An independant release will be soon available on http://www.phpconcept.net
  12. //
  13. // --------------------------------------------------------------------------------
  14. //
  15. // Warning :
  16. // This library and the associated files are non commercial, non professional
  17. // work.
  18. // It should not have unexpected results. However if any damage is caused by
  19. // this software the author can not be responsible.
  20. // The use of this software is at the risk of the user.
  21. //
  22. // --------------------------------------------------------------------------------
  23. // ----- Version
  24. $g_pcltrace_version = "2.0-beta1";
  25. // ----- Internal variables
  26. // These values must be change by PclTrace library functions
  27. $g_pcl_trace_mode = "memory";
  28. $g_pcl_trace_filename = "trace.txt";
  29. $g_pcl_trace_name = array();
  30. $g_pcl_trace_index = 0;
  31. $g_pcl_trace_level = 0;
  32. $g_pcl_trace_suspend = false;
  33. //$g_pcl_trace_entries = array();
  34. // ----- For compatibility reason
  35. define ('PCLTRACE_LIB', 1);
  36. // --------------------------------------------------------------------------------
  37. // Function : TrOn($p_level, $p_mode, $p_filename)
  38. // Description :
  39. // Parameters :
  40. // $p_level : Trace level
  41. // $p_mode : Mode of trace displaying :
  42. // 'normal' : messages are displayed at function call
  43. // 'memory' : messages are memorized in a table and can be display by
  44. // TrDisplay() function. (default)
  45. // 'log' : messages are writed in the file $p_filename
  46. // --------------------------------------------------------------------------------
  47. function PclTraceOn($p_level=1, $p_mode="memory", $p_filename="trace.txt")
  48. {
  49. TrOn($p_level, $p_mode, $p_filename);
  50. }
  51. function TrOn($p_level=1, $p_mode="memory", $p_filename="trace.txt")
  52. {
  53. global $g_pcl_trace_level;
  54. global $g_pcl_trace_mode;
  55. global $g_pcl_trace_filename;
  56. global $g_pcl_trace_name;
  57. global $g_pcl_trace_index;
  58. global $g_pcl_trace_entries;
  59. global $g_pcl_trace_suspend;
  60. // ----- Enable trace mode
  61. $g_pcl_trace_level = $p_level;
  62. // ----- Memorize mode and filename
  63. switch ($p_mode) {
  64. case "normal" :
  65. case "memory" :
  66. case "log" :
  67. $g_pcl_trace_mode = $p_mode;
  68. break;
  69. default :
  70. $g_pcl_trace_mode = "logged";
  71. }
  72. // ----- Memorize filename
  73. $g_pcl_trace_filename = $p_filename;
  74. $g_pcl_trace_suspend = false;
  75. }
  76. // --------------------------------------------------------------------------------
  77. // --------------------------------------------------------------------------------
  78. // Function : IsTrOn()
  79. // Description :
  80. // Return value :
  81. // The trace level (0 for disable).
  82. // --------------------------------------------------------------------------------
  83. function PclTraceIsOn()
  84. {
  85. return IsTrOn();
  86. }
  87. function IsTrOn()
  88. {
  89. global $g_pcl_trace_level;
  90. return($g_pcl_trace_level);
  91. }
  92. // --------------------------------------------------------------------------------
  93. // --------------------------------------------------------------------------------
  94. // Function : TrOff()
  95. // Description :
  96. // Parameters :
  97. // --------------------------------------------------------------------------------
  98. function PclTraceOff()
  99. {
  100. TrOff();
  101. }
  102. function TrOff()
  103. {
  104. global $g_pcl_trace_level;
  105. global $g_pcl_trace_mode;
  106. global $g_pcl_trace_filename;
  107. global $g_pcl_trace_name;
  108. global $g_pcl_trace_index;
  109. // ----- Clean
  110. $g_pcl_trace_mode = "memory";
  111. unset($g_pcl_trace_entries);
  112. unset($g_pcl_trace_name);
  113. unset($g_pcl_trace_index);
  114. // ----- Switch off trace
  115. $g_pcl_trace_level = 0;
  116. }
  117. // --------------------------------------------------------------------------------
  118. // --------------------------------------------------------------------------------
  119. // Function : PclTraceSuspend()
  120. // Description :
  121. // Parameters :
  122. // --------------------------------------------------------------------------------
  123. function PclTraceSuspend()
  124. {
  125. global $g_pcl_trace_suspend;
  126. $g_pcl_trace_suspend = true;
  127. }
  128. // --------------------------------------------------------------------------------
  129. // --------------------------------------------------------------------------------
  130. // Function : PclTraceResume()
  131. // Description :
  132. // Parameters :
  133. // --------------------------------------------------------------------------------
  134. function PclTraceResume()
  135. {
  136. global $g_pcl_trace_suspend;
  137. $g_pcl_trace_suspend = false;
  138. }
  139. // --------------------------------------------------------------------------------
  140. // --------------------------------------------------------------------------------
  141. // Function : TrFctStart()
  142. // Description :
  143. // Just a trace function for debbugging purpose before I use a better tool !!!!
  144. // Start and stop of this function is by $g_pcl_trace_level global variable.
  145. // Parameters :
  146. // $p_level : Level of trace required.
  147. // --------------------------------------------------------------------------------
  148. function PclTraceFctStart($p_file, $p_line, $p_name, $p_param="", $p_message="")
  149. {
  150. TrFctStart($p_file, $p_line, $p_name, $p_param, $p_message);
  151. }
  152. function TrFctStart($p_file, $p_line, $p_name, $p_param="", $p_message="")
  153. {
  154. global $g_pcl_trace_level;
  155. global $g_pcl_trace_mode;
  156. global $g_pcl_trace_filename;
  157. global $g_pcl_trace_name;
  158. global $g_pcl_trace_index;
  159. global $g_pcl_trace_entries;
  160. global $g_pcl_trace_suspend;
  161. // ----- Look for disabled trace
  162. if (($g_pcl_trace_level < 1) || ($g_pcl_trace_suspend))
  163. return;
  164. // ----- Add the function name in the list
  165. if (!isset($g_pcl_trace_name))
  166. $g_pcl_trace_name = $p_name;
  167. else
  168. $g_pcl_trace_name .= ",".$p_name;
  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. // ----- Update the message entry
  179. if ($p_message != "")
  180. {
  181. $i = sizeof($g_pcl_trace_entries);
  182. $g_pcl_trace_entries[$i]['name'] = "";
  183. $g_pcl_trace_entries[$i]['param'] = "";
  184. $g_pcl_trace_entries[$i]['message'] = $p_message;
  185. $g_pcl_trace_entries[$i]['file'] = $p_file;
  186. $g_pcl_trace_entries[$i]['line'] = $p_line;
  187. $g_pcl_trace_entries[$i]['index'] = $g_pcl_trace_index;
  188. $g_pcl_trace_entries[$i]['type'] = "3"; // means message
  189. }
  190. // ----- Action depending on mode
  191. PclTraceAction($g_pcl_trace_entries[$i]);
  192. // ----- Increment the index
  193. $g_pcl_trace_index++;
  194. }
  195. // --------------------------------------------------------------------------------
  196. // --------------------------------------------------------------------------------
  197. // Function : TrFctEnd()
  198. // Description :
  199. // Just a trace function for debbugging purpose before I use a better tool !!!!
  200. // Start and stop of this function is by $g_pcl_trace_level global variable.
  201. // Parameters :
  202. // $p_level : Level of trace required.
  203. // --------------------------------------------------------------------------------
  204. function PclTraceFctEnd($p_file, $p_line, $p_return=1, $p_message="")
  205. {
  206. TrFctEnd($p_file, $p_line, $p_return, $p_message);
  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. global $g_pcl_trace_suspend;
  217. // ----- Look for disabled trace
  218. if (($g_pcl_trace_level < 1) || ($g_pcl_trace_suspend))
  219. return;
  220. // ----- Extract the function name in the list
  221. // ----- Remove the function name in the list
  222. if (!($v_name = strrchr($g_pcl_trace_name, ",")))
  223. {
  224. $v_name = $g_pcl_trace_name;
  225. $g_pcl_trace_name = "";
  226. }
  227. else
  228. {
  229. $g_pcl_trace_name = substr($g_pcl_trace_name, 0, strlen($g_pcl_trace_name)-strlen($v_name));
  230. $v_name = substr($v_name, -strlen($v_name)+1);
  231. }
  232. // ----- Decrement the index
  233. $g_pcl_trace_index--;
  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. // ----- Update the function entry
  247. $i = sizeof($g_pcl_trace_entries);
  248. $g_pcl_trace_entries[$i]['name'] = $v_name;
  249. $g_pcl_trace_entries[$i]['param'] = $p_return;
  250. $g_pcl_trace_entries[$i]['message'] = "";
  251. $g_pcl_trace_entries[$i]['file'] = $p_file;
  252. $g_pcl_trace_entries[$i]['line'] = $p_line;
  253. $g_pcl_trace_entries[$i]['index'] = $g_pcl_trace_index;
  254. $g_pcl_trace_entries[$i]['type'] = "2"; // means end of function
  255. // ----- Action depending on mode
  256. PclTraceAction($g_pcl_trace_entries[$i]);
  257. }
  258. // --------------------------------------------------------------------------------
  259. // --------------------------------------------------------------------------------
  260. // Function : TrFctMessage()
  261. // Description :
  262. // Parameters :
  263. // --------------------------------------------------------------------------------
  264. function PclTraceFctMessage($p_file, $p_line, $p_level, $p_message="")
  265. {
  266. TrFctMessage($p_file, $p_line, $p_level, $p_message);
  267. }
  268. function TrFctMessage($p_file, $p_line, $p_level, $p_message="")
  269. {
  270. global $g_pcl_trace_level;
  271. global $g_pcl_trace_mode;
  272. global $g_pcl_trace_filename;
  273. global $g_pcl_trace_name;
  274. global $g_pcl_trace_index;
  275. global $g_pcl_trace_entries;
  276. global $g_pcl_trace_suspend;
  277. // ----- Look for disabled trace
  278. if (($g_pcl_trace_level < $p_level) || ($g_pcl_trace_suspend))
  279. return;
  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. // ----- Action depending on mode
  290. PclTraceAction($g_pcl_trace_entries[$i]);
  291. }
  292. // --------------------------------------------------------------------------------
  293. // --------------------------------------------------------------------------------
  294. // Function : TrMessage()
  295. // Description :
  296. // Parameters :
  297. // --------------------------------------------------------------------------------
  298. function PclTraceMessage($p_file, $p_line, $p_level, $p_message="")
  299. {
  300. TrMessage($p_file, $p_line, $p_level, $p_message);
  301. }
  302. function TrMessage($p_file, $p_line, $p_level, $p_message="")
  303. {
  304. global $g_pcl_trace_level;
  305. global $g_pcl_trace_mode;
  306. global $g_pcl_trace_filename;
  307. global $g_pcl_trace_name;
  308. global $g_pcl_trace_index;
  309. global $g_pcl_trace_entries;
  310. global $g_pcl_trace_suspend;
  311. // ----- Look for disabled trace
  312. if (($g_pcl_trace_level < $p_level) || ($g_pcl_trace_suspend))
  313. return;
  314. // ----- Update the entry
  315. $i = sizeof($g_pcl_trace_entries);
  316. $g_pcl_trace_entries[$i]['name'] = "";
  317. $g_pcl_trace_entries[$i]['param'] = "";
  318. $g_pcl_trace_entries[$i]['message'] = $p_message;
  319. $g_pcl_trace_entries[$i]['file'] = $p_file;
  320. $g_pcl_trace_entries[$i]['line'] = $p_line;
  321. $g_pcl_trace_entries[$i]['index'] = $g_pcl_trace_index;
  322. $g_pcl_trace_entries[$i]['type'] = "4"; // means simple message
  323. // ----- Action depending on mode
  324. PclTraceAction($g_pcl_trace_entries[$i]);
  325. }
  326. // --------------------------------------------------------------------------------
  327. // --------------------------------------------------------------------------------
  328. // Function : TrDisplay()
  329. // Description :
  330. // Parameters :
  331. // --------------------------------------------------------------------------------
  332. function PclTraceDisplay()
  333. {
  334. TrDisplay();
  335. }
  336. function TrDisplay()
  337. {
  338. global $g_pcl_trace_level;
  339. global $g_pcl_trace_mode;
  340. global $g_pcl_trace_filename;
  341. global $g_pcl_trace_name;
  342. global $g_pcl_trace_index;
  343. global $g_pcl_trace_entries;
  344. global $g_pcl_trace_suspend;
  345. // ----- Look for disabled trace
  346. if (($g_pcl_trace_level <= 0) || ($g_pcl_trace_mode != "memory") || ($g_pcl_trace_suspend))
  347. return;
  348. $v_font = "\"Verdana, Arial, Helvetica, sans-serif\"";
  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. // ----- Content header
  361. echo "<table width=100% border=0 cellspacing=0 cellpadding=0>";
  362. // ----- Display
  363. $v_again=0;
  364. for ($i=0; $i<sizeof($g_pcl_trace_entries); $i++)
  365. {
  366. // ---- Row header
  367. echo "<tr>";
  368. echo "<td><table width=100% border=0 cellspacing=0 cellpadding=0><tr>";
  369. $n = ($g_pcl_trace_entries[$i]['index']+1)*10;
  370. echo "<td width=".$n."><table width=100% border=0 cellspacing=0 cellpadding=0><tr>";
  371. for ($j=0; $j<=$g_pcl_trace_entries[$i]['index']; $j++)
  372. {
  373. if ($j==$g_pcl_trace_entries[$i]['index'])
  374. {
  375. if (($g_pcl_trace_entries[$i]['type'] == 1) || ($g_pcl_trace_entries[$i]['type'] == 2))
  376. echo "<td width=10><div align=center><font size=2 face=$v_font>+</font></div></td>";
  377. }
  378. else
  379. echo "<td width=10><div align=center><font size=2 face=$v_font>|</font></div></td>";
  380. }
  381. //echo "<td>&nbsp</td>";
  382. echo "</tr></table></td>";
  383. echo "<td width=2></td>";
  384. switch ($g_pcl_trace_entries[$i]['type']) {
  385. case 1:
  386. echo "<td><font size=2 face=$v_font>".$g_pcl_trace_entries[$i]['name']."(".$g_pcl_trace_entries[$i]['param'].")</font></td>";
  387. break;
  388. case 2:
  389. echo "<td><font size=2 face=$v_font>".$g_pcl_trace_entries[$i]['name']."()=".$g_pcl_trace_entries[$i]['param']."</font></td>";
  390. break;
  391. case 3:
  392. case 4:
  393. echo "<td><table width=100% border=0 cellspacing=0 cellpadding=0><td width=20></td><td>";
  394. echo "<font size=2 face=$v_font>".$g_pcl_trace_entries[$i]['message']."</font>";
  395. echo "</td></table></td>";
  396. break;
  397. default:
  398. echo "<td><font size=2 face=$v_font>".$g_pcl_trace_entries[$i]['name']."(".$g_pcl_trace_entries[$i]['param'].")</font></td>";
  399. }
  400. echo "</tr></table></td>";
  401. echo "<td width=5></td>";
  402. echo "<td><font size=1 face=$v_font>".basename($g_pcl_trace_entries[$i]['file'])."</font></td>";
  403. echo "<td width=5></td>";
  404. echo "<td><font size=1 face=$v_font>".$g_pcl_trace_entries[$i]['line']."</font></td>";
  405. echo "</tr>";
  406. }
  407. // ----- Content footer
  408. echo "</table>";
  409. // ----- Trace footer
  410. echo "</td>";
  411. echo "<td bgcolor=#0000CC width=1>";
  412. echo "</td>";
  413. echo "</tr>";
  414. echo "<tr bgcolor=#0000CC>";
  415. echo "<td bgcolor=#0000CC width=1>";
  416. echo "</td>";
  417. echo "<td><div align=center><font color=#FFFFFF face=$v_font>&nbsp</font></div></td>";
  418. echo "</tr>";
  419. echo "</table>";
  420. }
  421. // --------------------------------------------------------------------------------
  422. // --------------------------------------------------------------------------------
  423. // Function : TrDisplayNew()
  424. // Description :
  425. // Parameters :
  426. // --------------------------------------------------------------------------------
  427. function PclTraceDisplayNew()
  428. {
  429. global $g_pcl_trace_level;
  430. global $g_pcl_trace_mode;
  431. global $g_pcl_trace_filename;
  432. global $g_pcl_trace_name;
  433. global $g_pcl_trace_index;
  434. global $g_pcl_trace_entries;
  435. global $g_pcl_trace_suspend;
  436. // ----- Look for disabled trace
  437. if (($g_pcl_trace_level <= 0) || ($g_pcl_trace_mode != "memory") || ($g_pcl_trace_suspend))
  438. return;
  439. ?>
  440. <script language="javascript">
  441. function PclTraceToggleView(element) {
  442. if (element.style.visibility == 'visible') {
  443. PclTraceHide(element);
  444. } else {
  445. PclTraceShow(element);
  446. }
  447. }
  448. function PclTraceShow(element) {
  449. element.style.visibility = 'visible';
  450. element.style.position='relative';
  451. }
  452. function PclTraceHide(element) {
  453. element.style.visibility = 'hidden';
  454. element.style.position='absolute';
  455. }
  456. </script>
  457. <table width="100%" border="0" cellspacing="0" cellpadding="0" bordercolor="#0000CC">
  458. <tr>
  459. <td bgcolor="#0000CC">
  460. <div align="center"><font face="Verdana, Arial, Helvetica, sans-serif" color="#FFFFFF"><b>Trace</b></font></div>
  461. </td>
  462. </tr>
  463. <tr>
  464. <td>
  465. <?php
  466. $v_font = "\"Verdana, Arial, Helvetica, sans-serif\"";
  467. // ----- Trace Header
  468. // ----- Display the items
  469. $v_again=0;
  470. for ($i=0; $i<sizeof($g_pcl_trace_entries); $i++)
  471. {
  472. switch ($g_pcl_trace_entries[$i]['type']) {
  473. case 1: // fct start
  474. PclTraceDisplayItemStart($i);
  475. break;
  476. case 2: // fct stop
  477. PclTraceDisplayItemStop($i);
  478. break;
  479. case 3: // fct msg
  480. case 4: // msg
  481. PclTraceDisplayItemMsg($i);
  482. break;
  483. default:
  484. }
  485. /*
  486. echo "</tr></table></td>";
  487. echo "<td width=5></td>";
  488. echo "<td><font size=1 face=$v_font>".basename($g_pcl_trace_entries[$i]['file'])."</font></td>";
  489. echo "<td width=5></td>";
  490. echo "<td><font size=1 face=$v_font>".$g_pcl_trace_entries[$i]['line']."</font></td>";
  491. echo "</tr>";
  492. */
  493. }
  494. // ----- Trace footer
  495. ?>
  496. </td>
  497. </tr>
  498. <tr>
  499. <td bgcolor="#0000CC">&nbsp;</td>
  500. </tr>
  501. </table>
  502. <script language="javascript">
  503. function PclTraceShowAll() {
  504. <?php
  505. for ($i=0; $i<sizeof($g_pcl_trace_entries); $i++) {
  506. if ($g_pcl_trace_entries[$i]['type'] == 1) {
  507. echo "PclTraceShow(document.getElementById('fct-".$i."'));";
  508. }
  509. }
  510. ?>
  511. }
  512. function PclTraceHideAll() {
  513. <?php
  514. for ($i=0; $i<sizeof($g_pcl_trace_entries); $i++) {
  515. if ($g_pcl_trace_entries[$i]['type'] == 1) {
  516. echo "PclTraceHide(document.getElementById('fct-".$i."'));";
  517. }
  518. }
  519. ?>
  520. }
  521. </script>
  522. <form id="formulaire" action="POST">
  523. <p>
  524. <input type='button' value='Show All' onclick="PclTraceShowAll();"></input>
  525. <input type='button' value='Hide All' onclick="PclTraceHideAll();"></input>
  526. </p>
  527. </form>
  528. <?php
  529. }
  530. // --------------------------------------------------------------------------------
  531. // --------------------------------------------------------------------------------
  532. // Function : TrDisplayNew()
  533. // Description :
  534. // Parameters :
  535. // --------------------------------------------------------------------------------
  536. function PclTraceDisplayItemStart($p_id)
  537. {
  538. global $g_pcl_trace_level;
  539. global $g_pcl_trace_mode;
  540. global $g_pcl_trace_filename;
  541. global $g_pcl_trace_name;
  542. global $g_pcl_trace_index;
  543. global $g_pcl_trace_entries;
  544. global $g_pcl_trace_suspend;
  545. ?>
  546. <table width="100%" border="0" cellspacing="0" cellpadding="0">
  547. <tr>
  548. <td width="10"><font face="Verdana, Arial, Helvetica, sans-serif" color="#FFFFFF"><b><font color="#000000" size="2">+</font></b></font></td>
  549. <td style="width:2px;"></td>
  550. <td><font face="Verdana, Arial, Helvetica, sans-serif" color="#FFFFFF"><b><font color="#000000" size="2">
  551. <a href="javascript:null();"
  552. title="<?php echo 'File:'.basename($g_pcl_trace_entries[$p_id]['file'])." Line: ".$g_pcl_trace_entries[$p_id]['line'];?>"
  553. onclick="PclTraceToggleView(document.getElementById('<?php echo 'fct-'.$p_id; ?>'));">
  554. <?php echo $g_pcl_trace_entries[$p_id]['name']."(".$g_pcl_trace_entries[$p_id]['param'].")" ?>
  555. </a></font></b></font></td>
  556. </tr>
  557. <tr id="<?php echo 'fct-'.$p_id; ?>" style="visibility:hidden;position:absolute;">
  558. <td width="10">&nbsp;</td>
  559. <td style="width:2px;" bgcolor="#0000CC"></td>
  560. <td>
  561. <?php
  562. }
  563. // --------------------------------------------------------------------------------
  564. // --------------------------------------------------------------------------------
  565. // Function : TrDisplayNew()
  566. // Description :
  567. // Parameters :
  568. // --------------------------------------------------------------------------------
  569. function PclTraceDisplayItemStop($p_id)
  570. {
  571. global $g_pcl_trace_level;
  572. global $g_pcl_trace_mode;
  573. global $g_pcl_trace_filename;
  574. global $g_pcl_trace_name;
  575. global $g_pcl_trace_index;
  576. global $g_pcl_trace_entries;
  577. global $g_pcl_trace_suspend;
  578. ?>
  579. <table width="100%" border="0" cellspacing="0" cellpadding="0">
  580. <tr>
  581. <td><font face="Verdana, Arial, Helvetica, sans-serif" color="#FFFFFF"><b><font color="#000000" size="2">
  582. <?php echo $g_pcl_trace_entries[$p_id]['name']."()=".$g_pcl_trace_entries[$p_id]['param']; ?>
  583. </font></b></font></td>
  584. </tr>
  585. </table>
  586. </td>
  587. </tr>
  588. </table>
  589. <?php
  590. }
  591. // --------------------------------------------------------------------------------
  592. // --------------------------------------------------------------------------------
  593. // Function : TrDisplayNew()
  594. // Description :
  595. // Parameters :
  596. // --------------------------------------------------------------------------------
  597. function PclTraceDisplayItemMsg($p_id)
  598. {
  599. global $g_pcl_trace_level;
  600. global $g_pcl_trace_mode;
  601. global $g_pcl_trace_filename;
  602. global $g_pcl_trace_name;
  603. global $g_pcl_trace_index;
  604. global $g_pcl_trace_entries;
  605. global $g_pcl_trace_suspend;
  606. ?>
  607. <table width="100%" border="0" cellspacing="0" cellpadding="0">
  608. <tr>
  609. <td width="10"><font face="Verdana, Arial, Helvetica, sans-serif" color="#FFFFFF"><b><font color="#000000" size="2"><center>.</center></font></b></font></td>
  610. <td style="width:2px;"></td>
  611. <td><font face="Verdana, Arial, Helvetica, sans-serif" color="#FFFFFF"><b><font color="#000000" size="2">
  612. <?php echo $g_pcl_trace_entries[$p_id]['message'] ?>
  613. </font></b></font></td>
  614. <td width=5></td>
  615. <td><font size=1 face="Verdana, Arial, Helvetica, sans-serif"><?php echo basename($g_pcl_trace_entries[$p_id]['file']); ?></font></td>
  616. <td width=5></td>
  617. <td><font size=1 face="Verdana, Arial, Helvetica, sans-serif"><?php echo $g_pcl_trace_entries[$p_id]['line']; ?></font></td>
  618. </tr>
  619. </table>
  620. <?php
  621. }
  622. // --------------------------------------------------------------------------------
  623. // --------------------------------------------------------------------------------
  624. // Function : PclTraceAction()
  625. // Description :
  626. // Parameters :
  627. // --------------------------------------------------------------------------------
  628. function PclTraceAction($p_entry)
  629. {
  630. global $g_pcl_trace_level;
  631. global $g_pcl_trace_mode;
  632. global $g_pcl_trace_filename;
  633. global $g_pcl_trace_name;
  634. global $g_pcl_trace_index;
  635. global $g_pcl_trace_entries;
  636. if ($g_pcl_trace_mode == "normal")
  637. {
  638. for ($i=0; $i<$p_entry['index']; $i++)
  639. echo "---";
  640. if ($p_entry['type'] == 1)
  641. echo "<b>".$p_entry['name']."</b>(".$p_entry['param'].") : ".$p_entry['message']." [".$p_entry[file].", ".$p_entry[line]."]<br>";
  642. else if ($p_entry['type'] == 2)
  643. echo "<b>".$p_entry['name']."</b>()=".$p_entry['param']." : ".$p_entry['message']." [".$p_entry[file].", ".$p_entry[line]."]<br>";
  644. else
  645. echo $p_entry['message']." [".$p_entry['file'].", ".$p_entry['line']."]<br>";
  646. }
  647. }
  648. // --------------------------------------------------------------------------------
  649. ?>