public function writeOutput()
 {
     if ($this->isFault()) {
         XMLRPC_error($this->faultCode, $this->faultString);
     } elseif ($this->returnValue == null) {
         // TODO: Can we return nothing throuh xmlrpc?
         // TODO: Why is XMLRPC_prepare going nuts with an empty string passed?
         XMLRPC_response(XMLRPC_prepare("void"));
     } else {
         $type = $this->returnValue->getType();
         if ($type == Types::DATE) {
             $convertedValue = XMLRPC_convert_timestamp_to_iso8601($this->returnValue->getValue());
         } else {
             $convertedValue = $this->returnValue->getValue();
         }
         XMLRPC_response(XMLRPC_prepare($convertedValue));
     }
 }
function openthesaurus_searchSynonyms($query)
{
    $start = getmicrotime();
    $items = array();
    $query_str = sprintf("\n\t\tSELECT words.id AS word_id, word, meaning_id\n\t\tFROM words, word_meanings, meanings\n\t\tWHERE \n\t\t\tword = '%s' AND\n\t\t\twords.id = word_meanings.word_id AND\n\t\t\tword_meanings.meaning_id = meanings.id AND\n\t\t\tmeanings.hidden = 0\n\t\n\t\tUNION\n\n\t\tSELECT words.id AS word_id, word, meaning_id\n\t\tFROM words, word_meanings, meanings\n\t\tWHERE \n\t\t\tlookup = '%s' AND\n\t\t\twords.id = word_meanings.word_id AND\n\t\t\tword_meanings.meaning_id = meanings.id AND\n\t\t\tmeanings.hidden = 0\n\n\t\tORDER BY word", myaddslashes($query), myaddslashes($query), myaddslashes($query), myaddslashes($query));
    $db = new DB_Thesaurus();
    $db->query($query_str);
    $synmatches = 1;
    if ($db->nf() == 0) {
        $item['words'] = array();
        $items[] = $item;
    }
    while ($db->next_record()) {
        $mid = $db->f('meaning_id');
        $item['words'] = getSynsetWithUsage($db->f('meaning_id'), 1);
        $items[] = $item;
    }
    $_GET['search'] = 1;
    # otherwise logSearch ignores the search
    logSearch($db, $query, $db->nf(), 0, getEndTimer(), 1);
    XMLRPC_response(XMLRPC_prepare($items), KD_XMLRPC_USERAGENT);
}
function mt_publishPost($params)
{
    global $loq;
    if ($loq->userauth($params[1], $params[2])) {
        // password accepted
        ob_start();
        XMLRPC_response(XMLRPC_prepare(true), WEBLOG_XMLPRPC_USERAGENT);
    } else {
        XMLRPC_error("301", "The username and password you entered was not accepted. Please try again.", WEBLOG_XMLRPC_USERAGENT);
    }
}
function sayHello($params)
{
    $result = 'Привет, ' . $params[0] . '!';
    XMLRPC_response(XMLRPC_prepare($result), WEBLOG_XMLRPC_USERAGENT);
}
// Налоги и сборы, в %
$taxes = array('НДС' => 18, 'Налог с продаж' => 5, 'Обработка заказа' => 10);
// XML-PRC сервер
require 'xmlrpc.php';
// Включим отладку
define('XMLRPC_DEBUG', true);
// Декларация методов и назначение методам функций
$xmlrpc_methods = array('eshop.getDeliveryMethods' => 'getDeliveryMethods', 'eshop.calculateOrder' => 'calculateOrder');
// Обработка запроса
$xmlrpc_request = XMLRPC_parse($HTTP_RAW_POST_DATA);
$methodName = XMLRPC_getMethodName($xmlrpc_request);
$params = XMLRPC_getParams($xmlrpc_request);
if (isset($xmlrpc_methods[$methodName])) {
    // Вызов метода
    $result = $xmlrpc_methods[$methodName]($params);
    XMLRPC_response(XMLRPC_prepare($result), WEBLOG_XMLRPC_USERAGENT);
} else {
    // Ошибка: Нет такого метода
    XMLRPC_error('2', "Метод '{$methodName}' не найден.", WEBLOG_XMLRPC_USERAGENT);
}
// ----------------------------- Бизнес - логика -----------------------------
// Функция возвращает методы доставки
function getDeliveryMethods($params)
{
    global $deliveryMethods;
    return $deliveryMethods;
}
// Функция возвращает расчет стоимости заказа
function calculateOrder($params)
{
    global $deliveryMethods, $deliveryCost, $taxes;
Exemple #6
0
 function metaWeblog_getRecentPosts($count)
 {
     // SPEC: metaWeblog.getRecentPosts (postid, username, password[, count]) returns struct
     $posts = array();
     foreach ($this->ParentDocument->getChildren($count) as $d) {
         $posts[] = $this->_convertDocumentToStruct($d);
     }
     XMLRPC_response(XMLRPC_prepare($posts), IMPCMS_USERAGENT);
 }