43 require_once
'XML/RPC2/Exception.php';
44 require_once
'XML/RPC2/Backend.php';
163 if ((isset($options[
'prefix'])) && (is_string($options[
'prefix']))) {
164 $this->prefix = $options[
'prefix'];
166 if ((isset($options[
'encoding'])) && (is_string($options[
'encoding']))) {
167 $this->encoding = $options[
'encoding'];
169 if ((isset($options[
'autoDocument'])) && (is_bool($options[
'autoDocument']))) {
172 if ((isset($options[
'autoDocumentExternalLinks'])) && (is_bool($options[
'autoDocumentExternalLinks']))) {
173 $this->autoDocumentExternalLinks = $options[
'autoDocumentExternalLinks'];
175 if ((isset($options[
'signatureChecking'])) && (is_bool($options[
'signatureChecking']))) {
176 $this->signatureChecking = $options[
'signatureChecking'];
190 public static function create($callTarget, $options = array())
192 if (isset($options[
'backend'])) {
195 if (isset($options[
'prefix'])) {
202 if (!isset($options[
'callHandler'])) {
203 if (is_object($callTarget)) {
204 require_once
'XML/RPC2/Server/CallHandler/Instance.php';
207 require_once
'XML/RPC2/Server/CallHandler/Class.php';
248 throw new Exception(
'Classic error reported "' . $errstr .
'" on ' . $errfile .
':' . $errline);
263 print
"<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n";
264 print
"<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en\" xml:lang=\"en\">\n";
266 print
" <meta http-equiv=\"Content-Type\" content=\"text/HTML; charset=" . $this->encoding .
"\" />\n";
267 print
" <title>Available XMLRPC methods for this server</title>\n";
268 print
" <style type=\"text/css\">\n";
269 print
" li,p { font-size: 10pt; font-family: Arial,Helvetia,sans-serif; }\n";
270 print
" a:link { background-color: white; color: blue; text-decoration: underline; font-weight: bold; }\n";
271 print
" a:visited { background-color: white; color: blue; text-decoration: underline; font-weight: bold; }\n";
272 print
" table { border-collapse:collapse; width: 100% }\n";
273 print
" table,td { padding: 5px; border: 1px solid black; }\n";
274 print
" div.bloc { border: 1px dashed gray; padding: 10px; margin-bottom: 20px; }\n";
275 print
" div.description { border: 1px solid black; padding: 10px; }\n";
276 print
" span.type { background-color: white; color: gray; font-weight: normal; }\n";
277 print
" span.paratype { background-color: white; color: gray; font-weight: normal; }\n";
278 print
" span.name { background-color: white; color: #660000; }\n";
279 print
" span.paraname { background-color: white; color: #336600; }\n";
280 print
" img { border: 0px; }\n";
281 print
" li { font-size: 12pt; }\n";
285 print
" <h1>Available XMLRPC methods for this server</h1>\n";
286 print
" <h2><a name=\"index\">Index</a></h2>\n";
288 foreach ($this->callHandler->getMethods() as $method) {
289 $name = $method->getName();
291 $signature = $method->getHTMLSignature();
292 print
" <li><a href=\"#$id\">$name()</a></li>\n";
295 print
" <h2>Details</h2>\n";
296 foreach ($this->callHandler->getMethods() as $method) {
297 print
" <div class=\"bloc\">\n";
298 $method->autoDocument();
299 print
" <p>(return to <a href=\"#index\">index</a>)</p>\n";
302 if (!($this->autoDocumentExternalLinks)) {
303 print
' <p><a href="http://pear.php.net/packages/XML_RPC2"><img src="http://pear.php.net/gifs/pear-power.png" alt="Powered by PEAR/XML_RPC2" height="31" width="88" /></a> <a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0 Strict" height="31" width="88" /></a> <a href="http://jigsaw.w3.org/css-validator/"><img style="border:0;width:88px;height:31px" src="http://jigsaw.w3.org/css-validator/images/vcss" alt="Valid CSS!" /></a></p>' .
"\n";
320 if (extension_loaded(
'mbstring') && (ini_get(
'mbstring.func_overload') & 2) == 2) {
321 $length = mb_strlen($content,
'8bit');
323 $length = strlen((binary)$content);