/** ------------------------------------- /** Constructor, more or less /** -------------------------------------*/ function XML_RPC_Server($functions = '', $auto = TRUE, $xss_clean = TRUE) { parent::XML_RPC(); $this->set_system_methods(); $this->xss_clean = $xss_clean; if (is_array($functions) && $auto) { $this->methods = $functions; $this->serve(); } }
/** --------------------------------- /** Send Pings /** ---------------------------------*/ function send_pings($ping_servers, $blog_title, $ping_url, $rss_url) { global $DB, $PREFS; $sql = "SELECT server_name, server_url, port FROM exp_ping_servers WHERE id IN ("; foreach ($ping_servers as $id) { $sql .= "'{$id}',"; } $sql = substr($sql, 0, -1) . ') '; $query = $DB->query($sql); if ($query->num_rows == 0) { return FALSE; } if (!class_exists('XML_RPC')) { require PATH_CORE . 'core.xmlrpc' . EXT; } $XRPC = new XML_RPC(); $result = array(); foreach ($query->result as $row) { if (($response = $XRPC->weblogs_com_ping($row['server_url'], $row['port'], $blog_title, $ping_url, $rss_url)) !== TRUE) { $result[] = array($row['server_name'], $response); } } return $result; }
function XML_RPC_Values($val = -1, $type = '') { parent::XML_RPC(); if ($val != -1 || $type != '') { $type = $type == '' ? 'string' : $type; if ($this->xmlrpcTypes[$type] == 1) { $this->addScalar($val, $type); } elseif ($this->xmlrpcTypes[$type] == 2) { $this->addArray($val); } elseif ($this->xmlrpcTypes[$type] == 3) { $this->addStruct($val); } } }