source: trunk/expressoMail1_2/spell_checker/cpaint/cpaint2.backend-debugger.php @ 7655

Revision 7655, 4.6 KB checked in by douglasz, 11 years ago (diff)

Ticket #3236 - Melhorias de performance no codigo do Expresso.

Line 
1<?php
2/*
3 CPAINT Backend Debug Interface
4
5 released under the terms of the GPL
6 see http://www.fsf.org/licensing/licenses/gpl.txt for details
7 
8 @package    CPAINT
9 @access     public
10 @author     Paul Sullivan  <wiley14@gmail.com>
11 @author     Stephan Tijink <stijink@googlemail.com>
12 @copyright  Copyright (c) 2005-2006 Paul Sullivan - http://sf.net/projects/cpaint
13 @version    2.0.2
14*/
15
16if (!(isset($_GET["cpaint_function"]) || isset($_POST["cpaint_function"]))) {
17        $debug_html_start = '
18        <html><head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
19        <title>CPAINT Debug Interface</title>
20        <style type="text/css">body { background-color: #9999CC; margin-top: 0px; }
21                .style3 { font-family: Arial, Helvetica, sans-serif; font-size: 12px; }
22                .style4 { font-size: 20px; color: #FFFFFF; font-family: Arial, Helvetica, sans-serif;}
23                .style5 { font-size: 16px;      color: #FFFFFF; font-family: Arial, Helvetica, sans-serif;      font-weight: bold; }
24                .style6 { font-size: 12px;      color: #FFFFFF; font-family: Arial, Helvetica, sans-serif;      font-weight: bold; }
25                div, iframe {   margin: 0px; border: 1px solid #9999CC; }
26        </style>
27        <script type="text/javascript">
28                function showForm(divId) {
29                        if (document.getElementById(divId).style.display == "block") {
30                                document.getElementById(divId).style.display = "none";
31                        } else {
32                                document.getElementById(divId).style.display = "block";
33                        }
34                }
35        </script>
36        </head>
37        <body>
38                <table width="100%"  border="0" cellspacing="0" cellpadding="0">
39                <tr><td bgcolor="#9999CC"><div align="justify"><span class="style4">CPAINT Debug Interface</span></div></td></tr>
40                <tr><td bgcolor="#9999CC"><div align="justify"><span class="style6" style="color:#FFFFFF;">backend filename: '.$_SERVER["SCRIPT_NAME"].'</span></div></td></tr>
41                <tr><td height="10" bgcolor="#9999CC" class="style3"></td></tr>
42                <tr><td height="10" bgcolor="#9999CC" class="style3"></td></tr>
43                <tr><td bgcolor="#FFFFFF" class="style3"><blockquote>';
44        $debug_html_end = "</blockquote></td></tr></table><br><iframe name=\"results\" class=\"style3\" width=\"100%\" height=\"100%\" scrolling=\"yes\" allowtransparency=\"false\" style=\"background-color:  #FFFFFF\"></iframe></body></html>";
45       
46        // get function names and function variables/values
47        $functionArray = getCallableCode();
48       
49        $debug_body = "";
50        if (count($functionArray) > 0) {
51                foreach ($functionArray as $func_name=>$func_variables) {
52                        $debug_body = $debug_body . "<form method=\"get\" target=\"results\"><a href=\"javascript:showForm('" . $func_name . "_form');\">" . $func_name . "</a><div id=\"" . $func_name . "_form\" style=\"display:  none;\">";
53                       
54                        $debug_body = $debug_body . '<table border="0">';
55                        if ( count($func_variables) > 0) {
56                                foreach ($func_variables as $var_name=>$var_preset) {
57                                        $debug_body = $debug_body . '<tr><td class="style3">Parameter (<strong>$'.$var_name.'</strong>):</td><td><input type="text" name="cpaint_argument[]"></td>';
58                                        if (strlen($var_preset) > 0) { $debug_body = $debug_body . "<td class=\"style3\"> &nbsp; default value is <strong>".$var_preset." &nbsp;</strong></td>"; }
59                                        $debug_body = $debug_body . '</tr>';
60                                }
61                        }
62                        $debug_body = $debug_body . "<tr><td class=\"style3\">Response Type:</td><td><select name=\"cpaint_response_type\"><option>TEXT</option><option>XML</option><option>OBJECT</option></select></td></tr>";
63                        $debug_body = $debug_body . "<tr><td colspan=\"3\"><input type=\"hidden\" name=\"cpaint_function\" value=\"" . $func_name . "\"><input type=\"submit\"></td></tr></table></div></form>";
64                }
65        }
66       
67        print($debug_html_start . $debug_body . $debug_html_end);
68        die();
69}
70
71function getCallableCode() {
72        $scriptName = $_SERVER['SCRIPT_FILENAME'];
73        $fileLines = file($scriptName);
74        for ($i=0; $i < sizeof($fileLines); ++$i) {
75                $line = trim($fileLines[$i]);
76                if (substr($line, 0, 9) == "FUNCTION " || substr($line,0,9) == "function ") {
77                        $match[] = $line;
78                }               
79        }
80        for ($i = 0; $i < sizeof($match); ++$i) {
81                $line = str_replace("function ", "", $match[$i]);
82                $line = str_replace("FUNCTION ", "", $line);
83                $line = str_replace("{", "", $line);
84                $parts = explode("(", $line);
85                $func_name = trim($parts[0]);
86               
87                $Tempargs = explode(")", $parts[1]);
88                $args = explode(",", $Tempargs[0]);
89                $argSize = sizeof($args);
90               
91                // check args for preset values
92                if ($argSize > 0) {
93                        foreach ($args as $arg) {
94                                $arg            = trim ($arg);
95                                $varArray       = explode ("=", $arg);
96                                $var_name       = trim (str_replace ("$", "", $varArray["0"]));
97                                $var_value      = trim ($varArray["1"]);
98                                $resultArray[$func_name][$var_name] = $var_value;
99                        }
100                }
101        }
102        return $resultArray;
103}
104?>
Note: See TracBrowser for help on using the repository browser.