getCfg('xmlrpc_server') && $mainframe->getCfg('debug'))) { JError::raiseError(403, 'XML-RPC Client or Debugging not enabled.'); } // Includes the required class file for the XML-RPC Client jimport('phpxmlrpc.xmlrpc'); // Get default values for the XMLRPC server host and path $uri = JURI::getInstance(); $host = $uri->getHost(); $path = $uri->getPath(); $path = dirname($path).'/'; $host = JRequest::getString( 'host', $host, 'post' ); $path = JRequest::getString( 'path', $path, 'post' ); $debug = JRequest::getVar( 'debug', 0, 'post', 'int' ); $task = JRequest::getVar( 'task', 0, 'post', 'cmd' ); $output = ''; $array = array(); if ($task) { if ($path) { $client = new xmlrpc_client($path, $host, 80); } else { $client = new xmlrpc_client('', $host); } $client->setDebug($debug); switch ($task) { case 'list_methods': { jimport( 'joomla.html.html' ); $msg = new xmlrpcmsg('system.listMethods'); $xmlrpcdoc = $client->send($msg); //echo var_dump($xmlrpcdoc); //die; if ($xmlrpcdoc->faultCode() == 0) { $result = $xmlrpcdoc->value(); $array = $result->scalarval(); } else { print $xmlrpcdoc->faultString(); } $methods = array(); for ($i=0; $i < sizeof($array); $i++) { $var = new xmlrpcval($array[$i]); $array_method = $var->scalarval(); $methods[$i] = JHTML::_('select.option', $array_method->scalarval()); } $output = 'Methods
'; $output .= JHTML::_('select.genericlist', $methods, 'method', 'size="10"', 'value', 'text' ); $output .= ' '; $output .= ' '; } break; case 'exec': { $method = JRequest::getVar( 'method', '', '', 'cmd' ); $args = JRequest::getVar( 'args' ); $message = new xmlrpcmsg($method, array(new xmlrpcval(0, "int"))); $xmlrpcdoc = $client->send($message); if ($xmlrpcdoc->faultCode()== 0) { $scalar_var = $xmlrpcdoc->value(); $output = var_export($scalar_var->scalarval(), true); } else { print $xmlrpcdoc->faultString(); } } break; } } ?> Joomla! XML-RPC Test Client
Joomla! XML-RPC Test Client
XML-RPC Host Eg: www.test.com or http://james:bond@www.test.com/xmlrpc
Server File Debug: />