protected function displayAdmin() { $this->checkRedirect(); $ip_list_str = implode("\r\n", $this->phpServerIpList); $html = <<<EOT <html> <head> <title>PHPServer集群管理</title> </head> <body> <form method="get" action="/admin"> <h3>phpserver集群ip列表</h3> <textarea name="ip_list" style="width:18em;height:400px"> {$ip_list_str} </textarea> <br/> <input type="submit" name='保存' value='保存'/ > </form> </body> </html> EOT; return $this->sendToClient(HTTP::encode($html)); }
protected function display($rsp_data = '', $cost = '', $services = array()) { $value_data = ''; $class = isset($_POST['class']) ? $_POST['class'] : ''; $func = isset($_POST['func']) ? $_POST['func'] : ''; $rsp_data = !is_scalar($rsp_data) ? var_export($rsp_data, true) : $rsp_data; $cost = $cost ? round($cost, 5) : ''; // 默认给个测试参数 if (empty($_POST)) { $class = ""; $func = ""; $_POST['value'][] = ''; } if (isset($_POST['value'])) { foreach ($_POST['value'] as $value) { $value_data .= '<tr><td>参数</td><td><input type="text" name="value[]" style="width:480px;" value=\'' . htmlspecialchars($value, ENT_QUOTES) . '\' autocomplete="off" disableautocomplete/> <a href="javascript:void(0)" onclick="delParam(this)">删除本行</a></td></tr>'; } } else { $value_data = '<tr><td>参数</td><td><input type="text" name="value[]" style="width:480px;" value="" /> <a href="javascript:void(0)" onclick="delParam(this)">删除本行</a></td></tr>'; } $services = json_encode($services); $display_data = <<<HHH <html> <head> <meta charset=utf-8> <title>Thrift Rpc test tool</title> <script type="text/javascript" src="http://lib.sinaapp.com/js/jquery/1.8/jquery.min.js"></script> </head> <body> <b style="color:red"></b> </br> <b>数组使用array(..)格式,bool直接使用true/false,null直接写null</b> </br> <form action="" method="post"> <table> <tr> <td>类</td> <td><input id='service_class' type="text" name="class" style="width:480px;" value="{$class}" autocomplete="off" disableautocomplete/></td> </tr> <tr> <td>方法</td> <td><input id='service_method' type="text" name="func" style="width:480px;" value="{$func}" autocomplete="off" disableautocomplete/></td> </tr> <tbody id="parames"> {$value_data} </tbody> <tfoot> <tr> <td colspan="2"><a href="javascript:void(0)" onclick="addParam()">添加参数</a></td> </tr> <tr> <td colspan="2" align="center"> <input style="padding:5px 20px;" type="submit" value="submit" /> <br> </td> </tr> </tfoot> </table> </form> <b>Return Data: </b><pre>{$rsp_data}</pre><br> <br><br> \t<table> <tr> <td> </td> <td width=24px> </td> <td> </td> </tr> </table> <b>耗时:</b>{$cost}秒 <div id='service' style="position:absolute;left:200;display:none"></div> <script type="text/javascript"> var services = {$services}; function addParam(value , auto ) { var style = auto ? 'width:480px;color:#BBBBBB' : 'width:480px;'; var auto_flag = auto ? 'auto="true"' : ''; value = value ? value : ''; \$('#parames').append('<tr><td>参数</td><td><input class="service_param" type="text" name="value[]" style="'+style+'" value="'+value+'" '+auto_flag+'/> <a href="javascript:void(0)" onclick="delParam(this)">删除本行</a></td></tr>'); } function delParam(obj) { \$(obj).parent('td').parent('tr').remove(); } var last_input_id = ''; \$(document).click( function(event) { var div = \$("#service"); var e = \$(event.target); // 处理类 if(e.attr('id') && e.attr('id') == 'service_class') { \$.ajax({ type: "get", dataType: "json", url: "/?ajax_get_service", async : false, complete :function(){}, success: function(msg){ services = msg; } }); div.empty(); \$.each(services, function(key,value){div.append('<a class="list_class_item" href="#" onclick="return false">'+key+'</a>')}); div.css("top",\$('#service_class').offset().top+\$('#service_class').height()+7); div.css("left",\$('#service_class').offset().left); div.css("width",\$('#service_class').width()+2); div.fadeIn(); last_input_id = 'service_class'; return; } // 处理方法 if(e.attr('id') && e.attr('id') == 'service_method') { div.empty(); if(\$("#service_class").attr('value') && services[\$("#service_class").attr('value')]) { \$.each(services[\$("#service_class").attr('value')], function(key, value){ div.append('<a class="list_method_item" href="#" onclick="return false">'+key+'</a>'); }); div.css("top",\$('#service_method').offset().top + \$('#service_class').height()+7); div.css("left",\$('#service_method').offset().left); div.css("width",\$('#service_method').width()+2); div.fadeIn(); } last_input_id = 'service_method'; return; } // 处理点击类提示浮层 if(e.attr('class') && e.attr('class') == 'list_class_item') { \$('#service_class').attr('value',e.html()); \$("#service").fadeOut(); } // 处理点击方法提示浮层 if(e.attr('class') && e.attr('class') == 'list_method_item') { \$('#service_method').attr('value',e.html()); // 创建参数栏 \$("#parames").empty(); if(\$("#service_class").attr('value') && services[\$("#service_class").attr('value')] && services[\$("#service_class").attr('value')][\$('#service_method').attr('value')]) { \$.each(services[\$("#service_class").attr('value')][\$('#service_method').attr('value')], function(i,v){ addParam(v, true); }); } \$("#service").fadeOut(); } // 处理参数input if(e.attr('class') && e.attr('class') == 'service_param') { if(e.attr('auto')) { e.removeAttr('auto'); e.attr('value', ''); e.css('color','#333333'); } } // 让浮层淡出 if(!e.attr('id') || e.attr('id') != last_input_id) { \$("#service").fadeOut(); } } ); </script> <style type="text/css"> #service {background:#EEEEEE} .list_class_item, .list_method_item {border-bottom: 1px solid #AAAAAA;display:block;padding:3px 10px;color:#333333;} A:link {color:#333333; text-decoration:none} A:hover {text-decoration:none;background:#DDDDDD} </style> </body> </html> HHH; $this->sendToClient(HTTP::encode($display_data)); }
protected function display($req_text = '', $rsp_text = '', $rsp_data = '', $msg = '', $cost = '') { $value_data = ''; $class = isset($_POST['class']) ? $_POST['class'] : ''; $func = isset($_POST['func']) ? $_POST['func'] : ''; $rsp_data = !is_scalar($rsp_data) ? var_export($rsp_data, true) : $rsp_data; $cost = $cost ? round($cost, 5) : ''; // 默认给个测试参数 if (empty($_POST)) { $class = "Cart_User"; $func = "getUserByUid"; $_POST['value'][] = 5100; } $post_address = '127.0.0.1:2201'; if (isset($_POST['address'])) { $post_address = $_POST['address']; } $address_data = '<tr><td>地址:</td><td> <select name="address">'; $address_array = $this->getAddress(); foreach ($address_array as $address => $address_and_name) { $selected = $address == $post_address ? 'selected="selected"' : ''; $address_data .= '<option value ="' . $address . '" ' . $selected . '>' . $address_and_name . '</option>'; } $address_data .= ' </select> </td></tr>'; if (isset($_POST['value'])) { foreach ($_POST['value'] as $value) { $value_data .= '<tr><td>参数</td><td><input type="text" name="value[]" style="width:480px;" value=\'' . htmlspecialchars($value, ENT_QUOTES) . '\' /> <a href="javascript:void(0)" onclick="delParam(this)">删除本行</a></td></tr>'; } } else { $value_data = '<tr><td>参数</td><td><input type="text" name="value[]" style="width:480px;" value="" /> <a href="javascript:void(0)" onclick="delParam(this)">删除本行</a></td></tr>'; } $display_data = <<<HHH <html> <head> <meta charset=utf-8> <title>Rpc test tool</title> <script type="text/javascript" src="http://lib.sinaapp.com/js/jquery/1.8/jquery.min.js"></script> </head> <body> <b style="color:red">{$msg}</b> </br> <b>数组使用array(..)格式,bool直接使用true/false,null直接写null</b> </br> <form action="" method="post"> <table> {$address_data} <tr> <td>类</td> <td><input type="text" name="class" style="width:480px;" value="{$class}" /></td> </tr> <tr> <td>方法</td> <td><input type="text" name="func" style="width:480px;" value="{$func}" /></td> </tr> <tbody id="parames"> {$value_data} </tbody> <tfoot> <tr> <td colspan="2"><a href="javascript:void(0)" onclick="addParam()">添加参数</a></td> </tr> <tr> <td colspan="2" align="center"> <input style="padding:5px 20px;" type="submit" value="submit" /> <br> </td> </tr> </tfoot> </table> </form> <b>Return Data: </b><pre>{$rsp_data}</pre><br> <b>Request Text:</b><br> <form action="" method="post"> <textarea style="width:98%;height:120px" name="req_data">{$req_text}</textarea><br> <input style="padding:5px 20px;" type="submit" value="submit" /> </form> <br><br> \t<table> <tr> <td> </td> <td width=24px> </td> <td> </td> </tr> </table> <b>Return Text:</b><br> <textarea style="width:98%;height:300px">{$rsp_text}</textarea><br> <br> <b>耗时:</b>{$cost}秒 <script type="text/javascript"> function addParam() { \$('#parames').append('<tr><td>参数</td><td><input type="text" name="value[]" style="width:480px;" value="" /> <a href="javascript:void(0)" onclick="delParam(this)">删除本行</a></td></tr>'); } function delParam(obj) { \$(obj).parent('td').parent('tr').remove(); } </script> </body> </html> HHH; $this->sendToClient(HTTP::encode($display_data)); }